我正在使用sklearn.neighbors.KNeighborsRegressor处理分类器。 我使用的数据格式如下:
除了我想用KNN预测的标签外,所有功能都是数字。
这是一个包含多个值的分类标签,例如:' w1',' w2',' w3'。
我的问题是:
PD:我知道sklearn.preprocessing.LabelEncoder要对标签进行编码,但在文档中说明分类值必须是可清除且可比较的。我的标签只是任意单词,没有办法计算它们之间的逻辑距离。
PD2:我尝试使用分类标签,但我收到了错误消息:
" /:' str'不支持的操作数类型和' int'"
答案 0 :(得分:0)
哦,我发现了我的错误。
我怀疑,sklearn.neighbors.KNeighborsRegressor仅支持数字标签。
但是,在KNN标签的评论中,如何表示异常并没有在距离中使用。
我的错误是我正在使用 KNeighborsRegressor 这个类,而不是类 KNeighborsClassifier ,这是一个纯粹的KNN,它不使用标签并接受分类标签。
在 KNeighborsRegressor 类中,分配的标签是根据其最近邻居的标签的平均值计算的,因此必须是数字。