KNN sklearn中的分类标签

时间:2017-05-12 14:12:54

标签: python scikit-learn knn

我正在使用sklearn.neighbors.KNeighborsRegressor处理分类器。 我使用的数据格式如下:

  • [numeric_feature1,numeric_feature2,....,numeric_featureN] [label_to_predict]

除了我想用KNN预测的标签外,所有功能都是数字。

这是一个包含多个值的分类标签,例如:' w1',' w2',' w3'。

我的问题是:

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

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

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

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

1 个答案:

答案 0 :(得分:0)

哦,我发现了我的错误。

我怀疑,sklearn.neighbors.KNeighborsRegressor仅支持数字标签。

但是,在KNN标签的评论中,如何表示异常并没有在距离中使用。

我的错误是我正在使用 KNeighborsRegressor 这个类,而不是类 KNeighborsClassifier ,这是一个纯粹的KNN,它不使用标签并接受分类标签。

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