Kmeans聚类方法原理:
1.首先随机定出K个聚类中心;
2.计算数据中每一个点到K个聚类中心的距离(欧氏距离),哪个最小就把这个点归到哪一个簇中;
3.计算每一个簇中所有点的中心点(向量对应元素取平均),这些点确定为新的聚类中心;
4.重复步骤2、3,直到所有的聚类中心不再发生变化。

知道这个原理后,我们应用此来做一个简单的小例子。
需要安装的第三方库:
numpy、matplotlib、scipy、sklearn(注意顺序不要错哦,后三个库是以numpy为基础,sklearn右是以前三个为基础的)
安装方式(pip安装):
对于不会翻墙的小伙伴,可以从镜像源网站下载,速度同样非常快,打开DOS窗口,以numpy为例,复制以下代码即可:

pip install numpy -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

由于dos窗口里没法把光标移到中间删改东西,所以大家可以把这一行代码保存到一个word文档里,每次需要安装一个库时,就先把这行里面的名字改掉再复制到命令行窗口就可以啦。

数据介绍:
现有1999年全国31个省份城镇居民家庭平均每人全年消费性支出的八个主
要变量数据,这八个变量分别是:食品、衣着、家庭设备用品及服务、医疗
保健、交通和通讯、娱乐教育文化服务、居住以及杂项商品和服务。利用已
有数据,对31个省份进行聚类。
实验目的:
通过聚类,了解1999年各个省份的消费水平在国内的情况。
数据展示:

数据链接:
链接:https://pan.baidu.com/s/1PArczd8hxp1AbQe9MOKwgQ
提取码:9fg2
(将这个txt文档跟下面的程序放到一个文件夹里哦)
程序展示:
为了便于理解,在一些地方我添加了注释进行说明。

import numpy as np
from sklearn.cluster import KMeansdef loadData(filePath):
#该函数为从txt中读取数据fr = open(filePath, 'r+')lines = fr.readlines()retData = []retCityName = []for line in lines:items = line.strip().split(",")#strip()函数默认参数删除空白符(包括'\n', '\r', '\t',  ' ')#line本来是字符串,被.split(",")后,成了若干个字符串组成的列表了retCityName.append(items[0])retData.append([float(items[i]) for i in range(1, len(items))])#注意此处添加的是一个列表return retData, retCityNameif __name__ == '__main__':
# 一个python文件通常有两种使用方法,第一是作为脚本直接执行,第二是 import 到其他的 python 脚本中被调用(模块重用)执行。
# 因此 if __name__ == 'main': 的作用就是控制这两种情况执行代码的过程,在 if __name__ == 'main': 下的代码只有在
# 第一种情况下(即文件作为脚本直接执行)才会被执行,而 import 到其他脚本中是不会被执行的。data, cityName = loadData('31省市居民家庭消费水平-city.txt')km = KMeans(n_clusters=4)label = km.fit_predict(data)#fit_predict():计算簇中心以及为簇分配序号,label:聚类后各数据所属的标签expenses = np.sum(km.cluster_centers_, axis=1)# 当axis为0时,是压缩行,即将每一列的元素相加,将矩阵压缩为一行,当axis为1时,是压缩列,即将每一行的元素相加,将矩阵压缩为一列# 此处即是将聚类中心的各项数据求和# print(expenses)CityCluster = [[], [], [], []]for i in range(len(cityName)):CityCluster[label[i]].append(cityName[i])#label中的每个元素都与cityname对应,也就是把每个城市名都添加到对应的簇中for i in range(len(CityCluster)):print("Expenses:%.2f" % expenses[i])print(CityCluster[i])

运行结果:

资料来源:
mooc北京理工大学python机器学习

