我一直試圖在迴歸樹(或隨機森林迴歸)中使用分類inpust,但sklearn不斷返回錯誤並要求數字輸入。迴歸樹或隨機森林迴歸與分類輸入
import sklearn as sk
MODEL = sk.ensemble.RandomForestRegressor(n_estimators=100)
MODEL.fit([('a',1,2),('b',2,3),('a',3,2),('b',1,3)], [1,2.5,3,4]) # does not work
MODEL.fit([(1,1,2),(2,2,3),(1,3,2),(2,1,3)], [1,2.5,3,4]) #works
MODEL = sk.tree.DecisionTreeRegressor()
MODEL.fit([('a',1,2),('b',2,3),('a',3,2),('b',1,3)], [1,2.5,3,4]) # does not work
MODEL.fit([(1,1,2),(2,2,3),(1,3,2),(2,1,3)], [1,2.5,3,4]) #works
據我的理解,分類輸入應該可能在這些方法中沒有任何轉換(例如WOE替換)。
有沒有其他人有這個困難?
謝謝!
謝謝你。我不認爲它解決了這個問題, '數字標籤'創建了一個線性級數的假設,這很可能與您試圖預測的結果不符。設想一個決策樹節點,當決定使用例如'<2 and > = 2'的下一個截斷分割時,它與「如果在('a','c')」中沒有相同的意義。 – jpsfer
我誤解了你的問題。我剛纔看到你想把所有事情都視爲絕對的。我會相應地更新示例... – Matt
非常感謝馬特! – jpsfer