BI Consult
  • Перейти на QlikSense
  • Перейти на QlikView
  • Перейти на Tableau
  • Перейти на Power BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • EN
  • Отправить сообщение
  • Главная
  • Продукты Business-Qlik
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • Энергетика
    • Фрод-менеджмент
    • E-Commerce
    • Фармацевтика
    • Построение хранилища данных
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • Process Mining
    • Сквозная аналитика
  • Платформы
    • Qlik Sense
    • QlikView
    • Tableau
    • Microsoft Power BI
    • Геоаналитика Qlik GeoAnalytics
    • Qlik NPrinting - рассылка отчетности QlikView/Qlik Sense
    • KliqPlanning Suite - бюджетирование в QlikView
    • ATK BiView-1C Коннектор (для Qlik/Tableau/PowerBI)
    • QlikView/Qlik Sense SAP Коннектор
    • QlikView R-Коннектор
    • Qlik Web Connectors - коннектор Google, Facebook, Twitter
    • Vizlib Qlik Sense extentions (библиотека экстеншнов)
    • Библиотека extention для Qlik
    • Qlik Alerting
    • Qlik Data Integration Platform - создание Data Lake
    • Qlik Data Catalog решение для Data Governance
    • ATK BiView документация
  • Услуги
    • Консалтинг
    • Пилотный проект
    • План обучения и сертификации
    • Подготовка специалистов по Qlik
    • Бесплатное обучение Qlik
    • Сертификация Qlik
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • Аудит приложений Qlik и Tableau
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс по Qlik Sense
    • Учебный курс по Tableau
    • Учебный курс по Microsoft Power BI
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс для бизнес-аналитиков
    • Учебный курс по NPrinting
    • Учебный курс по BigQuery
    • Учебный курс по Azure Databricks
    • Учебный курс по DWH
    • Учебный курс по Data Governance
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс администратора Qlik Sense
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

QlikView / Qlik Sense

  • Qlik Sense
    • Возможности Qlik Sense
    • Qlik Sense Enterprise
    • Qlik Sense Desktop
    • Qlik Sense Saas облачная инфраструктура для компаний
    • Источники данных и хранение данных
    • Безопасность и разграничение прав доступа
    • Масштабируемость
    • Политика лицензирования Qlik Sense
    • Qlik Sense November 2021: новые возможности
    • Географические карты в Qlik Sense
    • Qlik Sense Cloud / Qlik Sense в облаке
    • Учебное пособие по Qlik Sense
  • QlikView
    • Архитектура
    • Отличия QlikView от традиционных BI-систем
    • Политика лицензирования QlikView
    • Системные требования и сайзинг
    • Отличие от OLAP-систем
    • QlikView on Mobile
    • Qlik и Big Data
    • Демонстрационные примеры
    • QlikView в "облаке" (Amazon) / QlikView in the cloud
    • Интеграция QlikView с Microsoft SharePoint
    • Учебное пособие по QlikView
    • Что такое QlikView Publisher
    • QlikView Extranet Server и дистрибуция отчетности внешним пользователям
  • Qlik Data Catalog
  • Qlik Alerting
  • Qlik Data Integration Platform
  • Add-ons для QlikView
    • Vizlib Qlik Sense extentions (библиотека экстеншнов)
    • QlikView/Qlik Sense ATK BiView-1C Коннектор
    • Документация ATK BiView
    • Qlik NPrinting
    • Геоаналитика Qlik GeoAnalytics
    • GeoQlik
    • KliqPlanning Suite
    • QlikView/Qlik Sense SAP Коннектор
    • QlikView R-Коннектор
    • Qlik Web Connectors
    • QlikView Cognos TM1 Коннектор
    • Визуализация графов в Qlik Sense с помощью Ogma / Linkurious
  • Учебный курс по Qlik Sense

Tableau

  • Tableau
    • Tableau Desktop
    • Tableau Server
    • Tableau Prep
    • Технологии
    • Источники данных Tableau
    • Безопасность в Tableau
    • Политика лицензирования
    • Tableau 2021: новые возможности
    • Сравнение продуктов Tableau (Desktop, Server, Online, Public)
    • Демонстрационные примеры
    • Учебный портал Tableau
    • Коробочное решение "Мониторинг Tableau Server"
    • Чем отличаются Tableau Reader и Viewer?
  • Учебный курс по Tableau

