第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

不需要標簽的一次性編碼?

不需要標簽的一次性編碼?

江戶川亂折騰 2023-03-08 11:23:21
我正在嘗試理解經典 Iris 分類問題的指導教程中的代碼塊。最終模型的代碼塊如下chosen_model = SVC(gamma='auto')chosen_model.fit(X_train,Y_train)predictions = chosen_model.predict(X_valid)在此圖中,您可以看到 X_train 和 Y_train 中存在的數據類型。這些是 Numpy 數組。Y_train 包含 Iris 物種作為字符串。我的問題很簡單:即使我沒有將 Y_train 單熱編碼到不同的二進制列中,模型如何工作?我從其他教程中了解到,對于多類分類,我需要先進行 one-hot 編碼。代碼運行良好,我想掌握何時需要 One-Hot Encode 以及何時不需要。謝謝你!
查看完整描述

2 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

我認為您可能將多類(您的情況)與多輸出分類混淆了。

在多類分類問題中,您的輸出應該只是一個目標列,您將訓練模型在該列的類之間進行分類。您必須拆分為單獨的目標列,如果您必須預測每個樣本的n不同類別,但事實并非如此,您只需要每個樣本的一個目標。

因此對于多類分類,不需要對目標進行 OneHotEncode,因為您只需要一個目標列(在 SVC 中也可以是分類的)。您必須OneHotEncoder使用或與其他一些編碼器一起編碼的是分類輸入特征,它必須是數字。

此外,SVC可以處理分類目標,因為它LabelEncode是內部的:

from sklearn.datasets import load_iris

from sklearn.svm import SVC

from sklearn.model_selection import train_test_split


X, y = load_iris(return_X_y=True)

X_train, X_test, y_train, y_test = train_test_split(X, y)

y_train_categorical = load_iris()['target_names'][y_train]

# array(['setosa', 'setosa', 'versicolor',...


sv = SVC()

sv.fit(X_train, y_train_categorical)

sv.classes_

# array(['setosa', 'versicolor', 'virginica'], dtype='<U10')


查看完整回答
反對 回復 2023-03-08
?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

據我所知,從未對輸出進行過一次熱編碼。您需要對一個特征進行一次熱編碼,這樣模型就不會混淆某些顏色大于其他顏色。當您計算輸出時,模型使用基于類別的概率分布。所以這里不會有任何問題。

簡而言之,您應該只對輸入特征而不是輸出類進行一次熱編碼。


查看完整回答
反對 回復 2023-03-08
  • 2 回答
  • 0 關注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號