今晚在练习kaggle时遇到了弹性网络回归,花了些时间简单查了一些资料,算是稍微理解了些。
要想理解ElasticNet回归,正则化是必须要首先知道的,其次是岭回归和Lasso回归,知道了这些,弹性网回归自然也就明白了。
首先来看正则化:
假设我们都知道利用最小二乘法来做线性回归,最小二乘法回归成功的条件是(我得承认以下的所有图都是我盗的):
即上面这个函数(损失函数,目前也是目标函数)达到最小值,可得到最优的拟合参数(即θ )。
但是存在这样一种情况,如果我们用来拟合的自变量过多(或者说特征变量过多),而且特征变量之前存在很高的相关关系,比如下面这种情况:
以上两个函数都可以很好的拟合数据,但右边的函数显然有过拟合的嫌疑,为了避免这种情况,有两种方法:1、舍掉x^3和x^4这两个变量(这就是所谓的特征选择,舍弃无用的特征变量。可以人工选择,也可以利用算法来做。但有些时候我们可能并不希望舍弃数据,一方面特征选择有一定的不确定性,另一方面这个过程是比较繁琐的,这种时候我们可以采用第二种方法来解决这一问题。);2、减小θ
3和θ
4的值(即正则化,保留所有特征变量,但减少变量参数的值)。
要减小θ
3和θ
4的值,我们可以在损失函数的后面加上(1000*θ
3^2+1000*θ