机器学习,标称数据归一化
machine learning, nominal data normalization
我正在研究 kmeans 聚类。
我有 3d 数据集 no.days,频率,食物
->day 通过均值和标准偏差 (SD) 或更准确地说是标准化进行标准化。这给了我 [-2 到 14]
的范围
->对于频率和食物,它们是我数据集中的标称数据,由 DIVIDE BY MAX ( x/max(x) ) 归一化,这给了我范围 [0 到 1]
问题是 kmeans 只考虑日轴进行分组,因为在这个轴上有明显的差距 b/w 点并且几乎忽略了频率和食物的其他两个(我认为是因为差距可以忽略不计在频率和食物变暗)。
如果我仅在日轴 (1D) 上应用 kmeans,我得到的结果与我在 3D(天、频率、食物)上应用的结果完全相似。
"before, i did x/max(x) as well for days but not acceptable"
所以我想知道有什么方法可以标准化频率和食物的其他两个标称数据,我们可以根据日轴得到公平的缩放比例。
食物 => 1,2,3
频率 => 1-36
您可以尝试使用价值差异度量、VDM(或任何变体)将您遇到的几乎所有标称属性转换为 有效 数字表示。之后,您可以像往常一样对整个数据集应用标准化。
原定义在这里:
http://axon.cs.byu.edu/~randy/jair/wilson1.html
尽管在其他地方很容易找到每种通用语言的实现。
N.B。对于诸如 'frequency' 之类的有序标称属性,大多数时候只需将它们表示为整数就足够了。
归一化的意义不仅仅是让值变小。
目的是为了具有可比较的值范围——这对于不同单位的属性来说确实很难,而对于标称数据来说很可能是不可能的。
对于您的数据类型,k-means 可能是最糟糕的选择,因为 k-means 依赖于 连续值。如果你有标称值,它通常很容易卡住。所以我的主要建议是不要使用k-means。
要 k-means 对您的数据进行 wprk,每个属性的差异 1 必须相同。所以 1 天的差异 = 食物 q 和食物 2 之间的差异。并且因为 k-means 基于平方误差,所以食物 1 与食物 3 的差异是食物与食物 2 的 4 倍。
除非你有以上属性,否则不要使用k-means。
我正在研究 kmeans 聚类。 我有 3d 数据集 no.days,频率,食物 ->day 通过均值和标准偏差 (SD) 或更准确地说是标准化进行标准化。这给了我 [-2 到 14]
的范围->对于频率和食物,它们是我数据集中的标称数据,由 DIVIDE BY MAX ( x/max(x) ) 归一化,这给了我范围 [0 到 1]
问题是 kmeans 只考虑日轴进行分组,因为在这个轴上有明显的差距 b/w 点并且几乎忽略了频率和食物的其他两个(我认为是因为差距可以忽略不计在频率和食物变暗)。
如果我仅在日轴 (1D) 上应用 kmeans,我得到的结果与我在 3D(天、频率、食物)上应用的结果完全相似。
"before, i did x/max(x) as well for days but not acceptable"
所以我想知道有什么方法可以标准化频率和食物的其他两个标称数据,我们可以根据日轴得到公平的缩放比例。
食物 => 1,2,3 频率 => 1-36
您可以尝试使用价值差异度量、VDM(或任何变体)将您遇到的几乎所有标称属性转换为 有效 数字表示。之后,您可以像往常一样对整个数据集应用标准化。
原定义在这里:
http://axon.cs.byu.edu/~randy/jair/wilson1.html
尽管在其他地方很容易找到每种通用语言的实现。
N.B。对于诸如 'frequency' 之类的有序标称属性,大多数时候只需将它们表示为整数就足够了。
归一化的意义不仅仅是让值变小。
目的是为了具有可比较的值范围——这对于不同单位的属性来说确实很难,而对于标称数据来说很可能是不可能的。
对于您的数据类型,k-means 可能是最糟糕的选择,因为 k-means 依赖于 连续值。如果你有标称值,它通常很容易卡住。所以我的主要建议是不要使用k-means。
要 k-means 对您的数据进行 wprk,每个属性的差异 1 必须相同。所以 1 天的差异 = 食物 q 和食物 2 之间的差异。并且因为 k-means 基于平方误差,所以食物 1 与食物 3 的差异是食物与食物 2 的 4 倍。
除非你有以上属性,否则不要使用k-means。