K means对数据的分布有要求吗?需要符合哪些前提假设?

  统计/机器学习 假设检验 概率分布 无监督学习    浏览次数:637        分享
1

K means好像对数据没有什么要求,但是有时候感觉效果就是很不好。请问K means对数据的分布有要求吗?需要符合哪些前提假设?

 

有故事的董同学   2018-11-22 13:27



   4个回答 
8

我知道的要求数据集是凸数据集,就是数据集内任意两点的连线上所有的点都在数据集内,否则分类效果就很差,这时候DBSCAN就比较合适了


SofaSofa数据科学社区DS面试题库 DS面经

zzt5566   2018-11-22 15:15

感谢回复,这个图的例子很好,谢谢 - 有故事的董同学   2018-11-23 11:05
8

K means没有严格的前提要求,但是如果数据不符合下面三个要求的话,K means得到的结果可能会比较奇怪:

    1. 数据中每个变量的方差基本上要一样

    2. 每一个cluster中每个变量都是近似正态分布(或者众数等于中位数的对称分布)

    3. 每一个cluster中的元素个数要几乎一样

条件1和2就几乎保证了每个cluster看起来像是球形(而不是椭球形),而且是图的。

为什么条件3也很重要呢,可以看下面这个例子,尽管我们肉眼能看出三个稀疏程度不同的球状簇,但是K means却分成了三个样本数量相似的三个簇


SofaSofa数据科学社区DS面试题库 DS面经

淡淡的   2018-12-18 13:47

3

既然说起聚类了,我倒真有些疑惑。

其实聚类的算法算的上比较简单的,解释性也算是比较好的。

但往往真实的业务场景会遇到一些问题,

我曾经就有些问题:

1。聚类共通性的问题,变量需要自己去确定,类别需要自己的决定,当然这个是历史遗留问题。算是老生常谈

2。真实的数据分布问题,我就遇到一个,大量的为0值,我就在想,0值要不要删,毕竟0值不像异常值,他也是代表大众化的数值。

3.因为0值的原因,以及非零值的离散过大。导致标准差也很大,量钢化之后整数据分布看起来依然很诡异,我还在这个情况会不会影响算法的收敛稳定,不过聚了几次,发现也挺稳定的

4.类别的问题,上面有一个说要类别差不多,真实的数据集不可能给你这种情况,低价值用户不必然是异常的多,同时其他类别的也是阶梯性的减少

SofaSofa数据科学社区DS面试题库 DS面经

陈十一   2018-12-19 15:20

2

我感觉K means不能用于离散变量,最好是连续变量

SofaSofa数据科学社区DS面试题库 DS面经

zzzz   2019-01-06 14:55



  相关主题

K-Means实现mini-batch online learning的原理是什么?   1回答

关于online KMeans步骤中成员更新分类的问题?   1回答

K-MEANS初始点选择的问题   2回答

K Means初始点必须是样本中的点吗   2回答

进行K-Means聚类前,需要对数据做怎样的预处理?   1回答

如何用K Means做异常检测(outlier anomaly detection)?   3回答

Jenks和K Means在一维数据时,是不是等价的?   2回答

为什么K Means算法对样本的输入顺序比较敏感?   2回答

关于小批量K均值(mini-batch K Means)的问题   3回答

k-medoids和k-means区别   3回答

通俗地解释c-means以及fuzzy c-means是什么意思   1回答

K-means怎么选K?   6回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!