【发布时间】:2017-10-11 21:38:28
【问题描述】:
我正在使用sklearn.neighbors.KNeighborsRegressor 开发分类器。 我使用的数据格式如下:
- [numeric_feature1, numeric_feature2, ...., numeric_featureN] [label_to_predict]
所有特征都是数字,除了我想使用 KNN 预测的标签。
它是一个具有多个值的分类标签,例如:'w1'、'w2'、'w3'。
我的问题是:
- KNN 支持分类标签还是仅支持数字标签?
- 如果它只适用于数值,是否有任何正确的方法来编码标签?
PD:我知道 sklearn.preprocessing.LabelEncoder 对标签进行编码,但在文档中说分类值必须是可散列的和可比较的。我的标签只是任意词,无法计算它们之间的逻辑距离。
PD2:我尝试过使用分类标签,但出现错误:
“不支持的 / 的操作数类型:'str' 和 'int'”
【问题讨论】:
-
试试 MultilabelBinarizer
-
请发布代码 sn-p 和完整的堆栈跟踪。标签应该是分类的,它们不用于任何距离计算。
标签: python scikit-learn knn