分类问题
分类是机器学习中最基础的任务之一。给定输入数据,预测其属于哪个类别。从垃圾邮件识别到疾病诊断,分类问题无处不在。
学习难度:入门·阅读时间:约10分钟
什么是分类
定义
分类任务是预测离散标签的问题:
- 输入:特征向量 x
- 输出:类别标签 y(有限个取值)
- 目标:学习从特征到标签的映射
与回归的区别
| 特性 | 分类 | 回归 |
|---|---|---|
| 输出类型 | 离散类别 | 连续数值 |
| 例子 | 猫/狗分类 | 房价预测 |
| 评估指标 | 准确率、F1 | MSE、MAE |
分类类型
二分类
只有两个类别:
- 垃圾邮件 vs 正常邮件
- 欺诈交易 vs 正常交易
- 患病 vs 健康
多分类
三个或更多类别:
- 手写数字识别(0-9)
- 新闻分类(体育、财经、娱乐等)
- 图像分类(1000类ImageNet)
多标签分类
一个样本可以属于多个类别:
- 文章标签(可同时是"科技"和"AI")
- 电影类型(可同时是"动作"和"喜剧")
常用算法
逻辑回归
线性分类器,使用Sigmoid函数输出概率。简单高效,可解释性强。
决策树
通过一系列规则进行分类。直观易懂,但容易过拟合。
随机森林
多棵决策树集成。准确率高,抗过拟合。
支持向量机(SVM)
寻找最优分类超平面。在小数据集上效果好。
神经网络
多层感知机或深度网络。适合复杂数据和大规模问题。
朴素贝叶斯
基于贝叶斯定理和特征独立假设。适合文本分类。
评估指标
基础指标
- 准确率(Accuracy):正确预测的比例
- 精确率(Precision):预测为正的样本中有多少是真正
- 召回率(Recall):真正的样本有多少被正确预测
- F1分数:精确率和召回率的调和平均
混淆矩阵
二分类混淆矩阵:
• 真正例(TP):预测为正,实际为正
• 假正例(FP):预测为正,实际为负
• 假负例(FN):预测为负,实际为正
• 真负例(TN):预测为负,实际为负
ROC与AUC
ROC曲线展示不同阈值下的性能,AUC是曲线下面积:
- AUC = 1.0:完美分类器
- AUC = 0.5:随机猜测
- AUC > 0.8:较好的分类器
常见挑战
类别不平衡
当某些类别样本很少时:
- 准确率可能误导(如99%是负类)
- 解决方案:过采样、欠采样、调整权重
维度灾难
特征过多时:
- 需要更多训练数据
- 计算成本增加
- 解决方案:特征选择、降维
过拟合
- 训练集表现好,测试集表现差
- 解决方案:正则化、交叉验证、更多数据
实际应用
- 垃圾邮件检测:邮件分类
- 图像识别:物体、人脸识别
- 情感分析:正面/负面评价
- 医疗诊断:疾病预测
- 信用评分:违约风险预测
- 欺诈检测:异常交易识别