Day45:逻辑回归详解与案例
在第上一节中我们讲解了线性回归的原理及其案例,接下来我们将继续探讨逻辑回归的原理、应用以及代码实现。
1. 逻辑回归原理
逻辑回归虽然名字里面有“回归”二字,但确实是一种用于解决分类问题的机器学习算法,它可以将输入的特征映射到一个概率值(0到1之间),并根据这个概率值进行分类预测。逻辑回归的主要思想是通过一个线性函数与一个非线性的逻辑函数组合,来建立特征和输出之间的关系。
1.1 数学建模过程:
-
假设函数: 逻辑回归使用sigmoid函数作为假设函数,它将线性回归模型的输出通过一个非线性变换映射到0和1之间的概率值。假设函数的形式如下:
h(x) = 1 / (1 + exp(-z))
其中,z是输入特征经过线性加权求和的结果,sigmoid函数的形状如下:
-
目标: 逻辑回归的目标是最大化似然函数或最小化损失函数,以便将模型预测的概率尽可能接近真实类别。对于二分类问题,逻辑回归的损失函数可以使用交叉熵损失函数定义,形式如下:
J(theta) = -[y * log(h(x)) + (1 - y) * log(1 - h(x))]
其中,y是观测值的真实类别,h(x)是模型的预测概率。
1.2 参数优化:
-
梯度下降法:逻辑回归常用的优化算法是梯度下降法,它通过迭代更新参数的方式寻找损失函数的最小值。梯度下降法的更新公式如下:
theta = theta - learning_rate * gradient
其中,theta是参数向量,learning_rate是学习率,gradient是损失函数关于参数的梯度。
在实际应用中,逻辑回归常用于二分类问题,但也可以通过一些扩展来处理多分类问题。逻辑回归的应用领域广泛,包括信用评分、医学诊断、广告点击率预测等。
2. 实际案例
我们下面以scikit-learn库中内置的鸢尾花数据来进行逻辑回归任务:
-
导入所需的库:
numpy
:用于数值计算。matplotlib.pyplot
:用于绘制图形。sklearn.datasets.load_iris
:用于加载鸢尾花数据集。sklearn.model_selection.train_test_split
:用于数据集划分。sklearn.linear_model.LogisticRegression
:用于构建逻辑回归模型。sklearn.metrics.accuracy_score
:用于计算模型的准确率。sklearn.metrics.confusion_matrix
:用于计算混淆矩阵。
import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split fro
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
1. AI爱好者,爱搞事的 2. 想要掌握第二门语言的Javaer或者golanger 3. 决定考计算机领域研究生,给实验室搬砖的uu,强烈建议你花时间学完这个,后续搬砖比较猛 4. 任何对编程感兴趣的,且愿意掌握一门技能的人