当前位置: 首页 > news >正文

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

什么是逻辑回归?

逻辑回归(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)
10
20
30
41
51
61

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

代码示例(Python)

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

pip install scikit-learn

接下来是代码:

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. 可视化:我们用红色点表示实际数据,蓝色曲线表示逻辑回归模型预测的概率。

输出示例:

学习5小时的学生通过考试的概率是:0.84

在这里插入图片描述

解释结果:

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

总结:

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

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

相关文章:

  • 分页查询互动问题(管理端)
  • 测试工程 常用Python库
  • FPGA_DDS_IP核
  • 【RHCE】LVS-NAT模式负载均衡实验
  • 那些正常的动态规划
  • Tekton系列之实践篇-从触发到完成的完整执行过程
  • 流影---开源网络流量分析平台(一)(小白超详细)
  • SAP-ABAP:SAP报错全链路排查指南:从界面告警到代码级诊断
  • 于纷扰中寻静谧:正念观照的智慧之旅
  • XSS复现漏洞简单前八关靶场
  • G口服务器和普通服务器之间的区别
  • LeetCode热题100JS(/100)第十三天|34
  • C语言:扫雷
  • 为什么不同的损失函数可以提升模型性能?
  • 使用QRencode生成二维码
  • selenium基本使用(一)
  • 【微前端-致命隐患】主子应用异步加载
  • C++11QT复习 (三)
  • 【嵌入式学习2】c语言重点整理
  • Shiro漏洞攻略
  • 言短意长|今年五一假期的一个新变化
  • 永辉超市回应顾客结算时被“反向抹零”:整改并补偿
  • “非思”的思想——探索失语者的思想史
  • 购车补贴、“谷子”消费、特色产品,这些活动亮相五五购物节
  • 强制性国家标准《危险化学品企业安全生产标准化通用规范》发布
  • 新片|《我仍在此》定档5月,《新·驯龙高手》同步北美上映