kmodes VS一键编码+ kmeans用于分类数据?

时间:2019-05-16 15:19:18

标签: python cluster-analysis k-means

我正在探索使用python集群某些类别数据的可能性。我目前有8个功能,每个功能约有3-10个级别。

据我了解,使用kmeans和kmodes的一键编码都可以在此框架中使用,由于维度问题的诅咒,kmeans在功能/级别的巨大组合中可能不理想。

这正确吗?

此刻,我将遵循kmeans路线,因为它也使我可以灵活地添加一些数字特征,并且计算轮廓统计量和评估最佳聚类数似乎要容易得多。

这有意义吗?您对其中一种方法应优先于另一种方法有何建议?

谢谢

2 个答案:

答案 0 :(得分:0)

还有一些变体在分类属性上使用k-modes方法,在连续属性上使用均值。

相对于一键式+ k均值,k模式具有很大的优势:它是可解释的。每个群集对原型都有一个明确的分类价值。对于k均值,由于SSQ目标,如果一个热门变量介于两个值之间,则它们的误差最小。这是不可取的。

答案 1 :(得分:0)

请参阅Huang(Kmodes的作者)的这篇论文。 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.134.83&rep=rep1&type=pdf

  1. 他提到如果我们使用Kmeans +一种热编码,则如果分类属性具有大量类别,它将大大增加数据集的大小。这将使Kmeans的计算成本很高。因此,是的,您对维数诅咒的想法是正确的。

  2. 此外,由于0和1不是数据的实际值,因此聚类平均值也没有意义。另一方面,Kmodes产生集群模式,它们是真实数据,因此使集群可解释。

对于数字和分类属性的要求,请查看k-原型方法,该方法将kmeans和kmodes与平衡权重因子结合使用。 (再次在论文中解释)。