我有很多分類列,并希望將這些列中的值轉換為數值,以便能夠應用 ML 模型。
現在通過資料看起來像下面這樣。
第 1 欄 - 好/差/差/未報告 第 2 欄 - 紅色/琥珀色/綠色 第 3 欄 - 1/2/3 第 4 欄 - 是/否
現在我已經將數值 1,2,3,4 分配給好、壞、差,未在第 1 列中報告。
所以,現在我可以給第 2 列中的紅色、綠色、琥珀色等相同的數值,例如 1、2、3,并以與其他列類似的方式,或者在我實作它時會做那個混淆模型
uj5u.com熱心網友回復:
您可以使用 df[colname].map({}) 或 LabelEncoder() 對一些評分列執行此操作。他們會將每個分類資料更改為數字,因此它們之間存在權重,這意味著如果差為 1,好為 3,如您所見,它們之間存在差異。您希望模型知道它,但如果它只是顏色之類的東西,您知道顏色沒有偏好,綠色與藍色沒有什么不同。所以最好不要使用相同的方法并在 pandas 中使用 get_dummies。
uj5u.com熱心網友回復:
您提到的顏色值是標稱的。這些值沒有排名或順序。如果您指定 1、2、3 等,則資料可能會被誤認為來自某個比例。
為避免這種情況,您可以使用 onehotencoder 技術對它們進行轉換。這有效地將多值分類欄位編碼為以下內容:
red = 100
amber = 010
green = 001
您可以使用 sk-learn.preprocessing 中的以下庫: https ://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/533071.html
