当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。