![]() 欠拟合与过拟合概念 本次课程大纲: 1、 局部加权回归:线性回归的变化版本 2、 概率解释:另一种可能的对于线性回归的解释 3、 Logistic回归:基于2的一个分类算法 4、 感知器算法:对于3的延伸,简要讲
复习:
令
n为特征数量
定义成本函数J,定义为:
m为训练样本 通过正规方程组推导的结论:
1、 过拟合与欠拟合
通常,你选择交给学习算法处理的特征的方式对算法的工作过程有很大影响。
例:上次课的例子中,用x1表示房间大小。通过线性回归,在横轴为房间大小,纵轴为价格的图中,画出拟合曲线。回归的曲线方程为:
若定义特征集合为:x1表示房子大小,x2表示房子大小的平方,使用相同的算法,拟合得到一个二次函数,在图中即为一个抛物线,即: 以此类推,若训练集有7个数据,则可拟合出最高6次的多项式,可以找到一条完美的曲线,该曲线经过每个数据点。但是这样的模型又过于复杂,拟合结果仅仅反映了所给的特定数据的特质,不具有通过房屋大小来估计房价的普遍性。而线性回归的结果可能无法捕获所有训练集的信息。
所以,对于一个监督学习模型来说,过小的特征集合使得模型过于简单,过大的特征集合使得模型过于复杂。
对于特征集过小的情况,称之为欠拟合(underfitting); 对于特征集过大的情况,称之为过拟合(overfitting)
解决此类学习问题的方法: 1) 特征选择算法:一类自动化算法,在这类回归问题中选择用到的特征 2) 非参数学习算法:缓解对于选取特征的需求,引出局部加权回归
参数学习算法(parametric learning algorithm)
定义:参数学习算法是一类有固定数目参数,以用来进行数据拟合的算法。设该固定的参数集合为
非参数学习算法(Non-parametric learning algorithm) 定义:一个参数数量会随m(训练集大小)增长的算法。通常定义为参数数量虽m线性增长。换句话说,就是算法所需要的东西会随着训练集合线性增长,算法的维持是基于整个训练集合的,即使是在学习以后。
2、 局部加权回归(Locally Weighted Regression) 一种特定的非参数学习算法。也称作Loess。
算法思想: 假设对于一个确定的查询点x,在x处对你的假设h(x)求值。
对于线性回归,步骤如下:
1) 拟合出
2) 返回
对于局部加权回归,当要处理x时: 1) 检查数据集合,并且只考虑位于x周围的固定区域内的数据点 2) 对这个区域内的点做线性回归,拟合出一条直线 3) 根据这条拟合直线对x的输出,作为算法返回的结果
用数学语言描述即:
1) 拟合出 2) w为权值,有很多可能的选择,比如:
- 其意义在于,所选取的x(i)越接近x,相应的w(i)越接近1;x(i)越远离x,w(i)越接近0。直观的说,就是离得近的点权值大,离得远的点权值小。 - 这个衰减函数比较具有普遍意义,虽然它的曲线是钟形的,但不是高斯分布。
-
3) 返回
总结:对于局部加权回归,每进行一次预测,都要重新拟合一条曲线。但如果沿着x轴对每个点都进行同样的操作,你会得到对于这个数据集的局部加权回归预测结果,追踪到一条非线性曲线。
*局部加权回归的问题: 由于每次进行预测都要根据训练集拟合曲线,若训练集太大,每次进行预测的用到的训练集就会变得很大,有方法可以让局部加权回归对于大型数据集更高效,详情参见Andrew Moore的关于KD-tree的工作。
3、 概率解释
概率解释所解决的问题: 在线性回归中,为什么选择最小二乘作为计算参数的指标,使得假设预测出的值和真正y值之间面积的平方最小化?
我们提供一组假设,证明在这组假设下最小二乘是有意义的,但是这组假设不唯一,还有其他很多方法可以证明其有意义。
(1) 假设1:
假设输入与输出为线性函数关系,表示为:
其中,
假设 高斯分布的概率密度函数:
根据上述两式可得:
即,在给定了特征与参数之后,输出是一个服从高斯分布的随机变量,可描述为:
*为什么选取高斯分布? 1) 便于数学处理 2) 对绝大多数问题,如果使用了线性回归模型,然后测量误差分布,通常会发现误差是高斯分布的。 3) 中心极限定律:若干独立的随机变量之和趋向于服从高斯分布。若误差有多个因素导致,这些因素造成的效应的总和接近服从高斯分布。
注意:
假设每个 为IID(independently and identically distributed)独立同分布 即误差项彼此之间是独立的,并且他们服从均值和方差相同的高斯分布
(2) 假设2:
设
由于
(3) 假设3:
极大似然估计:选取
定义对数似然函数为
上式两个加项,前一项为常数。所以,使似然函数最大,就是使后一项最小,即:
这一项就是之前的
注意:高斯分布的方差对最终结果没有影响,由于方差一定为正数,所以无论取什么值,最后结果都相同。这个性质会在下节课讲到。
4、 Logistic回归
这是我们要学习的第一个分类算法。之前的回归问题尝试预测的变量y是连续变量,在这个分类算法中,变量y是离散的,y只取{0,1}两个值。
一般这种离散二值分类问题用线性回归效果不好。比如x<=3,y=0;x>3,y=1,那么当x>3的样本占得比例很大是,线性回归的直线斜率就会越来越小,y=0.5时对应的x判决点就会比3大,造成预测错误。
若y取值{0,1},首先改变假设的形式,使假设得到的值总在[0,1]之间,即: 所以,选取如下函数:
其中:
g函数一般被称为logistic函数,图像如下:
z很小时,g(z)趋于0,z很大时,g(z)趋于1,z=0时,g(z)=0.5
对假设的概率解释: 假设给定x以为参数的y=1和y=0的概率:
可以简写成:
参数的似然性:
求对数似然性:
为了使似然性最大化,类似于线性回归使用梯度下降的方法,求对数似然性对
因为求最大值,此时为梯度上升。 偏导数展开:
则:
即类似上节课的随机梯度上升算法,形式上和线性回归是相同的,只是符号相反,
5、 感知器算法
在logistic方法中,g(z)会生成[0,1]之间的小数,但如何是g(z)只生成0或1? 所以,感知器算法将g(z)定义如下:
同样令
尽管看起来和之前的学习算法类似,但感知器算法是一种非常简便的学习算法,临界值和输出只能是0或1,是比logistic更简单的算法。后续讲到学习理论是,会将其作为基本的构造步骤。 |
|