如何用原始标签获得KMean聚类预测

时间:2016-05-13 22:14:56

标签: python machine-learning scikit-learn

我尝试使用sklearn KMean聚类进行监督学习,其中我为每个聚类都有一个标签,不知何故,当我将这些标签提供给拟合函数model.fit(X_train, y_train)时,生成的(输出)标签不是来自我的列表但只是一个群集号码。我可以在原始标签中获得预测吗? 例如,

训练集:

x,y,z,class
1,2,3,1001
1,4,8,1002
5,2,9,1003

适合

的类是y_train

测试集:

x,y,z
1,1,1
2,2,2
3,3,3

predicted = model.predict(X_test)给我[1 0 2]作为结果,而预期结果是[1002 1001 1003]。文档似乎没有标签选项的选项。如何使用提供的标签进行预测?

1 个答案:

答案 0 :(得分:1)

听起来你正在寻找一个K Nearest Neighbors分类器。该算法完全按照您的描述从标记数据中学习,然后根据哪个组具有“该点的最近邻居中的最多代表”,将测试集中的每个点分配给您的一个预定义组。这是实施:

from sklearn.neighbors import KNeighborsClassifier
neigh = KNeighborsClassifier(n_neighbors = 3)  # you have 3 groups above
neigh.fit(X_train, y_train)
predicted = neigh.predict(X_test)