Spec-Zone.ru › scikit-learn

Линейная регрессия с L2-регуляризацией (Ridge)

классsklearn.linear_model.Ridge(alpha=1.0, *, fit_intercept=True, copy_X=True, max_iter=None, tol=0.0001, solver='auto', positive=False, random_state=None)[source]

Линейная регрессия наименьших квадратов с регуляризацией L2.

Минимизирует целевую функцию:

||y - Xw||^2_2 + alpha * ||w||^2_2

Эта модель решает задачу регрессии, где функция потерь — линейная функция наименьших квадратов, а регуляризация задаётся L2-нормой. Также известна как регрессия Риджа или регуляризация Тихонова. Этот оценщик поддерживает многомерную регрессию (т. е. когда y — двумерный массив формы (n_samples, n_targets)).

Подробнее см. в Руководстве пользователя.

Параметры:
alpha{float, массив NumPy формы (n_targets,)}, по умолчанию=1.0

Постоянная, которая умножает L2-член, управляя силой регуляризации. alpha должно быть неотрицательным числом с плавающей точкой, т. е. в [0, inf).

Когда alpha = 0, целевая функция эквивалентна обычным наименьшим квадратам, решаемым объектом LinearRegression. По причинам численной устойчивости использование alpha = 0 с объектом Ridge не рекомендуется. Вместо этого следует использовать объект LinearRegression.

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

fit_interceptbool, по умолчанию=True

Включает ли подгонку под свободный член для этой модели. Если установлено в false, в расчётах свободный член не используется (т. е. X и y должны быть центрированы).

copy_Xbool, по умолчанию=True

Если True, X будет скопирован; иначе может быть перезаписан.

max_iterint, по умолчанию=None

Максимальное число итераций для решателя сопряжённых градиентов. Для решателей ‘sparse_cg’ и ‘lsqr’ значение по умолчанию определяется в scipy.sparse.linalg. Для решателя ‘sag’ значение по умолчанию равно 1000. Для решателя ‘lbfgs’ значение по умолчанию равно 15000.

tolfloat, по умолчанию=1e-4

Точность решения (coef_) определяется tol, который задаёт различные критерии сходимости для каждого решателя:

  • ‘svd’: tol не оказывает влияния.
  • ‘cholesky’: tol не оказывает влияния.
  • ‘sparse_cg’: норма остатков меньше tol.
  • ‘lsqr’: tol задаётся как atol и btol в scipy.sparse.linalg.lsqr, которые управляют нормой вектора остатка относительно норм матрицы и коэффициентов.
  • ‘sag’ и ‘saga’: относительное изменение коэффициентов меньше tol.
  • ‘lbfgs’: максимальное абсолютное (проектированное) значение градиента = max|остатки| меньше tol.

Изменено в версии 1.2: Значение по умолчанию изменено с 1e-3 на 1e-4 для согласованности с другими линейными моделями.

solver{‘auto’, ‘svd’, ‘cholesky’, ‘lsqr’, ‘sparse_cg’, ‘sag’, ‘saga’, ‘lbfgs’}, по умолчанию=’auto’

Решатель, используемый в вычислениях:

  • ‘auto’ выбирает решатель автоматически в зависимости от типа данных.
  • ‘svd’ использует сингулярное разложение X для вычисления коэффициентов Риджа. Это самый устойчивый решатель, особенно устойчивый для сингулярных матриц, чем ‘cholesky’, но медленнее.
  • ‘cholesky’ использует стандартную функцию scipy.linalg.solve для получения замкнутого решения.
  • ‘sparse_cg’ использует решатель сопряжённых градиентов из scipy.sparse.linalg.cg. Как итерационный алгоритм, этот решатель более подходит для больших данных (возможность установить tol и max_iter).
  • ‘lsqr’ использует специальную процедуру регуляризованных наименьших квадратов scipy.sparse.linalg.lsqr. Это самый быстрый метод и использует итерационный процесс.
  • ‘sag’ использует стохастический градиентный спуск, а ‘saga’ — его улучшенную, несмещённую версию под названием SAGA. Оба метода также используют итерационный процесс и часто быстрее, чем другие решатели, когда и n_samples, и n_features велики. Обратите внимание, что быстрая сходимость ‘sag’ и ‘saga’ гарантируется только для признаков с приблизительно одинаковым масштабом. Вы можете предварительно обработать данные с помощью масштабирования из sklearn.preprocessing.
  • ‘lbfgs’ использует алгоритм L-BFGS-B, реализованный в scipy.optimize.minimize. Он может быть использован только когда positive равно True.

