梳理统计学习相关的体系
进入统计机器学习模型部分,首先从最基础的从回归分析说起。
1.回归分析
回归分析大家相对来说都已经比较了解,本质上说是以用数据去拟合自变量与解释变量之间的线性关系。是后续各种统计学习模型的基础。本部分对此不做详细介绍,这次从最小二乘的几何意义角度去看回归分析。
我们知道最终的估计满足 。所以从几何角度上看,最优估计是在空间上的正交投影
统计/回归分析中的的一些基本概念:
- t 检验
- F 检验
- p value
- 多重共线性
关于统计基础以及其在工作中的常用应用,可参见(##先占坑)
2.正则化处理
训练数据是有限的时候,总可以通过增加参数的方法提高模型复杂度,降低训练误差,但是其泛化能力不好。正则化即通过调整参数的取值,来平衡偏差和方差的关系。
线性回归中,最直接的方法就行在loss function中添加正则化项。一般形式如下:
- 当取一范数时,即为lasso;
- 二范数:岭回归
- 一范数和二范数组合:弹性网络。
一范数和二范数的几何意义区别如下(这里就不解释了):
- lasso会将特征衰减到0
- 岭回归大量特征系数都比较小
- 弹性网络结合了两种方法的优点
从概率不同学派的角度来看上面的问题。
正则化的方式,是从频率学派角度来看;而贝叶斯学派视角来看,正则化其实就是引入了关于参数的先验信息。
贝叶斯学派是假定参数服从某种分布,然后根据其分布利用积分的方法将其消除掉。这一过程叫边际化。边际化的过程其实恰好是正则化/泛化的过程。
可以证明,岭回归是w满足正态分布,lasso是当w满足拉普拉斯分布时候通过最大后验概率得到的估计结果。
# code
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import Lasso,LassoCV,LassoLarsCV # Lasso回归,LassoCV交叉验证实现alpha的选取,LassoLarsCV基于最小角回归交叉验证实现alpha的选取
# ========Lasso回归========
model = Lasso(alpha=0.01) # 调节alpha可以实现对拟合的程度
# model = LassoCV() # LassoCV自动调节alpha可以实现选择最佳的alpha。
# model = LassoLarsCV() # LassoLarsCV自动调节alpha可以实现选择最佳的alpha
model.fit(X, y) # 线性回归建模
print('系数矩阵:\n',model.coef_)
print('线性回归模型:\n',model)
# print('最佳的alpha:',model.alpha_) # 只有在使用LassoCV、LassoLarsCV时才有效
# 使用模型预测
predicted = model.predict(X)
网友评论