Преобразования признаков
Вы обсуждаете кредитный набор данных с менеджером банка. По её мнению, наиболее надёжные заявки на кредит, как правило, относятся к среднему диапазону сумм. Слишком низкие или слишком высокие значения указывают на повышенный риск. Это означает, что между данной переменной и классом может существовать нелинейная зависимость. Вы хотите проверить эту гипотезу: построить нелинейное преобразование признака, а затем оценить, какой из двух признаков лучше предсказывает класс — с помощью 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.____()