RANSACRegressor#

class sklearn.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) algorithm.

RASAC是一种迭代算法,用于对完整数据集中的内点子集的参数进行稳健估计。

阅读更多的 User Guide .

参数:
estimator对象,默认=无

基本估计器对象,实现以下方法:

  • fit(X, y) :使模型适合给定的训练数据和目标值。

  • score(X, y) :返回给定测试数据的平均准确度,该准确度用于定义的停止标准 stop_score .此外,分数用于决定两个同样大的共识集中的哪一个被选为更好的。

  • predict(X) :使用线性模型返回预测值,该模型用于使用损失函数计算残余误差。

如果 estimator 那么就是没有了 LinearRegression 用于dType float的目标值。

Note that the current implementation only supports regression estimators.

min_samplesint(>= 1)或float( [0, 1] ),默认=无

Minimum number of samples chosen randomly from original data. Treated as an absolute number of samples for min_samples >= 1, treated as a relative number ceil(min_samples * X.shape[0]) for min_samples < 1. This is typically chosen as the minimal number of samples necessary to estimate the given estimator. By default a LinearRegression estimator is assumed and min_samples is chosen as X.shape[1] + 1. This parameter is highly dependent upon the model, so if a estimator other than LinearRegression is used, the user must provide a value.

residual_thresholdfloat,默认=无

要分类为内点的数据样本的最大残留。默认情况下,阈值选择为目标值的MAD(中位数绝对偏差) y .其残余严格等于阈值的点被视为内值。

is_data_valid可调用,默认值=无

在模型匹配之前,使用随机选择的数据调用此函数: is_data_valid(X, y) .如果其返回值为False,则跳过当前随机选择的子样本。

is_model_valid可调用,默认值=无

This function is called with the estimated model and the randomly selected data: is_model_valid(model, X, y). If its return value is False the current randomly chosen sub-sample is skipped. Rejecting samples with this function is computationally costlier than with is_data_valid. is_model_valid should therefore only be used if the estimated model is needed for making the rejection decision.

max_trialsint,默认=100

随机样本选择的最大迭代次数。

max_skipsint,默认=NP.inf

由于发现零内点或定义的无效数据而可以跳过的最大迭代次数 is_data_valid 或定义的无效模型 is_model_valid .

Added in version 0.19.

stop_n_inliersint,默认=NP.inf

如果找到至少此数量的内点,则停止迭代。

stop_scorefloat,默认=NP.inf

如果分数大于此阈值,则停止迭代。

stop_probability浮动在范围内 [0, 1] ,默认值=0.99

如果在RASAC中对至少一个无异常值的训练数据集进行了采样,则RASAC迭代停止。这需要生成至少N个样本(迭代)::

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

其中概率(置信度)通常设置为高值,例如0.99(默认),e是内值w.rt.的当前分数。样本总数。

loss字符串,可调用,默认='绝对错误'

支持字符串输入“绝对误差”和“平方误差”,它们分别查找每个样本的绝对误差和平方误差。

如果 loss 是可调用的,那么它应该是一个以两个数组(真实值和预测值)作为输入的函数,并返回一个一维数组,该数组的第i个值对应于上的损失 X[i] .

如果样本的损失大于 residual_threshold ,则该样本被归类为离群值。

Added in version 0.18.

random_stateint,RandomState实例,默认=无

用于初始化中心的生成器。传递int以获得跨多个函数调用的可重复输出。看到 Glossary .

属性:
estimator_对象

在RANSAC采样期间发现的“最佳”模型预测的内点上拟合的最终模型( estimator 对象)。

n_trials_int

满足其中一项停止标准之前的随机选择试验数量。它总是 <= max_trials .

inlier_mask_布尔形状阵列 [n_samples]

分类为 True .

n_skips_no_inliers_int

由于找到零内点而跳过的迭代次数。

Added in version 0.19.

n_skips_invalid_data_int

由于定义的无效数据而跳过的迭代次数 is_data_valid .

Added in version 0.19.

n_skips_invalid_model_int

由于定义的模型无效而跳过的迭代次数 is_model_valid .

Added in version 0.19.

n_features_in_int

期间看到的功能数量 fit .

Added in version 0.24.

