當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python sklearn HuberRegressor用法及代碼示例


本文簡要介紹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...]

相關用法


注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.linear_model.HuberRegressor。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。