逻辑回归

逻辑回归

1. 分类问题

以预测肿瘤是否为良性为例,假设肿瘤是否良性只与肿瘤大小有关,则可用线性回归拟合曲数据。

图中预测值大于0.5,则预测为恶性,小于0.5则预测为良性,线性回归看似可行,但如果加入一个远远偏离的点则预测曲线会产生变化,如下图

此时线性回归算法为了使最小化代价函数J以拟合所有数据,则会产生偏差。
并且,在线性回归中,我们将预测值h与0.5进行比较,而线性回归中的h可能会远大于1或者远小于0,这显然与分类问题不符,故引入sigmoid函数解决此类问题。

2. sigmoid函数

我们引入一个新的模型,逻辑回归,该模型的输出变量范围始终在 0 和 1 之间。 逻辑 回归模型的假设是:hθ(x)=g(θ’X)
其中:
X 代表特征向量
g 代表逻辑函数(logisticfunction)是一个常用的逻辑函数为S形函数(Sigmoidfunction),公式为:

该函数的图像为:

合起来,我们得到逻辑回归模型的假设:

为方便表示,令z=theta’*X
当z越大时,h趋近于1
当z越小时,h趋近于0
当z=0时,h=0.5
而h表达的是当对于给定的x,样本为正样本的概率,显然这是一个好的分类模型。

3. 代价函数

在线性回归中,代价函数如下

若逻辑回归也可以采用线性回归代价函数的形式,但会带来一个问题.当我们将逻辑回归的假设函数h代入到该代价函数J中将产生一个非凸函数,如下图所示:

在左图的非凸函数中,若使用梯度下降法时将得到很多个部分最优值,我们很难确定当前梯度下降收敛值是否是全局最优。而右图中只有一个最优值,则使用梯度下降一定可以得到全局最优解。

因此,我们重新定义逻辑回归的代价函数为:

其中:

h与cost的关系如下图:

当样本真是标记为1时,若将样本预测为0,则cost值将会接近无穷大;而将样本预测为1,则cost值将趋近于0。随着预测值与真实值的偏差越来越大,cost代价函数也越来越大(对应曲线从有到左),这与代价函数的意义一致。右图同理。

可将cost函数简化如下:

当y=0时,第一项小时,当y=1时,第二项消失,与之前的分段函数是等价的,这样写只是更简洁了。

代入到代价函数:

4. 梯度下降

至此,就可以使用梯度下降法最小化J以求得参数theta。算法如下:

求导后得(微积分好的同学可以自行求导对比,我是求不出来),可得到如下结果:

我们会惊奇的发现与逻辑回归的导数时一致的,但注意他们只是形式上一致,内在的含义是不同的。

5. 多分类问题

逻辑回归解决多分类问题,可采用一对余的分类算法。所谓一对余的意思就是盯着一个类别,将其设为正类,而将其他的所有类别都设成反类进行模型训练。

对于上图的三个类别的问题,我们可采用一对余方法

如上图所示,在我们需要做预测时,将所有的分类器都运行一遍,然后对每个输入变量,都选择最高可能性的输出变量。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注