Как создать фиктивные переменные при подготовке данных

машинное обучение

Оригинальный адрес:Woohoo.Mars JA.Цвет/как использовать-…

Автор: Эрик Марсия

Перевод: Лао Ци


В этой статье мы узнаем, как использовать Pandasget_dummies()метод создает фиктивные переменные, что часто делается при подготовке данных. виртуальная переменная(Примечание:фиктивная переменная, также переводится как: фиктивная переменная, фиктивная переменная) обычно используется для статистического анализа и более простой описательной статистики.

Читатели подписываются на общедоступную учетную запись WeChat: Laoqi Classroom и отвечают на информацию: имя + номер мобильного телефона + «дело», после чего они могут присоединиться к платформе онлайн-экспериментов и получить код и данные этой статьи.

Фиктивное кодирование для регрессионного анализа

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

В приведенной выше таблице категориальные признаки перекодированы как отдельный набор фиктивных переменных, процесс, называемый «фиктивным кодированием», который включает таблицу контрастных матриц. Некоторое программное обеспечение может автоматизировать виртуальное кодирование.

Что такое категориальные признаки?

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

Типы функций (переменных) см. в документе «Подготовка данных и проектирование функций» (опубликовано Electronics Industry Press) (выпуск ожидается в марте 2020 г.)

本书计划出版时间:2020年3月

В дальнейшем мы будем использовать набор данных о заработной плате, который содержит девятимесячные академические зарплаты доцентов, доцентов и профессоров в университетах США в 2008-09 гг.

Импорт данных

Сначала прочтите данные, в этом нет сомнений. (Данные размещены на экспериментальной платформе, указанной в этой статье, обратите внимание на публичный аккаунт WeChat и получите его указанным выше способом.)

import pandas as pd

data_csv = './csv/carData/Salaries.csv'
df = pd.read_csv(data_url, index_col=0)

df.head()

Конечно, данные могут храниться в различных типах файлов, данные могут храниться в файлах .xlsx, SPSS, SAS или STATA.

Создание фиктивных переменных

В этом разделе мы будем использовать pandasget_dummiesСоздайте фиктивные переменные. Во-первых, мы делим пополам признаки типаsexСоздайте фиктивные переменные, которые представляют собой переменные с двумя типами данных.

Во-вторых, мы также будем генерировать переменные сrankфиктивная переменная. Тем не менее, в этом фиктивном примере кода мы будем использовать переменные с тремя типами данных.

get_dummiesПодробный метод вызова метода показан на следующем рисунке:

Параметры, показанные на рисункеprefix_sep, вы можете изменить разделитель префикса в имени фиктивной переменной.

первый пример

Как показано в следующем коде, два именованныхFemaleиMaleновые возможности.

pd.get_dummies(df[‘sex’]).head()

В приведенном выше коде мы печатаем первые 5 строк. Используйте параметры нижеcolumns, который принимает список в качестве значения для создания фиктивных переменных на основе функций, содержащихся в списке.

больше примеров

df_dummies = pd.get_dummies(df, columns=['sex'])
df_dummies.head()

Вывод показывает,get_dummiesАвтоматически добавлять префикс "пол", подчеркивание_Новая переменная в качестве разделителя префиксов. Однако, если мы хотим изменить префикс и разделитель префикса, мы можем установить такие параметры:

df_dummies = pd.get_dummies(df, prefix='Gender', prefix_sep='.', columns=['sex'])
df_dummies.head()

Удалите префиксы и разделители из имен фиктивных переменных.

В коде ниже мы установим параметрыprefix_sephe prefixВ качестве значения задается пустая строка, чтобы удалить префикс и разделитель из имени функции.

 df_dummies = pd.get_dummies(df, prefix='', prefix_sep='', 
                            columns=['sex'])
df_dummies.head()

Создайте фиктивные переменные для трех типов функций

особенностьrankС тремя различными типами данных создайте для них фиктивные переменные. Код ниже такой же, как и в первом примере.

pd.get_dummies(df['rank']).head()

То есть мы берем колонку как единственный параметр и потом просто получаем DataFrame с 3-мя колонками.

Конечно, мы хотим поместить фиктивные переменные и исходные данные в один и тот же DataFrame или использоватьcolumnsПараметры, объявите трейт в виде списка:

df_dummies = pd.get_dummies(df, columns=['rank'])
df_dummies.head()

На изображении выше мы видим, что Pandas get_dummies() добавляет «ранг» в качестве префикса и подчеркивание в качестве разделителя префиксов. Далее мы изменим префикс и разделитель на «Rank» (верхний регистр) и «.» (точка).

df_dummies = pd.get_dummies(df, prefix='Rank', prefix_sep='.', 
                            columns=['rank'])
df_dummies.head()

Если префикс или разделитель не требуются, простоprefixиprefix_sepДобавьте в параметр пустую строку:

df_dummies = pd.get_dummies(df, prefix='', prefix_sep='', 
                            columns=['rank'])code>

Создайте фиктивные переменные для нескольких столбцов

В последнем примере мы собираемся фиктивно закодировать два столбца. В частности, это добавить список с двумя категориальными функциями, на самом деле это очень просто, мы можем следовать приведенному выше примеру кода:

df_dummies = pd.get_dummies(df, prefix='', prefix_sep='', 
                            columns=['rank', 'sex'])
df_dummies.head()

Если вы хотите добавить больше столбцов, вы можете добавить егоcolumnсписок параметров, больше примеров смотрите в кейсе онлайн-платформы (Примечание:Подпишитесь на общедоступную учетную запись WeChat: Lao Qi Classroom и ответьте на информацию в следующем формате: имя + номер мобильного телефона + «кейс», вы можете присоединиться к платформе онлайн-экспериментов и получить код и данные этой статьи (Дело: Создание фиктивных переменных).

в заключении

В этой статье мы узнали, как использовать Pandasget_dummies()метод создания фиктивных переменных. Кроме того, в scikit-learn также предусмотрен аналогичный метод, а именно кодирование OneHot.Подробности см. в соответствующих главах «Подготовка данных и проектирование функций».

Обратите внимание на публичный аккаунт WeChat: Lao Qi Classroom. Читайте подробные статьи, получайте превосходные навыки и наслаждайтесь блестящей жизнью.

WechatIMG6