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 numberceil(min_samples * X.shape[0])
formin_samples < 1
. This is typically chosen as the minimal number of samples necessary to estimate the givenestimator
. By default aLinearRegression
estimator is assumed andmin_samples
is chosen asX.shape[1] + 1
. This parameter is highly dependent upon the model, so if aestimator
other thanLinearRegression
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 withis_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_valid
和is_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对象
更新的对象。