系列文章目录
【学习笔记】 陈强-机器学习-Python-Ch4 线性回归
【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归
【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv)
【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归
【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析
【学习笔记】 陈强-机器学习-Python-Ch8 朴素贝叶斯
前言
本学习笔记 仅为以防自己忘记了,顺便分享给一起学习的网友们参考。如有不同意见/建议,可以友好讨论。
本学习笔记 所有的代码和数据都可以从 陈强老师的个人主页 上下载
参考书目:陈强.机器学习及Python应用. 北京:高等教育出版社, 2021.
数学原理等 详见陈强老师的 PPT
参考了网友阡之尘埃的Python机器学习04——惩罚回归
一、理论
“高维数据” (high dimensional data,即特征向量 x i x_i xi的维度 p p p 大于样本容量 n n n) 进行传统的线性回归模型时,存在严格多重共线性(因为:X的列秩 = X的行秩 ≤ n<p
),故逆矩阵 ( X ′ X ) − 1 (X'X)^{-1} (X′X)−1 不存在,故 OLS 不存在唯一解。
如果强行对高维数据使用传统的OLS 回归,可能得到完美的/过拟合(overfit) 的 样本内拟合,但外推预测的效果则可能很差。
且,高维数据不能像传统的低维数据处理“严格多重共线性” 那样只要将多余的变量去掉,因为需要扔掉变量过多。
高维回归:
1. 解决多重共线性: 岭回归(Ridge Regression)
岭回归提出的出发点正是为了解决多重共线性:
在损失函数 (loss function)中加入“惩罚项” (penalty term) 进行惩罚回归(penalized regression)。
【注意】:由于岭回归通过惩罚项,惩罚过大的回归系数,故变量单位对于岭回归有实质性影响。
步骤:
1)将每个变量 x j ( j = 1 , . . . , p ) x_j (j=1,...,p) xj(j=1,...,p) 标准化( x j − x j ‾ x_j -\overline{x_j} xj−xj):变量的样本均值为0。因y的样本均值已为 0,故常数项不必放入岭回归方程中
2)除以标准差 s d ( x j ) sd(x_j) sd(xj)
3)使用标准化的变量 x j − x j ‾ s d ( x j ) {x_j -\overline{x_j }} \over {sd(x_j)} sd(xj)xj−xj进行岭回归
岭回归通常只是将所有的回归系数都收缩,而不会让某些回归系数严格等于0 。