Перейти к содержанию

Блок "Линейная модель. Регрессия"

Блок доступен начиная с версии 1.0

Назначение блока

Блок предназначен для построения линейных регрессионных моделей. Поддерживаются следующие методы:

  • Линейная регрессия;
  • Регрессия гребня (Ridge);
  • Лассо-регрессия (Lasso);
  • Эластическая сеть (Elastic Net);
  • Регрессия Хубера (Huber);
  • RANSAC-регрессия;
  • Регрессия Тейла — Сена (Theil-Sen).

Чтобы начать работать с блоком, необходимо выбрать его в библиотеке и переместить в область графа.

Настройки блока

Работа с настройками блока осуществляется через локальное меню (пункт Настройки):

Модальное окно настроек представлено ниже:

Общие настройки блоков описаны в отдельном разделе.

Раздел "Специфические настройки блока"

Так как блок реализован для большого количества моделей, настройки каждой модели выделены в отдельную таблицу.

Общие настройки

Наименование id настройки Тип Обязательное Описание
Режим моделирования Выпадающий список Да По умолчанию "Создать новую модель". Поле поддерживает единичную отметку. Содержит следующие элементы:
- Создать новую модель;
- Использовать заданную модель;
- Переобучить заданную модель
Тип модели model_type Выпадающий список Да По умолчанию "Линейная регрессия". Поле поддерживает единичную отметку. Содержит следующие элементы:
- Линейная регрессия ("LinearRegression")
- Регрессия гребня ("Ridge")
- Лассо регрессия ("Lasso")
- Эластическая сеть ("ElasticNet")
- Регрессия Хубера ("HuberRegressor")
- Регрессия RANSAC ("RANSACRegressor")
- Регрессия Тейла–Сена ("TheilSenRegressor")

Настройки модели "Линейная регрессия" (LinearRegression)

Наименование id настройки Тип Обязательное Описание
Константа linear_fit_inter Флаг Нет По умолчанию True

Настройки модели "Регрессия гребня" (Ridge)

Наименование id настройки Тип Обязательное Описание
Константа ridge_fit_inter Флаг Нет По умолчанию True
Коэффициент регуляризации ridge_alpha Вещественное число Нет По умолчанию 1.0. Значение должно быть больше или равно 0
Максимальное число итераций ridge_max_iter Целое число Нет По умолчанию 1000. Значение должно быть больше 0
Точность ridge_tol Целое число Нет По умолчанию 0.0001. Значение должно быть больше 0
Метод решения ridge_solver Выпадающий список Нет По умолчанию "Авто". Поле поддерживает единичную отметку. Содержит следующие элементы:
- Авто ("auto");
- SVD ("svd");
- Холецкий ("cholesky");
- LSQR ("lsqr");
- SAGA ("saga")
Начальное положение системы ridge_random_state Целое число Нет По умолчанию 123. Значение должно быть больше или равно 0

Настройки модели "Лассо регрессия" (Lasso)

Наименование id настройки Тип Обязательное Описание
Константа lasso_fit_inter Флаг Нет По умолчанию True
Коэффициент регуляризации lasso_alpha Вещественное число Нет По умолчанию 1.0. Значение должно быть больше или равно 0
Максимальное число итераций lasso_max_iter Целое число Нет По умолчанию 1000. Значение должно быть больше 0
Точность lasso_tol Целое число Нет По умолчанию 0.0001. Значение должно быть больше 0
Стратегия обновления коэффициентов lasso_selection Выпадающий список Нет По умолчанию "Цикличная". Поле поддерживает единичную отметку. Содержит следующие элементы:
- Цикличная ("cyclic")
- Случайная ("random")
Начальное положение системы lasso_random_state Целое число Нет По умолчанию 123. Значение должно быть больше или равно 0

Настройки модели "Эластическая сеть" (ElasticNet)

