Выбор функции с использованием fast_ml
Введение
В большинстве случаев ведущих специалистов по обработке данных выделяют две вещи: Создание функций и Выбор функций. то есть создание функций, которые позволяют получить более глубокое / скрытое представление о бизнесе или клиенте, а затем сделать правильный выбор, какие функции выбрать для вашей модели.
Важность выбора функций в машинном обучении
Качество модели машинного обучения зависит от ваших данных - мусор на входе, мусор на выходе. (Мусор здесь будет означать плохие данные / шум в данных).
После обширного этапа проектирования функций вы получите большое количество функций. Вы не можете использовать все функции своей модели. Вам было бы интересно добавить в модель только те важные функции или удалить те, которые не имеют предсказательной силы.
Этот пост предназначен для определения всех тех функций, которые являются постоянными. Он бывает двух видов:
- Постоянная функция: одинаковое значение во всех записях.
- Квазипостоянный признак: одно из значений доминирует 99,9%.
Давайте разберемся в этом подробнее
1. Постоянное значение (одинаковое значение во всех записях)
Как показано на изображении в качестве примера, у вас есть только Toyota в качестве значения в Car Make для всех записей в ваших данных. Если использовать эту функцию в обучении, ваша модель машинного обучения не даст ничего полезного. Вам лучше отказаться от этой функции. Точно так же таких функций может быть намного больше, и вам нужен более автоматический способ определения этого.
1) Используйте функции get_constant_features
, чтобы получить все постоянные функции.
2) Сохраните все постоянные функции в виде списка для удаления из набора данных.
3) Удалите все такие объекты из набора данных. Мы видим, что количество функций упало с 301 до 268.
2. Квазиконстанта (одно из значений доминирует ~ 99% записей)
Как показано на изображении в качестве примера - в ваших данных на «Камри» приходится 99,9% записей. Если использовать эту функцию в обучении, ваша модель машинного обучения не даст ничего полезного. Или, что еще хуже, ваша модель может извлекать уроки из крайних случаев и вызывать переоснащение. Вам лучше отказаться от этой функции. Точно так же таких функций может быть намного больше, и вам нужен более автоматический способ определения этого.
1) Используйте функции get_constant_features
, чтобы получить все постоянные функции.
- порог: пороговое значение для определения квази-степени данных, которые вы хотите удалить. 99%, 99,9%, 98% и т. Д.
2) Сохраните все квазипостоянные функции в виде списка для удаления из набора данных.
3) Удалите все такие объекты из набора данных. Мы видим, что количество функций упало до 123 с 268.
Резюме
Фрагмент кода для функций констант и квазиконстант:
from fast_ml.utilities import display_all from fast_ml.feature_selection import get_constant_features # Use the function to get the results in dataframe constant_features = get_constant_features(df) display_all(constant_features) # All the constant features stored in a list constant_features_list = constant_features['Var'].to_list() # Drop all the constant features from the dataset df.drop(columns = constant_features_list, inplace=True)
Спасибо за чтение!!
- Если вам понравилось, подписывайтесь на меня в среднем, чтобы узнать больше.
- Заинтересованы в сотрудничестве? Давайте подключимся к Linkedin.
- Пожалуйста, не стесняйтесь писать свои мысли / предложения / отзывы.
- Ссылка на Kaggle
- Fast_ml ссылка
Ноутбук с полнофункциональным кодом доступен по следующему адресу: