本文思路:因在逻辑回归里,原本的线性回归的代价函数有很多局部最小值,不便找到全局最小值;所以在这里,引入逻辑回归中的代价函数及损失函数,通过该代价函数,能够驱使算法优化预测的效果。
一、逻辑回归(续)
要创建逻辑回归算法,我们需要引入一个重要的数学函数:
Sigmoid函数(有时也叫做逻辑函数(logistic function))
长这个样子:
g(z)是这个函数的公式
二、逻辑回归模型
logistic regression
第一步:利用线性回归的表达式,把特征量和实际值代入后求出表达式,设为z。
第二步:代入sigmoid function即可。
所得结果即为逻辑回归模型,输出0到1之间的数字。
这个也是表示逻辑回归的意思
如何理解:
把输出看作是在给定输入x的情况下,类别或标签y等于1的概率
很多公司就是用这个算法来投放广告的。
三、决策边界(续)
结合上面的,等我算出来模型的值之后,我要怎么确定阈值,使得超过这个阈值则预测值为1,低于这个阈值则预测值为0。
我们常常把阈值设置为0.5。
现在研究一下,什么时候这个函数会大于0.5?
也就是g(wx+b)的值大于0.5,结合上面的图像,这时候z在x轴的正半轴。
所以当wx+b大于等于0的时候,z就大于等于0。
总结一下:
当wx+b大于0的时候,算法结果预测值应为1
当wx+b小于0的时候,算法结果预测值应设置为0.
所以,我们需要找到决策边界的话,就是当wx+b=0的时候。
四、逻辑回归的代价函数
如果用线性回归的代价函数,画出来的代价函数会是非凸代价函数,而不是凸函数。也就是说,会存在很多的极小值,这会对我们找到最终的最小值产生麻烦。长这个样子:
事实证明,这种方法对逻辑回归来说不好。
所以这里有个可以使得代价函数再次凸化的代价函数,保证梯度下降可以收敛到全局最小值。
就是把原来的1/2m的1/2放到了求和的式子里面。
里面这个求和的式子,就是单个训练样本的损失(loss)
所以我们用大写的L表示损失函数,它是关于f(x)和真实标签y的函数。
在这个例子里,损失(给了f(x)和y)等于平方差的一半
代价函数就是1/n 乘以这些损失函数的和,它是一个凸函数。
损失函数可以告诉我们模型在样本上的训练效果怎么样。
所以上图就是逻辑回归里的损失函数的公式。表示,当预测值为1时,损失函数的计算方式;当预测值为0时,损失函数的计算方式。所以体现出来的就是,当接近预测值时,我们奖励函数;当离预测值远时,惩罚函数。比如说,当函数预测肿瘤恶性的几率为99.9%,但它实际上是良性的,这个时候函数的损失函数的值就会很高,以这样的形式能够推动算法进行优化。
它衡量的是单个样本的损失,只有把所有训练样本的损失加起来得到的代价函数,才能衡量模型在整个训练集上的表现。
最终的代价函数如下图所示:
五、逻辑回归的简化代价函数
下方的为简化后的损失函数
再代入到代价函数中:
所以这个就是简化后的函数,几乎所有人都用这个来计算代价函数。