人工智能基础与应用 - 数据处理、建模与预测流程 8 基础模型之分类模型

8.1 学习目标

通过本章学习,读者应能够:

  • 理解什么是分类模型及其适用场景
  • 区分分类问题与回归问题
  • 掌握逻辑回归这一基础分类模型的使用方法
  • 理解分类模型的预测结果与评估指标
  • 使用 Python 完成一个完整的分类建模流程

本章的目标是:
让读者理解"判断类问题"中,模型到底在判断什么。


8.2 什么是分类模型(从结果形式理解)

分类模型用于解决这样一类问题:

预测结果属于哪一类。

常见特征是:

  • 结果不是一个连续数值
  • 而是一个类别或标签

8.2.1 常见分类问题示例

  • 是否达成运动目标(是 / 否)
  • 是否存在风险(有 / 无)
  • 邮件是否为垃圾邮件
  • 用户是否会流失

只要问题的答案是:

"属于哪一类"或"是否发生"

通常就可以考虑使用分类模型。


8.3 分类模型与回归模型的根本区别

可以从预测结果的形式来区分:

模型类型 预测结果
回归模型 连续数值
分类模型 类别或概率

例如:

  • 预测"今天走了多少步" → 回归
  • 判断"是否超过 8000 步" → 分类

8.4 从业务问题到分类问题的转化

很多业务问题,原本是"数值",但真正关心的是判断

例如:

  • 原始问题:预测每日步数
  • 实际决策:是否达成目标

此时,可以将问题转化为:

text 复制代码
daily_steps ≥ 8000 → 1
daily_steps < 8000 → 0

这一步称为:

标签离散化(或二值化)


8.5 逻辑回归:最基础的分类模型

8.5.1 名字里有"回归",但它是分类模型

逻辑回归(Logistic Regression) 是:

  • 最基础、最常用的分类模型之一
  • 广泛用于二分类问题

它的输出本质是:

  • 一个 概率值(介于 0 和 1 之间)

8.5.2 直观理解逻辑回归在做什么

可以这样理解:

模型在判断:某个样本"属于某一类的可能性有多大"。

然后再根据阈值(通常是 0.5):

  • 大于阈值 → 判为正类
  • 小于阈值 → 判为负类

8.6 分类模型的基本训练流程

分类模型的训练流程,与回归模型高度一致:

  1. 准备特征和标签
  2. 将标签转换为类别(如 0 / 1)
  3. 划分训练集和测试集
  4. 创建并训练模型
  5. 预测与评估

下面通过一个完整示例来演示。


8.7 Python 示例:判断是否达成运动目标

示例场景

根据用户的年龄和运动时长,判断其是否达成 8000 步目标


8.7.1 构造示例数据

python 复制代码
import pandas as pd

data = {
    'age': [25, 30, 45, 35, 50, 28, 40, 60],
    'exercise_minutes': [30, 20, 10, 40, 15, 25, 20, 5],
    'daily_steps': [8000, 6000, 3000, 10000, 4000, 7000, 5000, 2000]
}

df = pd.DataFrame(data)

# 构造分类标签:是否达成 8000 步
df['target'] = (df['daily_steps'] >= 8000).astype(int)

print(df)

8.7.2 分离特征与标签

python 复制代码
X = df[['age', 'exercise_minutes']]
y = df['target']

8.7.3 划分训练集和测试集

python 复制代码
from sklearn.model_selection import train_test_split

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

8.7.4 创建并训练逻辑回归模型

python 复制代码
from sklearn.linear_model import LogisticRegression

model = LogisticRegression()
model.fit(X_train, y_train)

8.7.5 进行预测

python 复制代码
y_pred = model.predict(X_test)

print("真实标签:", y_test.values)
print("预测标签:", y_pred)

8.8 分类模型的评估方式

8.8.1 准确率(Accuracy)

python 复制代码
from sklearn.metrics import accuracy_score

