KNN sklearn 中的分类标签

问题描述 投票:0回答:1

我正在使用 sklearn.neighbors.KNeighborsRegressor 开发分类器。 我使用的数据具有以下格式:

  • [numeric_feature1, numeric_feature2, ...., numeric_featureN] [要预测的标签]

除了我想使用 KNN 预测的标签之外,所有特征都是数字。

它是一个具有多个值的分类标签,例如:'w1','w2','w3'。

我的问题是:

  • KNN 支持分类标签还是仅支持数字标签?
  • 如果它仅适用于数值,是否有正确的方法对标签进行编码?

PD:我知道 sklearn.preprocessing.LabelEncoder 可以对标签进行编码,但在文档中说分类值必须是可散列且可比较的。我的标签只是任意单词,无法计算它们之间的逻辑距离。

PD2:我尝试使用分类标签,但收到错误:

“/ 不支持的操作数类型:'str' 和 'int'”

python scikit-learn knn
1个回答
0
投票

好的,我发现我的错误了。

正如我怀疑的那样,sklearn.neighbors.KNeighborsRegressor仅支持数字标签。

但是aberger在评论中说KNN标签中的距离没有使用。

我的错误是我使用了类 KNeighborsRegressor 而不是类 KNeighborsClassifier,它是接受标签作为分类值的分类方法 KNN。

在类 KNeighborsRegressor 中,分配的标签是根据其最近邻居标签的平均值计算的,因此它必须是数字。

© www.soinside.com 2019 - 2024. All rights reserved.