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

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

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