弹性网 ElasticNet
在最小二乘的基础上增加对参数的约束,使得参数越小越好,越靠近 0 越好
什么是弹性网?
- 使用 L1 正则化、L2 正则化练的线性回归模型,该模型允许学习一个稀疏参数,其中很少权重是非 0 的。当有多个相互关联的特征时,弹性网络很有用。Lasso 可能会随机选择其中之一,而 elastic-net 可能会同时选择两
1
2
3
4
5
6
7
8
9
10
11
12>>> from sklearn.linear_model import ElasticNet
>>> from sklearn.datasets import make_regression
>>> X, y = make_regression(n_features=2, random_state=0)
>>> regr = ElasticNet(random_state=0)
>>> regr.fit(X, y)
ElasticNet(random_state=0)
>>> print(regr.coef_)
[18.83816048 64.55968825]
>>> print(regr.intercept_)
1.451...
>>> print(regr.predict([[0, 0]]))
[1.451...]
什么是多任务弹性网络?
- 估计多个回归问题共同稀疏系数的弹性网,最小化目标函
1
2
3
4
5
6
7
8
9>>> from sklearn import linear_model
>>> clf = linear_model.MultiTaskElasticNet(alpha=0.1)
>>> clf.fit([[0,0], [1, 1], [2, 2]], [[0, 0], [1, 1], [2, 2]])
MultiTaskElasticNet(alpha=0.1)
>>> print(clf.coef_)
[[0.45663524 0.45612256]
[0.45663524 0.45612256]]
>>> print(clf.intercept_)
[0.0872422 0.0872422]
简单描述弹性网络回归算法?
- 弹性网络回归算法是套索回归算法和岭回归算法的混合体,在模型训练时,弹性网络回归算法综合使用 L1 正则化、L2 正则化两种正则化方法。当有多个相关的特征时,弹性网络回归算法是很有用的,套索回归算法会随机挑选算法中的一个,而弹性网络回归算法则会选择两个
- 优点:允许弹性网络回归继承循环状态下岭回归的一些稳定性;在高度相关变量的情况下,它会产生群体效应;选择变量的数目没有限制;可以承受双重收缩