Другое

  • Microsoft Power BI
    • Power BI Desktop
    • Power BI Report Server
    • Отраслевые решения Microsoft Power BI
    • Политика лицензирования Microsoft Power BI
    • Power BI Mobile
    • Учебные курсы Microsoft Power BI
    • Архитектура Power BI
    • Обработка данных в Power BI
    • Аудит системы Power BI
  • Учебный курс по Microsoft Power BI
  • Alteryx
    • Alteryx Designer
    • Инструменты Alteryx Designer
    • Alteryx Server
    • Alteryx Analytics Gallery
    • Alteryx. Создание приложения, workflow, ETL
  • Data Engeneering
    • Создание Data Lake
    • Создание Data Warehouse
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы » Учебный курс по Data Science (ML, AI)

Гребневая(ридж) регрессия и регрессия Лассо и их реализация с помощью Python

В этой статье я расскажу вам о гребневой регрессии и регрессии Лассо в машинном обучении и о том, как реализовать ее с помощью языка программирования Python.

Гребневая(ридж) модель регрессии и модель регрессии Лассо – это регуляризованные линейные модели, хороший способ уменьшить переобучение и упорядочить модель: чем меньше у нее степеней свободы, тем сложнее будет переобучить данные. Простой способ регуляризации полиномиальной модели – уменьшить количество степеней полинома.

Для линейной модели регуляризация обычно выполняется путем ограничения весов модели. А сейчас мы рассмотрим гребневую регрессию и регрессию Лассо, которые реализуют различные способы ограничения весов.

 

Гребневая (ридж) регрессия

Гребневая(ридж) регрессия – это регуляризованная версия линейной регрессии. Она заставляет алгоритм обучения не только соответствовать данным, но и сохранять веса модели как можно меньшими.

Обратите внимание, что срок начисления следует добавлять к функции затрат только во время обучения. После обучения модели вы хотите использовать нерегулируемую меру производительности для оценки производительности модели.

 

Регрессия Лассо

Наименьшее абсолютное сжатие и регрессия оператора выбора (обычно называется регрессия Лассо) – это еще одна регуляризованная версия линейной регрессии: так же, как пиковая регрессия, она добавляет член регуляризации к функции стоимости, но использует норму ℓ1 весового вектора вместо половины квадрата нормы ℓ2.

 

Гребневая (ридж) регрессия и регрессия Лассо с Python

Как и в других задачах, в этой задаче, чтобы показать реализацию гребневой регрессии и регрессии Лассо с Python, я начну с импорта необходимых пакетов и модулей Python:

 

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

 

А теперь давайте импортируем данные, проведем очистку и посмотрим, как выглядят данные, с которыми мы собираемся работать. Вы можете скачать набор данных, который я использую в этой задаче, отсюда:

 

data = pd.read_csv("Advertising.csv")
print(data.head())

 

Результат:

   Unnamed: 0     TV  Radio  Newspaper  Sales

0           1  230.1   37.8       69.2   22.1

1           2   44.5   39.3       45.1   10.4

2           3   17.2   45.9       69.3    9.3

3           4  151.5   41.3       58.5   18.5

4           5  180.8   10.8       58.4   12.9

 

Теперь удалим безымянный столбец:

 

data.drop(["Unnamed: 0"], axis=1, inplace=True)

 

Сейчас у нас всего три рекламных медиа, и наша целевая переменная – продажи. Давайте посмотрим, как каждая переменная влияет на продажи, и для этого создадим диаграмму рассеяния. Сначала мы создаем вспомогательную функцию для построения диаграммы рассеяния:

 

def scatter_plot(feature, target):
    plt.figure(figsize=(16, 18))
    plt.scatter(data[feature],
                data[target],
                c='black'
                )
    plt.xlabel("Money Spent on {} ads ($)".format(feature))
    plt.ylabel("Sales ($k)")
    plt.show()
scatter_plot("TV", "Sales")
scatter_plot("Radio", "Sales")
scatter_plot("Newspaper", "Sales")

 

 

 

 

 

Алгоритм множественной линейной регрессии

Модели гребневой(ридж) регрессии и регрессии Лассо являются способом регуляризации линейных моделей, но нам сначала нужно подготовить линейную модель. Итак, давайте рассмотрим код для подготовки модели множественной линейной регрессии:

 

from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LinearRegression

xs = data.drop(["Sales"], axis=1)
y = data["Sales"].values.reshape(-1,1)
linreg = LinearRegression()
MSE = cross_val_score(linreg, xs, y, scoring="neg_mean_squared_error", cv=5)

mean_MSE = np.mean(MSE)
print(mean_MSE)

 

Теперь нам нужно посмотреть, что лучше: гребневая(ридж) регрессия или регрессия Лассо.

 

Гребневая(ридж) регрессия

