import numpy as np
import matplotlib.pyplot as plt
#给定x,y两组数据
x=np.array([1,7,4,6,2,9,3,5,7,3,5,9,7,8,2,4,3,1,2,4,4,2])
y=np.array([8,3,10,5,12,2,9,11,1,20,4,7,8,4,3,2,5,1,6,5,15,15])
#plt.scatter(x,y)#x,y散点图
from sklearn.cluster import KMeans
model = KMeans(n_clusters=2)#设置2类
import pandas as pd
a=np.vstack((x,y)).T
model1=model.fit(pd.DataFrame(a))#聚类
label = model1.labels_ #获取聚类标签
#2类标签为0,1,一维数组,和x,y个数相同,一一对应
#aa=model1.fit_predict(a)#获取标签,等价于上面
fig=plt.figure()
ax=fig.add_subplot(111)
plt.scatter(x, y, c=label)#不同颜色标记不同类
counts = pd.Series(label).value_counts()#不同类包含样本个数,Series
centroids = model1.cluster_centers_ #获取聚类中心
print(label)
print(counts)
print(centroids)
plt.plot(centroids[:,0],centroids[:,1],'rs')#图中标记聚类中心
KMeans基础代码
最新推荐文章于 2022-03-31 19:37:07 发布