Python Kmeans K均值分类

1 声明

本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理。

2 Kmeans简介

相关概念见下:

Kmeans是无监督分类算法,即不需要target即y参与的分类方法。该算法的核心思想是将数据按照特征分成k(超参数)组,每组包含大致相同的方差。执行过程见下:

1 随机找k个位置作为中心

2 针对每个样本

a) 计算每个样本与中心点的距离。

b) 将当前样本分配到最近中心点的群集。

3 中心点移动到它们各自集群的平均值(即中心)。

4 重复步骤2、3直至样本的群集关系不变

3 KMeans代码示例

# 加载包
from sklearn import datasets
import matplotlib.pyplot as pltfrom sklearn.cluster import KMeans
# 加载IRIS数据集
iris = datasets.load_iris()
# 指定特征和目标变量
X = iris.data[:, :2]
y = iris.target
plt.scatter(X[:,0], X[:,1], c=y, cmap='gist_rainbow')
plt.xlabel('Sepa1 Length')
plt.ylabel('Sepal Width')
# 创建KMeans K均值
kmean = KMeans(n_clusters = 3, random_state=1)
kmean.fit(X)
KMeans(algorithm='auto',copy_x=True,init='k-means++',max_iter=300,n_clusters=3,n_init=10,n_jobs=None,precompute_distances='auto',random_state=1,tol=0.0001, # 簇最小距离verbose=0)new_labels = kmean.labels_
# 预测与簇的对比
fig, axes = plt.subplots(1, 2, figsize=(12,7))
axes[0].scatter(X[:, 0], X[:, 1], c=y, cmap='gist_rainbow', edgecolor='k', s=150)
axes[1].scatter(X[:, 0], X[:, 1], c=new_labels, cmap='jet', edgecolor='k', s=150)
axes[0].set_xlabel('Sepal length')
axes[0].set_ylabel('Sepal width')
axes[1].set_xlabel('Sepal length')
axes[1].set_ylabel('Sepal width')
axes[0].set_title('Original')
axes[1].set_title('Predicted')plt.show()

4 总结

注意点:

1 k均值聚类假设样本或者观测是凸集。

2 所有特征都在统一的量纲上,即无量纲。

3 样本或者观测的分布是大致相同的。

优点:

1 比较容易、运行较快

2 新样本拟合效果较好

3 收敛有保证

4 适应于大数据集的缩放

缺点:

1 K值得确定较难,一般根据经验

2 离群值较难解释

3 对样本值得依赖性较强

4 聚类复杂程度取决于样本的大小和密度

Python Kmeans K均值分类相关推荐

  1. 使用python画k均值分类图

    欢迎关注公众号:老白和他的爬虫 昨天帮小余同学用python画了下k均值分类图,原理比较简单在这里分享一下. 首先小余同学已经用spss做好了族群分类,分类结果如图所示 一共有100条结果,这里只截取 ...

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

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

  3. SPSS用KMEANS(K均值)、两阶段聚类、RFM模型在P2P网络金融研究借款人、出款人行为数据规律...

    全文下载链接:http://tecdat.cn/?p=27831 随着P2P网络金融平台的交易量的激增,其交易数据不能得到充分有效地利用.将聚类分析引入到P2P网络金融平台的管理之中,利用聚类分析技术 ...

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

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

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

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

  6. K-Means(K均值)、GMM(高斯混合模型),通俗易懂,先收藏了!

    文章目录 1. 聚类算法都是无监督学习吗? 2. k-means(k均值)算法 2.1 算法过程 2.2 损失函数 2.3 k值的选择 2.4 KNN与K-means区别? 2.5 K-Means优缺 ...

  7. 基于Python的k均值聚类不同规格的商品名

    基于Python的k均值聚类不同规格的商品名 前言 聚类的目标是使得同一簇内的点之间的距离较短,而不同簇中点之间的距离较大.以此来区分不同的群体. 本篇讲述使用k均值算法对超市购物记录集中的商品名称进 ...

  8. K均值分类做多光谱图像分割matlab版本

    K均值分类算法已经比较常见了,但还是值得学习一下,毕竟这个算法的框架很好,在此基础上可以更新一下.网上有很多的讲解和程序,我也看了一下毕竟自己做了,还是想和大家分享一下代码,在这里还是献丑了 matl ...

  9. Python KNN K近邻分类

    Python KNN K近邻分类 1 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理. 2 KNN简介 相关概念见下: 对于给定的观测来 ...

最新文章

  1. 菜鸟学Linux 第044篇笔记 算法和私有CA
  2. CSS 相对|绝对(relative/absolute)定位系列(一)
  3. Weighted distance in sklearn KNN
  4. golang 截取字符串
  5. python 递归结束条件_python递归(如果条件满足,为什么程序不退出一次?)
  6. 2019/1/14,15 Python今日收获
  7. 秒杀系统的架构解决之道
  8. subversion安装与配置备忘录
  9. get和post 两种基本请求方式的区别
  10. 实用常识 | 推荐一个科研必备计算搜索引擎—WolframAlpha(内含矩阵相关指令操作)
  11. 基于视觉的烟雾/火焰检测数据集整理(检测、识别、分割)
  12. Windows Embedded Compact 7 试用笔记(3)
  13. java 参数 python_java可变参数
  14. mysql修改binlog 位置_查看mysql 的binlog日志存放的位置(转)
  15. linux目录文件变化,Linux下监测目录或文件的变化---inotify
  16. bzoj 1488: [HNOI2009]图的同构
  17. 小程序-Hello World
  18. 图片怎么批量修改尺寸
  19. Python 实现超级玛丽游戏
  20. 为什么HDMI连接显示器无信号?

热门文章

  1. Centos7安装mysql5.6教程
  2. Git如何更新远程仓库代码到本地
  3. vue项目网页自适应,等比例放大缩小
  4. 真小白入门:python的安装(一)
  5. java如何向mysql插入_java中怎么向数据库插入数据 ?
  6. Android开发详解:第3章《App UI 设计》
  7. 漫步者lollipods如何调节音量_看双麦降噪如何花式秀操作,漫步者Lollipods测评
  8. php微信号轮播系统,微信小程序的轮播功能
  9. nodeJS 菜鸟入门
  10. “王国维”谈编程境界