基于数据kmeans_data分析聚类画图 使用sc轮廓系数作为评价指标
1、基于python实现K-Means
迭代停止的条件:
a、簇中a心相较b上一次迭代未改变 ≈ 所有样本点较上一次迭代未改变划分类别
b、达到人为设置的最大迭代次数
2、 基于sklearn实现K-Means
语法:from sklearn.cluster imports KMeans
model = KMeans(n_clusters=k)
model.fit(data)
y_pred = model.predict(data)
属性:
cluster_centers_:簇中心【数组】
centroids = model.cluster_centers_
3、调用skleanr中的K-Means算法聚类得到结果;
4、使用评价指标“SC系数(Silhouette Cofficient)”评价模型;
5、绘制出最终聚类结果的簇
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
from sklearn.metrics import calinski_harabasz_scoredef load_data(file_path):data = pd.read_table(file_path, sep='\t', header=None)return datadef sklearn_kmeans(data, k):model = KMeans(n_clusters=k)model.fit(data)y_pred = model.predict(data)centroids = model.cluster_centers_return y_pred, centroidsdef evaluate(x, labels):# SC系数(Silhouette Cofficient)轮廓系数sc = silhouette_score(x, labels)# CH系数(Calinski Harabasz Index)轮廓系数法ch = calinski_harabasz_score(x, labels)return sc, chdef draw(x, y, x1, y1):plt.scatter(x, y)plt.scatter(x1, y1, s=50, c="#ff1212", marker='X')plt.show()if __name__ == "__main__":k = 4 # 聚类中心的个数file_path = 'D:/pyCharm/例子/机器语言/kmeans_data(1).txt'# 导入数据data = load_data(file_path)# 聚类print("---------- train ------------")y_pred, centroids = sklearn_kmeans(data, k)print("---------- result ------------")result = pd.concat((data, pd.DataFrame(y_pred)), axis=1)result.columns = ["特征1", "特征2", "聚类编号"]print(result)sc, ch = evaluate(data, y_pred)print("SC轮廓系数(Silhouette Cofficient)为:" + str(sc))print("CH轮廓系数(Calinski Harabasz Index)为:" + str(ch))print("---------- Results Visualization ------------")draw(data.iloc[:, 0], data.iloc[:, 1], centroids[:, 0], centroids[:, 1])
效果图:
特征1 特征2 聚类编号
0 1.658985 4.285136 2
1 -3.453687 3.424321 0
2 4.838138 -1.151539 3
3 -5.379713 -3.362104 1
4 0.972564 2.924086 2
… … … …
75 -2.793241 -2.149706 1
76 2.884105 3.043438 2
77 -2.967647 2.848696 0
78 4.479332 -1.764772 3
79 -4.905566 -2.911070 1
[80 rows x 3 columns]
SC轮廓系数(Silhouette Cofficient)为:0.6558213071798628
CH轮廓系数(Calinski Harabasz Index)为:222.26227482013334
---------- Results Visualization ------------
基于数据kmeans_data分析聚类画图 使用sc轮廓系数作为评价指标相关推荐
- K-means聚类原理实现 优缺点 轮廓系数 调优Canopy算法
Kmeans聚类是我最早接触的,也是最简单的机器学习聚类算法了.它是一种无监督学习算法. 原理: 还是先简单过一下Kmeans聚类的过程吧.不像模像样地罗列个一二三四,直接口述一下过程就好:比如我们要 ...
- [机器学习与scikit-learn-26]:算法-聚类-KMeans寻找最佳轮廓系数
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...
- python质量数据关联性分析_相关性检验之Pearson系数及python实现
相关性检验之Pearson系数及python实现 一.Pearson相关系数 皮尔森相关系数是用来反应俩变量之间相似程度的统计量,在机器学习中可以用来计算特征与类别间的相似度,即可判断所提取到的特征和 ...
- 聚类的评价方法 轮廓系数
https://baike.baidu.com/item/%E8%BD%AE%E5%BB%93%E7%B3%BB%E6%95%B0/17361607?fr=aladdin
- spark聚类算法的聚类效果评估指标“轮廓系数”细节
什么是轮廓系数? 参见百度百科,讲的很清楚此处不赘述: https://baike.baidu.com/item/%E8%BD%AE%E5%BB%93%E7%B3%BB%E6%95%B0/173616 ...
- 【php毕业设计】基于php+mysql+apache的网络数据包分析工具设计与实现(毕业论文+程序源码)——网络数据包分析工具
基于php+mysql+apache的网络数据包分析工具设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于php+mysql+apache的网络数据包分析工具设计与实现,文章末尾附有本毕业设 ...
- 数据分析可视化02 建设方法:数据可视化分析的庖丁之术
上一课时,我介绍了数据可视化分析的基本概念,通过对比的方式,讲述了数据可视化分析的概念定义和知识体系,相信你对数据可视化分析已经有了一个基本的了解.本课时,我将给大家分享数据可视化分析的方法论,内容包 ...
- Gartner 发布2022年数据分析十二大趋势:数据和分析将成为创新起源
作者 | 宋慧 出品 | CSDN 云计算 数据与分析将会成为创新的起源,为企业发展创新助力同时,还将有基于数据的变现.降本增效,基于数据与分析的决策能力已成为有韧性企业的最核心能力. 对数据的分析已 ...
- Gartner发布2022年数据分析十二大趋势:数据和分析将成为创新起源
数据与分析将会成为创新的起源,为企业发展创新助力同时,还将有基于数据的变现.降本增效,基于数据与分析的决策能力已成为有韧性企业的最核心能力. 作者 | 宋慧 出品 | CSDN 云计算 对数据的分析已 ...
- matlab聚类轮廓系数,R数据挖掘 第三篇:聚类的评估(簇数确定和轮廓系数)和可视化...
在实际的聚类应用中,通常使用k-均值和k-中心化算法来进行聚类分析,这两种算法都需要输入簇数,为了保证聚类的质量,应该首先确定最佳的簇数,并使用轮廓系数来评估聚类的结果. 一,k-均值法确定最佳的簇数 ...
最新文章
- poj2155(二维树状数组)
- vue常用语法 渲染数据
- EasyGui的用法简介
- Eclipse 批量创建多级文件夹
- Python | 新手必会的 9 个 Python 技巧
- 006python路--深浅拷贝
- 使用OpenSSL为支付宝生成RSA私钥
- 基恩士上位机链路通讯_基恩士PLC通讯源码
- python统计表中单词及其出现的次数 字典形式输出_统计字符串中字母出现的次数,字典形式输出(python)...
- 数据结构笔记(十八)-- 树的定义和基本术语
- Linux学习笔记:CentOS6关闭IPv6
- 【推荐】在R中无缝集成Github云端代码托管
- sklearn交叉验证2-【老鱼学sklearn】
- C语言的奇技淫巧(1-50)
- 微生物群-肠道-大脑轴:从运动到情绪
- ML之SHAP:机器学习可解释性之SHAP值之理解单样本单特征预测
- 屏保:毛雷尔玫瑰屏保
- 《C/C++ 面试 100 例》(十一)标准输入加速
- 持续集成服务 Travis CI 教程
- 使用FFmepg进行视频转码、视频格式转换、图片提取等!
热门文章
- linux磁盘文件大小排序,Linux中查看磁盘大小、文件大小、排序方法小结
- 鼠标悬停,图片向四周放大效果
- 【Lintcode】1132. Valid Triangle Number
- Scrapped or attached views may not be recycled
- 【spring】spring 的事务(transaction) 四 嵌套事务PROPAGATION_NESTED
- 开发制作一个小程序需要多少钱
- MySQL:连接错误
- playwright 组件超时问题
- 零零信安王宇:通过基于VPT的风险管理 用20%的时间去解决80%的风险
- 你想要的虚幻UE游戏人物模型素材都在这里,细致又齐全