结果。 评价kmean在集群的最佳数量, 我们迭代一系列的值, 找出其中的峰值的 性能
度量聚类算法的一个好方法是观察集群被分离的离散程度
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
from sklearn import metrics
from sklearn.cluster import KMeansimport utilities
# 加载数据
data = utilities.load_data('data_perf.txt')scores = []
range_values = np.arange(2, 10)for i in range_values:
# 训练模型
kmeans = KMeans(init='k-means++', n_clusters=i, n_init=10)
kmeans.fit(data)
score = metrics.silhouette_score(data, kmeans.labels_,
metric='euclidean', sample_size=len(data)) print "\nNumber of clusters =", i
print "Silhouette score =", score
scores.append(score)# 画出结果
plt.figure()
plt.bar(range_values, scores, width=0.6, color='k', align='center')
plt.title('Silhouette score vs number of clusters')# 画出柱状图
plt.figure()
plt.scatter(data[:,0], data[:,1], color='k', s=30, marker='o', facecolors='none')
x_min, x_max = min(data[:, 0]) - 1, max(data[:, 0]) + 1
y_min, y_max = min(data[:, 1]) - 1, max(data[:, 1]) + 1
plt.title('Input data')
plt.xlim(x_min, x_max)
plt.ylim(y_min, y_max)
plt.xticks(())
plt.yticks(())plt.show()
标签:plt,min,max,算法,score,240719,聚类,import,data
From: https://blog.51cto.com/u_15862653/11888529