Як використовувати pandas get dummies – pd.get_dummies
Часто в статистиці набори даних, з якими ми працюємо, включають категоріальні змінні .
Це змінні, які приймають імена або мітки. Приклади:
- Сімейний стан («одружений», «неодружений», «розлучений»)
- Статус куріння («курить», «не курить»)
- Колір очей («блакитний», «зелений», «горіховий»)
- Рівень освіти (наприклад, «середня школа», «ступінь бакалавра», «ступінь магістра»)
Налаштовуючи алгоритми машинного навчання (наприклад, лінійну регресію , логістичну регресію ,випадкові ліси тощо), ми часто перетворюємо категоріальні змінні на фіктивні змінні , які є числовими змінними, які використовуються для категоричного представлення даних.
Наприклад, припустімо, що у нас є набір даних, що містить категоріальну змінну Стать . Щоб використовувати цю змінну як предиктор у регресійній моделі, її спочатку необхідно перетворити на фіктивну змінну.
Щоб створити цю фіктивну змінну, ми можемо вибрати одне зі значень (“Чоловічий”), щоб представляти 0, а інше значення (“Жіночий”) представляти 1:
Як створити фіктивні змінні в Pandas
Щоб створити манекени для змінної в pandas DataFrame, ми можемо використати функцію pandas.get_dummies() , яка використовує такий базовий синтаксис:
pandas.get_dummies(data, prefix=None, columns=None, drop_first=False)
золото:
- data : ім’я pandas DataFrame
- prefix : рядок, який потрібно додати до початку нового стовпця фіктивної змінної
- columns : назва стовпців, які потрібно перетворити на фіктивну змінну
- drop_first : видаляти чи ні перший стовпець фіктивної змінної
Наступні приклади показують, як використовувати цю функцію на практиці.
Приклад 1: Створення однієї фіктивної змінної
Припустімо, що у нас є наступні pandas DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' income ': [45, 48, 54, 57, 65, 69, 78], ' age ': [23, 25, 24, 29, 38, 36, 40], ' gender ': ['M', 'F', 'M', 'F', 'F', 'F', 'M']}) #view DataFrame df income age gender 0 45 23 M 1 48 25 F 2 54 24 M 3 57 29 F 4 65 38 F 5 69 36 F 6 78 40 M
Ми можемо використовувати функцію pd.get_dummies() , щоб перетворити стать на фіктивну змінну:
#convert gender to dummy variable p.d. get_dummies (df, columns=[' gender '], drop_first= True ) income age gender_M 0 45 23 1 1 48 25 0 2 54 24 1 3 57 29 0 4 65 38 0 5 69 36 0 6 78 40 1
Стовпець статі тепер є фіктивною змінною, де:
- Значення 0 означає «Жіночий»
- Значення 1 означає «Чоловік»
Приклад 2: Створення кількох фіктивних змінних
Припустімо, що у нас є наступні pandas DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' income ': [45, 48, 54, 57, 65, 69, 78], ' age ': [23, 25, 24, 29, 38, 36, 40], ' gender ': ['M', 'F', 'M', 'F', 'F', 'F', 'M'], ' college ': ['Y', 'N', 'N', 'N', 'Y', 'Y', 'Y']}) #view DataFrame df income age gender college 0 45 23 M Y 1 48 25 F N 2 54 24 M N 3 57 29 F N 4 65 38 F Y 5 69 36 F Y 6 78 40 M Y
Ми можемо використовувати функцію pd.get_dummies() , щоб перетворити стать і коледж у фіктивні змінні:
#convert gender to dummy variable p.d. get_dummies (df, columns=[' gender ', ' college '], drop_first= True ) income age gender_M college_Y 0 45 23 1 1 1 48 25 0 0 2 54 24 1 0 3 57 29 0 0 4 65 38 0 1 5 69 36 0 1 6 78 40 1 1
Стовпець статі тепер є фіктивною змінною, де:
- Значення 0 означає «Жіночий»
- Значення 1 означає «Чоловік»
І стовпець коледжу тепер є фіктивною змінною, де:
- Значення 0 означає «Ні» університету
- Значення 1 означає «Так» коледжу
Додаткові ресурси
Як використовувати фіктивні змінні в регресійному аналізі
Що таке пастка фіктивної змінної?