Кодирование категориальных признаков
Ваш коллега преобразовал столбцы в наборе данных о кредитах в числовые значения с помощью LabelEncoder(), однако пропустил один столбец: credit_history, в котором хранится кредитная история заявителя. Вы хотите создать две версии набора данных: одну с применением LabelEncoder(), другую — с унитарным кодированием (one-hot encoding) — для сравнения. Матрица признаков доступна вам в виде переменной credit. LabelEncoder() и pandas (как pd) уже загружены.
Это упражнение является частью курса
Проектирование рабочих процессов машинного обучения на Python
Инструкции к упражнению
- Закодируйте
credit_historyс помощьюLabelEncoder(). - Присоедините результат к исходному фрейму данных.
- Создайте новый фрейм данных, присоединив к исходному фрейму фиктивные переменные унитарного кодирования.
- Убедитесь, что унитарное кодирование даёт больше столбцов, чем кодирование меток.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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[____])