Форум сайта python.su
Все построители деревьев , которые я знаю (из sklearn.tree) , в качестве признаков принимают только числовые данные.
Но как построить дерево на категориальных данных ?! Например, у меня есть 3 категориальных признака-симптома болезни, в каждом по 5 вариантов ответа … Неужели я должен превратить их в три столбца в которых будут числа от 1 до 5 ?! Анализ при построении дерева будет совершенно не логичным. Я хочу чтобы все категории были равноправными , чтобы в каждой вершине перебирались все возможные варианты разбиения пяти категорий на две подвыборки. И выбиралось то разбиение, которое делит их оптимальнее.
В теории это довольно просто , но на практике словно забыли реализовать. Может я чего-то не понимаю ? Может быть есть другой древесный классификатор и регрессор , который умеет полноценно работать с категориальными признаками ?
Офлайн
Нужно использовать OneHotEncoder, который превратит три столбца с пятью вариантами в 15 столбцов, и к нему уже применять CART алгоритмы, или что там еще…
OneHotEncoder сделает следующее – создаст колонки
ПРизнак1Категоря1, Признак1Категория2 …. 15 вариантов
0 1
0 0
1 0
1 0
0 и 1 – отсутствие признака
Офлайн
Я думаю будет не то , что нужно.
Вместо того, чтобы в одной вершине разделить все категории признаков на две подвыборки наиболее оптимальным образом. Алгоритм будет делить выборку на две части : принадлежашие данной категории по данному признаку , и не принадлежащие.
А если категорий много, то и признаков при onehot кодировании будет много , и если я правильно понимаю , то решающие деревья не очень хорошо справляются с большим количеством признаков.
Офлайн
Кодировать придется в любом случае…
В качестве альтернативы можно предложить еще BinaryEncoder из пакета category_encoders. Он приводит к меньшему числу добавочных признаков, чем OneHot…
may04215 это не много … здесь проблем не будет.
А если категорий много, то и признаков при onehot кодировании будет много , и если я правильно понимаю , то решающие деревья не очень хорошо справляются с большим количеством признаков.
Офлайн