K-means算法--“肘部”观察法用于粗略的估计合理的类簇个数
来源:互联网 发布:义乌淘宝美工培训 编辑:程序博客网 时间:2024/04/25 13:27
'''
K-means聚类模型所采用的迭代算法,直观易懂,并且非常实用,但是有俩大缺陷。1,容易收敛到局部最优。2需要预先设定簇的数量(因为开始无法准确的确定簇的数量,可以采用“肘部“观察法去大致估计簇的数量)
'''
import numpy as np
from sklearn.cluster import KMeansfrom scipy.spatial.distance import cdist
import matplotlib.pyplot as plt
#使用均匀分布函数随机三个簇,每个簇周围有10个样本数据点
cluster1 = np.random.uniform(0.5,1.5,(2,10))
cluster2 = np.random.uniform(5.5,6.5,(2,10))
cluster3 = np.random.uniform(3.0,4.0,(2,10))
#绘制30个样本数据点的分布图像
X = np.hstack((cluster1,cluster2,cluster3)).T
plt.scatter(X[:,0],X[:,1])
plt.xlabel('x1')
plt.ylabel('x2')
plt.show()
#使用9中不同的聚类中心数量下,每种情况的聚类质量并作图
K= range(1,10)
meandistortions = []
for k in K:
kmeans = KMeans(n_clusters=k)
kmeans.fit(X)
meandistortions.append(sum(np.min(cdist(X,kmeans.cluster_centers_,'euclidean'),axis=1))/X.shape[0])
plt.plot(K,meandistortions,'bx-')
plt.plot('k')
plt.ylabel('Average Dispersion')
plt.title('Selecting k with the Elbow Method')
plt.show()
阅读全文
0 0
- K-means算法--“肘部”观察法用于粗略的估计合理的类簇个数
- K-Means聚类算法的实现
- K-means算法的实现
- K-means算法的介绍
- K-Means的三种迭代算法
- k-medoids与k-Means聚类算法的异同
- K-means聚类算法的三种改进(K-means++,ISODATA,Kernel K-means)介绍与对比
- k-means/k-means++算法的笔记及scala实现
- Numerical Example of K-Means Clustering(K-Means聚类算法的简单例子)
- C#实现简单的K-means聚类算法
- k-means聚类算法的【java描述】
- 基于K-Means的文本聚类算法
- 关于k-means聚类算法的matlab实现
- K-Means聚类算法的实现(C语言)
- 基于K-means算法的文本聚类
- 基于K-Means的文本聚类算法
- 基于模糊K-Means算法的新闻聚类
- 【分类器】常用的聚类算法-K-means
- 网站性能优化的常用方法
- HAProxy安装及简单配置
- 如果眼睛长在手上,大脑放在云端会怎样呢?
- h5页面软键盘遮挡弹窗中的输入框
- 异步任务神器 Celery
- K-means算法--“肘部”观察法用于粗略的估计合理的类簇个数
- HTML5 高级系列:web Storage
- 他冲进哈佛剑桥的宿舍,却只为找到中国的“扎克伯格”?
- bootstrap fileinput和Select2不被注意的坑
- 单例模式的七种写法
- NYOJ 47 过河问题
- fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加#include "stdafx.h”
- bzoj 3294: [Cqoi2011]放棋子 动态规划+排列组合
- ios 修改webview的 ua