【深度学习与大模型基础】第14章-分类任务与经典分类算法

Part 1:什么是分类任务?

1.1 分类就是"贴标签"

想象你有一堆水果,有苹果🍎、橘子🍊、香蕉🍌,你的任务是让机器学会自动判断一个新水果属于哪一类------这就是分类(Classification)

关键点

  • 输入:数据(比如水果的颜色、形状、重量)。

  • 输出:类别标签(苹果、橘子、香蕉)。

1.2 分类 vs. 回归

  • 分类:预测离散标签(比如"猫/狗")。

  • 回归:预测连续值(比如"房价多少万")。

例子

  • 分类:判断邮件是"垃圾邮件"还是"正常邮件"。

  • 回归:预测明天股票的价格。


Part 2:经典分类算法

2.1 SVM(支持向量机)------ "最佳分界线"

核心思想:找到一条最宽的"马路"(决策边界),让不同类别的数据离这条线尽可能远。

生活例子

  • 你在教室里画一条"三八线",让男生女生尽量远离这条线,避免冲突。

  • 支持向量:离分界线最近的那些点(最容易分错的样本)。

适用场景

  • 小样本、高维数据(如文本分类、图像识别)。

  • 对噪声不太敏感,抗过拟合能力强。

缺点

  • 数据量太大时计算慢。

python实例代码

复制代码
import numpy as np
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
from sklearn import svm
from sklearn.datasets import make_blobs

# 1. 生成数据集
X, y = make_blobs(n_samples=100, centers=2, random_state=6)

# 2. 创建SVM模型并训练
model = svm.SVC(kernel='linear', C=1.0)
model.fit(X, y)

# 3. 创建网格以绘制决策边界
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02),
                     np.arange(y_min, y_max, 0.02))

# 4. 预测网格中的点
Z = model.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)

# 5. 绘制结果
plt.contourf(xx, yy, Z, alpha=0.8)
plt.scatter(X[:, 0], X[:, 1], c=y, edgecolors='k', marker='o')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.title('SVM Decision Boundary')
plt.show()

2.2 朴素贝叶斯(Naive Bayes)------ "概率算命大师"

核心思想:基于贝叶斯定理,计算某个数据属于哪一类的概率,选择概率最大的类别。

生活例子

  • 你看到一个人戴眼镜、穿格子衫、背电脑包,猜测他是程序员👨‍💻还是老师👨‍🏫?

  • 朴素贝叶斯会计算:

    • P(程序员 | 眼镜+格子衫+电脑包) = ?

    • P(老师 | 眼镜+格子衫+电脑包) = ?

    • 选概率更高的那个!

"朴素"在哪?

假设所有特征(眼镜、格子衫、电脑包)之间相互独立(现实中不一定,但简化计算)。

适用场景

  • 文本分类(如垃圾邮件过滤、情感分析)。

  • 计算快,适合高维数据。

缺点

  • 特征独立性假设太强,现实数据往往不符合。

2.3 KNN(K近邻)------ "近朱者赤,近墨者黑"

核心思想:一个新数据点属于哪一类,就看它的K个最近邻居大多数属于哪一类。

生活例子

  • 你想知道新搬来的邻居是"安静型"还是"派对型"?

  • 你调查他最近的3个邻居(K=3),发现2个爱开派对,1个安静,于是你猜他是"派对型"🎉。

关键点

  • K的选择:K太小容易受噪声影响,K太大会忽略局部特征。

  • 距离计算:常用欧氏距离(就像地图上的直线距离)。

适用场景

  • 数据分布复杂、边界不规则时表现好(如手写数字识别)。

  • 简单直观,适合入门。

缺点

  • 计算量大(每次预测都要算所有样本的距离)。

  • 对高维数据效果下降("维度灾难")。


Part 3:深度学习中的分类模型

3.1 CNN(卷积神经网络)------ "图像分类之王"

核心思想:模仿人眼,用"卷积核"扫描图像,提取局部特征(如边缘、纹理),最后分类。

生活例子

  • 你教小孩认猫🐱和狗🐶,先看耳朵形状、鼻子大小,再整体判断------CNN也是这样!

关键特点

  • 卷积层:局部感知,参数共享(减少计算量)。

  • 池化层:降维(比如"最大池化"只保留最显著特征)。

适用场景

  • 图像分类、目标检测(如人脸识别、自动驾驶)。

3.2 RNN(循环神经网络)------ "记忆大师"

核心思想:处理序列数据(如文本、语音),通过"记忆"前面的信息影响后面的输出。

生活例子

  • 你读一句话:"我爱吃___",前面的词提示这里该填"苹果"而不是"汽车"------RNN会记住上下文!

关键特点

  • 循环结构:隐藏层会传递信息给下一步。

  • LSTM/GRU:改进版,解决长序列记忆问题(比如机器翻译)。

适用场景

  • 自然语言处理(NLP)、语音识别、时间序列预测。

总结:一张表搞定所有算法

算法 核心思想 适用场景 缺点
SVM 找最宽的分界线 小样本、高维数据 大数据计算慢
朴素贝叶斯 算概率,选最大 文本分类 特征独立性假设太强
KNN 看K个邻居投票 简单分类 计算量大
CNN 卷积提取图像特征 图像识别 需要大量数据
RNN 记忆序列信息 NLP、语音 长序列训练困难
相关推荐
程序员陆通38 分钟前
MCP协议与Dify集成教程
人工智能·ai编程
正宗咸豆花1 小时前
【Trae+LucidCoder】三分钟编写专业Dashboard页面
人工智能
会编程的加缪2 小时前
文献总结:TPAMI端到端自动驾驶综述——End-to-End Autonomous Driving: Challenges and Frontiers
论文阅读·人工智能·深度学习·机器学习·自动驾驶
陳林3252 小时前
基于DQN的自动驾驶小车绕圈任务
人工智能·深度学习·自动驾驶
王哥儿聊AI2 小时前
GenCLS++:通过联合优化SFT和RL,提升生成式大模型的分类效果
大数据·人工智能·深度学习·算法·机器学习·自然语言处理
Francek Chen2 小时前
【现代深度学习技术】现代循环神经网络06:编码器-解码器架构
人工智能·pytorch·rnn·深度学习·神经网络·编码器·解码器
gorgor在码农2 小时前
Pytorch-CUDA版本环境配置
人工智能·pytorch·python
常州北格数字孪生3 小时前
数字孪生赋能智慧城市:从概念到落地的深度实践
人工智能·云计算·智慧城市·数字孪生·智慧政务·实时仿真·可视化技术
科技热点圈3 小时前
大力探索“AI·Life爱生活”项目峰会暨战略投资签约仪式成功举办
大数据·人工智能·生活
liaokailin3 小时前
Spring AI 实战:第九章、Spring AI MCP之万站直通
java·人工智能·spring