def nmf_test(df):
X = df.drop(['Year', 'zipcode'], axis=1).values
scaler = MinMaxScaler()
X_sca = scaler.fit_tranform(X)
scores = []
for k in xrange(2, 11):
model = NMF(n_components=k)
W = model.fit_transform(X_sca)
labels = W.argmax(axis=1)
score = silhouette_score(X_sca, labels)
scores.append(score)
plt.plot(xrange(2, 11), scores, 'b*-')
plt.show()
评论列表
文章目录