用数字表示名义数据并保留数据语义

我有一个包含名义和数值特征的数据集。我希望能够尽可能地将这个数据集完全用数字表示出来。

理想情况下,我希望能够对n元名义特征进行这种表示。我意识到在二元情况下,可以用整数来表示两个名义值。然而,当一个名义特征可以有多种排列组合时,这是否可能实现呢?


回答:

有许多技术可以将分类属性“嵌入”为数字。

例如,给定一个可以取值redgreenblue的分类变量,我们可以简单地将其编码为三个属性isRed={0,1}isGreen={0,1}isBlue={0,1}

虽然这种方法很流行,并且显然“有效”,但许多人误以为之后的数值处理技术会产生合理的结果。

例如,如果你在一个这样编码的数据集上运行k-means算法,结果可能不会太有意义。特别是,如果你得到的平均值如isRed=.3 isGreen=.2 isBlue=.5,你无法合理地将其映射回原始数据。更糟糕的是,使用某些算法时,你甚至可能得到isRed=0 isGreen=0 isBlue=0的结果。

我建议你尽量处理你的实际数据,尽可能避免编码。如果你有一个好的工具,它将允许你使用混合数据类型。不要试图将所有东西都变成数值向量。这种数据的数学视角相当有限,数据不会给你所有你需要从这种视角受益的数学假设(例如,度量空间)。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注