Spec-Zone.ru › scikit-learn

RANSACRegressor

classsklearn.linear_model.RANSACRegressor(estimator=None, *, min_samples=None, residual_threshold=None, is_data_valid=None, is_model_valid=None, max_trials=100, max_skips=inf, stop_n_inliers=inf, stop_score=inf, stop_probability=0.99, loss='absolute_error', random_state=None)[source]

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

RANSAC — это итеративный алгоритм для надежной оценки параметров из подмножества инлайнеров из полного набора данных.

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

Параметры:
estimatorобъект, по умолчанию=None

Базовый объект оценщика, реализующий следующие методы:

  • fit(X, y): Построение модели на заданных обучающих данных и целевых значениях.
  • score(X, y): Возвращает среднюю точность на заданных тестовых данных, которая используется для критерия остановки, определённого в stop_score. Кроме того, оценка используется для выбора лучшего из двух равнозначных наборов согласия.
  • predict(X): Возвращает предсказанные значения с использованием линейной модели, которая используется для вычисления остаточной ошибки с использованием функции потерь.

Если estimator равно None, то используется LinearRegression для целевых значений типа float.

Обратите внимание, что текущая реализация поддерживает только регрессионные оценщики.

min_samplesцелое число (>= 1) или число с плавающей точкой ([0, 1]), по умолчанию=None

Минимальное количество выборок, случайным образом выбранных из исходных данных. Рассматривается как абсолютное число выборок для min_samples >= 1, рассматривается как относительное число ceil(min_samples * X.shape[0]) для min_samples < 1. Обычно выбирается как минимальное количество выборок, необходимое для оценки данного estimator. По умолчанию предполагается оценщик LinearRegression, и min_samples выбирается как X.shape[1] + 1. Этот параметр сильно зависит от модели, поэтому, если используется оценщик estimator другой, чем LinearRegression, пользователь должен указать значение.

residual_thresholdчисло с плавающей точкой, по умолчанию=None

Максимальное остаточное значение для образца данных, чтобы быть классифицированным как инлайнер. По умолчанию порог выбирается как MAD (медианное абсолютное отклонение) целевых значений y. Точки, остаточная ошибка которых строго равна порогу, считаются инлайнерами.

is_data_validвызываемая функция, по умолчанию=None

Эта функция вызывается с случайным образом выбранными данными перед подгонкой модели к ним: is_data_valid(X, y). Если возвращаемое значение равно False, текущая случайная подвыборка пропускается.

is_model_validвызываемая функция, по умолчанию=None

Эта функция вызывается с оцененной моделью и случайным образом выбранными данными: is_model_valid(model, X, y). Если возвращаемое значение равно False, текущая случайная подвыборка пропускается. Отбрасывание выборок с помощью этой функции требует больше вычислительных ресурсов, чем с помощью is_data_valid. Поэтому is_model_valid следует использовать только в том случае, если оцененная модель требуется для принятия решения об отбрасывании.

max_trialsцелое число, по умолчанию=100

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

max_skipsцелое число, по умолчанию=np.inf

Максимальное количество итераций, которые могут быть пропущены из-за поиска нулевых инлайнеров или недопустимых данных, определённых is_data_valid или недопустимых моделей, определённых is_model_valid.

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

stop_n_inliersцелое число, по умолчанию=np.inf

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

stop_scoreчисло с плавающей точкой, по умолчанию=np.inf

Остановка итерации, если оценка больше или равна этому порогу.

stop_probabilityчисло с плавающей точкой в диапазоне [0, 1], по умолчанию=0.99

Итерация RANSAC останавливается, если по крайней мере один набор обучающих данных без выбросов выборок взят случайным образом в RANSAC. Для этого необходимо сгенерировать как минимум N выборок (итераций):

N >= log(1 - probability) / log(1 - e**m)

где вероятность (доверие) обычно устанавливается на высокое значение, такое как 0.99 (по умолчанию), а e — текущая доля инлайнеров по отношению к общему количеству выборок.

lossстрока, вызываемая функция, по умолчанию=’absolute_error’

Поддерживаются строковые входные данные «absolute_error» и «squared_error», которые находят абсолютную ошибку и среднеквадратичную ошибку соответственно на образец.

