我必須使用決策樹分類器對某些數據進行分類。但是,屬性值是字符串,正如我在此處找到的那樣,它說字符串不能用作輸入。因此我對字符串使用了整數編碼。在這篇文章中,我發現傳遞整數編碼的數據可能會導致錯誤的答案,因為 sklearn 假設數據之間有順序。所以,唯一的出路是使用OneHotEncoder模塊。使用OneHotEncoder模塊增加了特征的數量(例如,如果有一個帶有值的屬性“價格” ['high','med','low'],單熱編碼將導致包含與實際屬性“價格”相關的 3 個屬性;這些可以解釋為['price-high','price-med', 'price-low']和屬性值將是 1 或 0,具體取決于數據),這是我不想要的,因為我必須以某種格式打印決策樹,這需要原始特征(例如,我需要“價格”)。有沒有辦法解決這個問題?
1 回答

精慕HU
TA貢獻1845條經驗 獲得超8個贊
我認為pd.get_dummies這會很有用,因為您想在創建單熱向量時跟蹤原始特征名稱。
例子:
df = pd.DataFrame({'price': ['high', 'medium', 'high', 'low'], 'some_feature': ['b', 'a', 'c','a']})
pd.get_dummies(df,columns=['price','some_feature'])
price_high price_low price_medium some_feature_a some_feature_b some_feature_c
0 1 0 0 0 1 0
1 0 0 1 1 0 0
2 1 0 0 0 0 1
3 0 1 0 1 0 0
當將此數據框提供給決策樹時,您可以更好地理解!
添加回答
舉報
0/150
提交
取消