Наименование id настройки Тип Обязательное Описание
Константа elastic_fit_inter Флаг Нет По умолчанию True
Коэффициент регуляризации elastic_alpha Вещественное число Нет По умолчанию 1.0. Значение должно быть больше или равно 0
Коэффициент баланса L1/L2 elastic_l1_ratio Вещественное число Нет По умолчанию 0.5. Значение должно быть в промежутке [0,1]
Максимальное число итераций elastic_max_iter Целое число Нет По умолчанию 1000. Значение должно быть больше 0
Точность elastic_tol Целое число Нет По умолчанию 0.0001. Значение должно быть больше 0
Стратегия обновления коэффициентов elastic_selection Выпадающий список Нет По умолчанию "Цикличная". Поле поддерживает единичную отметку. Содержит следующие элементы:
- Цикличная ("cyclic")
- Случайная ("random")
Начальное положение системы elastic_random_state Целое число Нет По умолчанию 123. Значение должно быть больше или равно 0

Настройки модели "Регрессия Хубера" (HuberRegressor)

Наименование id настройки Тип Обязательное Описание
Константа huber_fit_inter Флаг Нет По умолчанию True
Чувствительность к выбросам huber_epsilon Вещественное число Нет По умолчанию 1.35. Значение должно быть больше или равно 1
Максимальное число итераций huber_max_iter Целое число Нет По умолчанию 100. Значение должно быть больше 0
Коэффициент регуляризации huber_alpha Вещественное число Нет По умолчанию 0.0001. Значение должно быть больше или равно 0
Точность huber_tol Целое число Нет По умолчанию 0.0001. Значение должно быть больше 0

Настройки модели "Регрессия RANSAC" (RANSACRegressor)

Наименование id настройки Тип Обязательное Описание
Базовая модель ransac_estimator Выпадающий список Нет По умолчанию "Линейная регрессия". Поле поддерживает единичную отметку. Содержит следующие элементы:
- Линейная регрессия ("LinearRegression")
- Регрессия гребня ("Ridge")
- Лассо регрессия ("Lasso")
- Эластическая сеть ("ElasticNet")
Доля наблюдений для подвыборки ransac_min_samples Вещественное число Нет По умолчанию 0.5. Значение должно быть в промежутке [0,1]
Порог ошибки ransac_residual_threshold Выпадающий список Нет По умолчанию "Автоматически". Поле поддерживает единичную отметку. Содержит следующие элементы:
- Автоматически ("auto")
- Проценты от диапазона ("percent")
Максимальное число итераций ransac_max_trials Целое число Нет По умолчанию 100. Значение должно быть больше 0
Начальное положение системы ransac_random_state Целое число Нет По умолчанию 123. Значение должно быть больше или равно 0

Настройки модели "Регрессия Тейла–Сена" (TheilSenRegressor)

Наименование id настройки Тип Обязательное Описание
Константа theilsen_fit_inter Флаг Нет По умолчанию True
Максимальное число итераций theilsen_max_iter Целое число Нет По умолчанию 1000. Значение должно быть больше 0
Точность theilsen_tol Целое число Нет По умолчанию 0.0001. Значение должно быть больше 0
Начальное положение системы theilsen_random_state Целое число Нет По умолчанию 123. Значение должно быть больше или равно 0

Входы блока

Наименование выхода Тип Описание
Обучающая выборка. Зависимая переменная DataFrame DataFrame с одним рядом
Обучающая выборка. Независимые переменные DataFrame DataFrame с набором признаков
Тестовая выборка. Зависимая переменная DataFrame DataFrame с одним рядом
Тестовая выборка. Независимые переменные DataFrame DataFrame с набором признаков
Прогнозная выборка. Независимые переменные DataFrame DataFrame с набором признаков
Модель Модель Объект типа LinearRegression, Ridge, Lasso, ElasticNet, HuberRegressor, RANSACRegressor, TheilSenRegressor
Настройки блока JSON См. описание ниже

Вход "Настройки блока"

