作者:陈浩然,北京大学智能科学专业,个人网址:chrer.com
北大才女陈浩然机器学习笔记系列文章:
北大才女总结:机器学习的概念、历史和未来
北大才女笔记:这样学习线性回归和梯度下降(上篇)
北大陈浩然笔记:特征缩放和泛化能力(下篇)
0
引言
之前说过,机器学习的两大任务是回归和分类,上章的线性回归模型适合进行回归分析,例如预测房价,但是当输出的结果为离散值时,线性回归模型就不适用了。我们的任务是:将回归分析中的实数值转化为离散值或者对于离散值的概率。
1
logistic判别
转换函数
例如我们进行癌症判定,回归模型可以输出癌症几率a,并且 a∈(0,1),而我们的任务是将几率转化为0、1两个结果(例如0表示无癌,1表示患癌)。
如果我们使用前一章的线性回归模型,可以认为>0.5的结果看成1,<0.5的结果看成0,便可以得到下列的转换函数:
这个公式看上去十分直观,但是有一些明显的缺点:
为了解决以上这些问题,我们提出了一个特殊的转换函数,对数几率函数,又称sigmoid函数
其图像如下:
可以很明显的看出,该函数将实数域映射成了[0,1]的区间,带入我们的线性回归方程,可得:
于是,无论线性回归取何值,我们都可以将其转化为[0,1]之间的值,经过变换可知:
故在该函数中,
代表了 x 为正例的可行性大小,由于含有对数,所以称为对数几率,其中y为正例几率,1-y为反例几率。
所以在算法中,最终得到的结果y便代表是正例的几率,它在[0,1]之间,一般而言,如果y大于0.5,我们将其视为正例,如果y小于0.5,我们将其视为反例。
2
更新策略
我们将转换函数
称为
这是原本的线性回归
和sigmoid函数
结合得到的。
由于这个函数并不是凸函数,直接带入我们之前的梯度下降策略是无效的,得不到优化的结果,所以要更换梯度下降策略。
定义新的代价函数:
观察该式可知,无论y取0还是1,当
与y差距越大,代价函数值越大,且趋于正无穷,代价函数取值范围为
将上面的代价函数写成另一种形式,便于进行求导:
将所有的数据项代价累计起来,得到最终的代价函数形式:
对于该函数使用梯度下降,分别对每一个 w 的每一项进行求导和更新即可。
3
正则化
当我们利用线性回归拟合数据时,为了拟合较为复杂的数据,可能会引入较多的参数,例如:
我们可能会得到下面两种图像:
理想情况下,我们的算法应该得到左边的图像,而右边的图像显然有过拟合的倾向。
在统计学中,过拟合(英语:overfitting,或称过度拟合)现象是指在拟合一个统计模型时,使用过多参数。对比于可获取的数据总量来说,一个荒谬的模型只要足够复杂,是可以完美地适应数据。过拟合一般可以视为违反奥卡姆剃刀原则。当可选择的参数的自由度超过数据所包含信息内容时,这会导致最后(拟合后)模型使用任意的参数,这会减少或破坏模型一般化的能力更甚于适应数据。过拟合的可能性不只取决于参数个数和数据,也跟模型架构与数据的一致性有关。此外对比于数据中预期的噪声或错误数量,跟模型错误的数量也有关。
如果算法效果较好,即使我们在初始部分选择了很多个参数,如上文的
理想的算法也应该尽量使
接近0,使得实际的得到的拟合曲线应该如左图所示,为解决该问题,我们引入了正则化项。
4
正则化线性回归
为了解决过拟合的问题,我们应该引入一个参数项,使得在进行梯度下降的时候尽可能使得参数变小,这样可以使得很多额外的变量的系数接近于0。 更新线性回归的代价函数:
接着进行梯度下降即可。
5
多分类问题
logistics判别解决的是二分类问题,那么应该如何解决多分类问题呢?一般采用拆解法,来将多分类问题分解成多个二分类问题。
一般而言有三种经典的拆分方法:
个二分类器。之后在测试阶段,我们把新样本交给这个二分类器。于是我们可以得到个分类结果。把预测的最多的类别作为预测的结果。
6
类别不均衡问题
想象我们在做一个预测罕见病A的机器学习模型,但是该病十分罕见,我们一万个数据中只有8个病例,那么模型只需要将所有的数据都预测为无病,即可达到99.92%的超高预测成功率,但是显然这个模型不符合要求。 那么对于这种数据集中类别不平衡的问题,该如何解决呢?目前主要有三种方法:
我们通过
的值来判断正例负例,之前我们的判断依据是
,阈值为1,我们设定新的阈值
其中
分别代表负例和正例的数目,如果两者接近,该阈值就为1。
本文分享自 程序员郭震zhenguo 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!