cs229笔记-逻辑回归

对于分类问题,我们常常用到逻辑回归,这是对于离散值的预测,比如1代表正常邮件正,0代表垃圾邮件。
下面从二元的分类开始讨论:
cs229笔记-逻辑回归_第1张图片
如图,这是一个用线性回归尝试预测离散值的例子,在逻辑回归中,我们选取h(x)=0.5作为临界点判断值为0或1,很明显,当数据集只有前八个时,我们发现能线性回归很好的预测结果,但是当出现第九个数据的时候反而使得0.5的分界点开始右偏,性能0反而不如数据集8个时的假设函数。对于这种情况,我们考虑逻辑回归。
我们做出这样的判断,当h(x)大于等于0.5,我们判断y为1,当h(x)小于0.5,我们判断y=0.
逻辑回归模型的假设是:
cs229笔记-逻辑回归_第2张图片
这个函数其实挺有意思,我们可以看出它是恒大于0等于1的,然后唯一的变量是Z,有如下结论cs229笔记-逻辑回归_第3张图片
其实更直接的看:thetax>0,即在h(x)图像上方时,判断为1类,当thetax<0,即在图像下方时,判断为0类,我们的目的便是找到这么一条分界线theta*x 而我们的逻辑函数则是为我们提供了一个概率,即h(x)就是为1的概率(概率论相关)
所以我们可以看出,Z是否大于等于0决定了我们的判断,
摆在面前的是一个问题:

cs229笔记-逻辑回归_第4张图片
cs229笔记-逻辑回归_第5张图片
cs229笔记-逻辑回归_第6张图片
以上做的工作,主要是把代价函数从非凸函数变成了凸函数。

需要注意的是:h(x)虽然不是精确的预测y的值(y的值0,1是人为规定的两个值,我们为此找出了h(x)这么一个函数分布在0,1之间,比如分为1和2两类的话,我们的h(x)也需要相应变化,但这样显然没有意义),但是它也起着预测作用,在一定意义上,也是在预测“y可能的值”的,所以采用线性回归计算代价函数的方法也是合理的想法,但是由于非凸不好通过梯度下降之类的方法收敛到同一个值,所以我们需要想的办法便是找到一个使得h(x)和y符合时惩罚最小(0),不符合时惩罚最大,而且又是凸函数的东西。
cs229笔记-逻辑回归_第7张图片

cs229笔记-逻辑回归_第8张图片
虽然得到的梯度下降算法表面上看上去与线性回归的梯度下降算法一样,
但是这里的h(x)与线性回归中不同,所以实际上是不一样的。另外,在运行梯度下降算法之
前,进行特征缩放依旧是非常必要的。

高级优化
cs229笔记-逻辑回归_第9张图片
下面三种是不同于梯度下降的更复杂的三种最小化代价函数的方式。
一个实现的例子

逻辑回归中的多类别分类问题
cs229笔记-逻辑回归_第10张图片
和你想的一样,当分类有三种时,例如1,2,3.我们便可以将其分为
{1,2} {3}
{1.3} {2}
{2,3} {1}
三个二元分类问题
cs229笔记-逻辑回归_第11张图片
实际上此时我们每次都需要在所有的假设函数试一次,并选择使得其最大的一个假设函数。

过拟合
线性回归中
cs229笔记-逻辑回归_第12张图片
逻辑回归中
cs229笔记-逻辑回归_第13张图片
解决办法:
1:减少特征数量
2:正则化

正则化
cs229笔记-逻辑回归_第14张图片
cs229笔记-逻辑回归_第15张图片
线性回归正则化:
cs229笔记-逻辑回归_第16张图片
正规方程解法:
cs229笔记-逻辑回归_第17张图片

逻辑回归正则化
梯度下降:
cs229笔记-逻辑回归_第18张图片
高级优化算法:
cs229笔记-逻辑回归_第19张图片
cs229笔记-逻辑回归_第20张图片

你可能感兴趣的:(机器学习cs229笔记)