Spec-Zone.ru › scikit-learn

Регрессор Theil-Sen

классsklearn.linear_model.TheilSenRegressor(*, fit_intercept=True, copy_X='deprecated', max_subpopulation=10000.0, n_subsamples=None, max_iter=300, tol=0.001, random_state=None, n_jobs=None, verbose=False)[source]

Оценщик Тейла-Сена: устойчивая многомерная регрессионная модель.

Алгоритм вычисляет решения метода наименьших квадратов на подмножествах с размером n_subsamples выборок в X. Любое значение n_subsamples между числом признаков и числом выборок приводит к оценщику, представляющему собой компромисс между устойчивостью и эффективностью. Поскольку количество решений метода наименьших квадратов равно «n_samples choose n_subsamples», оно может быть чрезвычайно большим и поэтому может быть ограничено с помощью max_subpopulation. Если этот предел достигнут, подмножества выбираются случайным образом. На заключительном шаге вычисляется пространственная медиана (или L1-медиана) всех решений метода наименьших квадратов.

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

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

Вычислять ли свободный член для этой модели. Если установлено в false, свободный член не будет использоваться в расчётах.

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

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

Устарело начиная с версии 1.6: copy_X было устарело в версии 1.6 и будет удалено в 1.8. Оно не оказывает никакого эффекта, так как копия всегда создаётся.

max_subpopulationint, по умолчанию=1e4

Вместо вычисления с набором мощности «n выбрать k», где n — количество выборок, а k — количество подвыборок (по крайней мере, количество признаков), рассмотреть только стохастическое подмножество заданного максимального размера, если «n выбрать k» больше, чем max_subpopulation. Для размеров задач, отличных от малых, этот параметр будет определять использование памяти и время выполнения, если n_subsamples не изменено. Обратите внимание, что тип данных должен быть int, но также могут приниматься и float, такие как 1e4.

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

Количество выборок для вычисления параметров. Это не менее количества признаков (плюс 1, если fit_intercept=True) и не более количества выборок. Меньшее число приводит к более высокому значению точки разрыва и низкой эффективности, а большее число — к низкому значению точки разрыва и высокой эффективности. Если None, взять минимальное количество подвыборок, обеспечивающее максимальную устойчивость. Если n_subsamples задано как n_samples, Theil-Sen идентичен методу наименьших квадратов.

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

Максимальное число итераций для вычисления пространственной медианы.

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

Погрешность при вычислении пространственной медианы.

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

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

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

Количество процессоров, используемых во время кросс-валидации. None означает 1, за исключением контекста joblib.parallel_backend. -1 означает использование всех процессоров. См. Словарь для получения дополнительной информации.

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

Режим подробной информации при подгонке модели.

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

Коэффициенты регрессионной модели (медиана распределения).

intercept_float

Оценённый свободный член регрессионной модели.

breakdown_float

Приближённая точка разрыва.

n_iter_int

Количество итераций, необходимых для пространственной медианы.

n_subpopulation_int

Количество комбинаций, принятых во внимание из «n выбрать k», где n — количество выборок, а k — количество подвыборок.

n_features_in_int

Количество признаков, увиденных во время fit.

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

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

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

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

См. также

HuberRegressor

Линейная регрессионная модель, устойчивая к выбросам.

RANSACRegressor

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

SGDRegressor

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

Ссылки

  • Theil-Sen Estimators in a Multiple Linear Regression Model, 2009 Xin Dang, Hanxiang Peng, Xueqin Wang and Heping Zhang http://home.olemiss.edu/~xdang/papers/MTSE.pdf

Примеры

>>> from sklearn.linear_model import TheilSenRegressor
>>> from sklearn.datasets import make_regression
>>> X, y = make_regression(
...     n_samples=200, n_features=2, noise=4.0, random_state=0)
>>> reg = TheilSenRegressor(random_state=0).fit(X, y)
>>> reg.score(X, y)
0.9884...
>>> reg.predict(X[:1,])
array([-31.5871...])
fit(X, y)[source]

Подгонка линейной модели.

Параметры:
Xмассив ndarray формы (n_samples, n_features)

Данные обучения.

yмассив ndarray формы (n_samples,)

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

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

Полученная TheilSenRegressor модель.

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.

Параметры:
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

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

Возвращает:
scoreчисло с плавающей точкой

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

Примечания

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

set_params(**params)[source]

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

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

Параметры:
**paramsсловарь

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

Подгонка устойчивых линейных оценщиков

Регрессия Theil-Sen

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

Spec-Zone.ru

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