Я пытаюсь использовать категориальную inpust в дереве регрессии (или Random Forest Regressor), но 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