我尝试使用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]。文档似乎没有标签选项的选项。如何使用提供的标签进行预测?
答案 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)