【Kmeans】k均值聚类案例演示相关推荐

  1. 聚类分析 | MATLAB实现k-Means(k均值聚类)分析

    目录 聚类分析 | MATLAB实现k-Means(k均值聚类)分析 k-均值聚类简介 相关描述 程序设计 学习小结 参考资料 致谢 聚类分析 | MATLAB实现k-Means(k均值聚类)分析 k ...

  2. Kmeans K均值聚类,OpenCV实现

    Clustering 聚类 kmeans  k均值聚类 Finds centers of clusters and groups input samples around the clusters. ...

  3. K-Means(K均值聚类)原理及代码实现

    机器学习 没有免费午餐定理和三大机器学习任务 如何对模型进行评估 K-Means(K均值聚类)原理及代码实现 KNN(K最近邻算法)原理及代码实现 KMeans和KNN的联合演习 文章目录 机器学习 ...

  4. Udacity机器人软件工程师课程笔记(二十一) - 对点云进行集群可视化 - 聚类的分割 - K-means|K均值聚类, DBSCAN算法

    聚类的分割 1.K-均值聚类 (1)K-均值聚类介绍 k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心 ...

  5. k-means(k均值聚类)算法介绍及实现(c++)

    基本介绍: k-means 算法接受输入量 k :然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高:而不同聚类中的对象相似度较小.聚类相似度是利用各聚类中对象的均 ...

  6. 【数据挖掘】十大算法之K-Means K均值聚类算法

    目录 1 Kmeans步骤 2 kmeans损失函数 3 优缺点 4 如何调优和改进 5 改进的算法 1 Kmeans步骤 (1)数据预处理,如归一化.离群点处理等 (2)随机选取K个簇中心,记为u1 ...

  7. K-Means(K均值)聚类算法

    K-mean ​ 初始数据集如下图所示,数据集未做任何标记labels 要求将其分为两簇,K均值算法的操作原理为: 随机挑选两个点作为聚类中心(cluster centroids),K-均值算法是一个 ...

  8. k-means k均值聚类的弱点/缺点

    Similar to other algorithm, K-mean clustering has many weaknesses: 1 When the numbers of data are no ...

  9. Python——KMeans(k均值聚类)实战(附详细代码与注解)

    开始之前 各位朋友周末好,今天博主小码将开车≥Ö‿Ö≤为大家用代码实战讲解KMeans聚类,请大家坐稳了≡(▔﹏▔)≡.作为机器学习的十大经典算法之一,聚类的相关现实应用非常之广,如图像分割,文本分类 ...

最新文章

  1. 《棋牌游戏服务器》玩法服务器架构
  2. EOJ_1007_环形双向链表
  3. 问题 I: 连通块计数
  4. Spring Cloud 入门 之 Zuul 篇(五)
  5. Nginx - 代理、缓存
  6. PocketLibs(3)—— 进度条 NProgress
  7. 一张图看懂SOA与微服务
  8. cf1107e uva10559区间dp升维
  9. php - 微信 - 缓存access_token类。
  10. 华为p40pro如何升级鸿蒙,可以升级到鸿蒙OS的四款华为手机,相信都没有后悔入手!...
  11. mongodb 常用操作(转)
  12. 【SICP练习】80 练习2.52
  13. vi/vim替换字符
  14. 必做作业三_ShareX结构化原型设计
  15. hive卡在 kill command不动假死的原因及解决方案
  16. echarts 不显示x轴与y轴 及 x 、y 轴样式自定义
  17. Web应用程序渗透测试你都知道这些吗?如何选择软件检测机构
  18. 融云即时通讯后续:产品需求与融云的碰撞
  19. 揭秘 · 阿里云第一女神 — 清宵
  20. 【统计方法】基于熵值法的面板数据指标权重计算

热门文章

  1. 【Qt入门第34篇】 网络(四)FTP(二)
  2. Google之文件系统GFS
  3. PKCS#11 用户级加密应用程序示例
  4. flash 跨域访问
  5. vue安装node-sass问题解决
  6. Jetbrains IntelliJ IDEA Ultimate 最终版——初始化配置
  7. 微信官方精品店入口在哪里?标准答案
  8. Ubuntu20.04环境上在LXC内安装FRR
  9. 基于阿里云服务器环境搭建到项目上线系列文章之四——安装composer
  10. 怎么建立自己的CMDB