資源簡介
k均值K-means算法案例,包括K=2和肘部法則及圖形展示
代碼片段和文件信息
from?sklearn.cluster?import?KMeans
import?matplotlib.pyplot?as?plt
import?numpy?as?np
from?pylab?import?*
mpl.rcParams[‘font.sans-serif‘]?=?[‘SimHei‘]
#?生成20個數據
data?=?np.array([[25][46][31][64][72][84][23][31][57][69][1216][1011][1519][1612][1115][1014][1911][1714][1611][1319]])
#聚類為2類
estimator=KMeans(n_clusters=2)
#?fit_predict表示擬合+預測,也可以分開寫
res=estimator.fit_predict(data)
#?預測類別標簽結果
lable_pred=estimator.labels_
#?各個類別的聚類中心值
centroids=estimator.cluster_centers_
#?聚類中心均值向量的總和
inertia=estimator.inertia_
#print(centroids[00]centroids[01])
print?(“lable_pred=“lable_pred)
print?(“centroids=“centroids)
print?(“inertia=“inertia)
#畫出k=2時的圖
plt.figure(‘K-mean算法‘)
plt.xlabel(‘K值‘)
plt.ylabel(‘代價‘)
plt.title(‘每戶位置分布圖‘)
for?i?in?range(len(data)):
????if?int(lable_pred[i])?==?0:
????????plt.plot(data[i?0]?data[i?1]?‘or‘)
????elif?int(lable_pred[i])?==?1:
????????plt.plot(data[i?0]?data[i?1]?‘ob‘)
plt.plot(centroids[00]centroids[01]‘xr‘)
plt.plot(centroids[10]centroids[11]‘xb‘)
#畫出標注
for?i?in?range(2):
????plt.annotate(str(‘超市‘+str(
評論
共有 條評論