Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Кодування Категоріальних Змінних | Техніки Трансформації Даних
Попередня Обробка Даних та Створення Ознак

bookКодування Категоріальних Змінних

Категоріальні змінні — це ознаки у ваших даних, які представляють категорії, а не числові значення. Прикладами є кольори, такі як "red", "green", і "blue", або мітки, такі як "yes" і "no". Алгоритми машинного навчання потребують числових вхідних даних, тому перед використанням у моделях ці категоріальні змінні необхідно перетворити у числовий формат. Цей процес називається кодуванням, і він забезпечує можливість алгоритмам коректно інтерпретувати та навчатися на даних.

Note
Визначення

One-hot кодування створює новий бінарний стовпець для кожної категорії категоріальної змінної. Кожне спостереження отримує 1 у стовпці, що відповідає його категорії, і 0 в інших стовпцях.

12345678910111213
import seaborn as sns import pandas as pd # Load Titanic dataset data = sns.load_dataset("titanic") # One-hot encode the 'embarked' column embarked_encoded = pd.get_dummies(data["embarked"], prefix="embarked") # Concatenate with original dataset data = pd.concat([data, embarked_encoded], axis=1) print(data[["embarked", "embarked_C", "embarked_Q", "embarked_S"]].head())
copy
Note
Визначення

Кодування міток призначає кожній унікальній категорії у змінній ціле число, перетворюючи текстові мітки на числа.

123456789101112
import seaborn as sns import pandas as pd from sklearn.preprocessing import LabelEncoder # Load Titanic dataset data = sns.load_dataset("titanic") # Label encode the 'sex' column encoder = LabelEncoder() data["sex_encoded"] = encoder.fit_transform(data["sex"]) print(data[["sex", "sex_encoded"]].head())
copy
Note
Визначення

Порядкове кодування призначає впорядковані цілі значення категоріям на основі їх природного ранжування. Цей метод зберігає властивий порядок у порядкових категоріальних змінних, таких як рівні освіти ("high school", "bachelor", "master", "doctorate").

123456789101112131415161718
import seaborn as sns import pandas as pd # Load Titanic dataset data = sns.load_dataset("titanic") # Define the order of passenger classes: First < Second < Third class_order = ["First", "Second", "Third"] # Apply ordered categorical encoding data["class_encoded"] = pd.Categorical( data["class"], categories=class_order, ordered=True ).codes + 1 # +1 to make classes start from 1 instead of 0 # Display sample output print(data[["class", "class_encoded"]].head())
copy
Note
Примітка

Будьте уважні під час кодування категоріальних змінних. One-hot кодування може призвести до пастки фіктивних змінних — ситуації, коли ознаки сильно корелюють між собою, що може заплутати деякі моделі. Щоб уникнути цього, можна видалити одну з фіктивних колонок. Label кодування накладає порядкову залежність між категоріями, що може бути недоречним для номінальних даних.

question mark

Який метод кодування є найбільш доречним для категоріальної змінної без внутрішнього порядку, наприклад, "Color"?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 2

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 8.33

bookКодування Категоріальних Змінних

Свайпніть щоб показати меню

Категоріальні змінні — це ознаки у ваших даних, які представляють категорії, а не числові значення. Прикладами є кольори, такі як "red", "green", і "blue", або мітки, такі як "yes" і "no". Алгоритми машинного навчання потребують числових вхідних даних, тому перед використанням у моделях ці категоріальні змінні необхідно перетворити у числовий формат. Цей процес називається кодуванням, і він забезпечує можливість алгоритмам коректно інтерпретувати та навчатися на даних.

Note
Визначення

One-hot кодування створює новий бінарний стовпець для кожної категорії категоріальної змінної. Кожне спостереження отримує 1 у стовпці, що відповідає його категорії, і 0 в інших стовпцях.

12345678910111213
import seaborn as sns import pandas as pd # Load Titanic dataset data = sns.load_dataset("titanic") # One-hot encode the 'embarked' column embarked_encoded = pd.get_dummies(data["embarked"], prefix="embarked") # Concatenate with original dataset data = pd.concat([data, embarked_encoded], axis=1) print(data[["embarked", "embarked_C", "embarked_Q", "embarked_S"]].head())
copy
Note
Визначення

Кодування міток призначає кожній унікальній категорії у змінній ціле число, перетворюючи текстові мітки на числа.

123456789101112
import seaborn as sns import pandas as pd from sklearn.preprocessing import LabelEncoder # Load Titanic dataset data = sns.load_dataset("titanic") # Label encode the 'sex' column encoder = LabelEncoder() data["sex_encoded"] = encoder.fit_transform(data["sex"]) print(data[["sex", "sex_encoded"]].head())
copy
Note
Визначення

Порядкове кодування призначає впорядковані цілі значення категоріям на основі їх природного ранжування. Цей метод зберігає властивий порядок у порядкових категоріальних змінних, таких як рівні освіти ("high school", "bachelor", "master", "doctorate").

123456789101112131415161718
import seaborn as sns import pandas as pd # Load Titanic dataset data = sns.load_dataset("titanic") # Define the order of passenger classes: First < Second < Third class_order = ["First", "Second", "Third"] # Apply ordered categorical encoding data["class_encoded"] = pd.Categorical( data["class"], categories=class_order, ordered=True ).codes + 1 # +1 to make classes start from 1 instead of 0 # Display sample output print(data[["class", "class_encoded"]].head())
copy
Note
Примітка

Будьте уважні під час кодування категоріальних змінних. One-hot кодування може призвести до пастки фіктивних змінних — ситуації, коли ознаки сильно корелюють між собою, що може заплутати деякі моделі. Щоб уникнути цього, можна видалити одну з фіктивних колонок. Label кодування накладає порядкову залежність між категоріями, що може бути недоречним для номінальних даних.

question mark

Який метод кодування є найбільш доречним для категоріальної змінної без внутрішнього порядку, наприклад, "Color"?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 2
some-alt