逻辑回归(Logistic Regression)

一.简介

如果我们要用线性回归算法来解决一个分类问题,对于分类, 取值为 0 或者1,但如果你使用的是线性回归,那么假设函数的输出值可能远大于 1,或者远小于0,即使所有训练样本的标签 都等于 0 或 1。尽管我们知道标签应该取值0 或者1,但是如果算法得到的值远大于1或者远小于0的话,就会感觉很奇怪。所以我们在接下来的要研究的算法就叫做逻辑回归算法,这个算法的性质是:

它的输出值永远在0到 1 之间。

逻辑回归模型的假设是:
image.png

其中:X 代表特征向量 g 代表逻辑函数(logistic function)是一个常用的逻辑函数为S形函数(Sigmoid function),公式为:
image.png

python代码实现:
import numpy as np
    
def sigmoid(z):
    
   return 1 / (1 + np.exp(-z))

该函数的图像为:
image.png

二.如何拟合逻辑回归模型的参数θ

线性回归的代价函数为:
image.png

我们重新定义逻辑回归的代价函数为:
image.png
其中:
image.png

image.png

在得到这样一个代价函数以后,我们便可以用梯度下降算法来求得能使代价函数最小的参数了。算法为:

image.png

求导后得到:
image.png

除了梯度下降算法以外,还有一些常被用来令代价函数最小的算法,这些算法更加复杂和优越,而且通常不需要人工选择学习率,通常比梯度下降算法要更加快速。这些算法有:共轭梯度(Conjugate Gradient),局部优化法(Broyden fletcher goldfarb shann,BFGS)和有限内存局部优化法(LBFGS)

你可能感兴趣的:(逻辑回归(Logistic Regression))