本文简要介绍python语言中 sklearn.linear_model.RANSACRegressor
的用法。
用法:
class sklearn.linear_model.RANSACRegressor(base_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(随机抽样共识)算法。
RANSAC 是一种迭代算法,用于对来自完整数据集的内点子集的参数进行稳健估计。
在用户指南中阅读更多信息。
- base_estimator:对象,默认=无
实现以下方法的基本估计器对象:
fit(X, y)
:将模型拟合到给定的训练数据和目标值。score(X, y)
:返回给定测试数据的平均准确度,用于stop_score
定义的停止标准。此外,分数用于决定两个同样大的共识集中的哪一个被选为更好的共识集。predict(X)
:使用线性模型返回预测值,该模型用于使用损失函数计算残差。
如果
base_estimator
为 None,则LinearRegression
用于 dtype float 的目标值。请注意,当前实现仅支持回归估计器。
- min_samples:int (>= 1) 或 float ([0, 1]),默认=无
从原始数据中随机选择的最小样本数。对于
min_samples >= 1
被视为绝对样本数,对于min_samples < 1
被视为相对数ceil(min_samples * X.shape[0])
。这通常被选为估计给定base_estimator
所需的最小样本数。默认情况下,假设使用sklearn.linear_model.LinearRegression()
估计器,并选择min_samples
作为X.shape[1] + 1
。此参数高度依赖于模型,因此如果使用linear_model.LinearRegression
以外的base_estimator
,则鼓励用户提供一个值。- residual_threshold:浮点数,默认=无
要分类为内点的数据样本的最大残差。默认情况下,阈值被选为目标值
y
的 MAD(中值绝对偏差)。残差严格等于阈值的点被视为内点。- is_data_valid:可调用,默认=无
在模型拟合之前,使用随机选择的数据调用此函数:
is_data_valid(X, y)
。如果其返回值为 False,则跳过当前随机选择的子样本。- is_model_valid:可调用,默认=无
使用估计模型和随机选择的数据调用此函数:
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
定义的无效模型而可以跳过的最大迭代次数。- stop_n_inliers:整数,默认=np.inf
如果至少找到此数量的内点,则停止迭代。
- stop_score:浮点数,默认=np.inf
如果分数大于此阈值,则停止迭代。
- stop_probability:在 [0, 1] 范围内浮点数,默认 = 0.99
如果在 RANSAC 中采样了至少一组 outlier-free 训练数据集,则 RANSAC 迭代停止。这需要生成至少 N 个样本(迭代):
N >= log(1 - probability) / log(1 - e**m)
其中概率(置信度)通常设置为较高的值,例如 0.99(默认值),e 是当前的 inliers w.r.t 分数。样本总数。
- loss:str,可调用,默认='absolute_error'
支持字符串输入 ‘absolute_error’ 和 ‘squared_error’,它们分别找到每个样本的绝对误差和平方误差。
如果
loss
是可调用的,那么它应该是一个函数,它接受两个数组作为输入,即真实值和预测值,并返回一个一维数组,其中数组的i-th 值对应于X[i]
上的损失.如果样本的损失大于
residual_threshold
,则该样本被分类为异常值。- random_state:int,RandomState 实例,默认=无
用于初始化中心的生成器。传递 int 以在多个函数调用之间实现可重现的输出。请参阅术语表。
- estimator_:对象
最佳拟合模型(
base_estimator
对象的副本)。- n_trials_:int
直到满足停止标准之一的随机选择试验次数。它始终是
<= max_trials
。- inlier_mask_:bool 形状数组 [n_samples]
分类为
True
的内点的布尔掩码。- n_skips_no_inliers_:int
由于发现零内点而跳过的迭代次数。
- n_skips_invalid_data_:int
由于
is_data_valid
定义的无效数据而跳过的迭代次数。- n_skips_invalid_model_:int
由于
is_model_valid
定义的模型无效而跳过的迭代次数。- n_features_in_:int
拟合期间看到的特征数。
- feature_names_in_:ndarray 形状(
n_features_in_
,) 拟合期间看到的特征名称。仅当
X
具有全为字符串的函数名称时才定义。
参数:
属性:
参考:
例子:
>>> 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...])
相关用法
- Python sklearn RandomTreesEmbedding用法及代码示例
- Python sklearn RocCurveDisplay用法及代码示例
- Python sklearn RadiusNeighborsTransformer用法及代码示例
- Python sklearn RadiusNeighborsRegressor.radius_neighbors_graph用法及代码示例
- Python sklearn RandomizedSearchCV用法及代码示例
- Python sklearn RFE用法及代码示例
- Python sklearn RadiusNeighborsClassifier用法及代码示例
- Python sklearn RidgeCV用法及代码示例
- Python sklearn RegressorChain用法及代码示例
- Python sklearn RandomForestClassifier用法及代码示例
- Python sklearn RadiusNeighborsTransformer.radius_neighbors_graph用法及代码示例
- Python sklearn RobustScaler用法及代码示例
- Python sklearn RandomForestRegressor用法及代码示例
- Python sklearn RepeatedStratifiedKFold用法及代码示例
- Python sklearn RocCurveDisplay.from_estimator用法及代码示例
- Python sklearn RadiusNeighborsRegressor用法及代码示例
- Python sklearn RBF用法及代码示例
- Python sklearn Ridge用法及代码示例
- Python sklearn RadiusNeighborsTransformer.radius_neighbors用法及代码示例
- Python sklearn RocCurveDisplay.from_predictions用法及代码示例
- Python sklearn RidgeClassifierCV用法及代码示例
- Python sklearn RadiusNeighborsRegressor.radius_neighbors用法及代码示例
- Python sklearn RepeatedKFold用法及代码示例
- Python sklearn RBFSampler用法及代码示例
- Python sklearn RadiusNeighborsClassifier.radius_neighbors_graph用法及代码示例
注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.linear_model.RANSACRegressor。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。