【问题标题】:machine learning, nominal data normalization机器学习,名义数据归一化
【发布时间】:2017-06-05 06:14:09
【问题描述】:

我正在研究 kmeans 聚类。 我有 3d 数据集作为 no.days,frequency,food -> 日通过均值和标准偏差(SD)进行标准化,或者更好地说是标准化。这给了我 [-2 到 14] 的范围

->对于频率和食物,我的数据集中的 NOMINAL 数据由 DIVIDE BY MAX ( x/max(x) ) 归一化,这给了我范围 [0 到 1]

问题在于 kmeans 只考虑分组的日轴,因为在这个轴上有明显的 b/w 点并且几乎忽略了频率和食物的另外两个(我认为是因为频率和食物的差距可以忽略不计昏暗)。

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

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

所以我想知道是否有任何方法可以标准化频率和食物的其他两个标称数据,并且我们可以根据 DAY 轴进行公平缩放。

食物 => 1,2,3 频率 => 1-36

【问题讨论】:

  • 你为什么不规范化一切?
  • 我对每件事都进行了规范化......这几天我使用标准化,因为我的定量数据和平均值和 SD 是有意义的......但是对于频率和食物来说它没有意义,因为它们是我的分类数据。

标签: machine-learning cluster-analysis normalization k-means


【解决方案1】:

规范化的意义不仅仅是让值变小。

目的是具有可比较的值范围——这对于不同单位的属性来说确实很难,而对于标称数据来说很可能是不可能的。

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

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

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

【讨论】:

    【解决方案2】:

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

    原来的定义在这里:

    http://axon.cs.byu.edu/~randy/jair/wilson1.html

    虽然应该很容易在其他地方找到每种通用语言的实现。

    注意对于有序的名义属性,例如您的“频率”,大多数时候只需将它们表示为整数就足够了。

    【讨论】:

      猜你喜欢
      • 2017-12-26
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      • 2017-06-21
      • 2019-08-12
      • 2019-08-01
      • 2015-02-09
      • 2019-08-24
      相关资源
      最近更新 更多