Кодування Категоріальних Ознак
Алгоритми кластеризації, такі як K-means, потребують числових даних. Категоріальні ознаки необхідно перетворити у числову форму за допомогою кодування. Ви ознайомитеся з порядковим та one-hot кодуванням.
Порядкове кодування
Порядкове кодування перетворює впорядковані категорії у числові значення, зберігаючи їх ранг. Наприклад, порядкове кодування стовпця 'education_level'
перетворить його значення з "High School"
, "Bachelor's"
, "Master's"
, 'PhD'
на 0
, 1
, 2
, 3
.
Це передбачає осмислену числову різницю між закодованими значеннями, що не завжди є коректним.
from sklearn.preprocessing import OrdinalEncoder
education_levels = [['High School',
"Bachelor's",
"Master's",
"PhD"]]
encoder = OrdinalEncoder(categories=education_levels)
df[['education_encoded']] = encoder.fit_transform(df[['education_level']])
One-hot кодування
One-hot кодування перетворює номінативні (невпорядковані) категорії у бінарні стовпці, де кожна категорія стає новим стовпцем. Для ознаки з n
категоріями зазвичай створюється n
стовпців — один стовпець дорівнює 1
для відповідної категорії, інші — 0
. Однак для уникнення надлишковості достатньо лише n-1
стовпців.
Наприклад, стовпець 'color'
зі значеннями 'red'
, 'blue'
та 'green'
можна закодувати лише двома стовпцями: 'color_red'
та 'color_blue'
. Якщо у рядку обидва значення дорівнюють 0
, це означає, що колір — 'green'
. Видалення надлишкового стовпця здійснюється через параметр drop='first'
:
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(drop='first', sparse=False)
encoded = encoder.fit_transform(df[['color']])
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 2.94
Кодування Категоріальних Ознак
Свайпніть щоб показати меню
Алгоритми кластеризації, такі як K-means, потребують числових даних. Категоріальні ознаки необхідно перетворити у числову форму за допомогою кодування. Ви ознайомитеся з порядковим та one-hot кодуванням.
Порядкове кодування
Порядкове кодування перетворює впорядковані категорії у числові значення, зберігаючи їх ранг. Наприклад, порядкове кодування стовпця 'education_level'
перетворить його значення з "High School"
, "Bachelor's"
, "Master's"
, 'PhD'
на 0
, 1
, 2
, 3
.
Це передбачає осмислену числову різницю між закодованими значеннями, що не завжди є коректним.
from sklearn.preprocessing import OrdinalEncoder
education_levels = [['High School',
"Bachelor's",
"Master's",
"PhD"]]
encoder = OrdinalEncoder(categories=education_levels)
df[['education_encoded']] = encoder.fit_transform(df[['education_level']])
One-hot кодування
One-hot кодування перетворює номінативні (невпорядковані) категорії у бінарні стовпці, де кожна категорія стає новим стовпцем. Для ознаки з n
категоріями зазвичай створюється n
стовпців — один стовпець дорівнює 1
для відповідної категорії, інші — 0
. Однак для уникнення надлишковості достатньо лише n-1
стовпців.
Наприклад, стовпець 'color'
зі значеннями 'red'
, 'blue'
та 'green'
можна закодувати лише двома стовпцями: 'color_red'
та 'color_blue'
. Якщо у рядку обидва значення дорівнюють 0
, це означає, що колір — 'green'
. Видалення надлишкового стовпця здійснюється через параметр drop='first'
:
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(drop='first', sparse=False)
encoded = encoder.fit_transform(df[['color']])
Дякуємо за ваш відгук!