accuracy = accuracy_score(y_test, y_pred)
print("准确率:", accuracy)

准确率表示:

预测正确的样本占总样本的比例


8.8.2 为什么不能只看准确率

在某些场景中:

  • 正负样本极不平衡
  • "全预测为否"也可能准确率很高

因此,准确率并非万能指标。


8.9 分类模型输出结果如何理解

8.9.1 标签预测 vs 概率预测

python 复制代码
# 预测类别
model.predict(X_test)

# 预测属于正类的概率
model.predict_proba(X_test)

predict_proba 输出的是:

  • 属于每一类的概率
  • 常用于风险评估类问题

8.9.2 阈值的作用

默认阈值是 0.5,但在实际业务中:

  • 可以根据需求调整
  • 例如"宁可多报风险,也不要漏报"

8.10 分类模型中的常见误区

8.10.1 把分类问题当回归问题

  • 用回归模型预测 0 / 1
  • 再强行四舍五入

这是不推荐的做法。


8.10.2 忽略类别不平衡问题

  • 少数类被忽视
  • 模型"看起来正确",但实际无用

8.10.3 直接使用原始类别特征

  • 未编码
  • 模型无法处理

8.11 本章小结

本章重点内容包括:

  • 分类模型用于判断"属于哪一类"
  • 逻辑回归是最基础的分类模型
  • 分类结果通常以概率和标签两种形式输出
  • 评估分类模型不能只看训练集效果

这些内容将为后续更复杂分类模型打下基础。


8.12 课后练习

一、判断题

  1. 分类模型的输出结果通常是类别或概率。
  2. 逻辑回归属于回归模型。
  3. 分类模型可以用于"是否发生"类问题。

二、简答题

  1. 分类模型与回归模型的主要区别是什么?
  2. 为什么在分类问题中不能只依赖准确率?

三、实践题(思考)

在"学生学习行为数据"中,如果目标是判断:

"该学生是否存在挂科风险"

请回答:

  • 这是回归问题还是分类问题?
  • 标签应如何设计?

8.13 练习题参考答案

一、判断题答案

  1. 正确
  2. 错误
  3. 正确

二、简答题参考要点

第 1 题:

  • 回归模型预测连续数值
  • 分类模型预测类别或概率

第 2 题:

  • 数据分布不平衡会误导准确率
  • 需要结合业务目标选择评估指标

三、实践题参考答案

  • 分类问题

  • 标签可设为:

    • 有挂科风险 → 1
    • 无挂科风险 → 0

相关推荐
一条闲鱼_mytube12 小时前
智能体设计模式(三)多智能体协作-记忆管理-学习与适应
人工智能·学习·设计模式
scott19851213 小时前
opencv 畸变系数的说明
人工智能·数码相机·opencv
LS_learner13 小时前
Transmormer从零基础到精通
人工智能
ASD123asfadxv13 小时前
【蜂巢健康监测】基于YOLO的蜂群病虫害识别系统
人工智能·yolo·目标跟踪
说私域13 小时前
基于AI智能名片链动2+1模式服务预约商城系统的社群运营与顾客二次消费吸引策略研究
大数据·人工智能·小程序·开源·流量运营
丝斯201114 小时前
AI学习笔记整理(50)——大模型中的Graph RAG
人工智能·笔记·学习
Coder_Boy_14 小时前
基于SpringAI的在线考试系统-DDD业务领域模块设计思路
java·数据库·人工智能·spring boot·ddd
甜辣uu14 小时前
双算法融合,预测精准度翻倍!机器学习+深度学习驱动冬小麦生长高度与产量智能预测系统
人工智能·小麦·冬小麦·生长高度·植物生长预测·玉米·生长预测
AI街潜水的八角14 小时前
深度学习烟叶病害分割系统3:含训练测试代码、数据集和GUI交互界面
人工智能·深度学习
AI街潜水的八角15 小时前
深度学习烟叶病害分割系统1:数据集说明(含下载链接)
人工智能·深度学习