Мультиклассовая классификация MultiOutput с категориальным и непрерывным атрибутом без кодирования в python

Я работаю над проектом машинного обучения (Data-Mining), и я закончил этап исследования и подготовки данных, и это было сделано на python!

Теперь я столкнулся с этой проблемой: у меня есть атрибуты категорий в моем наборе данных. После исследования я обнаружил, что наилучшим подходящим алгоритмом для такого рода данных является дерево решений или случайный классификатор леса!

Но я прочитал несколько похожих вопросов о дереве решений и категориальном атрибуте и обнаружил, что используемая мной библиотека (scikit-learn) не работает с атрибутами categoricasl. проверьте здесь и здесь, чтобы заставить его работать с категориальными, мне нужно кодировать мои категориальные переменные в числовые, но я не не хочу использовать кодировку, потому что я потеряю некоторые свойства своих атрибутов и некоторую информацию в соответствии с этим ответом, и также некоторые из моих атрибутов имеют более 100 различных значений.

Итак, я хочу знать:

  • есть ли другая библиотека python, которая может строить деревья решений с категориальными данными без какой-либо кодировки?
  • в этом ответе было предложено, чтобы другие библиотеки, такие как WEKA, могли строить деревья решений с категориальными атрибутами, поэтому мой вопрос в том, что это может Я объединяю 2 языка в одном проекте машинного обучения?

Будете ли вы проводить исследование и подготовку данных в python, обучать модель в weka (java) и развертывать ее в веб-приложении python-flask? это возможно?


person Espoir Murhabazi    schedule 18.07.2017    source источник


Ответы (1)


В приведенном вами ответе о кодировании категориальных входных данных просто говорится, что вам следует избегать числового кодирования, когда ваши категории не имеют присущий порядок. В этом случае он правильно рекомендует использовать однократное кодирование.

Проще говоря, модели машинного обучения работают с числами, поэтому даже если вы найдете библиотеку, которая берет ваши необработанные категории без явного кодирования, ей все равно придется внутренне кодировать их, прежде чем она сможет выполнять какие-либо вычисления.

100 категорий — это немного, и большинство полочных библиотек прекрасно справятся с такими входными данными. Я рекомендую вам попробовать xgboost

person Imran    schedule 18.07.2017
comment
в порядке! Спасибо за ваш ответ @Imran, поэтому я попробую одно горячее кодирование, звучит хорошо, но увеличу размерность моего набора данных, поэтому придется забыть о дереве решений и попробовать сильный классификатор, такой как SVN и NN. - person Espoir Murhabazi; 18.07.2017