Все решатели, кроме ‘svd’, поддерживают плотные и разреженные данные. Однако только ‘lsqr’, ‘sag’, ‘sparse_cg’ и ‘lbfgs’ поддерживают разреженные входные данные, когда fit_intercept равно True.

Добавлена в версии 0.17: Стохастический решатель среднего градиента.

Добавлена в версии 0.19: Решатель SAGA.

positivebool, по умолчанию=False

При установке в True, принудительно задаёт положительные коэффициенты. В этом случае поддерживается только решатель ‘lbfgs’.

random_stateint, экземпляр RandomState, по умолчанию=None

Используется, когда solver == ‘sag’ или ‘saga’ для перемешивания данных. Подробнее см. в Словаре терминов.

Добавлена в версии 0.17: random_state для поддержки стохастического среднего градиента.

Атрибуты:
coef_массив NumPy формы (n_features,) или (n_targets, n_features)

Вектор(ы) весов.

intercept_float или массив NumPy формы (n_targets,)

Свободный член в функции принятия решений. Устанавливается в 0.0, если fit_intercept = False.

n_iter_None или массив NumPy формы (n_targets,)

Фактическое число итераций для каждого целевого значения. Доступно только для решателей sag и lsqr. Другие решатели вернут None.

Добавлена в версии 0.17.

n_features_in_int

Число признаков, увиденных во время подгонки.

Добавлена в версии 0.24.

feature_names_in_массив NumPy формы (n_features_in_,)

Имена признаков, увиденных во время подгонки. Определяется только, если X имеет имена признаков, которые все являются строками.

Добавлена в версии 1.0.

solver_str

Решатель, использованный во время подгонки.

Добавлена в версии 1.5.

См. также

RidgeClassifier

Классификатор Риджа.

RidgeCV

Регрессия Риджа со встроенной перекрёстной проверкой.

KernelRidge

Ядерная регрессия Риджа объединяет регрессию Риджа с ядром.

Примечания

Регуляризация улучшает обусловленность задачи и снижает дисперсию оценок. Большие значения указывают на более сильную регуляризацию. Параметр alpha соответствует 1 / (2C) в других линейных моделях, таких как LogisticRegression или LinearSVC.

Примеры

>>> from sklearn.linear_model import Ridge
>>> import numpy as np
>>> n_samples, n_features = 10, 5
>>> rng = np.random.RandomState(0)
>>> y = rng.randn(n_samples)
>>> X = rng.randn(n_samples, n_features)
>>> clf = Ridge(alpha=1.0)
>>> clf.fit(X, y)
Ridge()
fit(X, y, sample_weight=None)[source]

Подгонка модели регрессии Риджа.

Параметры:
X{массив NumPy, разреженная матрица} формы (n_samples, n_features)

Обучающие данные.

yмассив NumPy формы (n_samples,) или (n_samples, n_targets)

Целевые значения.

sample_weightfloat или массив NumPy формы (n_samples,), по умолчанию=None

Индивидуальные веса для каждого образца. Если задан float, все образцы будут иметь одинаковый вес.

Возвращает:
selfобъект

Обученный оценщик.

END_OF_DOCUMENT_MARKER
get_metadata_routing()[source]

Получить маршрутизацию метаданных этого объекта.

Пожалуйста, ознакомьтесь с Руководством пользователя о том, как работает механизм маршрутизации.

Возвращает:
routingMetadataRequest

Объект MetadataRequest, содержащий информацию о маршрутизации.

get_params(deep=True)[source]

Получить параметры этого оценщика.

Параметры:
deepbool, по умолчанию=True

Если True, вернет параметры этого оценщика и вложенных подобъектов, являющихся оценщиками.

Возвращает:
paramsdict

Имена параметров, сопоставленные со значениями.

predict(X)[source]

Предсказание с помощью линейной модели.

Параметры:
Xarray-like или разреженная матрица, форма (n_samples, n_features)

Образцы.

Возвращает:
Cмассив, форма (n_samples,)

Возвращает предсказанные значения.

score(X, y, sample_weight=None)[source]

Возвращает коэффициент детерминации предсказания.