Для алгоритма гребневой(ридж) регрессии я буду использовать модель GridSearchCV, предоставленную Scikit-learn, которая позволит нам автоматически выполнить 5-кратную перекрестную проверку, чтобы найти оптимальное значение альфа.

Вот как выглядит код для алгоритма гребневой(ридж)  регрессии:

 

# Ridge Regression
from sklearn.model_selection import GridSearchCV
from sklearn.linear_model import Ridge
ridge = Ridge()

parameters = {"alpha":[1e-15, 1e-10, 1e-8, 1e-4, 1e-3, 1e-2, 1, 5, 10, 20]}
ridge_regression = GridSearchCV(ridge, parameters, scoring='neg_mean_squared_error', cv=5)
ridge_regression.fit(xs, y)

 

И тогда мы можем легко найти лучший параметр и лучшую MSE, используя следующие команды:

 

print(ridge_regression.best_params_)
print(ridge_regression.best_score_)

 

Результат:

{‘alpha’: 20}
-3.0726713383411424

 

 

Регрессия Лассо

Для регрессии Лассо нам также необходимо следовать тому же процессу, что и для гребневой(ридж) регрессии. Вот как выглядит код:

 

from sklearn.linear_model import Lasso
lasso = Lasso()

parameters = {"alpha":[1e-15, 1e-10, 1e-8, 1e-4, 1e-3, 1e-2, 1, 5, 10, 20]}
lasso_regression = GridSearchCV(lasso, parameters, scoring='neg_mean_squared_error', cv=5)
lasso_regression.fit(xs, y)

print(lasso_regression.best_params_)
print(lasso_regression.best_score_)

 

Результат:

{‘alpha’: 1}
-3.041405896751369

Надеюсь, теперь вы знаете, как реализовать гребневую(ридж) регрессию и регрессию Лассо в машинном обучении с помощью языка программирования Python. В этом случае лучшим методом настройки будет лассо со значением регуляризации, равным 1.

Надеюсь, вам понравилась эта статья о том, как реализовать алгоритмы гребневой(ридж) регрессии и регрессии Лассо в машинном обучении с помощью языка программирования Python.

 

Узнать стоимость решенияЗапросить видео презентацию

Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты

  • Си-Проджект

    Анализ регулярности клиентов; модель прогнозирования продаж; анализ эффективности маркетинговых акций аналитика по акциям «Trade» и «BTL»; анализ вторичных продаж сетей;  анализ потенциала дистрибуторов.

  • InterStep

    Анализ продаж по принципу «от общего к частному»; анализ соответствия продаж клиентов «идеальной матрице»; анализ эффективности управления складом; план-фактный анализ; реализация моделей прогнозирования продаж и закупок.

  • Лицензии Tableau для анализа Big Data при разработке социальных игр

  • ЮЕ-Интернейшнл

    Анализ активности клиентов; реализация корпоративной отчетности; сегментация клиентской базы; моделирование маркетинговых акций; план-фактный анализ.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Банки
    • Страхование
    • Фармацевтика
    • Лизинг
    • Логистика
    • Медицина
    • Нефтегазовый сектор
    • Сеть ресторанов
  • Продукты
    • Qlik Sense
    • QlikView
    • Tableau
    • Microsoft Power BI
    • ATK BiView-1C Коннектор (для Qlik/Tableau/PowerBI)
    • Vizlib Qlik Sense extentions (библиотека экстеншнов)
    • NPrinting
    • Геоаналитика Qlik GeoAnalytics
    • KliqPlanning Suite
    • Qlik WebConnectors
    • QlikView R Коннектор
    • QlikView/Qlik Sense SAP Коннектор
    • Alteryx
    • Qlik Data Catalog
    • Документация ATK BiView
  • Услуги
    • Консалтинг
    • Пилотный проект
    • Поддержка
    • План обучения и сертификации Qlik
    • Бесплатное обучение
    • Учебные курсы
    • Сертификация Qlik
    • Аудит приложений
  • Курсы
    • Учебный курс по Qlik Sense
    • Учебный курс по Tableau
    • Учебный курс по Microsoft Power BI
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс по NPrinting
    • Учебный курс по Azure Databricks
    • Учебный курс по Google BigQuery
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
  • Функциональные решения
    • Продажи
    • Финансы
    • Склад
    • HR
    • S&OP и прогнозная аналитика
    • Внутренний аудит
    • Геоаналитика
    • Категорийный менеджмент
    • Построение хранилища данных
    • Система управления KPI и BSC
    • Управление цепочками поставок
    • Маркетинг
    • Цифровая трансформация
    • Сквозная аналитика
    • Process Mining
QlikView Partner
LinkedInYouTubeVkontakteFacebook
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru