【机器学习】什么是逻辑回归?

什么是逻辑回归?

逻辑回归(Logistic Regression)是一个用于分类问题的统计学模型,尽管名字里有"回归"二字,它其实是用来做分类的,不是做数值预测的。

通俗易懂的理解

我们可以通过一个简单的例子来理解逻辑回归。

例子:判断一个学生是否能通过考试

假设你是一个老师,想要通过学生的学习时间(每周学习的小时数)来预测他们是否能够通过考试(通过或不通过)。为了让问题更简单,我们假设一个学生的学习时间和是否通过考试之间存在某种关系。也就是说,学习时间越多,学生通过考试的几率就越大。

我们可以把这个问题转化为分类问题:

  • 学生通过考试:1
  • 学生没有通过考试:0

逻辑回归是如何工作的?

逻辑回归通过一个公式来预测一个学生通过考试的概率:

  • 假设有一个学生,每周学习了5个小时,逻辑回归模型会根据历史数据计算出他通过考试的概率,输出一个值在0和1之间。如果概率大于0.5,我们认为他通过考试;如果小于0.5,我们认为他没有通过考试。

逻辑回归的核心思想是概率,它预测的是某个事件发生的概率,因此它的输出值是一个介于0到1之间的数字,表示事件发生的可能性。

公式:

逻辑回归的数学公式是:

其中:

  • P(y = 1 | x)) 是事件发生的概率(例如学生通过考试的概率)。
  • w0, w1 是模型的参数,模型会根据历史数据来学习这些参数。
  • x 是输入特征(例如学习时间)。

这个公式是 Sigmoid函数,它会将任何一个输入值映射到0和1之间。

举个具体的例子

假设我们有以下的数据集:

学习时间(小时) 是否通过考试(0或1)
1 0
2 0
3 0
4 1
5 1
6 1

我们要根据这些数据来训练一个逻辑回归模型,预测一个学生学习5个小时是否能通过考试。

代码示例(Python)

我们可以使用 scikit-learn 库来实现逻辑回归。首先,你需要安装 scikit-learn

bash 复制代码
pip install scikit-learn

接下来是代码:

python 复制代码
import numpy as np
from sklearn.linear_model import LogisticRegression
import matplotlib.pyplot as plt
from matplotlib import rcParams

# 设置字体为支持中文的字体
rcParams['font.family'] = 'SimHei'
rcParams['axes.unicode_minus'] = False

# 学习时间(小时)和考试结果(通过或不通过)
X = np.array([[1], [2], [3], [4], [5], [6]])  # 学习时间
y = np.array([0, 0, 0, 1, 1, 1])  # 是否通过考试

# 创建逻辑回归模型
model = LogisticRegression()

# 训练模型
model.fit(X, y)

# 使用模型预测学习5小时的学生通过考试的概率
probability = model.predict_proba([[5]])[0, 1]  # 获取通过考试的概率

# 输出概率
print(f"学习5小时的学生通过考试的概率是:{probability:.2f}")

# 可视化数据
plt.scatter(X, y, color='red', label='实际数据')
plt.plot(X, model.predict_proba(X)[:, 1], color='blue', label='逻辑回归预测概率')
plt.xlabel('学习时间(小时)')
plt.ylabel('通过考试(0或1)')
plt.legend()
plt.show()

代码解释:

  1. 数据准备:X 是学习时间的数据,y 是是否通过考试的标签(0表示不通过,1表示通过)。
  2. 创建模型:LogisticRegression()创建了一个逻辑回归模型。
  3. 训练模型:model.fit(X, y) 通过数据 X 和 y 来训练模型。
  4. 预测:model.predict_proba([[5]])会返回一个数组,表示学习5小时学生通过考试的概率。我们取数组中的第二个值(通过考试的概率,第一个值是未通过的概率)。
  5. 可视化:我们用红色点表示实际数据,蓝色曲线表示逻辑回归模型预测的概率。

输出示例:

bash 复制代码
学习5小时的学生通过考试的概率是:0.84

解释结果:

  • 经过训练后,模型会输出一个概率值,例如0.84,表示学习5小时的学生有84%的概率通过考试。
  • 通过这类概率预测,我们可以做出决策,比如设定一个阈值(比如0.5),如果概率大于0.5,就认为学生通过考试;如果小于0.5,就认为学生没有通过考试。

总结:

  • 逻辑回归是一个用于分类的问题,它的输出是一个概率值。
  • 它可以帮助我们预测某个事件发生的概率,例如预测学生是否通过考试。
  • 逻辑回归的核心是 Sigmoid 函数,它会把预测值压缩到0和1之间。

希望这个例子和代码能帮助你更好地理解逻辑回归!

相关推荐
草莓熊Lotso29 分钟前
Linux 文件描述符与重定向实战:从原理到 minishell 实现
android·linux·运维·服务器·数据库·c++·人工智能
Coder_Boy_2 小时前
技术发展的核心规律是「加法打底,减法优化,重构平衡」
人工智能·spring boot·spring·重构
会飞的老朱4 小时前
医药集团数智化转型,智能综合管理平台激活集团管理新效能
大数据·人工智能·oa协同办公
聆风吟º5 小时前
CANN runtime 实战指南:异构计算场景中运行时组件的部署、调优与扩展技巧
人工智能·神经网络·cann·异构计算
Codebee7 小时前
能力中心 (Agent SkillCenter):开启AI技能管理新时代
人工智能
聆风吟º8 小时前
CANN runtime 全链路拆解:AI 异构计算运行时的任务管理与功能适配技术路径
人工智能·深度学习·神经网络·cann
uesowys8 小时前
Apache Spark算法开发指导-One-vs-Rest classifier
人工智能·算法·spark
AI_56788 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
User_芊芊君子8 小时前
CANN大模型推理加速引擎ascend-transformer-boost深度解析:毫秒级响应的Transformer优化方案
人工智能·深度学习·transformer
智驱力人工智能9 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算