击上方
“蓝色字”
可关注我们!
今日分享:kmeans聚类
一:前言
到今天为止,机器学习专题系列文章所分享的监督学习模型就暂告一段落,不难发现,这些模型的中心就是回归;接下来把常用的无监督学习分享一下
简单来说,无监督学习是指在给定的数据集中,不存在实现给定的目标值,也就是不指定某个样本是哪一类,无监督学习要做的就是把特征值类似的样本数据划分为一类,划分的依据则是根据数据的特征(具体如何处理他们的特征,则是看具体的算法是怎么处理的,一般是根据样本之间的距离来进行类的划分)。在无监督学习中,主要聚类方法就是kmeans(基于距离),当然还有别的比如dbscan(基于密度)等。
先通过一个例子看一下聚类的前后对比图,图示将原始数据集聚成了三类:
聚类前 聚类后
二:kmeans聚类流程
1、随机选取k(k值代表类的个数)个样本数据点作为初始的聚类中心。
2、分别计算其他每个点计算到k个中心点的距离(通常使用欧几里得距离),选择距离最近的中心点并做上类标记。
3、接着对着标记后的每个类中的数据样本,重新计算出每个聚类下的的新中心店(往往取样本每个特征维度的平均值作为新的聚类中心点)。
4、重复执行第二步,如果计算得出的新中心点与原中心点一样,也就是每个类中的数据与前一次的聚类结果一样,那么结束执行即可,此时聚类已经完成。
三:sklearn中k-means模型API
主要参数
四:kmeans性能评估指标
轮廓系数计算公式
注:对于每个点i为已聚类数据中的样本,b_i 为i 到其它族群的所有样本的平均
距离,a_i 为i 到本身簇的距离平均值,最终计算出所有的样本点的轮廓系数平均值。
如果 sci 小于0,说明a_i的平均距离大于最近的其他簇,聚类效果不好;
如果 sci 越大,说明a_i的平均距离小于最近的其他簇,聚类效果好;
轮廓系数的值是介于 [-1,1] ,越趋近于1代表内聚度和分离度都相对较优。
五:Kmeans性能评估指标API
主要参数
六:Kmeans总结
特点:采用迭代式算法,直观易懂并且非常实用
缺点:容易收敛到局部最优解(多次聚类)
需要预先设定簇的数量(k-means++解决)
公众号QQ群
扫QQ群二维码进交流学习群
领取专属 10元无门槛券
私享最新 技术干货