Модуль pandas в Python надає широкий спектр інструментів для роботи з даними. Одним з таких інструментів є функція `pd.get_dummies`)', яка дозволяє перетворити категоріальні змінні в Числові.
У реальному світі дані часто містять категоріальні змінні, які не можуть бути безпосередньо використані алгоритмами машинного навчання. Але за допомогою функції ' pd.get_dummies () ' можна перетворити ці змінні в Числові, що є необхідним для багатьох алгоритмів.
Як це працює? Функція ' pd.get_dummies () ' створює нові стовпці у вихідному наборі даних для кожного унікального значення категоріальної змінної. Потім для кожного рядка в вихідних даних встановлюється значення 1 у відповідному новому стовпці, якщо значення категоріальної змінної збігається. Якщо значення категоріальної змінної не збігається, то встановлюється значення 0.
Користь від використання функції ' pd.get_dummies () ' полягає в тому, що вона дозволяє працювати з категоріальними змінними без необхідності ручного кодування. Це зручно і економить час при проведенні аналізу даних і побудові моделей машинного навчання.
Що таке pd.get_dummies в pandas?
One-hot encoding-це процес, при якому кожне значення категоріального ознаки замінюється новим бінарним ознакою. Нова ознака буде дорівнює 1, якщо вихідний ознака приймає дане значення, і 0 в іншому випадку. Таким чином, one-hot encoding дозволяє використовувати категоріальні дані в алгоритмах машинного навчання, які вимагають числових входів.
pd.get_dummies приймає DataFrame або стовпець серії як вхідні дані і повертає новий DataFrame з двійковими ознаками. Вона автоматично визначає категоріальні ознаки, виходячи з їх типу даних, і застосовує one-hot encoding тільки до них.
При використанні pd.get_dummies слід враховувати, що вона може привести до збільшення розмірності даних, оскільки кожне значення категоріального ознаки замінюється на новий бінарний ознака. Це може бути небажано, якщо в даних присутні ознаки з великою кількістю унікальних значень.
Незважаючи на це, pd.get_dummies є зручним інструментом для обробки категоріальних даних в pandas, який може бути корисний в різних завданнях аналізу даних і машинного навчання.
| Оригінальний стовпець | Новий стовпець_значення1 | Новий стовпець_значення2 | Новий стовпець_значення3 |
|---|---|---|---|
| значення1 | 1 | 0 | 0 |
| значення2 | 0 | 1 | 0 |
| значення3 | 0 | 0 | 1 |
Принцип роботи функції pd.get_dummies у бібліотеці pandas
Коли ми застосовуємо функцію pd.get_dummies до стовпця з категоріальними значеннями, вона розділяє кожну унікальну категорію на окремий стовпець і присвоює йому значення 1, якщо воно відповідає даній категорії, і 0 в іншому випадку. Таким чином, кожен рядок у вихідному стовпці перетворюється на набір бінарних значень.
Для прикладу, розглянемо стовпець 'Color', в якому містяться значення:' Red',' Green','Blue'. Якщо ми застосуємо функцію pd.get_dummies до цього стовпця, ми отримаємо три нові стовпці: 'Color_Red', 'Color_Green', 'Color_Blue'. Якщо значення ' Color 'у вихідній таблиці дорівнює' Red', то в стовпці' Color_Red 'буде значення 1, а в стовпцях' Color_Green 'і' Color_Blue ' буде значення 0 і навпаки.
| Color | Color_Red | Color_Green | Color_Blue |
|---|---|---|---|
| Red | 1 | 0 | 0 |
| Green | 0 | 1 | 0 |
| Blue | 0 | 0 | 1 |
Таким чином, функція pd.get_dummies дозволяє перетворити категоріальні дані в вид, який може бути використаний для навчання алгоритмів машинного навчання. Вона спрощує роботу з категоріальними змінними і дозволяє використовувати їх в якості вхідних даних для моделей машинного навчання.
Як використовувати pd.get_dummies в pandas для створення фіктивних змінних?
Метод pd.get_dummies () у бібліотеці pandas дозволяє перетворити категоріальні змінні у фіктивні змінні. Фіктивна змінна, або» даммі-змінна", являє собою змінну, яка приймає значення 1, якщо елемент належить певній категорії, і 0 в іншому випадку. Перетворення категоріальних змінних у фіктивні змінні необхідне для роботи з алгоритмами машинного навчання та статистичними моделями, які не можуть працювати з текстовими даними.
Процес створення фіктивних змінних за допомогою pd.get_dummies () в pandas дуже простий. Вам просто потрібно передати стовпець або список стовпців із категоріальними змінними як аргумент функції, і вона поверне новий DataFrame із фіктивними змінними.
import pandas as pd
data = 'Розмір': ['Маленький', 'Середній', 'Великий',' Великий','Маленький'],
'Ціна': [10, 15, 20, 25, 30]>
df = pd.DataFrame(data)
dummies = pd.get_dummies(df['Колір'])
df_with_dummies = pd.concat([df, dummies], axis=1)
У цьому прикладі ми маємо вихідні дані, що містять стовпець "колір" із категоріальними змінними. Ми використовуємо pd.get_dummies (), щоб перетворити цей стовпець у фіктивні змінні та зберегти результат у Новий dataframe dummies . Потім ми поєднуємо оригінальний DataFrame з новим DataFrame фіктивних змінних за допомогою методу pd.concat() .
Результат буде виглядати наступним чином:
| Колір | Розмір | Ціна | Червоний | Зелений | Синій | |
|---|---|---|---|---|---|---|
| 0 | Червоний | Малий | 10 | 1 | 0 | 0 |
| 1 | Зелений | Середній | 15 | 0 | 1 | 0 |
| 2 | Синій | Великий | 20 | 0 | 0 | 1 |
| 3 | Зелений | Великий | 25 | 0 | 1 | 0 |
| 4 | Червоний | Малий | 30 | 1 | 0 | 0 |
Тепер у нас є стовпці "червоний", "зелений" та "Синій", які є фіктивними змінними, що представляють значення з оригінального стовпця "Колір". Рядки, що відповідають значенням "Червоний", мають значення 1 у стовпці" червоний " та 0 у решті стовпців фіктивних змінних. Аналогічно для значень "зелений"і " синій".
Тепер ви можете використовувати цей новий DataFrame з фіктивними змінними для подальшого аналізу або моделювання даних. pd.get_dummies () - потужний інструмент для роботи з категоріальними змінними в pandas, який спрощує процес створення фіктивних змінних і робить їх легко інтерпретованими для алгоритмів машинного навчання.
Переваги використання pd.get_dummies в pandas
1. Простота використання: pd.get_dummies дуже простий у використанні і дозволяє легко перетворювати категоріальні змінні в Числові. Немає необхідності писати складні цикли або умови, досить застосувати метод до потрібного стовпця датафрейма і отримати нові числові стовпці з перетвореними значеннями.
2. Гнучкість: pd.get_dummies дозволяє задавати різні параметри для перетворення категоріальних змінних. Наприклад, можна вказати префікс для створення нових стовпців або задати стовпець-індикатор наявності пропущених значень. Це дає можливість налаштовувати перетворення під конкретні потреби проекту.
3. Додавання інформації: pd.get_dummies створює нові стовпці з числовими значеннями для кожного унікального значення категоріальної змінної. Це дозволяє зберегти всю інформацію про категорії, а не втрачати її при перетворенні.
4. Підтримка різних типів змінних: pd.get_dummies дозволяє перетворювати не тільки рядки, але й цілі значення або навіть часові ряди. Це робить метод корисним для роботи з різними типами даних.
5. Зручність спільного використання з іншими інструментами: pd.get_dummies добре інтегрується з іншими інструментами та методами бібліотеки pandas. Наприклад, даний метод можна легко комбінувати з методами для попередньої обробки даних або поділу датасета на навчальну і тестову вибірки.
Використання pd.get_dummies в pandas дозволяє ефективно працювати з категоріальними даними і готувати їх для навчання моделей машинного навчання. Цей метод значно спрощує процес перетворення категоріальних змінних в Числові і дозволяє зберегти всю інформацію про категорії, що дуже важливо для отримання точних моделей.
Обмеження та особливості pd.get_dummies в pandas
Необхідно враховувати деякі обмеження та особливості функції pd.get_dummies () при роботі з даними в pandas. Розглянемо їх детальніше:
1. Пропущені значення
Функція pd.get_dummies () не працює з відсутніми значеннями у вихідних даних. Якщо в початковому датасете присутні пропущені значення, необхідно попередньо обробити їх, заповнивши або видаливши.
2. Стовпці категорій і стовпці з пропущеними значеннями
При використанні функції pd.get_dummies () створюються нові стовпці для кожної категорії з вихідного стовпця. Якщо в вихідних даних є стовпці з пропущеними значеннями, то створюються відповідні нові стовпці для кожної категорії, а також стовпець для пропущених значень.
3. Створення бінарних змінних
Функція pd.get_dummies () створює двійкові змінні, тобто нові стовпці міститимуть лише значення 0 або 1. За замовчуванням перша категорія проходить через dummy coding. Якщо потрібно уникнути цього, необхідно використовувати параметр drop_first=True.
4. Кодування декількох стовпців
Функція pd.get_dummies () дозволяє кодувати не лише один стовпець, але й кілька стовпців одночасно. У цьому випадку нові стовпці будуть створені для кожного унікального значення у всіх переданих стовпцях.
5. Перейменування стовпців
За замовчуванням стовпці, створені функцією pd.get_dummies (), мають імена виду «названіе_ісходного_столбца_значеніе_категорії». Якщо потрібно перейменувати стовпці, можна скористатися параметром prefix.
Враховуючи всі ці особливості, функція pd.get_dummies () є потужним інструментом для роботи з категоріальними даними в pandas, дозволяючи легко і ефективно створювати нові уявлення даних і включати їх в аналіз.