欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

聚类分类案例

程序员文章站 2022-05-26 21:18:27
...
01.根据数据集testSet2.txt,利用sklearn里的Kmeans算法完成聚类分类,并画出图形。
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

#载入数据
dataSet=np.genfromtxt('testSet2.txt')
plt.scatter(dataSet[:,0],dataSet[:,1],c='r')
#建立模型
KM=KMeans(n_clusters=4)#n_cluters代表分成几簇
#训练模型
KM.fit(dataSet)
#分类中心点坐标(簇的质心)
centers=KM.cluster_centers_#最终的聚类的质心
print(centers)
#预测结果
result=KM.predict(dataSet)
print('分簇结果:',result)

聚类分类案例

mark=['^r','sb','*g','oy']
for i,d in enumerate(dataSet):
    plt.plot(d[0],d[1],mark[result[i]])#这里没用scatter因为给的mark是颜色和形状的结合
    #但plot属性间
    
markcentor=['+r','+b','+g','+y']
for i,centor in enumerate(centers):
    plt.plot(centor[0],centor[1],markcentor[i],markersize=30)

聚类分类案例

plt.scatter(dataSet[result==0,0],dataSet[result==0,1],s=30,c='orange',
           marker='o',label='cluster=1')
plt.scatter(dataSet[result==1,0],dataSet[result==1,1],s=30,c='green',
           marker='s',label='cluster=2')
plt.scatter(dataSet[result==2,0],dataSet[result==2,1],s=30,c='blue',
           marker='o',label='cluster=3')
plt.scatter(dataSet[result==3,0],dataSet[result==3,1],s=30,c='red',
           marker='*',label='cluster=4')

plt.scatter(centers[:,0],centers[:,1],s=500,marker="+",c='red',label='cluster center')
plt.legend(loc='lower left',bbox_to_anchor=(-0.4,0.5,0.1,0.1))
plt.show()

聚类分类案例