栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

kMeAnS代码

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

kMeAnS代码

Kmeans算法是一个无监督算法, 他是根据一大堆数据自己训练出他自己是属于哪一类型的,本质上也是算距离 我们先自己搞一个已经做好分类的kmeans数据集
from sklearn.datasets import make_blobs #自己创建数据集 
X, y = make_blobs(n_samples=500,n_features=2,centers=4,random_state=1)  #有500样本,2个类别,4个中心点
plt.scatter(X[:, 0], X[:, 1], marker='o')#点的形状 ,s=8 #点的大小

color = ["red","pink","orange","gray"] 
for i in range(4): 
	plt.scatter(X[y==i, 0], X[y==i, 1]
	,marker='o'   #点的形状 
	,s=8         #点的大小 
	,c=color[i] ) 
plt.show()

# 这样就看到了一个可视化的kmeans图
下面来正式导入sklearn实践
from sklearn.cluster import KMeans 
n_clusters = 3 
cluster = KMeans(n_clusters=n_clusters, random_state=0).fit(X) 

cluster.labels_   #重要属性 labels_,查看聚好的类别,每个样本所对应的类
cluster.cluster_centers_  #这个是用来看质心的坐标的

# 如何衡量模型的好坏,用轮廓系数:
# 依赖评价簇内的稠密程度(簇内差异小)和簇间的离散程度(簇外差异大)来评估聚类的效果
# 轮廓系数越接近 1:样本与自己所在的簇中的样本很相似,并且与其他簇中的样本不相似。
# 轮廓系数为 0 时:两个簇中的样本相似度一致,两个簇本应该是一个簇。
# 轮廓系数为负时:样本点与簇外的样本更相似。

from sklearn.metrics import silhouette_score   #返回的是一个数据集中,所有样本的轮廓系数的均值。
from sklearn.metrics import silhouette_samples  #返回的是数据集中每个样本自己的轮廓系数

import pandas as pd 
score=[] 
for i in range(2,100): 
	cluster= KMeans(n_clusters=i, random_state=0).fit(X) 
	score.append(silhouette_score(X,cluster.labels_)) 
plt.plot(range(2,100),score) 
plt.axvline(pd.DataFrame(score).idxmin()[0]+2,ls=':')
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/876098.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号