logistic回归介绍以及原理分析

1.什么是logistic回归?

logistic回归虽然说是回归,但确是为了解决分类问题,是二分类任务的首选方法,简单来说,输出结果不是0就是1
举个简单的例子:
癌症检测:这种算法输入病理图片并且应该辨别患者是患有癌症(1)或没有癌症(0)

2.logistic回归和线性回归的关系

逻辑回归(Logistic Regression)与线性回归(Linear Regression)都是一种广义线性模型(generalized linear model)。
逻辑回归假设因变量 y 服从二项分布,而线性回归假设因变量 y 服从高斯分布。
因此与线性回归有很多相同之处,去除Sigmoid映射函数的话,逻辑回归算法就是一个线性回归。
可以说,逻辑回归是以线性回归为理论支持的,但是逻辑回归通过Sigmoid函数引入了非线性因素,因此可以轻松处理0/1分类问题。

换种说法:
线性回归,直接可以分为两类,
但是对于图二来说,在角落加上一块蓝色点之后,线性回归的线会向下倾斜,参考紫色的线,
但是logistic回归(参考绿色的线)分类的还是很准确,logistic回归在解决分类问题上还是不错的

logistic回归介绍以及原理分析_第1张图片logistic回归介绍以及原理分析_第2张图片

3.logistic回归的原理

Sigmoid函数:
logistic回归介绍以及原理分析_第3张图片
Sigmoid函数图像如下:
logistic回归介绍以及原理分析_第4张图片
之后推导公式中会用到:
logistic回归介绍以及原理分析_第5张图片
我们希望随机数据点被正确分类的概率最大化,这就是最大似然估计。

最大似然估计是统计模型中估计参数的通用方法。

你可以使用不同的方法(如优化算法)来最大化概率。

牛顿法也是其中一种,可用于查找许多不同函数的最大值(或最小值),包括似然函数。也可以用梯度下降法代替牛顿法。

既然是为了解决二分类问题,其实也就是概率的问题,分类其实都是概率问题。

logistic回归解决二分类问题,logistic回归是求概率最大,使用的是似然函数。
假定:
y=1和y=0的时候的概率
logistic回归介绍以及原理分析_第6张图片
似然函数:其实就是概率相乘,然后左右两边同时取对数
logistic回归介绍以及原理分析_第7张图片
对数似然函数,求导,得到θ的梯度
logistic回归介绍以及原理分析_第8张图片
因为P=g(θX),P其实是θ的函数,X已知,要想P越大,就要θ越大,梯度上升问题

得到θ的学习规则:α为学习率
在这里插入图片描述
最后将θ带入h(x)函数,求出概率
在这里插入图片描述

4.总结

比较一下logistic回归的参数学习规则和线性回归的参数学习规则,形式一样,只是不同的是一个使用的模型是线性函数,一个使用的是sigmoid函数

5.代码实现

from sklearn import datasets
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
# 加载数据
X, y = datasets.load_iris(True)
# logistic回归解决的是二分类问题,所以先剔除一个种类
cond = y != 2

X = X[cond]
y = y[cond]

# 划分训练数据和测试数据
result = train_test_split(X, y, test_size=0.2)
lr = LogisticRegression()

# 训练数据
lr.fit(result[0], result[2])

# 求出w斜率和b截距的值
w = lr.coef_
b = lr.intercept_
print(w, b)
# 预测一下概率
proba_ = lr.predict_proba(result[1])
print(proba_)

结果如下:
logistic回归介绍以及原理分析_第9张图片

6.logistic回归的优缺点

Logistic 回归是一种被人们广泛使用的算法,因为它非常高效,不需要太大的计算量,又通俗易懂,不需要缩放输入特征,不需要任何调整,且很容易调整,并且输出校准好的预测概率。
与线性回归一样,当你去掉与输出变量无关的属性以及相似度高的属性时,logistic 回归效果确实会更好。因此特征处理在 Logistic 和线性回归的性能方面起着重要的作用。
Logistic 回归的另一个优点是它非常容易实现,且训练起来很高效。由于其简单且可快速实现的原因,Logistic 回归也是一个很好的基准,你可以用它来衡量其他更复杂的算法的性能。

它的一个缺点就是我们不能用 logistic 回归来解决非线性问题,因为它的决策边界是线性的。

你可能感兴趣的:(算法,机器学习)