我在b站学ML(七)

分类问题

首先了解二分类问题:例如垃圾邮件分类,肿瘤良性恶性问题等等,即我在b站学ML(七)

此类问题不适合用线性回归来做,下面我们了解一种新的算法:Logistic Regression(逻辑回归算法,首先它既不是逻辑也不是回归),逻辑回归算法的输出值在0到1之间。

逻辑回归算法

假设函数设置为一个S型函数(也可以叫逻辑函数),其输出值在(0,1)。假设函数的输出值可以理解为对新输入样本x的y=1或者y=0的概率的估计值,也就是在给定x和我在b站学ML(七)的条件下y=1或者y=0的概率,我在b站学ML(七)或者我在b站学ML(七),同时我在b站学ML(七)。这里怎么理解假设函数会将y预测为哪种呢?只要该假设函数我在b站学ML(七),则预测y=1的概率,反之我在b站学ML(七),则预测y=0的概率。

我在b站学ML(七)

首先了解假设函数的一个重要属性:决策边界

将整个平面分成了两部分,一片为y=1的区域,另一片为y=0的区域,线性非线性情况下都是如此,和多项式回归类似,对于非线性情况我们可以通过增加高阶多项式来拟合数据,以至于得到的决策边界会是些奇奇怪怪的形状,需要注意的是不是用训练集来定义决策边界,而是用训练集来拟合参数我在b站学ML(七)

我在b站学ML(七)

我在b站学ML(七)

逻辑回归模型的拟合问题

我在b站学ML(七)

我们如何拟合这个参数我在b站学ML(七)呢?

首先从线性回归的方法中试试看

这里代价函数与线性回归时使用的代价函数做小小的改动:我在b站学ML(七)

定义一个代价值Cost函数:我在b站学ML(七),方便起见,去掉了我在b站学ML(七)我在b站学ML(七)得上标

如果我们可以最小化Cost函数,便能使得代价函数值最小

但是很容易可以看出我在b站学ML(七)是非线性的,代入到我在b站学ML(七)中得到的图像将会是个非凸函数,具有很多局部最小值,这种情况下使用梯度下降法就很有可能无法找到全局最小值,所以我们需要改变代价函数。

下面这个就是逻辑回归所用的代价函数中的代价值Cost函数:

我在b站学ML(七)

分类问题的输出值为(0,1),这个Cost函数就很适合

如果y = 1, 我在b站学ML(七)=1, 则Cost = 0;如果我在b站学ML(七) 我在b站学ML(七) 0,则Cost 我在b站学ML(七)

如果y = 0, 我在b站学ML(七)=0, 则Cost = 0;如果我在b站学ML(七) 我在b站学ML(七) 1,则Cost 我在b站学ML(七)

这里为什么用log函数,我想可能是因为log就是ln,方便后面对代价函数我在b站学ML(七)求偏导。

但是Cost写成两行很别扭,这里我们把它转成一行:

我在b站学ML(七)(这个应该不难理解吧)

得到最终的代价函数:

我在b站学ML(七)

采用梯度下降法找出最小化我在b站学ML(七)我在b站学ML(七):

我在b站学ML(七)

我在b站学ML(七),推导过程和线性回归算法中的类似,但是假设函数我在b站学ML(七)和线性回归中的完全不同,所以逻辑回归中的梯度下降与线性回归中的梯度下降是两个东西。

PS:除了梯度下降法最小化代价函数之外,还有更高级的算法:共轭梯度法、BFGS(变尺度法)、L-BFGS(限制变尺度法)等等,这些算法有很多有点:1、不需要手动选择学习率我在b站学ML(七),它们内部有一个线性搜索算法能自动的尝试不同的我在b站学ML(七);2、收敛速度远远快于梯度下降。缺点就是太复杂(大佬都花了好几年才理解透其中的细节)。

多分类问题

我在b站学ML(七)

解决多分类问题的思路是把多分类转为二分类问题,实现n个二分类器,这个应该不难理解:

我在b站学ML(七)我在b站学ML(七)我在b站学ML(七)