【问题标题】:how to get KMean clustering prediction with original labels如何使用原始标签获得 KMean 聚类预测
【发布时间】:2016-09-10 05:56:09
【问题描述】:

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

【问题讨论】:

  • K-means 通常用于对未标记的数据进行聚类。你确定你不是在寻找最近邻居之类的东西吗?

标签: python machine-learning scikit-learn


【解决方案1】:

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

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)

【讨论】:

  • KNeighborsClassifier 做的事情很遥远,它不会将特征向量分配给预定义的类之一
猜你喜欢
  • 2021-02-11
  • 2020-05-18
  • 2015-06-21
  • 2015-10-19
  • 2018-10-18
  • 1970-01-01
  • 2021-11-29
  • 1970-01-01
  • 2015-06-28
相关资源
最近更新 更多