多元数据的K-Means聚类(具有离散和连续属性)

时间:2018-10-18 06:00:14

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

我想知道如何使用K-means聚类多元数据集。此数据集中的每个样本都对应一个人(我有6000人),并且每个人都具有连续和离散的属性(10个属性/人)。一个例子:

  
      
  • person_id:1234
  •   
  • 名称:“约翰·多伊”
  •   
  • 年龄:30
  •   
  • 高度:“ 5英尺10英寸”
  •   
  • 薪水值:5000
  •   
  • 工资货币:美元
  •   
  • is_customer:错误
  •   
  • 公司:“ Testing Inc。”
  •   
  • ...
  •   

我已经阅读了multidimensional k-means clustering上的现有答案,但是数据集中的属性都是连续的。关于连续clustering algorithm和连续变量的帖子甚至更有用。就像在后面提到的那样,我承认我可能必须找到一个重视离散状态的函数。但是我不能使用ROCK或COBWEB进行聚类,只能使用k均值。

我可以使用哪些功能将离散值转换为连续值?此外,还有什么方法可以优先考虑属性(例如,基于薪资/年龄的聚类比身高更重要),还是我应该改变整个方法?

2 个答案:

答案 0 :(得分:0)

K均值算法对具有连续特征的数据点执行聚类。

将离散特征转换为连续特征的方法是一种热编码,它将公司名称等分类特征转换为数值数组。您可以查看文档here

您还需要规范化每个功能,以使它们处于从0到1的相同范围内。要重视某些功能,请将重要功能的范围保持较高。

答案 1 :(得分:0)

请勿在此类数据上使用k均值!

K均值基于三个重要假设:

    每个属性的
  1. 平均值 代表数据
  2. 平方偏差应最小化
  3. 它们同等重要

k均值中的这些假设意味着您应该仅在区间标度变量上使用它(1),不偏斜(2)和 >具有可比较的价值域(不要混合使用不同的单位/尺度;例如薪水,年龄和身高)(3)。

一种热门的类别编码不会使它们间隔缩放。如果仅将数据转换为IR ^ p向量空间,则将获得“某些输出”,但从任何客观角度来看,这都不是“好”。您回答错误的问题,因为您一开始就不费心提出问题。

如果幸运的话,只有一个属性(在您的情况下可能是薪水)支配结果,而其他所有属性都不会影响结果...