Вот конвейер, объясняющий интеллектуальный анализ данных, преобразование для нормализации и регрессии (с анализом производительности).
Теперь давайте погрузимся в другую категорию обучения с учителем — регрессию, где выходная переменная является непрерывной и числовой. Существует четыре распространенных типа моделей регрессии: линейная, лассо, гребенчатая регрессия, полиномиальная.
Исследование и предварительная обработка
Этот проект направлен на использование регрессионных моделей для прогнозирования оценок счастья стран на основе других факторов «ВВП на душу населения», «Социальная поддержка», «Продолжительность здоровой жизни», «Свобода делать жизненный выбор», «Щедрость» и «Восприятие коррупции».
Я использовал набор данных «World Happiness Report» на Kaggle, который содержит 156 записей и 9 функций.
Примените гистограмму, чтобы понять распределение каждой функции. Как показано ниже, «социальная поддержка», по-видимому, сильно смещена влево, в то время как «щедрость» и «восприятие коррупции» смещены вправо, что дает информацию о методах разработки признаков для трансформации.
Мы также можем объединить гистограмму с приведенной ниже мерой асимметрии, чтобы количественно определить, сильно ли отклонена функция влево или вправо.
np.sqrt применяется для преобразования искаженных вправо характеристик — «Щедрость» и «Восприятие коррупции». В результате обе функции становятся более нормально распределенными.
np.log(2-df['Социальная поддержка']) применяется для преобразования функции с левым перекосом. И асимметрия значительно уменьшается с 1,13 до 0,39.
sns.pairplot(df) можно использовать для визуализации корреляция между сущностями после преобразования. Диаграммы рассеивание предполагают, что «ВВП на душу населения», «Социальная поддержка», «Продолжительность здоровой жизни» коррелируют с целевой характеристикой «Балл» и, следовательно, могут иметь более высокие значения коэффициентов. Давайте выясним, так ли это, в следующем разделе.
Поскольку методы регуляризации манипулируют значением коэффициентов, это делает производительность модели чувствительной к масштабу признаков. Поэтому функции должны быть преобразованы в один и тот же масштаб. Я экспериментировал с тремя шкалами — StandardScaler, MinMaxScaler и RobustScaler.
Как видите, масштабы не повлияют на распределение и форму данных, но изменят диапазон данных.
Регрессии и сравнения
Теперь давайте сравним три приведенные ниже модели линейной регрессии — линейную, гребенчатую и лассо.
Следующий шаг — поэкспериментировать с тем, как разные значения лямбда (альфа в scikit-learn) влияют на модели. Что еще более важно, как меняются значения важности признаков и коэффициентов при изменении значения альфа с 0,0001 до 1.
На основе значений коэффициентов, полученных из моделей Лассо и Риджа, «ВВП на душу населения», «Социальная поддержка», «Продолжительность здоровой жизни» оказались тремя наиболее важными характеристиками. Это согласуется с полученные результаты предыдущие графики разброса, предполагая, что они являются основными движущими силами Country Happy Score.
Параллельное сравнение также показывает, что увеличение значений альфа влияет на Лассо и Ридж на разных уровнях, функции Лассо удаляются в большей степени. Вот почему Лассо часто выбирают для выбора функций.
Кроме того, введены полиномиальные функции для улучшения базовой линейной регрессии, увеличив количество функций с 6 до 27.
# применяет полиномиальные эффекты
из склерн.предварительная обработка импорт Полиномиальные характеристики pf = Полиномиальные функции(степень = 2, include_bias = ЛОЖЬ)
X_train_poly = пф.fit_transform(X_train)
X_test_poly = пф.fit_transform(X_тест)
Посмотрите на их распределение после полиномиального преобразования.
Оценка модели
Последний шаг: оцените и сравните производительность модели Lasso vs Peak до и после полиномиального эффекта. В приведенном ниже коде я создал четыре модели:
- l2: гребень без полиномиальных признаков
- l2_poly: герб с полиномиальными функциями
- l1: лассо без полиномиальных признаков
- l1_poly: лассо с полиномиальными функциями
Обычно используемые показатели оценки регрессионной модели — это MAE, MSE, RMSE и R-квадрат — подробное объяснение см. в моей статье «Практическое руководство по линейной регрессии». Здесь я использовал MSE (квадратичная ошибка средний) для оценки производительности модели.
1) Сравнение Ridge и Lasso на графике показывает, что они имеют одинаковую точность, когда значения альфа низкие, но Lasso значительно ухудшается, когда альфа ближе к 1.
2) Сравнивая с полиномиальным эффектом или без него на графике, мы можем сказать, что полиномиальный эффект в целом снижает MSE, следовательно, улучшает производительность модели. Этот эффект более значителен в регрессии Риджа, когда альфа увеличивается до 1, и более значителен в регрессии Лассо, когда альфа ближе к 0,0001.
Однако, хотя полиномиальное преобразование улучшает производительность регрессионных моделей, оно усложняет интерпретируемость модели — трудно отличить основные движущие силы модели от полиномиальной регрессии. Меньше ошибок не всегда гарантирует лучшую модель, и все дело в поиске правильного баланса между предсказуемостью и интерпретируемостью на основе целей проекта.