В любом случае ваша модель будет работать с тем, что вы ей дадите:
Если ваш набор данных имеет форму (X.shape [0], 9), это будет означать что 9 функций были бы сгенерированы из вашей 3 категории. В этом случае каждый объект становится булевым индикатором (ie: если столбец, соответствующий X1 и значению «a», имеет значение 1 в строке, это будет означать, что эта строка добавляет значение «a» в X1).
В другом случае, если ваша фигура (X.shape [0], 3), каждый столбец будет иметь набор числовых значений (ie: для X1: "a "= 0,33;" b "= 0,66;" c "= 1,0), эффективно кодирующие символы в вашей категориальной переменной.
Чтобы точно ответить на ваши вопросы:
Теперь, при подборе модели дерева решений для расчета получения информации, будет ли модель рассматривать это как обучающий набор из 9 или 3 функций?
Модель будет учитывать то, что вы ей дадите, если вы дадите ему данные с формой (X.shape [0], 9), она вычислит выигрыш информации по 9 объектам, если (X.shape [0], 3), она вычислит информацию 3 функции.
Если 3, то как модель узнает о нет. столбцов, связанных с объектом.
Точка OneHotEncoding , если только в , преобразует ансамбль уникальной строки в ансамбль уникальных чисел с плавающей запятой / целых чисел . В сущности, если усиление не имеет значения, как выглядят ваши данные, это просто алгоритм scikit-learn, не принимающий категориальные переменные. Чтобы получить IF, ваш результат OneHotEncoding будет иметь то же «значение», что и исходные данные.
Если 9, функции не потеряют свою значимость?
Если ваш функции логический индикатор вместо закодированного категориального столбца, вы теряете какую-либо информацию? На мой взгляд, нет, вы просто представляли информацию, изначально представленную в вашем наборе данных в другом формате!
Теоретически без ограничения глубины , оба подхода должно содержать похожих результатов , поскольку вы только что изменили представление, а не отношение между данными и классами, которые вы пытаетесь выучить.
Единственная разница заключается в том, что , если в правилах разбиения учитывается только один признак (как в случае с sklearn), правило, основанное на значении закодированный признак (X1: «a» = 0,33; «b» = 0,66; «c» = 1,0) может разделить больше дел в одном разбиении , чем булевский индикатор.