Python Kmeans K均值分类
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均值分类相关推荐
- 使用python画k均值分类图
欢迎关注公众号:老白和他的爬虫 昨天帮小余同学用python画了下k均值分类图,原理比较简单在这里分享一下. 首先小余同学已经用spss做好了族群分类,分类结果如图所示 一共有100条结果,这里只截取 ...
- Python——KMeans(k均值聚类)实战(附详细代码与注解)
开始之前 各位朋友周末好,今天博主小码将开车≥Ö‿Ö≤为大家用代码实战讲解KMeans聚类,请大家坐稳了≡(▔﹏▔)≡.作为机器学习的十大经典算法之一,聚类的相关现实应用非常之广,如图像分割,文本分类 ...
- SPSS用KMEANS(K均值)、两阶段聚类、RFM模型在P2P网络金融研究借款人、出款人行为数据规律...
全文下载链接:http://tecdat.cn/?p=27831 随着P2P网络金融平台的交易量的激增,其交易数据不能得到充分有效地利用.将聚类分析引入到P2P网络金融平台的管理之中,利用聚类分析技术 ...
- Kmeans K均值聚类,OpenCV实现
Clustering 聚类 kmeans k均值聚类 Finds centers of clusters and groups input samples around the clusters. ...
- K-Means(K均值聚类)原理及代码实现
机器学习 没有免费午餐定理和三大机器学习任务 如何对模型进行评估 K-Means(K均值聚类)原理及代码实现 KNN(K最近邻算法)原理及代码实现 KMeans和KNN的联合演习 文章目录 机器学习 ...
- 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优缺 ...
- 基于Python的k均值聚类不同规格的商品名
基于Python的k均值聚类不同规格的商品名 前言 聚类的目标是使得同一簇内的点之间的距离较短,而不同簇中点之间的距离较大.以此来区分不同的群体. 本篇讲述使用k均值算法对超市购物记录集中的商品名称进 ...
- K均值分类做多光谱图像分割matlab版本
K均值分类算法已经比较常见了,但还是值得学习一下,毕竟这个算法的框架很好,在此基础上可以更新一下.网上有很多的讲解和程序,我也看了一下毕竟自己做了,还是想和大家分享一下代码,在这里还是献丑了 matl ...
- Python KNN K近邻分类
Python KNN K近邻分类 1 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理. 2 KNN简介 相关概念见下: 对于给定的观测来 ...
最新文章
- 菜鸟学Linux 第044篇笔记 算法和私有CA
- CSS 相对|绝对(relative/absolute)定位系列(一)
- Weighted distance in sklearn KNN
- golang 截取字符串
- python 递归结束条件_python递归(如果条件满足,为什么程序不退出一次?)
- 2019/1/14,15 Python今日收获
- 秒杀系统的架构解决之道
- subversion安装与配置备忘录
- get和post 两种基本请求方式的区别
- 实用常识 | 推荐一个科研必备计算搜索引擎—WolframAlpha(内含矩阵相关指令操作)
- 基于视觉的烟雾/火焰检测数据集整理(检测、识别、分割)
- Windows Embedded Compact 7 试用笔记(3)
- java 参数 python_java可变参数
- mysql修改binlog 位置_查看mysql 的binlog日志存放的位置(转)
- linux目录文件变化,Linux下监测目录或文件的变化---inotify
- bzoj 1488: [HNOI2009]图的同构
- 小程序-Hello World
- 图片怎么批量修改尺寸
- Python 实现超级玛丽游戏
- 为什么HDMI连接显示器无信号?