Machine learning 机器学习,标称数据规范化

Machine learning 机器学习,标称数据规范化,machine-learning,cluster-analysis,normalization,k-means,Machine Learning,Cluster Analysis,Normalization,K Means,我正在研究kmeans集群。 我有3d数据集,如天数、频率、食物 ->一天通过平均值和标准偏差(SD)或更好的说法标准化进行标准化。这给了我[-2到14]的范围 ->对于在我的数据集中属于标称数据的频率和食物,通过除以MAX(x/MAX(x))进行标准化,得到范围[0到1] 问题是kmeans只考虑了日轴进行分组,因为在该轴上存在明显的间隔b/w点,几乎忽略了频率和食物的其他两个(我认为是因为频率和食物暗度的差距可以忽略不计) 如果我仅在日轴(1D)上应用kmeans,我得到的结果与在3D(日、

我正在研究kmeans集群。 我有3d数据集,如天数、频率、食物 ->一天通过平均值和标准偏差(SD)或更好的说法标准化进行标准化。这给了我[-2到14]的范围

->对于在我的数据集中属于标称数据的频率和食物,通过除以MAX(x/MAX(x))进行标准化,得到范围[0到1]

问题是kmeans只考虑了日轴进行分组,因为在该轴上存在明显的间隔b/w点,几乎忽略了频率和食物的其他两个(我认为是因为频率和食物暗度的差距可以忽略不计)

如果我仅在日轴(1D)上应用kmeans,我得到的结果与在3D(日、频率、食物)上应用的结果完全相似

“以前,我也做了x/max(x)几天,但不可接受”

所以我想知道有没有办法将频率和食物的另外两个标称数据标准化,我们得到基于日轴的公平标度

食物=>1,2,3
frequency=>1-36

您可以尝试使用值差度量、VDM(或任何变量)将几乎所有遇到的标称属性转换为有效的数字表示形式。之后,您可以像往常一样对整个数据集应用标准化

最初的定义如下:

尽管在其他地方很容易找到每种通用语言的实现


注意:对于有序的标称属性,如“频率”,大多数情况下,仅将它们表示为整数就足够了。

标准化的重点不仅仅是将值变小

这样做的目的是要有可比较的值范围——这对于不同单位的属性来说确实很难,对于名义数据来说也很可能是不可能的

对于您的数据类型,k-means可能是最糟糕的选择,因为k-means依赖于连续值来工作。如果你有标称值,它通常很容易卡住。因此,我的主要建议是不要使用k-means

对于数据上wprk的k-means,每个属性中的差值1必须相同。所以1天的差异=食物q和食物2之间的差异。因为k-均值是基于平方误差的,食物1和食物3的差值是食物2的4倍


除非您具有上述属性,否则不要使用k-means。

为什么不规范化所有内容?我规范化了所有内容。。。几天来,我一直在使用标准化,因为它是我的定量数据和平均值&标准差……但对于频率和食物,它没有意义,因为它们是我的分类数据。