Линейная регрессия с 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 для согласованности с другими линейными моделями.
- ‘svd’:
- 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объект
-
Обученный оценщик.
- 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
-
Обновленный объект.
-
Примеры из галереи
© 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