本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。