本文簡要介紹python語言中 sklearn.linear_model.HuberRegressor
的用法。
用法:
class sklearn.linear_model.HuberRegressor(*, epsilon=1.35, max_iter=100, alpha=0.0001, warm_start=False, fit_intercept=True, tol=1e-05)
對異常值具有魯棒性的線性回歸模型。
Huber 回歸器優化
|(y - X'w) / sigma| < epsilon
的樣本的平方損失和|(y - X'w) / sigma| > epsilon
的樣本的絕對損失,其中 w 和 sigma 是要優化的參數。參數 sigma 確保如果 y 放大或縮小某個因子,則無需重新調整 epsilon 即可實現相同的魯棒性。請注意,這沒有考慮 X 的不同特征可能具有不同尺度的事實。這確保了損失函數不會受到異常值的嚴重影響,同時不會完全忽略它們的影響。
在用戶指南中閱讀更多信息
- epsilon:浮點數,大於 1.0,默認=1.35
參數 epsilon 控製應分類為異常值的樣本數。 epsilon 越小,它對異常值的魯棒性就越高。
- max_iter:整數,默認=100
scipy.optimize.minimize(method="L-BFGS-B")
應該運行的最大迭代次數。- alpha:浮點數,默認=0.0001
正則化參數。
- warm_start:布爾,默認=假
如果必須重用先前使用的模型的存儲屬性,這很有用。如果設置為 False,則每次調用都將重寫係數以進行擬合。請參閱詞匯表。
- fit_intercept:布爾,默認=真
是否適合截距。如果數據已經以原點為中心,則可以將其設置為 False。
- tol:浮點數,默認=1e-05
當
max{|proj g_i | i = 1, ..., n}
<=tol
其中 pg_i 是投影梯度的 i-th 分量時,迭代將停止。
- coef_:數組,形狀(n_features,)
通過優化 Huber 損失得到的特征。
- intercept_:浮點數
偏見。
- scale_:浮點數
|y - X'w - c|
按比例縮小的值。- n_features_in_:int
擬合期間看到的特征數。
- feature_names_in_:ndarray 形狀(
n_features_in_
,) 擬合期間看到的特征名稱。僅當
X
具有全為字符串的函數名稱時才定義。- n_iter_:int
scipy.optimize.minimize(method="L-BFGS-B")
已運行的迭代次數。- outliers_:數組,形狀(n_samples,)
設置為 True 的布爾掩碼,其中樣本被標識為異常值。
參數:
屬性:
參考:
- 1
Peter J. Huber, Elvezio M. Ronchetti,穩健統計伴隨規模估計,第 172 頁
- 2
Art B. Owen (2006),套索和嶺回歸的穩健混合。 https://statweb.stanford.edu/~owen/reports/hhu.pdf
例子:
>>> import numpy as np >>> from sklearn.linear_model import HuberRegressor, LinearRegression >>> from sklearn.datasets import make_regression >>> rng = np.random.RandomState(0) >>> X, y, coef = make_regression( ... n_samples=200, n_features=2, noise=4.0, coef=True, random_state=0) >>> X[:4] = rng.uniform(10, 20, (4, 2)) >>> y[:4] = rng.uniform(10, 20, 4) >>> huber = HuberRegressor().fit(X, y) >>> huber.score(X, y) -7.284... >>> huber.predict(X[:1,]) array([806.7200...]) >>> linear = LinearRegression().fit(X, y) >>> print("True coefficients:", coef) True coefficients: [20.4923... 34.1698...] >>> print("Huber coefficients:", huber.coef_) Huber coefficients: [17.7906... 31.0106...] >>> print("Linear Regression coefficients:", linear.coef_) Linear Regression coefficients: [-1.9221... 7.0226...]
相關用法
- Python sklearn HistGradientBoostingRegressor用法及代碼示例
- Python sklearn HistGradientBoostingClassifier用法及代碼示例
- Python sklearn HalvingGridSearchCV用法及代碼示例
- Python sklearn Hyperparameter用法及代碼示例
- Python sklearn HalvingRandomSearchCV用法及代碼示例
- Python sklearn HashingVectorizer用法及代碼示例
- Python sklearn jaccard_score用法及代碼示例
- Python sklearn WhiteKernel用法及代碼示例
- Python sklearn CalibrationDisplay.from_predictions用法及代碼示例
- Python sklearn VotingRegressor用法及代碼示例
- Python sklearn gen_batches用法及代碼示例
- Python sklearn ExpSineSquared用法及代碼示例
- Python sklearn MDS用法及代碼示例
- Python sklearn adjusted_rand_score用法及代碼示例
- Python sklearn MLPClassifier用法及代碼示例
- Python sklearn train_test_split用法及代碼示例
- Python sklearn RandomTreesEmbedding用法及代碼示例
- Python sklearn GradientBoostingRegressor用法及代碼示例
- Python sklearn GridSearchCV用法及代碼示例
- Python sklearn log_loss用法及代碼示例
- Python sklearn r2_score用法及代碼示例
- Python sklearn ndcg_score用法及代碼示例
- Python sklearn ShrunkCovariance用法及代碼示例
- Python sklearn SelfTrainingClassifier用法及代碼示例
- Python sklearn load_svmlight_file用法及代碼示例
注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.linear_model.HuberRegressor。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。