首页 › 机器学习 › 机器学习基础 › 第十二章 逻辑回归算法

第十二章 逻辑回归算法

逻辑回归(Logistic Regression)是一种广泛应用于分类问题的统计学习方法,尽管名字中带有"回归",但它实际上是一种用于二分类或多分类问题的算法。​

​

飞书文档 - 图片

​

逻辑回归通过使用逻辑函数(也称为 Sigmoid 函数)将线性回归的输出映射到 0 和 1 之间,从而预测某个事件发生的概率。​

逻辑回归广泛应用于各种分类问题,例如:​

•

垃圾邮件检测(是垃圾邮件/不是垃圾邮件)​

•

疾病预测(患病/不患病)​

•

客户流失预测(流失/不流失)​

逻辑回归模型​

​

飞书文档 - 图片

​

损失函数​

逻辑回归的损失函数是对数损失函数(Log Loss),其形式如下:​

​

飞书文档 - 图片

​

梯度下降法求解​

和线性回归一样,逻辑回归通常也使用梯度下降法来优化损失函数,求解参数 w 和 b。逻辑回归的梯度更新规则如下:​

​

飞书文档 - 图片

​

通过不断更新 w 和 b,直到损失函数收敛。​

​

​

使用 Python 实现逻辑回归​

接下来,我们将使用 Python 和 Scikit-learn 库来实现一个简单的逻辑回归模型。​

1、导入必要的库​

实例​

​

代码块​

Python

import numpy as np​

import matplotlib.pyplot as plt​

from sklearn.datasets import load_iris​

from sklearn.model_selection import train_test_split​

​

2、加载数据集​

我们将使用 Scikit-learn 自带的 Iris 数据集。Iris 数据集包含 150 个样本,每个样本有 4 个特征,目标是将样本分为 3 类。为了简化问题,我们只使用前两个特征,并将问题转化为二分类问题。​

实例​

​

代码块​

Plain Text

# 加载数据集​

iris = load_iris()​

X = iris.data[:, :2] # 只使用前两个特征​

y = (iris.target != 0) * 1 # 将目标转化为二分类问题​

​

# 划分训练集和测试集​

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)​

​

3、训练逻辑回归模型​

实例​

​

代码块​

Plain Text

# 创建逻辑回归模型​

model = LogisticRegression()​

​

# 训练模型​

model.fit(X_train, y_train)​

​

4、模型评估​

实例​

​

代码块​

Python

import numpy as np​

​

输出结果为:​

​

代码块​

Plain Text

​

5、可视化决策边界​

实例​

​

代码块​

Python

​

显示如下:​

​

​

总结​

•

逻辑回归通过使用Sigmoid函数将线性回归的输出转换为概率值,用于解决二分类问题。​

•

逻辑回归的训练过程通过最小化对数损失函数来优化模型参数。​

•

梯度下降法是常用的优化方法,用来更新模型参数 ww 和 bb。​

•

Python中的scikit-learn库提供了简单易用的接口来实现逻辑回归,并且能够轻松地进行模型训练、评估和可视化。​