Logistic回归

来源:互联网 发布:淘宝店铺可以租吗 编辑:程序博客网 时间:2024/06/11 15:58

  众所周知,线性回归主要是用于预测,而当我们所研究的问题是一个分类问题,这里简化为一个二分类(假定两类为0和1)问题的话,由于线性回归目标函数y的输出域为负无穷到正无穷,因此线性回归就无法满足我们的需求。因此,我们就想到要将一般线性回归模型的输出从负无穷到正无穷映射至0到1之间(这里假定为输出的是将样本划分为1的概率),这样当目标函数的输出大于0.5时,我们将该样本划分为1;当目标函数小于0.5时,我们将该样本划分为0。

  基于这种想法,我们将对线性回归做一个变化,将其输出域从正无穷到负无穷映射到零一之间。假定线性回归函数为:

hθ(x)=θTx

引入非线性函数 g(z) 后,原来的函数就变成了

hθ(x)=g(θTx)

其中,g(z)=11+ez,这里的 g(z) 被称为sigmoid函数,这样我们就能得到引入非线性变换后的表达式了:

hθ(x)=11+eθTx

此时 hθ(x) 定义为给定一个样本 x,输出 y=1 的概率,即为 p(y=1x)=hθ(x) 。因此,我们可以相对应的预测策略:

y={1,0,if hθ(x)0.5if hθ(x)<0.5

sigmoid函数 g(z) 图像如下所示:

这里写图片描述

分析预测策略:

  1. hθ(x)0.5 时,也就是 g(θTx)0.5,通过观察上图中当纵坐标大于等于0.5时,横坐标是大于等于0的,也就是 θTx0
  2. hθ(x)<0.5 时,也就是 g(θTx)<0.5,通过观察上图中当纵坐标小于0.5时,横坐标是小于0的,也就是 θTx<0

  因此,在Logistic回归中以 hθ(x)=0.5 为我们的决策边界(当 hθ(x)0.5 时,y=1;当 hθ(x)<0.5 时,y=0)。用 θx 表示就是 θTx=0。注意:决策边界不是训练集的属性,而是假设本身和其参数的属性,一单当参数确定下来之后,决策边界也会随之确定。

损失函数

  上面介绍了决策边界,一单我们确立了决策边界就可以对未知的样本做预测了。而决策边界是由模型的参数所决定的,因此我们需要定义一个损失函数来对参数进行优化,使我们的决策边界划分样本的准确率达到最佳。

  在线性回归中,我们定义的损失函数是误差平方和:

L(θ)=1mmi=112(hθ(x(i))y(i))2

如果我们按照线性回归中定义误差函数的方式来定义Logistic回归的损失函数,那么损失函数形如:

Cost(hθ(x),y)=12(hθ(x)y)2

由于我们的损失函数中 hθ(x) 为非线性函数,因此上面定义的损失函数 Cost(hθ(x),y) 是一个非凸函数,对于非凸函数,我们想要求其最优解十分困难。于是,我们便想要去构造一个凸的损失函数来代替这个非凸的损失函数。

  我们通过定义一个新的损失函数如下所示:

Cost(hθ(x),y)={log(hθ(x)),log(1hθ(x)),if y = 1if y = 0

  • y=1 时, 损失函数的图像如下所示:

    这里写图片描述

    如果我们的输出 hθ(x) 接近于0,说明预测值和真实值误差很大,那么损失函数趋向于无穷大;而当我们的输出 hθ(x) 接近于1,说明预测值和真实值误差很小,那么损失函数则趋向于0。

  • y=0 时, 损失函数的图像如下所示:

    这里写图片描述

    如果我们的输出 hθ(x) 接近于0,说明预测值和真实值误差很小,那么损失函数则趋向于0;而当我们的输出 hθ(x) 接近于1,说明预测值和真实值误差很大,那么损失函数趋向于无穷大。

  这样我们就得到了一个凸的损失函数了,将分段的损失函数合并为一个函数:

Cost(hθ(x),y)=ylog(hθ(x))(1y)log(1hθ(x))

  因此整个数据集上的损失函数为:

J(θ)=mi=1Cost(hθ(x),y)

原创粉丝点击