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

bookКодування Категоріальних Ознак

Алгоритми кластеризації, такі як 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']]) 
question mark

Який метод кодування найкраще підходить для категоріальної ознаки на кшталт 'country' зі значеннями, наприклад, "USA", "Canada", та "Germany", де відсутній природний порядок?

Select the correct answer

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Awesome!

Completion rate improved to 2.94

bookКодування Категоріальних Ознак

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

Алгоритми кластеризації, такі як 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']]) 
question mark

Який метод кодування найкраще підходить для категоріальної ознаки на кшталт 'country' зі значеннями, наприклад, "USA", "Canada", та "Germany", де відсутній природний порядок?

Select the correct answer

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

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

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

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