线性回归模型有两种理解角度
1、多元线性回归
1)最小二乘法
2)大似然估计
2、算法常用的方法
3、岭回归,lasso回归,弹性网络
4、python代码
一、多元线性回归
1、最小二乘法
假设线性回归模型具有如下形式:
所谓最小二乘法是求出一个合适的θ值,使所有观察值的残差平方和达到最小,此时目标函数为
问题等价于:
对θ求导,并令一阶导数=0:
求解θ:
若X^{T}X不可逆或防止过拟合,增加λ扰动
2、最大化似然估计
求最大似然函数估计值的一般步骤:
(1) 写出似然函数
(2) 对似然函数取对数,并整理
(3) 求导数
(4) 解似然方程
高斯分布的概率密度函数为:
假设误差是独立同分布的,服从均值为0,方差为某定值的高斯分布(中心极限定理)即:
误差的概率密度函数为:
似然函数为(联合密度函数):
两边取对数:
目标函数:
求梯度:
求驻点,令:
求解θ:
若X^{T}X不可逆或防止过拟合,增加λ扰动
2、算法中用梯度下降算法求θ
a)初始化θ
b)沿着负梯度方向迭代,更新后的θ使J(θ)更小
c)学习率α可设置
3、岭回归,lasso回归,弹性网络
1)ridge回归
增加L1正则项
2)lasso回归
增加L2正则项
3)弹性网络
同事增加L1+L2正则项
image.png
4、python代码
#alphas是正则项的系数,cv是k折交叉验证
models = [Pipeline([('linear', LinearRegression(fit_intercept=False))]),
Pipeline([('linear', RidgeCV(alphas=np.logspace(-3, 2, 10), fit_intercept=False,cv=5))]),
Pipeline([ ('linear', LassoCV(alphas=np.logspace(-3, 2, 10), fit_intercept=False,cv=5))]),
Pipeline([('linear', ElasticNetCV(alphas=np.logspace(-3, 2, 10), l1_ratio=[.1, .5, .7, .9, .95, .99, 1],fit_intercept=False,cv=5))])]
网友评论