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

什么是逻辑回归?

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

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

相关推荐
蹦蹦跳跳真可爱58919 分钟前
Python----计算机视觉处理(Opencv:霍夫变换)
人工智能·python·opencv·计算机视觉
livefan38 分钟前
英伟达「虚拟轨道+AI调度」专利:开启自动驾驶3.0时代的隐形革命
人工智能·机器学习·自动驾驶
wd20998842 分钟前
手绘的思维导图怎么转成电子版思维导图?分享今年刚测试出来的方法
人工智能·powerpoint
魔珐科技44 分钟前
专访中兴通讯蒋军:AI数字人驱动企业培训,“内容生产”与“用户体验”双重提升
人工智能·aigc·ai数字人
果冻人工智能1 小时前
Linux 之父把 AI 泡沫喷了个遍:90% 是营销,10% 是现实。
人工智能
果冻人工智能2 小时前
Sal Khan 和 Bill Gates 对 AI 的看法错了
人工智能
说私域2 小时前
开源链动2+1模式、AI智能名片与S2B2C商城小程序源码在社交电商渠道拓宽中的协同应用研究
人工智能·小程序·开源·零售
数据猎手小K2 小时前
REALM:一个包含超过 94,000 个大规模记录真实世界大语言模型应用的数据集
人工智能
烟锁池塘柳02 小时前
【深度学习】GAN生成对抗网络:原理、应用与发展
人工智能·深度学习·生成对抗网络
zhyoobo2 小时前
使用 Python 训练自己的 AI 模型:从数据预处理到深度学习
人工智能·python·深度学习