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

Алгоритм RANSAC (RANdom SAmple Consensus — консенсус на случайной выборке).

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

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

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

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

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

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

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

min_samplesint (>= 1) или float ([0, 1]), по умолчанию=None

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

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

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

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

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

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

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

max_trialsint, по умолчанию=100

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

max_skipsint, по умолчанию=np.inf

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

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

stop_n_inliersint, по умолчанию=np.inf

Остановить итерации, если найдено не менее указанного числа выбросоустойчивых наблюдений.

stop_scorefloat, по умолчанию=np.inf

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

stop_probabilityfloat в диапазоне [0, 1], по умолчанию=0.99

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

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

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

lossstr, callable, по умолчанию=’absolute_error’

Поддерживаются строковые значения ‘absolute_error’ и ‘squared_error’, которые вычисляют соответственно абсолютную и квадратичную ошибку для каждого наблюдения.

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

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

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

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

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

Атрибуты:
estimator_object

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

n_trials_int

Число испытаний со случайным выбором до выполнения одного из критериев остановки. Всегда <= max_trials.

inlier_mask_bool-массив формы [n_samples]

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

n_skips_no_inliers_int

Число пропущенных итераций из-за отсутствия выбросоустойчивых наблюдений.

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

n_skips_invalid_data_int

Число пропущенных итераций из-за недопустимых данных, определяемых is_data_valid.

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

n_skips_invalid_model_int

Число пропущенных итераций из-за недопустимой модели, определяемой is_model_valid.

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

n_features_in_int

Число признаков, обнаруженных при вызове fit.

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

feature_names_in_ndarray формы (n_features_in_,)

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

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

См. также

HuberRegressor

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

TheilSenRegressor

Оцениватель Theil-Sen — робастная модель многомерной регрессии.

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

Обучение оценивателя с помощью алгоритма RANSAC.

Параметры:
X{array-like, sparse matrix} формы (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). Подробнее см. в руководстве пользователя по маршрутизации метаданных.

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

Обученный оцениватель RANSACRegressor.

Вызывает исключение:
ValueError

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

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

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

О принципах работы механизма маршрутизации см. в руководстве пользователя.

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

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

Объект MetadataRouter, содержащий информацию о маршрутизации.

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

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

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

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

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

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

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

Предсказание с помощью оцененной модели.

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

Параметры:
X{array-like или sparse matrix} формы (n_samples, n_features)

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

**paramsdict

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

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

Возвращает:
yarray, форма = [n_samples] или [n_samples, n_targets]

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

score(X, y, **params)[исходный код]

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

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

Параметры:
X(array-like или sparse matrix} формы (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[исходный код]

Настройка запроса на передачу метаданных методу 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экземпляр оценивателя

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

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

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

Подгонка робастного линейного оценивателя

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

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

Spec-Zone.ru

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