Кодування категоріальних ознак
Ваш колега перетворив стовпці в наборі даних кредитів на числові значення за допомогою LabelEncoder(). Один він пропустив: credit_history, де зберігається кредитна історія заявника. Ви хочете створити дві версії набору даних. Одна використовуватиме LabelEncoder(), а інша — one-hot кодування, щоб порівняти результати. Матриця ознак доступна як credit. LabelEncoder() уже імпортовано, а pandas — як pd.
Ця вправа є частиною курсу
Проєктування робочих процесів машинного навчання в Python
Інструкції до вправи
- Закодуйте
credit_historyза допомогоюLabelEncoder(). - Додайте отриманий результат до початкового датафрейму.
- Створіть новий датафрейм, додавши one-hot «даммі»-стовпці до початкового фрейму.
- Підтвердьте, що one-hot кодування дає більше стовпців, ніж кодування мітками.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Create numeric encoding for credit_history
credit_history_num = ____.____(
credit[____])
# Create a new feature matrix including the numeric encoding
X_num = pd.concat([X, pd.Series(____)], ____)
# Create new feature matrix with dummies for credit_history
X_hot = pd.concat(
[X, ____.____(credit[____])], ____)
# Compare the number of features of the resulting DataFrames
print(X_hot.shape[____] > X_num.shape[____])