MLlib中的K-means算法(一)

MLlib是Spark提供的一个实现了很多常用机器学习算法的工具包。
Mahout比较成熟并且算法丰富,但是运行速度慢。
下面将主要对机器学习中的聚类K-means算法进行介绍。

K-means算法

一种无监督学习算法,是一种经典的聚类算法,它的思想是对大量未知标注的数据集,按数据的内在相似度将数据集划分为多个簇,使得簇内数据相似度大而簇间相似度小,一般通过欧式距离度量数据间的相似度,相似度高的距离近。
应用:广告推荐、用户推荐
现实应用中,数据特点:多维度、大规模、多种数据格式。
1、相似度计算方法
欧式距离(两点之间的直线距离)、余弦距离(两点间的夹角)等
2、优点
简答,快速。
处理大规模数据集具有较高的可伸缩性和高效率。
擅长处理密集数据
3、缺陷
K值的选取以及聚类中心点的选取,大都需要人为选取,依靠经验,对聚类结果有很大的影响。
对噪声和孤立点数据较为敏感
**K-means++**克服了K-means算法的一部分缺陷,按照最大最小距离算法进行聚类中心点的选取,可确定所选取的初始中心点较为分散。
4、MLlib中的K-means算法
1、创建SparkContext
2、加载数据,并将其转换为Vector
3、给定K值和迭代次数,并指定选取初始中心点的模式(通常为随机选取)
4、输出当前的聚类中心以及误差平方和
5、预测测试集的数据的类别
6、关闭SparkContext

猜你喜欢

转载自blog.csdn.net/weixin_42292787/article/details/84865477