逻辑回归属于有监督机器学习算法,逻辑回归并不是解决回归问题,而是解决分类问题的。
假设我们用回归的思想来解决分类问题,比如先对问题进行回归,然后对回归结果设定阈值,从而实现分类。但是这样做面临一个很大的问题,就是回归结果中的异常值(特大或特小的值)对阈值的选取影响很大,很难准确的选定阈值,主要原因在于回归时拟合的函数太直。
所以我们要做的就是把拟合函数掰弯了。例如可以换一个函数,将原来线性回归中的函数换成一个新的函数,也就是我们常说的sigmod函数
其中,Z就是我们熟悉的多元线性回归中的,e就是欧拉常数。
该函数具有很强的鲁棒性,并且将函数的输入范围(-∞,∞)映射到了输出的(0,1)之间且具有概率意义。
也就是我们用函数g(z) = 来进行拟合,因为g(z)函数的特性,它输出的结果也不再是预测结果,而是一个值预测为正例的概率。
那么问题又来了,这个阈值应该怎么选???人们本能的会将0.5作为阈值,但是在很多实际问题中阈值的选择是需要调整的。
接下来就是损失函数的选择,逻辑回归中,常用的损失函数有三种,我们首先最常用的一种log距离,我们的目的是找到一组w,使函数正确的概率最大。而我们在上面的推理过程中已经得到每个单条样本预测正确概率的公式:
我们采用最大似然函数,也就是让预测出的结果全部正确的概率最大,将所有样本预测正确的概率相乘得到的P最大,此时我们让 ,数学表达形式如下:
一个连乘的函数是不好计算的,我们可以通过两边同时取log的形式让其变成连加:
得到的这个函数越大,证明我们得到的W就越好。但是因为在函数最优化的时候习惯让一个函数越小越好,所以我们在前边加一个负号,得到公式如下:
这个函数就是我们逻辑回归(logistics regression)的损失函数,我们叫它交叉熵损失函数。求解损失函数的办法我们还是使用梯度下降。