feature_names_in_ :nd形状数组 (n_features_in_ ,)nd数组形状(

Names of features seen during fit. Defined only when X has feature names that are all strings.

Added in version 1.0.

参见

HuberRegressor

对异常值稳健的线性回归模型。

TheilSenRegressor

Theil-Sen估计稳健多元回归模型。

SGDRegressor

通过最小化与新元的正规化经验损失来进行匹配。

引用

示例

>>> 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...])

有关更详细的示例,请参见 使用RASAC的鲁棒线性模型估计

fit(X, y, *, sample_weight=None, **fit_params)[源代码]#

使用RASAC算法的适合估计器。

参数:
X形状(n_samples,n_features)的{类数组,稀疏矩阵}

训练数据。

y形状类似阵列(n_samples,)或(n_samples,n_targets)

目标值。

sample_weight形状类似数组(n_samples,),默认=无

如果sample_weight通过并且估计器匹配方法不支持,每个样本的单独权重就会产生误差。

Added in version 0.18.

**fit_paramsdict

参数路由到 fit 方法的子估计器通过元数据路由API。

Added in version 1.5: Only available if sklearn.set_config(enable_metadata_routing=True) is set. See Metadata Routing User Guide for more details.

返回:
self对象

装配 RANSACRegressor 估计者。

提出:
ValueError

如果找不到有效的共识集。如果出现这种情况 is_data_validis_model_valid 返回全部为假 max_trials 随机选择的子样本。

get_metadata_routing()[源代码]#

获取此对象的元数据路由。

请检查 User Guide 关于路由机制如何工作。

Added in version 1.5.

返回:
routingMetadataRouter

A MetadataRouter 封装路由信息。

get_params(deep=True)[源代码]#

获取此估计器的参数。

参数:
deep布尔,默认=True

如果为True,将返回此估计量和包含的作为估计量的子对象的参数。

返回:
paramsdict

参数名称映射到其值。

predict(X, **params)[源代码]#

使用估计的模型进行预测。

这是一个包装 estimator_.predict(X) .

参数:
X形状(n_样本,n_特征)的{类阵列或稀疏矩阵}

输入数据。

**paramsdict

参数路由到 predict 方法的子估计器通过元数据路由API。

Added in version 1.5: Only available if sklearn.set_config(enable_metadata_routing=True) is set. See Metadata Routing User Guide for more details.

返回:
y数组,形状= [n_samples] 或 [n_samples, n_targets]

返回预测值。

score(X, y, **params)[源代码]#

返回预测的分数。

这是一个包装 estimator_.score(X, y) .

参数:
X形状(n_samples,n_features)的(类阵列或稀疏矩阵)

训练数据。

y形状类似阵列(n_samples,)或(n_samples,n_targets)

目标值。

**paramsdict

参数路由到 score 方法的子估计器通过元数据路由API。

Added in version 1.5: Only available if sklearn.set_config(enable_metadata_routing=True) is set. See Metadata Routing User Guide for more details.

返回:
z浮子

预测的分数。

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') RANSACRegressor[源代码]#

请求元数据传递给 fit

请注意,此方法仅适用于以下情况 enable_metadata_routing=True (见 sklearn.set_config ).请参阅 User Guide 关于路由机制如何工作。

The options for each parameter are:

  • True :元数据被请求并传递给 fit 如果提供的话。如果未提供元数据,则会忽略请求。

  • False :未请求元数据,元估计器不会将其传递给 fit .

  • None :不请求元数据,如果用户提供元估计器,则元估计器将引发错误。

  • str :元数据应通过此给定别名而不是原始名称传递给元估计器。

默认 (sklearn.utils.metadata_routing.UNCHANGED )保留现有请求。这允许您更改某些参数的请求,而不是其他参数。

Added in version 1.3.

备注

只有当该估计器用作元估计器的子估计器时,该方法才相关,例如在 Pipeline .否则就没有效果了。

参数:
sample_weight字符串、真、假或无, 默认=sklearn.utils. metalics_Routing.UNChanged

元数据路由 sample_weight 参数 fit .

返回:
self对象

更新的对象。

set_params(**params)[源代码]#

设置此估计器的参数。

该方法适用于简单估计器以及嵌套对象(例如 Pipeline ).后者具有以下形式的参数 <component>__<parameter> 以便可以更新嵌套对象的每个组件。

参数:
**paramsdict

估计参数。

返回:
self估计器实例

估计实例。