【问题标题】:Can I use string values as my dependent variable in KNN machine learning model?我可以在 KNN 机器学习模型中使用字符串值作为我的因变量吗?
【发布时间】:2020-08-25 06:51:30
【问题描述】:

所以,我有 128 种面部编码的数据,标签是人名,上面有名字的列是我的目标列。我显然使用标签二进制化来二进制化因变量(名称列)。当我使用 KNN 拟合并预测人名时,它并不能预测任何东西。

应该是这样的:

但是我得到了这个:

因此,我的第一个疑问是我是否可以使用字符串值作为我的因变量或目标变量。任何帮助表示赞赏。谢谢

二值化,我用过这个

#Binarising the labels
labelBinarised = LabelBinarizer()
Y_train=labelBinarised.fit_transform(Y_train)
Y_test = labelBinarised.fit_transform(Y_test)

【问题讨论】:

  • 请添加适合和预测的代码。
  • 这是一个scikit-learn 的问题,实际上与pandas 无关 - 请不要发送不相关的标签(已编辑)。

标签: python machine-learning scikit-learn image-classification


【解决方案1】:

您可以使用字符串值作为目标变量,因为文档中说目标变量应该是{array-like, sparse matrix} Target values of shape = [n_samples] or [n_samples, n_outputs],他们没有提到它只是数字。您的要素必须是数字,因为它用于计算距离,但您的目标可以是字符串。

如下例所示,目标值是字符串,它可以正常工作:

X = [[0], [1], [2], [3]]
y = ['zero', 'zero', 'one', 'one']

from sklearn.neighbors import KNeighborsClassifier

neigh = KNeighborsClassifier(n_neighbors=3)
neigh.fit(X, y)

print(neigh.predict([[3]]))

#output
#array(['one'], dtype='<U4')

【讨论】:

    猜你喜欢
    • 2019-12-07
    • 2016-03-27
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 2022-11-10
    • 2020-02-12
    • 2017-01-14
    相关资源
    最近更新 更多