Spec-Zone.ru › scikit-learn

HuberRegressor

classsklearn.linear_model.HuberRegressor(*, epsilon=1.35, max_iter=100, alpha=0.0001, warm_start=False, fit_intercept=True, tol=1e-05)[исходный код]

Модель линейной регрессии с 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_array, shape (n_features,)

Признаки, полученные при оптимизации функции потерь Хьюбера с L2-регуляризацией.

intercept_float

Смещение.

scale_float

Значение, на которое уменьшается масштаб |y - Xw - c|.

n_features_in_int

Количество признаков, обнаруженных при обучении.

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

feature_names_in_ndarray размера (n_features_in_,)

Названия признаков, обнаруженных при обучении. Определяется только в том случае, если 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_array, shape (n_samples,)

Булева маска, принимающая значение True для выборок, распознанных как выбросы.

См. также

RANSACRegressor

Алгоритм RANSAC (RANdom SAmple Consensus).

TheilSenRegressor

Устойчивая многомерная регрессионная модель оценщика Тейла — Сена.

SGDRegressor

Обучается путём минимизации регуляризованной эмпирической функции потерь с помощью SGD.

Литература

[1]

Peter J. Huber, Elvezio M. Ronchetti, Robust Statistics Concomitant scale estimates, с. 172

[2]

Art B. Owen (2006), Устойчивая гибридная модель регрессии лассо и гребневой регрессии.

Примеры

>>> 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)[исходный код]

Обучить модель на заданных обучающих данных.

Параметры:
Xмассивоподобный объект, shape (n_samples, n_features)

Обучающий вектор, где n_samples — количество выборок, а n_features — количество признаков.

yмассивоподобный объект, shape (n_samples,)

Целевой вектор, соответствующий X.

sample_weightмассивоподобный объект, shape (n_samples,)

Вес, назначенный каждой выборке.

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

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

get_metadata_routing()[исходный код]

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

Информацию о работе механизма маршрутизации см. в Руководстве пользователя.

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

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

get_params(deep=True)[исходный код]

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

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

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

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

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

predict(X)[исходный код]

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

Параметры:
Xмассивоподобный объект или разреженная матрица формы (n_samples, n_features)

Выборки.

Возвращает:
Cndarray размера (n_samples,)

Предсказанные значения.

score(X, y, sample_weight=None)[исходный код]

Вернуть коэффициент детерминации на тестовых данных.

Коэффициент детерминации \(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.

Параметры:
Xмассивоподобный объект размера (n_samples, n_features)

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

yмассивоподобный объект размера (n_samples,) или (n_samples, n_outputs)

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

sample_weightмассивоподобный объект размера (n_samples,), по умолчанию=None

Веса выборок.

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

Значение \(R^2\) для self.predict(X) относительно y.

Примечания

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

set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') → HuberRegressor[исходный код]

Настроить, следует ли запрашивать передачу метаданных методу fit.

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

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

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

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

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

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

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

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

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

set_params(**params)[исходный код]

Задать параметры этого оценщика.

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

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

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

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

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

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → HuberRegressor[исходный код]

Настроить, следует ли запрашивать передачу метаданных методу score.

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

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

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

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

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

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

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

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

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

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

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

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

Подбор устойчивой линейной модели

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

Spec-Zone.ru

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