我有一个名义和数字特征的数据集。如果可能,我希望能够完全用数字表示此数据集。
理想情况下,我可以针对n元名义特征执行此操作。我意识到在二进制情况下,一个可以用整数表示两个标称值。但是,当名义特征可以具有许多排列时,这怎么可能呢?
最佳答案
有许多技术可以将分类属性“嵌入”为数字。
例如,给定一个可以采用值red
,green
和blue
的分类变量,我们可以将其简单地编码为三个属性isRed={0,1}
,isGreen={0,1}
和isBlue={0,1}
。
尽管这很流行,而且显然会“起作用”,但许多人都认为谬误是认为以后的数值处理技术将产生合理的结果。
如果您运行例如以这种方式对数据集进行编码的k均值之后,结果可能不会太有意义。特别是,如果获得诸如isRed=.3 isGreen=.2 isBlue=.5
之类的均值,则无法合理地将其映射回原始数据。更糟糕的是,使用某些算法,您甚至可能会得到isRed=0 isGreen=0 isBlue=0
。
我建议您尝试处理实际数据,并尽量避免编码。如果您有一个好的工具,它将允许您使用混合数据类型。不要试图使所有内容成为数值向量。这种数据的数学视图非常有限,并且数据不会为您提供所有需要从该视图中受益的数学假设(例如度量空间)。
关于machine-learning - 数字表示名义数据,同时保留数据语义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20272828/