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

什么是逻辑回归?

逻辑回归(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之间。

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

相关推荐
undsky_几秒前
【RuoYi-SpringBoot3-Pro】:接入 AI 对话能力
人工智能·spring boot·后端·ai·ruoyi
网易伏羲12 分钟前
网易伏羲受邀出席2025具身智能人形机器人年度盛会,并荣获“偃师·场景应用灵智奖
人工智能·群体智能·具身智能·游戏ai·网易伏羲·网易灵动·网易有灵智能体
搬砖者(视觉算法工程师)16 分钟前
什么是无监督学习?理解人工智能中无监督学习的机制、各类算法的类型与应用
人工智能
西格电力科技21 分钟前
面向工业用户的绿电直连架构适配技术:高可靠与高弹性的双重设计
大数据·服务器·人工智能·架构·能源
TextIn智能文档云平台26 分钟前
图片转文字后怎么输入大模型处理
前端·人工智能·python
Hy行者勇哥26 分钟前
从零搭建小智 AI 音箱 MCP 开发环境:自定义智能家居控制技能实战指南
人工智能·嵌入式硬件·硬件工程·智能家居
leaf_leaves_leaf26 分钟前
强化学习奖励曲线
人工智能
数据的世界0126 分钟前
重构智慧书-第18条:实力与实干
人工智能
Rabbit_QL27 分钟前
【LLM基础教程】语言模型基础
人工智能·语言模型·自然语言处理
小程故事多_8029 分钟前
开源界核弹级输出!蚂蚁 Agentar-Scale-SQL 凭 “编排式扩展” 技术,成为 Text-to-SQL 天花板
数据库·人工智能·sql·开源·aigc·embedding