Если настройки передаются на вход блока, его внутренние настройки игнорируются. Для корректной передачи настроек необходимо:

  1. Передать их в формате JSON.

  2. Обязательно указать тип модели, которую требуется рассчитать, используя параметр "model_type" (например, "model_type": "TheilSenRegressor"). Это обязательный параметр. Если модель не указана, расчет произведен не будет.

  3. Указать все необходимые параметры выбранной модели по принципу "id_настройки": значение. Идентификаторы настроек и перечислений приведены в таблицах выше. Если параметр указан неверно или отсутствует, будет использовано значение по умолчанию.

    Пример задания настроек*

    {
        'model_type': 'RANSACRegressor',
        'ransac_estimator': 'Lasso',
        'ransac_min_samples': 0.5,
        'ransac_residual_threshold': 'auto',
        'ransac_max_trials': 150,
        'ransac_random_state': 123,
    }
    

Выходы блока

Наименование выхода Тип Описание
Обучающая выборка. Зависимая переменная DataFrame
Обучающая выборка. Модельный ряд DataFrame
Обучающая выборка. Ряд остатков DataFrame
Тестовая выборка. Зависимая переменная DataFrame
Тестовая выборка. Модельный ряд DataFrame
Тестовая выборка. Ряд остатков DataFrame
Прогнозная выборка. Прогнозный ряд DataFrame
Значимость факторов DataFrame
Описательные статистики html Статистический отчет о работе метода
Модель Модель Результирующая модель. Объект типа LinearRegression, Ridge, Lasso, ElasticNet, HuberRegressor, RANSACRegressor, TheilSenRegressor

События блока

В блоке нет событий.

Описание работы блока

Блок строит регрессионную модель с использованием линейных методов.

Требования к данным:

  • входные данные — таблицы в формате DataFrame;
  • поддерживаются только числовые данные.

Процесс работы:

  • Обучение — модель обучается на обучающей выборке.
  • Применение — обученная модель применяется к тестовой и прогнозной выборкам.

Результаты работы блока:

  • Ряды, полученные в ходе моделирования и прогнозирования.
  • HTML-отчет о модели для обучающей и тестовой выборки (если предоставлена).
  • Обученная модель в виде объекта, который может быть передан на вход следующим блокам.

Настройки блока можно задать через графический интерфейс или передать их на соответствующий вход.

Режим моделирования

Для моделирования доступны три режима:

  1. Режим "Создать новую модель" - используются гиперпараметры, заданные в настройках блока, и входные данные. На их основе строится новая модель.

  2. Режим "Использовать заданную модель" - на вход блока подается уже обученная модель. В этом режиме модель не пересчитывается. Блок использует ее внутренние параметры (коэффициенты) и на основе заданных независимых переменных рассчитывает только модельные (прогнозные) ряды.

  3. Режим "Переобучить заданную модель" - из переданной модели извлекаются только ее гиперпараметры. Затем на основе входных данных строится новая модель.

Краткое описание моделей блока

Имя методологии (модели) Описание
Линейная регрессия (LinearRegression) Классическая линейная регрессия по МНК, без регуляризации
Регрессия гребня (Ridge) Линейная регрессия с L2-регуляризацией (устойчивее при мультиколлинеарности)
Лассо регрессия (Lasso) Линейная регрессия с L1-регуляризацией (фичер селекшн за счёт зануления коэффициентов)
Эластическая сеть (ElasticNet) Комбинация L1 и L2 регуляризаций (более гибкая модель)
Регрессия Хубера (HuberRegressor) Робастная линейная модель, устойчивая к выбросам
Регрессия RANSAC (RANSACRegressor) Непараметрическая линейная регрессия, устойчива к выбросам
Регрессия Тейла – Сена (TheilSenRegressor) Поиск устойчивой линейной модели через случайные подвыборки. Подходит, если есть сильные выбросы

Ограничения блока

  1. Метод работает только с объектами pandas.DataFrame
  2. Обучающая выборка не должна содержать полностью пустых столбцов.
  3. Тестовая и прогнозная выборки должны иметь тот же набор признаков, что и обучающая выборка.
  4. Зависимая переменная должна состоять только из одного столбца.
  5. Зависимая и независимые переменные должны иметь одинаковое количество наблюдений.
  6. Все входные данные должны быть числовыми и не содержать пропусков и бесконечных значений.
  7. Индексы строк зависимой и независимых переменных должны совпадать. Это работает как на обучающую, так и на тестовую выборки.