KNN了解啦,Kmeans能缺席吗?
kmeans算法:无监督学习算法中存在一种算法为聚类算法,聚类算法中最经典的是kmeans
聚类算法目的:同一类内相似性高;不同类之间相似性低(相异度高)
所谓聚类问题,就是给定一个元素集合D,其中每个元素具有n个可观察属性,使用某种算法将D划分成k个子集,要求每个子集内部的元素之间相似度尽可能的高,而不同子集的元素相似度尽可能低。其中每个子集叫做一个簇
k-means介绍
k均值算法,k需要提前指定,决定了数据集被分为多少个子集
K-means的原理
1、随机初始化聚类中心
2、计算所有样本到各个聚类中心的距离,并归属到和其最近(最相似)的聚类中心
3、重新确定聚类中心
重复2 和3,直到达到停止条件
K-means特点
一、需要制定k值--预先指定的参数,称为超参数
二、受初始值(初始聚类中心)的影响,达到局部最优效果
三、受离群点的影响大。通常处理方式,剔除异常值
四、距离表证相似度,特征量级不同,需要进行数据标准化
五、K-means算法之前还需要进行数据预处理:数据异常值剔除、数据标准化
k-means的API
k-means算法评估
用轮廓系数进行评估聚类的效果
对于每个点 i 为已聚类数据中的样本 , i b_ 为 i 到其它族群的所有样本的距离平均值,
i a_ 为 i 到本身簇的距离平均值。最终计算出所有的样本点的轮廓系数平均值。
结论:如果i b_>>i a_:趋近于 1 效果越好,i b_<<i a_:趋近于-1,效果不好。轮廓系数的值是介于 [-1,1] ,越趋近于 1 代表内聚度和分离度都相对较优。
代码实现轮廓系数