【发布时间】:2016-10-16 23:10:49
【问题描述】:
我正在对具有 2 个聚类的 30 个样本集进行 k-means 聚类(我已经知道有两个类)。我将数据分为训练集和测试集,并尝试计算测试集的准确度分数。但是有两个问题:首先我不知道我是否真的可以为 k-means 聚类做到这一点(测试集上的准确度得分)。第二:如果允许我这样做,我的实现是对还是错。这是我尝试过的:
df_hist = pd.read_csv('video_data.csv')
y = df_hist['label'].values
del df_hist['label']
df_hist.to_csv('video_data1.csv')
X = df_hist.values.astype(np.float)
X_train, X_test,y_train,y_test = cross_validation.train_test_split(X,y,test_size=0.20,random_state=70)
k_means = cluster.KMeans(n_clusters=2)
k_means.fit(X_train)
print(k_means.labels_[:])
print(y_train[:])
score = metrics.accuracy_score(y_test,k_means.predict(X_test))
print('Accuracy:{0:f}'.format(score))
k_means.predict(X_test)
print(k_means.labels_[:])
print(y_test[:])
但是,当我为测试集打印 k-means 标签时 (k_means.predict(X_test) print(k_means.labels_[:])) 和 y_test 标签(print(k_means.labels_[:])) 在最后三行中,我得到的标签与我安装 X-train 时的标签相同,而不是为X 检验。知道我在这里可能做错了什么吗?我正在做什么来评估 k-means 的性能是否正确? 谢谢!
【问题讨论】:
标签: python scikit-learn k-means