НачатьНачать бесплатно

Преобразования признаков

Вы обсуждаете кредитный набор данных с менеджером банка. По её мнению, наиболее надёжные заявки на кредит, как правило, относятся к среднему диапазону сумм. Слишком низкие или слишком высокие значения указывают на повышенный риск. Это означает, что между данной переменной и классом может существовать нелинейная зависимость. Вы хотите проверить эту гипотезу: построить нелинейное преобразование признака, а затем оценить, какой из двух признаков лучше предсказывает класс — с помощью SelectKBest() и метрики chi2(), которые уже загружены.

Данные доступны в виде pandas DataFrame под названием credit, а столбец с классом называется class. Библиотеки pandas и numpy уже загружены как pd и np соответственно.

Это упражнение является частью курса

Проектирование рабочих процессов машинного обучения на Python

Посмотреть курс

Инструкции к упражнению

  • Определите функцию, которая преобразует числовой вектор, вычисляя абсолютное отклонение каждого значения от среднего значения вектора.
  • Примените это преобразование к столбцу credit_amount набора данных и сохраните результат в новый столбец с именем diff.
  • Создайте объект SelectKBest() для выбора одного из двух столбцов — credit_amount или diff — с использованием метрики chi2().
  • Изучите полученные результаты.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Function computing absolute difference from column mean
def abs_diff(x):
    return ____(x-____)

# Apply it to the credit amount and store to new column
credit['diff'] = ____

# Create a feature selector with chi2 that picks one feature
sk = ____(chi2, ____)

# Use the selector to pick between credit_amount and diff
sk.fit(____, credit['class'])

# Inspect the results
sk.____()
Редактировать и запускать код