簡體   English   中英

我可以在 KNN 機器學習模型中使用字符串值作為我的因變量嗎?

[英]Can I use string values as my dependent variable in KNN machine learning model?

所以,我有 128 個面部編碼的數據,標簽是人的名字,上面有名字的列是我的目標列。 我顯然使用了標簽二值化來二值化因變量(名稱列)。 當我使用 KNN 擬合和預測人名時,它沒有預測任何內容。

它應該是這樣的:

在此處輸入圖片說明

但是我得到了這個:

在此處輸入圖片說明

因此,我的第一個疑問是我是否可以使用字符串值作為我的依賴變量或目標變量。 任何幫助表示贊賞。 謝謝

對於二值化,我使用了這個

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

您可以使用字符串值作為目標變量,因為文檔說目標變量應該是{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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM