一、逻辑回归
1. 概述
1)什么是逻辑回归
逻辑回归(Logistic Regression) 虽然被称为回归,但其实际上是分类模型,常用于二分类。逻辑回归因其简单、可并行化、可解释强而受到广泛应用。二分类(也称为逻辑分类)是常见的分类方法,是将一批样本或数据划分到两个类别,例如一次考试,根据成绩可以分为及格、不及格两个类别,如下表所示:
姓名 | 成绩 | 分类 |
---|---|---|
Jerry | 86 | 1 |
Tom | 98 | 1 |
Lily | 58 | 0 |
…… | …… | …… |
这就是逻辑分类,将连续值映射到两个类别中。
1.根据样本数据,构建一个线性回归模型,预测输出(连续的,线性的)
2.将连续的、线性的预测数据,带入到逻辑函数中
3.逻辑函数,将预测值映射到0-1区间范围内(将线性转为非线性)
4.找到一个阈值 0.5
5.大于0.5--->1 小于0.5 ---> 0
2)逻辑函数
逻辑回归是一种广义的线性回归,其原理是利用线性模型根据输入计算输出(线性模型输出值为连续),并在逻辑函数作用下,将连续值转换为两个离散值(0或1),其表达式如下:
其中,括号中的部分为线性模型,计算结果在函数\(h()\)的作用下,做二值化转换,函数\(h()\)的定义为:
该函数称为Sigmoid函数(又称逻辑函数),能将\((-\infty, +\infty)\)的值映射到\((0, 1)\)之间,其图像为:
可以设定一个阈值(例如0.5),当函数的值大于阈值时,分类结果为1;当函数值小于阈值时,分类结果为0. 也可以根据实际情况调整这个阈值.
3)分类问题的损失函数
对于回归问题,可以使用均方差作为损失函数,对于分类问题,如何度量预测值与真实值之间的差异?分类问题采用交叉熵作为损失函数,当只有两个类别时,交叉熵表达式为:
真值类别:1,预测类别:1 Loss=0
真值类别:1,预测类别:0 Loss=inf
其中,y为真实值,\(\hat{y}\)为预测值.
- 当\(y=1\)时,预测值\(\hat{y}\)越接近于1,\(log(\hat{y})\)越接近于0,损失函数值越小,表示误差越小,预测的越准确;当预测时\(\hat{y}\)接近于0时,\(log(\hat{y})\)接近于负无穷大,加上符号后误差越大,表示越不准确;
- 当\(y=0\)时,预测值\(\hat{y}\)越接近于0,\(log(1-\hat{y})\)越接近于0,损失函数值越小,表示误差越小,预测越准确;当预测值\(\hat{y}\)接近于1时,\(log(1-\hat{y})\)接近于负无穷大,加上符号后误差越大,表示越不准确.
2. 逻辑回归实现
sklearn中,逻辑回归相关API如下:
# 创建模型
# solver参数:逻辑函数中指数的函数关系(liblinear表示线性关系)
# C参数:正则强度,越大拟合效果越小,通过调整该参数防止过拟合
model = lm.LogisticRegression(solver='liblinear', C=1)
"""
solver: 用来知名损失函数的优化方法,sklearn自带了如下几种:
liblinear:坐标轴下降法来迭代优化损失函数
newton-cg:牛顿法的一种
lbfgs:拟牛顿法
sag:随机平均梯度下降(适合样本量大的情况)
penalty:参数可选择的值为“l1”和“l2”。与solver有关。
如果是l2正则化,所有优化算法都可以用。
如果是l1正则化,只能使用“liblinear”
"""
# 训练
model.fit(x, y)
# 预测
pred_y = model.predict(x)
TO_DO
鸢尾花数据
视频:模型评估与优化
3. 多分类实现
逻辑回归产生两个分类结果,可以通过多个二元分类器实现多元分类(一个多元分类问题转换为多个二元分类问题). 如有以下样本数据:
特征1 | 特征2 | 特征3 | 实际类别 |
---|---|---|---|
\(x_1\) | \(x_2\) | \(x_3\) | A |
\(x_1\) | \(x_2\) | \(x_3\) | B |
\(x_1\) | \(x_2\) | \(x_3\) | C |
进行以下多次分类,得到结果:
第一次:分为A类(值为1)和非A类(值为0)
第二次:分为B类(值为1)和非B类(值为0)
第三次:分为C类(值为1)和非C类(值为0)
……
以此类推.
利用逻辑分类器实现多元分类示例代码如下:
用对的个数除以错的个数,用来评估模型的准确度。
TO_DO
4. 总结
1)逻辑回归是分类问题,用于实现二分类问题
2)实现方式:利用线性模型计算,在逻辑函数作用下产生分类
3)多分类实现:可以将多分类问题转化为二分类问题实现
4)用途:广泛用于各种分类问题
鸢尾花数据
视频:模型评估与优化