Коэффициент детерминации \(R^2\) определяется как \((1 - \frac{u}{v})\), где \(u\) — сумма квадратов остатков ((y_true - y_pred)** 2).sum() , а \(v\) — общая сумма квадратов ((y_true - y_true.mean()) ** 2).sum(). Лучшее возможное значение равно 1.0, и оно может быть отрицательным (потому что модель может быть произвольно хуже). Постоянная модель, которая всегда предсказывает ожидаемое значение y, не учитывая входные признаки, получит значение \(R^2\) равное 0.0.

Параметры:
Xarray-like формы (n_samples, n_features)

Тестовые образцы. Для некоторых оценщиков это может быть предварительно вычисленная матрица ядра или список общих объектов вместо этого с формой (n_samples, n_samples_fitted), где n_samples_fitted — количество образцов, используемых при подгонке для оценщика.

yarray-like формы (n_samples,) или (n_samples, n_outputs)

Истинные значения для X.

sample_weightarray-like формы (n_samples,), по умолчанию=None

Веса образцов.

Возвращает:
scorefloat

\(R^2\) self.predict(X) по отношению к y.

Примечания

Значение \(R^2\), используемое при вызове score для регрессора, использует multioutput='uniform_average' с версии 0.23, чтобы сохранить согласованность с значением по умолчанию r2_score. Это влияет на score метод всех регрессоров с несколькими выходами (за исключением MultiOutputRegressor).

set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') → Ridge[source]

Запрос метаданных, переданных методу fit.

Обратите внимание, что этот метод актуален только если enable_metadata_routing=True (см. sklearn.set_config). Пожалуйста, ознакомьтесь с Руководством пользователя о том, как работает механизм маршрутизации.

Варианты для каждого параметра:

  • True: запрашиваются метаданные и передаются fit при наличии. Запрос игнорируется, если метаданные не предоставлены.
  • False: метаданные не запрашиваются, и мета-оценщик не передаст их fit.
  • None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь их предоставит.
  • str: метаданные должны быть переданы мета-оценщику с этим псевдонимом вместо исходного имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменять запрос для некоторых параметров, а не для других.

Добавлен в версии 1.3.

Примечание

Этот метод актуален только если этот оценщик используется в качестве под-оценщика мета-оценщика, например, внутри Pipeline. В противном случае он не оказывает никакого влияния.

Параметры:
sample_weightstr, True, False, или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в fit.

Возвращает:
selfobject

Обновленный объект.

set_params(**params)[source]

Установить параметры этого оценщика.

Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как Pipeline). Последние имеют параметры в формате <component>__<parameter>, чтобы было возможно обновление каждого компонента вложенного объекта.

Параметры:
**paramsdict

Параметры оценщика.

Возвращает:
selfэкземпляр оценщика

Экземпляр оценщика.

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → Ridge[source]

Запрос метаданных, передаваемых методу score.

Обратите внимание, что этот метод актуален только если enable_metadata_routing=True (см. sklearn.set_config). Пожалуйста, ознакомьтесь с Руководством пользователя для понимания работы механизма маршрутизации.

Варианты для каждого параметра:

  • True: метаданные запрашиваются и передаются в score при их наличии. Запрос игнорируется, если метаданные отсутствуют.
  • False: метаданные не запрашиваются и мета-оценщик не передаст их в score.
  • None: метаданные не запрашиваются, и мета-оценщик выведет ошибку, если пользователь их предоставит.
  • str: метаданные должны быть переданы мета-оценщику с этим псевдонимом вместо оригинального имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для всех.

Добавлен в версии 1.3.

Примечание

Этот метод актуален только если этот оценщик используется в качестве под-оценщика мета-оценщика, например, внутри Pipeline. В противном случае он не оказывает никакого влияния.

Parameters:
sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в score.

Returns:
selfobject

Обновленный объект.

Примеры из галереи

Восстановление томографической проекции с L1-приоритетом (Lasso)

Задержка предсказания

Сравнение регрессии с ядром Риджа и регрессии Гаусса

HuberRegressor против Ridge на наборе данных с сильными выбросами

L1-основанные модели для разреженных сигналов

Пример обычных наименьших квадратов

Дисперсия обычных наименьших квадратов и регрессии Риджа

Коэффициенты Риджа в зависимости от регуляризации

Регрессия Пуассона и ненормальное отклонение

Интерполяция многочленами и сплайнами

Коэффициенты Риджа в зависимости от L2-регуляризации

Общие ловушки при интерпретации коэффициентов линейных моделей

Заполнение пропущенных значений с вариантами IterativeImputer

Внутренняя перекрестная проверка Target Encoder

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.linear_model.Ridge.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API