您的位置:首页 > 其它

DS&ML_聚类算法笔记之k-means模型

2018-04-01 11:21 302 查看

其他相关文章

DS&ML_关联分析笔记

DS&ML_分类算法笔记之支持自动机SVM模型

DS&ML_分类算法笔记之随机森林、梯度提升树、XGBoost模型

DS&ML_分类算法笔记之k-近邻、KD-Tree模型

DS&ML_降维算法笔记之主成分分析PCA模型

DS&ML_分类算法笔记之朴素贝叶斯模型

DS&ML_分类算法笔记之决策树模型

对于k-means聚类模型的相关知识点的总结与整理

简单描述一下k-means的思想,k-means是什么?

k-means属于按距离聚类的一种聚类算法,另外还有按相似系数聚类、按密度聚类等其他类型。k-means非常常用,适用于大样本数据,我见过有人拿k-means去聚类36万的数据集,当然这里就需要加并行了,比如在遍历算距离的时候使用并行来提高速度。

欧式距离:欧几里得度量euclidean metric,是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离。

具体算法

从n个数据对象中(任意)选出k个对象作为初始的聚类中心

这也是k-means的特点,需要事先指定分为K个类。如何确定分几类?

业务方面:与业务方协调分几类

技术方面:主成分分析大致看一下

随机

计算剩余的各个对象到聚类中心的距离,将它划分给最近的簇

重新计算每一簇的平均值(中心对象)

循环2-3直到每个聚类不再发生变化或者满足迭代次数或者误差小于指定的值。

几点细节

k-means的质心是各个样本点的平均,可能是样本点中不存在的点。

k-means的应用明显比k-medoids多的多。虽然k-medoids也有优点,但是他只能对小样本起作用,样本一大,他的速度就太慢了,而且当样本多的时候,少数几个噪音对k-means的质心影响也没有想象中的那么重。(Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved)

如果K-Means聚类中选择欧几里德距离计算距离,数据集又出现了单位不一致或者量级差太大的情况,就一定要进行数据的标准化

只能应用于连续型的数据,因为分类型数据的变量不是数值,计算两个点距离没意义

优点

时间复杂度、空间复杂度低

缺点

hold不住族之间的size或密度差别较大的情况

对异常值敏感,需要对异常值进行处理

聚类好坏评价指标

群体内所有变量的综合标准差(RMSSTD)

群体间差异指标(R-Square)

损失的群体内相似性比例(SPR)

群体间的距离

零碎的一些知识点积累

R自带的stat包中kmeans函数就是kmeans距离。

补充知识:K-medoids模型

具体算法

选取K个质心的值 (质心必须是某些样本点的值,而不是任意值)

计算各个点到质心的距离

将点的类划分为离他最近的质心,形成K个cluster

根据分类好的cluster,在每个cluster内重新计算质心:

计算cluster内所有样本点到其中一个样本点的曼哈顿距离和(绝对误差)

选出使cluster绝对误差最小的样本点作为质心

重复迭代2-4步直到满足迭代次数或误差小于指定的值

几点细节

k-medoids的质心一定是某个样本点的值。

k-medoids的运行速度较慢,计算质心的步骤时间复杂度是O(n^2),因为他必须计算任意两点之间的距离。而k-means只需平均即可。

k-medoids对噪声鲁棒性比较好。

参考资料

[1] https://www.cnblogs.com/muzixi/p/6566803.html

(Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved)

visitor tracker

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: