HuberRegressor
- classsklearn.linear_model.HuberRegressor(*, epsilon=1.35, max_iter=100, alpha=0.0001, warm_start=False, fit_intercept=True, tol=1e-05)[source]
-
Модель линейной регрессии с L2-регуляризацией, устойчивая к выбросам.
Регрессор Хубера оптимизирует среднеквадратичную ошибку для выборок, где
|(y - Xw - c) / sigma| < epsilon, и абсолютную ошибку для выборок, где|(y - Xw - c) / sigma| > epsilon, где коэффициенты моделиw, свободный членcи масштабsigmaявляются параметрами, подлежащими оптимизации. Параметрsigmaгарантирует, что еслиyмасштабируется вверх или вниз на определенный множитель, не требуется масштабироватьepsilonдля достижения той же устойчивости. Обратите внимание, что это не учитывает тот факт, что разные признакиXмогут иметь разные масштабы.Функция потерь Хубера обладает преимуществом в том, что она не сильно зависит от выбросов, не полностью игнорируя их влияние.
Подробнее см. в Руководстве пользователя
Добавлен в версии 0.18.
- Параметры:
-
- epsilonfloat, по умолчанию=1.35
-
Параметр epsilon управляет количеством выборок, которые следует классифицировать как выбросы. Чем меньше epsilon, тем более устойчив он к выбросам. Epsilon должен находиться в диапазоне
[1, inf). - max_iterint, по умолчанию=100
-
Максимальное количество итераций, которые
scipy.optimize.minimize(method="L-BFGS-B")должен выполнить. - alphafloat, по умолчанию=0.0001
-
Сила L2-регуляризации. Обратите внимание, что штраф равен
alpha * ||w||^2. Должен находиться в диапазоне[0, inf). - warm_startbool, по умолчанию=False
-
Полезно, если необходимо повторно использовать сохраненные атрибуты ранее использованной модели. Если установлено в False, то коэффициенты будут переписаны при каждом вызове fit. См. Справочник.
- fit_interceptbool, по умолчанию=True
-
Включать ли подгонку свободного члена. Можно установить в False, если данные уже центрированы вокруг начала координат.
- tolfloat, по умолчанию=1e-05
-
Итерация прекратится, когда
max{|proj g_i | i = 1, ..., n}<=tol, где pg_i — i-й компонент спроецированного градиента.
- Атрибуты:
-
- coef_массив, форма (n_features,)
-
Признаки, полученные в результате оптимизации L2-регуляризованной функции потерь Хубера.
- intercept_float
-
Свободный член.
- scale_float
-
Значение, на которое
|y - Xw - c|масштабируется вниз. - n_features_in_int
-
Количество признаков, увиденных во время fit.
Добавлен в версии 0.24.
-
feature_names_in_массив формы (
n_features_in_,) -
Имена признаков, увиденных во время fit. Определены только тогда, когда
Xимеет имена признаков, которые все являются строками.Добавлен в версии 1.0.
- n_iter_int
-
Количество итераций, которое
scipy.optimize.minimize(method="L-BFGS-B")выполнил.Изменено в версии 0.20: В SciPy <= 1.0.0 число итераций lbfgs может превышать
max_iter.n_iter_теперь будет сообщать не болееmax_iter. - outliers_массив, форма (n_samples,)
-
Булево массив, который устанавливается в True, где выборки идентифицированы как выбросы.
См. также
RANSACRegressor-
Алгоритм RANSAC (RANdom SAmple Consensus).
TheilSenRegressor-
Модель регрессии устойчивого многомерного регрессора Тельсена.
SGDRegressor-
Адаптирован по минимуму регуляризованной эмпирической функции потерь с помощью стохастического градиентного спуска.
Ссылки
[1]Peter J. Huber, Elvezio M. Ronchetti, Robust Statistics Concomitant scale estimates, с. 172
[2]Art B. Owen (2006), A robust hybrid of lasso and ridge regression.
Примеры
>>> import numpy as np >>> from sklearn.linear_model import HuberRegressor, LinearRegression >>> from sklearn.datasets import make_regression >>> rng = np.random.RandomState(0) >>> X, y, coef = make_regression( ... n_samples=200, n_features=2, noise=4.0, coef=True, random_state=0) >>> X[:4] = rng.uniform(10, 20, (4, 2)) >>> y[:4] = rng.uniform(10, 20, 4) >>> huber = HuberRegressor().fit(X, y) >>> huber.score(X, y) -7.284... >>> huber.predict(X[:1,]) array([806.7200...]) >>> linear = LinearRegression().fit(X, y) >>> print("True coefficients:", coef) True coefficients: [20.4923... 34.1698...] >>> print("Huber coefficients:", huber.coef_) Huber coefficients: [17.7906... 31.0106...] >>> print("Linear Regression coefficients:", linear.coef_) Linear Regression coefficients: [-1.9221... 7.0226...]- fit(X, y, sample_weight=None)[source]
-
Обучить модель по заданным обучающим данным.
- Параметры:
-
- Xмассив, форма (n_samples, n_features)
-
Вектор обучающих данных, где
n_samples— количество выборок, аn_features— количество признаков. - yмассив, форма (n_samples,)
-
Вектор целевых значений, связанных с X.
- sample_weightмассив, форма (n_samples,)
-
Вес каждой выборки.
- Возвращает:
-
- selfобъект
-
Обученный
HuberRegressorоценщик.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, обратитесь к Руководству пользователя, чтобы узнать, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
MetadataRequestобъект, содержащий информацию о маршрутизации.
- get_params(deep=True)[source]
-
Получить параметры этого оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, вернет параметры этого оценщика и вложенных подобъектов, которые являются оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные со значениями.
- predict(X)[source]
-
Предсказание с помощью линейной модели.
- Параметры:
-
- Xмассив или разреженная матрица, форма (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$') HuberRegressor[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$') HuberRegressor[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.HuberRegressor.html