【深度学习与大模型基础】第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、语音 长序列训练困难
相关推荐
小叮当爱咖啡几秒前
调用Gensim库训练Word2Vec模型
人工智能·自然语言处理·word2vec
martian6656 分钟前
奇异值分解(SVD):线性代数在AI大模型中的核心工具
人工智能·线性代数
别惹CC14 分钟前
AI赋能开源:如何借助MCP快速解锁开源项目并提交你的首个PR
人工智能·开源
kooboo china.24 分钟前
Tailwind CSS 实战:基于 Kooboo 构建 AI 对话框页面(五):语音合成输出与交互增强
css·人工智能·交互
网易智企26 分钟前
专场回顾 | 重新定义交互,智能硬件的未来设计
人工智能·交互·智能硬件
我想睡觉26134 分钟前
Python打卡训练营Day40
开发语言·人工智能·python·深度学习·机器学习
哲讯智能科技40 分钟前
SAP Business One:无锡哲讯科技助力中小企业数字化转型的智慧之选
大数据·人工智能
林林宋1 小时前
DiTAR: Diffusion Transformer Autoregressive Modeling for Speech Generation
人工智能·深度学习·transformer
摘星编程1 小时前
华为云Flexus+DeepSeek征文 | 基于Dify和DeepSeek-R1开发企业级AI Agent全流程指南
人工智能·华为云·deepseek·华为云flexus·dify-llm
lucky_lyovo1 小时前
机器学习-线性回归基础
人工智能·机器学习·线性回归