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

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

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

 

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



   4个回答 
9

我知道的要求数据集是凸数据集,就是数据集内任意两点的连线上所有的点都在数据集内,否则分类效果就很差,这时候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



  相关讨论

怎么利用假设检验判断两个骰子是相同的?

线性回归因变量y不满足正态性假设

假设检验中的p值是什么意思?为什么越小越好?

假设检验的效力是什么?

单因素方差分析(one-way anova)在使用时需要有什么前提假设条件吗?

T检验需要提前假设吗?

怎么对两个样本的方差进行假设检验

线性回归需要满足哪些基本前提假设

线性回归随机误差项不满足基本假设会怎样?

逻辑回归的前提假设是什么?

  随便看看

numpy里的无穷大np.inf到底是多大呢?

【站务】我们回来了

AIC可以是负数吗?

sklearn中的predict_proba方法的返回值的意义

逻辑回归的损失函数是怎么来的