本文主要是介绍聚类 k-means、yellowbrick和信用卡用户实例 -- 023,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
微信公众号:python宝
关注可了解更多的python相关知识。若有问题或建议,请公众号留言;
内容目录
一、K-means、畸变程度(SSE)、成本函数、内聚度、分离度、肘部法则和轮廓系数简介二、k-means 介绍和原理1、简介2、K-means算法三、实例信用卡用户聚类1、导入数据和数据显示设置,并查看数据。2、查看是否有重复数据3、删除不必要数据4、观察每个变量的分布5、观察每个变量之间的相关性6、数据处理7、肘部法则应用8、 轮廓系数(Silhouette Coefficient)9、yellowbrick展示结果肘部法则和轮廓系数10、给数据打标签11、绘制打标签后的数据散点图12、部分变量来进行聚类
一、K-means、畸变程度(SSE)、成本函数、内聚度、分离度、肘部法则和轮廓系数简介
K-means:K-means是无监督的聚类算法。其主要思想是选择K个点作为初始聚类中心, 将每个对象分配到最近的中心形成K个簇,重新计算每个簇的中心,重复以上迭代步骤,直到簇不再变化或达到指定迭代次数为止,即让簇内的点尽量紧密的连接在一起,而让簇间的距离尽量的大。
畸变程度(即SSE簇内误方差;):每个簇的质点与簇内样本点的平方距离误差和称为畸变程度(distortions)。对于一个簇,畸变程度越低,代表簇内成员越紧密;畸变程度越高,代表簇内结构越松散。畸变程度会随着类别的增加而降低,但对于有一定区分度的数据,在达到某个临界点时畸变程度会得到极大改善,之后缓慢下降,这个临界点就可以考虑为聚类性能较好的点;
成本函数:成本函数为各个类畸变程度SSE之和;
肘部法则:肘部法则是通过成本函数来刻画的,其是通过将不同K值的成本函数刻画出来,随着K值的增大,平均畸变程度会不断减小且每个类包含的样本数会减少,于是样本离其重心会更近。但是,随着值继续增大,平均畸变程度的改善效果会不断减低。因此找出在K值增大的过程中,畸变程度下降幅度最大的位置所对应的K较为合理。
内聚度:簇内不相似度。针对样本空间中的一个特定样本i,计算 a(i) = average(i向量到所有它属于的簇中其它点的距离);
分离度:针对样本空间中的一个特定样本i, b(i) = min (i向量到所有非本身所在簇的点的平均距离) ;
轮廓系数:轮廓系数(Silhouette Coefficient),是聚类效果好坏的一种评价方式。针对样本空间中的一个特定样本,计算它与所在聚类其它样本的平均距离a,以及该样本与距离最近的另一个聚类中所有样本的平均距离b,该样本的轮廓系数为(b-a)/max(a, b),将整个样本空间中所有样本的轮廓系数取算数平均值,作为聚类划分的性能指标s。轮廓系数的值是介于 [-1,1] ,越趋近于1代表内聚度和分离度都相对较优。最后将所有样本点的轮廓系数求平均,就是该聚类结果总的轮廓系数。
二、k-means 介绍和原理
1、简介
聚类的目的也是把数据分类,但是事先我是不知道如何去分的,完全是算法自己来判断各条数据之间的相似性,相似的就放在一起。在聚类的结论出来之前,我完全不知道每一类有什么特点,一定要根据聚类的结果通过人的经验来分析,看看聚成的这一类大概有什么特点。
聚类和分类最大的不同在于:分类的目标是事先已知的,而聚类则不一样,聚类事先不知道目标变量是什么,类别没有像分类那样被预先定义出来。
KMeans(
n_clusters=8,
init='k-means++',
n_init=10,
max_iter=300,
tol=0.0001,
precompute_distances='auto',
verbose=0,
random_state=None,
copy_x=True,
n_jobs=None,
algorithm='auto',
)
参数:
n_clusters:整形,缺省值=8 【生成的聚类数,即产生的质心(centroids)数。】
max_iter:整形,缺省值=300 ,执行一次k-means算法所进行的最大迭代数。
n_init:整形,缺省值=10 ,用不同的质心初始化值运行算法的次数,最终解是在inertia意义下选出的最优结果。
init:有三个可选值:’k-means++’, ‘random’,或者传递一个ndarray向量。
此参数指定初始化方法,默认值为 ‘k-means++’。
(1)‘k-means++’ 用一种特殊的方法选定初始质心从而能加速迭代过程的收敛(即上文中的k-means++介绍)
(2)‘random’ 随机从训练数据中选取初始质心。
(3)如果传递的是一个ndarray,则应该形如 (n_clusters, n_features) 并给出初始质心。
precompute_distances:三个可选值,‘auto’,True 或者 False。
预计算距离,计算速度更快但占用更多内存。
(1)‘auto’:如果
这篇关于聚类 k-means、yellowbrick和信用卡用户实例 -- 023的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!