机器学习中的分类
2025-05-16 23:47:27
# AI相关
什么是分类?
在机器学习中,**分类问题(Classification Problem)**是一种常见的监督学习任务,目标是将输入的数据分到预定义的类别中。
分类的任务是:
给定一个输入样本,预测它属于哪一个类别(class)。
例如:
示例 | 输入数据 | 目标分类 |
---|---|---|
垃圾邮件识别 | 一封邮件的文本内容 | 垃圾邮件 or 非垃圾邮件 |
图片识别 | 一张猫或狗的图片 | 猫 or 狗 |
疾病诊断 | 一组病人的检查数据 | 患病 or 健康 |
分类的类型
- 二分类(Binary Classification)
只有两个类别,例如:判断一个邮件是不是垃圾邮件(0 或 1)。 - 多分类(Multi-class Classification)
超过两个类别,例如:判断一张图片是猫、狗、马还是鸟。 - 多标签分类(Multi-label Classification)
每个样本可以同时属于多个类别,例如:一张图片可能同时包含猫和狗。
基本流程
- 数据准备:收集带标签的数据集(如文本+类别)。
- 特征提取:将原始数据转化为模型可以处理的数值形式(如词向量、图像像素)。
- 模型训练:选择一个分类算法(如逻辑回归、决策树、SVM、神经网络),用训练集进行学习。
- 预测与评估:使用测试集进行预测,并通过准确率、精确率、召回率、F1分数等指标评估模型性能。
常见的算法
- Logistic Regression(逻辑回归)
- Decision Tree(决策树)
- Random Forest(随机森林)
- Support Vector Machine(支持向量机)
- K-Nearest Neighbors(K近邻)
- Naive Bayes(朴素贝叶斯)
- Neural Networks(神经网络)
评估指标简述(以二分类为例)
- 准确率(Accuracy):预测正确的样本数占总样本数比例。
- 精确率(Precision):预测为正的样本中,真正为正的比例。
- 召回率(Recall):所有真正为正的样本中,预测正确的比例。
- F1 分数(F1 Score):精确率和召回率的调和平均。
逻辑回归(Logistic Regression)
逻辑回归是一种用于分类问题的统计模型。尽管名字中有“回归”,它其实是用于二分类(或多分类)任务的。
它的核心思想是:
通过一个“逻辑函数”(sigmoid 函数)将线性模型的输出映射到 (0, 1) 之间的概率,再根据这个概率判断类别。
数学形式
假设输入特征是
- 线性部分
- 激活(非线性)部分,用 sigmoid 函数将结果压缩成概率:
- 分类决策:
直观理解
想象你要判断一个人是否患有某种病:
- 你拿到他的一些指标(如年龄、血压、体重)。
- 把这些指标带入模型,模型输出一个概率,比如 0.82。
- 表示这个人有 82% 的概率患病,于是你预测他"患病"。
损失函数:交叉熵损失
逻辑回归使用 交叉熵(Cross Entropy)损失函数来衡量预测与真实标签的差距:
这个函数对概率接近真实值的预测给予更低的惩罚,对错误预测惩罚大。
应用场景
-
垃圾邮件分类
-
用户是否会点击广告
-
信用卡欺诈检测
-
医疗诊断(是否患病)
实验代码
实验代码参考[1]
过拟合(Overfitting)
过拟合是指一个模型在训练数据上表现很好,但在新数据(测试集)上表现很差。也就是说,它“学得太好了”,以至于学会了训练数据的噪声和细节,而不是通用的模式。
举个例子
假设你想用机器学习判断一个人是否会买冰淇淋,输入特征是温度:
- 你有10个训练样本,某个模型刚好在这10个点上拟合得非常完美(准确率100%)。
- 但当你拿新的天气数据测试时,它的判断变得很差。
这种情况就叫过拟合。
防止过拟合
防止过拟合有以下方法:
-
收集更多的数据
-
选择特征
-
减少参数的大小
正则化(
Regularization
)
正则化
在训练模型时,如果不加控制,模型可能会学得非常“贴合”训练数据(过拟合)。
正则化通过在损失函数中添加一项“惩罚项”,鼓励模型参数更小或更稀疏,从而避免复杂模型。
正则化(Ridge正则)
- 惩罚项:所有权重的平方和
- 效果:鼓励权重变小但不为零,适合大多数模型。
L1正则化(Lasso正则)
- 惩罚项:所有权重的绝对值和
- 效果:会让一些权重变为 0,相当于特征选择(变得稀疏)。