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轮廓系数作为评价指标相关推荐

  1. K-means聚类原理实现 优缺点 轮廓系数 调优Canopy算法

    Kmeans聚类是我最早接触的,也是最简单的机器学习聚类算法了.它是一种无监督学习算法. 原理: 还是先简单过一下Kmeans聚类的过程吧.不像模像样地罗列个一二三四,直接口述一下过程就好:比如我们要 ...

  2. [机器学习与scikit-learn-26]:算法-聚类-KMeans寻找最佳轮廓系数

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  3. python质量数据关联性分析_相关性检验之Pearson系数及python实现

    相关性检验之Pearson系数及python实现 一.Pearson相关系数 皮尔森相关系数是用来反应俩变量之间相似程度的统计量,在机器学习中可以用来计算特征与类别间的相似度,即可判断所提取到的特征和 ...

  4. 聚类的评价方法 轮廓系数

    https://baike.baidu.com/item/%E8%BD%AE%E5%BB%93%E7%B3%BB%E6%95%B0/17361607?fr=aladdin

  5. spark聚类算法的聚类效果评估指标“轮廓系数”细节

    什么是轮廓系数? 参见百度百科,讲的很清楚此处不赘述: https://baike.baidu.com/item/%E8%BD%AE%E5%BB%93%E7%B3%BB%E6%95%B0/173616 ...

  6. 【php毕业设计】基于php+mysql+apache的网络数据包分析工具设计与实现(毕业论文+程序源码)——网络数据包分析工具

    基于php+mysql+apache的网络数据包分析工具设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于php+mysql+apache的网络数据包分析工具设计与实现,文章末尾附有本毕业设 ...

  7. 数据分析可视化02 建设方法:数据可视化分析的庖丁之术

    上一课时,我介绍了数据可视化分析的基本概念,通过对比的方式,讲述了数据可视化分析的概念定义和知识体系,相信你对数据可视化分析已经有了一个基本的了解.本课时,我将给大家分享数据可视化分析的方法论,内容包 ...

  8. Gartner 发布2022年数据分析十二大趋势:数据和分析将成为创新起源

    作者 | 宋慧 出品 | CSDN 云计算 数据与分析将会成为创新的起源,为企业发展创新助力同时,还将有基于数据的变现.降本增效,基于数据与分析的决策能力已成为有韧性企业的最核心能力. 对数据的分析已 ...

  9. Gartner发布2022年数据分析十二大趋势:数据和分析将成为创新起源

    数据与分析将会成为创新的起源,为企业发展创新助力同时,还将有基于数据的变现.降本增效,基于数据与分析的决策能力已成为有韧性企业的最核心能力. 作者 | 宋慧 出品 | CSDN 云计算 对数据的分析已 ...

  10. matlab聚类轮廓系数,R数据挖掘 第三篇:聚类的评估(簇数确定和轮廓系数)和可视化...

    在实际的聚类应用中,通常使用k-均值和k-中心化算法来进行聚类分析,这两种算法都需要输入簇数,为了保证聚类的质量,应该首先确定最佳的簇数,并使用轮廓系数来评估聚类的结果. 一,k-均值法确定最佳的簇数 ...

最新文章

  1. poj2155(二维树状数组)
  2. vue常用语法 渲染数据
  3. EasyGui的用法简介
  4. Eclipse 批量创建多级文件夹
  5. Python | 新手必会的 9 个 Python 技巧
  6. 006python路--深浅拷贝
  7. 使用OpenSSL为支付宝生成RSA私钥
  8. 基恩士上位机链路通讯_基恩士PLC通讯源码
  9. python统计表中单词及其出现的次数 字典形式输出_统计字符串中字母出现的次数,字典形式输出(python)...
  10. 数据结构笔记(十八)-- 树的定义和基本术语
  11. Linux学习笔记:CentOS6关闭IPv6
  12. 【推荐】在R中无缝集成Github云端代码托管
  13. sklearn交叉验证2-【老鱼学sklearn】
  14. C语言的奇技淫巧(1-50)
  15. 微生物群-肠道-大脑轴:从运动到情绪
  16. ML之SHAP:机器学习可解释性之SHAP值之理解单样本单特征预测
  17. 屏保:毛雷尔玫瑰屏保
  18. 《C/C++ 面试 100 例》(十一)标准输入加速
  19. 持续集成服务 Travis CI 教程
  20. 使用FFmepg进行视频转码、视频格式转换、图片提取等!

热门文章

  1. linux磁盘文件大小排序,Linux中查看磁盘大小、文件大小、排序方法小结
  2. 鼠标悬停,图片向四周放大效果
  3. 【Lintcode】1132. Valid Triangle Number
  4. Scrapped or attached views may not be recycled
  5. 【spring】spring 的事务(transaction) 四 嵌套事务PROPAGATION_NESTED
  6. 开发制作一个小程序需要多少钱
  7. MySQL:连接错误
  8. playwright 组件超时问题
  9. 零零信安王宇:通过基于VPT的风险管理 用20%的时间去解决80%的风险
  10. 你想要的虚幻UE游戏人物模型素材都在这里,细致又齐全