Я использую классификатор GradientBoosting для прогнозирования пола пользователей. В данных есть много предикторов, и одна из них - страна. Для каждой страны у меня есть двоичная колонка. Для всех столбцов страны всегда есть только один столбец, равный 1. Но такое мнение очень медленное с точки зрения вычислений. Есть ли способ представлять столбцы страны только с одним столбцом? Я имею в виду правильный путь.GradientBoostingClassifier и много столбцов
0
A
ответ
1
Вы можете заменить двоичную переменную фактическим именем страны, а затем свернуть все эти столбцы в один столбец. Используйте LabelEncoder
в этом столбце, чтобы создать правильную целочисленную переменную, и все должно быть установлено.
Но это неверно для таких данных. Потому что страна с id 1 не менее страна с id 2. GBM не знает об этом и пытается найти такие правила. Может найти, и он будет переоборудовать – user3318023
Я не верю, что он относится к ним по заказу, я сделал ошибку, сказав это. В документации для «LabelEncoder» они даже используют города в качестве примера, поэтому я бы предположил, что это относится и к странам. Вы также можете проверить «OneHotEncoder» из той же библиотеки, если не считаете, что «LabelEncoder» соответствует вашим потребностям. –
Я никогда не использовал 'OneHotEncoder', но я полагаю, что вы введете в него нечто смешанное. Например, вместо того, чтобы один столбец был «страной», а другой - «цвет волос», эти два были бы объединены, и у вас было бы что-то вроде «[из России, имеет рыжие волосы]». При этом я по-прежнему считаю, что «LabelEncoder» будет соответствовать вашим потребностям. –