get_dummies()
используется в Pandas для преобразования категориальных переменных в числовые данные и повышения производительности моделей машинного обучения. Это связано с тем, что большинство моделей могут принимать только числовые значения в качестве входных данных.
Затем эти новые столбцы можно использовать в алгоритмах машинного обучения или статистических моделях в качестве предикторов.
Например. Предположим, у нас есть столбец под названием «Fuel_type» в нашем фрейме данных, который имеет категориальные значения «Бензин», «Дизель» и «СПГ». Мы можем использоватьget_dummies()
для создания трех новых столбцов с именами «Fuel_Petrol», «Fuel_Diesel» и «Fuel_CNG» с двоичными значениями в них, указывающими, является ли топливо в строке «Бензин», «Дизель» или « СПГ».
Проблема возникает, когда категориальные значения в наборе данных поезда и наборе тестовых данных различаются, несмотря на то, что его можно легко интерпретировать и он обеспечивает чистое и четкое изображение столбцов. В этом случае это может привести к несоответствию при моделировании.
Параметр drop_first
в get_dummies()
определяет, следует ли отбрасывать первый уровень категориальной переменной или нет.
Когда drop_first
установлено в True
, get_dummies()
создаст n-1
двоичных столбцов для n
категорий категориальной переменной. Это означает, что исключается одна категория, которая служит эталонной категорией и неявно представлена всеми нулями в двоичных столбцах.
Например. Предположим, у нас есть фрейм данных Pandas со столбцом fruit
, содержащим категориальные значения «яблоко», «банан» и «апельсин». Мы хотим создать фиктивные переменные из этого столбца, используя get_dummies()
:
dummy_df = pd.get_dummies(df['fruit'], drop_first=True) df = pd.concat([df, dummy_df], axis=1)
Результирующий фрейм данных будет иметь два новых столбца: "банан" и "апельсин", а "яблоко" будет неявно удалено, начиная с drop_first=True
. Эти столбцы будут иметь двоичные значения 1
или 0
, указывающие, содержал ли исходный столбец fruit
эту категорию или нет.
Это может помочь уменьшить мультиколлинеарность между фиктивными переменными и повысить стабильность и производительность моделей машинного обучения, которые используют их в качестве предикторов.
Если
drop_first
оставить False, будет созданоn
columns дляn
categories, и там также будут использоваться двоичные значения, чтобы указать, присутствует ли значение или нет.
По умолчанию значение
drop_first
равно False.