2017-04-19 71 views
-1

我想运行的一些数据的机器学习算法使用的功能列表,所以我第一个导出数据到一个文件中。在ML模型

但我对我正在分类的文本的一个特征是标签列表, ,每个文本可以包含多个标签。 ([“神秘”,“惊悚片”])。

是它建议时,我写信给我的CSV文件导出数据,我写的整个列表作为我的数据的特点之一(“标签”功能)。 还是为每个标签制作一个单独的功能更好。唯一的问题是大多数例子只有一个标签,所以这些标签的其他特征列将是空白的。

所以好像写的标签这个列表作为一个特征是很有道理的,但后来解析它用于训练的时候,我会再处理该列表中的每个元素作为它自己的特点仍然还是没有?

+0

无论你与他们无关。最后,当你提供他们的ML算法,它们将被转换为不同的列,分别为每个不同的标签 –

回答

-1

如果您将其作为单个功能执行,请确保使用一些分隔符来分隔不会出现在任何标签中的标签,也不是逗号(因为这会混淆csv格式),类似于|可能会很好。当你去建立模型并阅读标签列表时,你可以根据分隔符来分割它。在Java中,这看起来像:

String[] tagList = inputString.split("|"); 

我相信大多数语言都会有类似的方法来做到这一点。

+0

权,这其实现在我做什么权(使用|)。我真正的问题(更新我最初问题的最后一行)是,这是否是实际编码相同类型功能列表的推荐方式。我应该让他们分开吗? – rasen58

+0

选择如何组合功能不是一个明确的决定。这真的归结为实验和经验,因为结果可能会有很大的差异。一般来说,我倾向于特征分解,并倾向于二元特征,但这绝不是一条硬性规则。这里有一篇关于数据准备的文章。 http://machinelearningmastery.com/how-to-prepare-data-for-machine-learning/ – Robert