Я должен использовать классификатор дерева решений для классификации определенных данных.Однако значения атрибута являются строками, и, как я нашел здесь: https://datascience.stackexchange.com/questions/5226/strings-as-features-in-decision-tree-random-forest,, он говорит, что строки не могут быть использованы в качестве входных данных.Поэтому я использовал целочисленное кодирование для строк.
В этой статье Передача категориальных данных в дерево решений Sklearn я обнаружил, что передача целочисленных данных может привести к неправильному ответу, так как sklearnпредполагает порядок среди данных.Таким образом, единственный выход - использование модуля OneHotEncoder
.
Использование модуля OneHotEncoder
увеличивает количество функций (например, если есть атрибут 'price' со значениями ['high', 'med','low'], одно горячее кодирование приведет к включению 3 атрибутов, связанных с фактическим атрибутом 'price', которые можно интерпретировать как ['price-high', 'price-med', 'price-low']и значения атрибута будут либо 1, либо 0 в зависимости от данных), что мне не нужно, так как мне нужно распечатать дерево решений в определенном формате, который потребовал бы исходных функций (например, мне нужна «цена»).
Есть ли выход из этого?