Если loss является вызываемой функцией, то она должна быть функцией, которая принимает два массива в качестве входных данных, истинное и предсказанное значение, и возвращает одномерный массив, где i-е значение массива соответствует потере на X[i].

Если потеря на образце больше, чем residual_threshold, то этот образец классифицируется как выброс.

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

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

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

Атрибуты:
estimator_объект

Окончательная модель, обученная на инлайнерах, предсказанных «лучшей» моделью, найденной во время выборки RANSAC (копия объекта estimator).

n_trials_целое число

Количество итераций случайного выбора до достижения одного из критериев остановки. Оно всегда <= max_trials.

inlier_mask_булевый массив формы [n_samples]

Булевый массив инлайнеров, классифицированных как True.

n_skips_no_inliers_целое число

Количество итераций, пропущенных из-за поиска нулевых инлайнеров.

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

n_skips_invalid_data_целое число

Количество итераций, пропущенных из-за недопустимых данных, определённых is_data_valid.

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

n_skips_invalid_model_целое число

Количество итераций, пропущенных из-за недопустимой модели, определённой is_model_valid.

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

n_features_in_целое число

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

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

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

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

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

См. также

HuberRegressor

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

TheilSenRegressor

Модель регрессии Тейль-Сена — робастная многомерная регрессионная модель.

SGDRegressor

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

Ссылки

[1]

https://en.wikipedia.org/wiki/RANSAC

[2]

https://www.sri.com/wp-content/uploads/2021/12/ransac-publication.pdf

[3]

https://bmva-archive.org.uk/bmvc/2009/Papers/Paper355/Paper355.pdf

Примеры

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

Для более подробного примера см. Оценка робастной линейной модели с помощью RANSAC

fit(X, y, *, sample_weight=None, **fit_params)[source]

Обучение модели с использованием алгоритма RANSAC.

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

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

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

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

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

Индивидуальные веса для каждого образца. Возникает ошибка, если sample_weight передан, а метод fit оценщика его не поддерживает.

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

**fit_paramsdict

Параметры, передаваемые методу fit под-оценщика через API маршрутизации метаданных.

Добавлен в версии 1.5: Доступен только если sklearn.set_config(enable_metadata_routing=True) установлено. Подробнее см. Руководство по маршрутизации метаданных.

Возвращаемое значение:
selfобъект

Обученная модель RANSACRegressor.

Исключения:
ValueError

Если не удалось найти корректный набор консенсуса. Это происходит, если is_data_valid и is_model_valid возвращают False для всех max_trials случайно выбранных подвыборок.

get_metadata_routing()[source]

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

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

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

Возвращаемое значение:
routingMetadataRouter

А MetadataRouter encapsulating routing information.

get_params(deep=True)[source]

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

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

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

Возвращаемое значение:
paramsdict

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

predict(X, **params)[source]

Предсказание с использованием обученной модели.

Это обертка для estimator_.predict(X).

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

Входные данные.

**paramsdict

Параметры, передаваемые методу predict под-оценщика через API маршрутизации метаданных.

Добавлен в версии 1.5: Доступен только если sklearn.set_config(enable_metadata_routing=True) установлено. Подробнее см. Руководство по маршрутизации метаданных.

Возвращаемое значение:
yмассив, форма = [n_samples] или [n_samples, n_targets]

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

score(X, y, **params)[source]

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

Это обертка для estimator_.score(X, y).

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

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

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

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

**paramsdict

Параметры, передаваемые методу score под-оценщика через API маршрутизации метаданных.

Добавлен в версии 1.5: Доступен только если sklearn.set_config(enable_metadata_routing=True) установлено. Подробнее см. Руководство по маршрутизации метаданных.

Возвращаемое значение:
zfloat

Оценка предсказания.

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

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

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

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

  • True: метаданные запрашиваются и передаются методу fit, если они предоставлены. Запрос игнорируется, если метаданные не предоставлены.
  • False: метаданные не запрашиваются и мета-оценщик не передаст их методу fit.
  • 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 в fit.

Returns:
selfobject

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

set_params(**params)[source]

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

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

Parameters:
**paramsdict

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

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

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

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

Устойчивая оценка линейной модели

Устойчивая оценка линейной модели с помощью RANSAC

Регрессия Тейла-Сена

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

Spec-Zone.ru

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