1.3 - 线性回归
1.模型理念
解决分类问题的目标是,根据现有数据获得一个分类器,当出现新数据后代入分类器,得到新数据属于哪个类别;而所谓的回归:其本来应该在什么位置,实际案例中可能会有所偏离,但是随着趋势的进行,其结果不会一直偏离下去而是会在原本应该的位置上下抖动。对这类回归问题的研究方法是:根据现有的观测数据,找到数据背后的规律(回归方程)。
所谓 线性回归模型 的理念,就是 回归方程是线性的,就这样,很简单。
2. 模型构建
2.1 目标函数
将M个有N维特征的样本数据写成矩阵形式,每个样本为矩阵中的一行,对每个样本添加数值为常数1的0维特征,构成了一个 M×(N+1) 的矩阵 X 。对每个样本数据有 θT*x + ε = y,对M个样本组成的将矩阵有:X * θ = y。根据中心极限定理,ε 符合均值为0,方差为 δ2 的高斯分布。然后极大似然估计得到了 等价 最小二乘法 的损失函数,即:目标优化函数为:J(θ) = ∑(y预测 - y标签)2 。
2.2 优化方法
2.3.1 矩阵的解析解
J(θ) = ( Xθ - y )T( Xθ - y ),函数展开对 θ 求导,得解析解:θ = ( XT X )-1 XT y,考虑到矩阵的可逆性,加上扰动,即最终解析解:θ = ( XT X + λI )-1 XT y,λ是一个很小的正实数,因为加上扰动之后形成了一个正定矩阵,而正定矩阵必定可逆。
2.3.2 梯度下降的一般解
J(θ) = 1/m * ∑(y预测 - y标签)2 ,前面的系数 1/m 是很有必要的:其对最终的结果没有影响,但是会影响每次更新参数更新的大小;对整体损失函数而言,加上这个系数表示 对每个样本的平均损失,否则 损失会和数据集的数据量相关。 当样本有多个特征时,θ 是一个多维向量,将损失函数展开,对 θ 的每个维度分别求偏导,得到模型参数的更新公式:θ = θ - α * 1/m * XT * ( y预测 - y标签 ) 。
2.3 特征的 多项式扩展 - 用线性模型拟合非线性数据
LinearRegression只能拟合线性的数据,如果数据本身是非线性的,要通过多项式扩展对数据特征进行预处理之后,再用 LinearRegression 训练。特征的多项式扩展即:本来样本数据只有 x1 x2 x3 三个特征,令:x4 = x12,x5 = x1 * x2,... 诸如此类。这样 通过线性模型能够去拟合非线性的数据。
3. 引发过拟合和欠拟合的因素以及对应措施
3.1 线性回归欠拟合
如果欠拟合,是模型的复杂度不够引起的。对于线性回归模型而言,可以增大多项式扩展的参数,如:二阶函数变三阶,不包含交叉项改成包含交叉性。
3.1 线性回归过拟合
如果过拟合,是因为模型过于复杂导致考虑了很多无效特征。不同模型解决过拟合的方式不同,线性回归模型解决过拟合的方法是:降低特征多项式的degree参数&损失函数引入正则项,这两者都能起到降低过拟合的效果。
正则化方法:
1)L1正则化,拉索回归 Σ | θi |
2)L2正则化,岭回归 Σ ( θi )2
3)弹性网络,( λ1L1 + λ2L2 )
通过限制模型参数 θ 的大小来降低模型过拟合的有效性:对于线性回归方程而言,高次项的系数越大,函数曲线也会越陡越复杂,系数的绝对值越小,函数曲线也会越平滑。说明有效控制 θ 的大小可以起到抑制过拟合的作用。
4. 适用场景及应用,(分类 or 回归)
线性模型,可做分类,可做回归,本节内容讲回归,下节 logistic回归 做分类。
5. 完整可运行的示例代码