3 线性回归
3.1 回归
回归模型是表示输入变量到输出变量之间映射的函数
基本的回归问题可以分为模型学习和预测两个过程。基于给定的训练数据集构建一个模型,根据新的输入数据预测相应的输出。
回归问题的学习等价于函数拟合:即使用一条函数曲线使其很好的拟合已知函数且很好的预测未知数据。
回归问题
分类:
按输入变量个数:一元回归和多元回归
按输入变量和输出变量之间关系的类型:线性回归和非线性回归
3.2 一元线性回归
![](https://i-blog.csdnimg.cn/blog_migrate/1a1413e2b337216552e69233c7a53164.png)
接上图,一元线性回归采用“最小二乘法”,使所有样本点与预测直线之间距离的平方之和最小,完成参数估计。
损失函数E(w,b)是关于w和b的凸函数,证明过程纯高数问题,西瓜书中对其有详细描述。
注:部分笔记手写,字迹略为潦草。
3.3 多元线性回归
![](https://i-blog.csdnimg.cn/blog_migrate/3cb303ac1a616783153713eb594f6fc2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/fbb8d24fb7a985d5adb8d9dceaadc936.png)
此时的损失函数:
![](https://i-blog.csdnimg.cn/blog_migrate/39a218d788a13f9ae58c4fa9d0fa0624.png)
接着求
对
的导数
![](https://i-blog.csdnimg.cn/blog_migrate/9695464a843f2297acae2f9717dfb8ca.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ffda06b3a788042d71dd3b63adcdb2ca.png)
![](https://i-blog.csdnimg.cn/blog_migrate/24c23f0c74f5498f981f4e720ac33afa.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5bde49f5fce85a6ef07a8e03de01e724.png)
损失函数是关于的凸函数,证明略。
3.4 对数几率回归
![](https://i-blog.csdnimg.cn/blog_migrate/17b9e41391c2143aa20d4cb66e497062.png)
但阶跃函数不可导。一个近似替代函数就是对数几率函数:
![](https://i-blog.csdnimg.cn/blog_migrate/5c169f1aedaad51b0c1a521acd13648f.png)
对数几率函数如图:
![](https://i-blog.csdnimg.cn/blog_migrate/63c064eaf1d4731be8f7fd1b0770b38f.png)
这是一个“Sigmoid函数”:形似S形函数。将
z替换代入有:
![](https://i-blog.csdnimg.cn/blog_migrate/45e40242fcd43942d64185fe4d0aafec.png)
将上式变换有:
![](https://i-blog.csdnimg.cn/blog_migrate/0078f595ecf6f5c623fa5154ca53c1f6.png)
左边是求y的几率并取对数,称为对数几率(
ogistic regression,简称LR
)。实际上是在用线性回归模型的预测结果,去逼近真实标记的对数几率。
![](https://i-blog.csdnimg.cn/blog_migrate/ef3e55f1a9465f5097d10682e113a1ae.png)
注:对数几率回归虽然它的名字是“回归”,但实际是一种分类学习方法。
3.5 线性判别分析(LDA)
线性判别分析(Linear Discriminant Analysis,简称LDA),二分类问题上最早由Fisher于1936年提出,亦称费舍尔判别分析,
是一种
数据降维
的方法。
LDA投影后,数据类内方差最小,类间方差最大,常用于监督学习数据预处理中的降唯、分类任务。
其基本思想是:将训练样本投影到一条直线上,使得同类的样例尽可能近,不同类的样例尽可能远。如图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/f13789f397e1295ab7d9ce50a71bc571.png)
![](https://i-blog.csdnimg.cn/blog_migrate/64ab57d8e96788f5342b7f00ceb1c619.png)
3.6 多分类学习
现实中我们经常遇到不只两个类别的分类问题,即多分类问题,在这种情形下,我们常常运用“拆分”的策略,通过多个二分类学习器来解决多分类问题,即将多分类问题拆解为多个二分类问题,训练出多个二分类学习器,最后将多个分类结果进行集成得出结论。
最为经典的拆分策略有三种:
一对一(one vs one,OvO)
一对多(one vs rest,OvR)
多对多(many vs many,MvM)
1.OvO:
思想:给定数据集D,假定其中有N个真实类别,将这N个类别进行两两配对(一个正类/一个反类),产分类器个数:产生N(N-1)/2个二分类学习器
测试:将新样本放入所有的二分类学习器中测试,得出N(N-1)/2个结果,最终投票产生结果。
2.OvR:
思想:给定数据集D,假定其中有N个真实类别,每次取出一个类作为正类,剩余的作为反类,
产分类器个数:产生N个二分类学习器
测试:得出N个结果,若仅有一个分类器预测为0类,其余1类,则对应为0类。若有多个都是0类,则根据各个的预测置信度。置信度最大的类别标注为分类结果。
![](https://i-blog.csdnimg.cn/blog_migrate/e588ca913400be7fa8d15b8bac7f4241.png)
上图所示N=4,左边为OvO,右边为OvR
左边:N=4,则分类器有6个。新样本测试6次,然后投票。
右边:N=4,则分类器有4个。C3预测为正类,其余均负类,则最终为C3。
3.MvM:
思想:给定数据集D,假定其中有N个真实类别,每次取若干个类作为正类,若干个类作为反类(通过ECOC码即纠错输出码给出编码),若进行了M次划分,则生成了M个二分类学习器
测试:(解码),得出M个结果组成一个新的码,最终通过计算海明/欧式距离选择距离最小的类别作为最终分类结果。
![](https://i-blog.csdnimg.cn/blog_migrate/24211ba9ea79df91b1a221fb5163efce.png)
对于左图,第一个分类器f1将C1,C3,C4为负类,C2为正类;其余依次设置,共M个分类器。每行是对应类别的编码,长度为M。新样本测试后得到M长度的码,与各类对比,距离最近的为该类。
为何叫做纠错输出码?
答:测试阶段,ECOC编码对分类器的错误有一定的容忍和修正能力。
例如左图中,对测试示例的正确预测编码是(-1,+1,+1,-1,+1),但若是f2分类器出错了,预测成了(-1,-1,+1,-1,+1),仍然可以得到正确的结果。
一般的,对于同一个任务,ECOC编码越长,纠错能力越强。然而编码长意味着分类器数目多了,开销增大。
3.7类别不平衡问题
类别不平衡(class-imbanlance)就是指分类问题中不同类别的训练样本相差悬殊的情况,例如正例有998个,而反例只有2个,则学习器永远只返回新样本为正例。这个时候我们就需要进行相应的处理来平衡这个问题。
常见的做法有三种(正例少,反例多为例):
(1)对反类样本降采样。
降采样,即抛弃一些反例使正反例的数目接近,再进行学习。由于抛弃反例,分类器的训练集远小于初始训练集,因此欠采样的时间开销通常远小于过采样。
代表性算法
EasyEnsemble
利用
集成学习机制
,将反例划分为若干个集合,供不同学习器使用。对每个学习器角度来看都进行了降采样了,但全局来看并不会丢失重要信息。
(2)对正例样本过采样。
上采样,即增加一些正例,使正反例数目接近。但不能对初始数据集中的正例进行简单重复采样,否则会导致过拟合严重。代表性算法
SMOTE
,通过对训练集的正例进行
插值
来产生额外的正例。
(3)直接基于原数据集进行学习,对预测值进行“再缩放”处理。
令
表示正例数目,m-
表示反例数目,则观测几率是
,在决策时,基于下式执行
![](https://i-blog.csdnimg.cn/blog_migrate/af7dbb7e697b8a249879819e60b30a6f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/42e321fb268c5207a00508a96e0f6520.png)
这个过程也被称为
阈值移动