机器学习中的分类
2025-05-16 23:47:27 # AI相关

什么是分类?

在机器学习中,**分类问题(Classification Problem)**是一种常见的监督学习任务,目标是将输入的数据分到预定义的类别中。

分类的任务是:
给定一个输入样本,预测它属于哪一个类别(class)

例如:

示例 输入数据 目标分类
垃圾邮件识别 一封邮件的文本内容 垃圾邮件 or 非垃圾邮件
图片识别 一张猫或狗的图片 猫 or 狗
疾病诊断 一组病人的检查数据 患病 or 健康

分类的类型

  1. 二分类(Binary Classification)
    只有两个类别,例如:判断一个邮件是不是垃圾邮件(0 或 1)。
  2. 多分类(Multi-class Classification)
    超过两个类别,例如:判断一张图片是猫、狗、马还是鸟。
  3. 多标签分类(Multi-label Classification)
    每个样本可以同时属于多个类别,例如:一张图片可能同时包含猫和狗。

基本流程

  1. 数据准备:收集带标签的数据集(如文本+类别)。
  2. 特征提取:将原始数据转化为模型可以处理的数值形式(如词向量、图像像素)。
  3. 模型训练:选择一个分类算法(如逻辑回归、决策树、SVM、神经网络),用训练集进行学习。
  4. 预测与评估:使用测试集进行预测,并通过准确率、精确率、召回率、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) 之间的概率,再根据这个概率判断类别。

数学形式

假设输入特征是 x=[x1,x2,...,xn],权重是 w=[w1,w2,...,wn],偏置为 b,则模型计算步骤如下:

  1. 线性部分
z=wTx+b
  1. 激活(非线性)部分,用 sigmoid 函数将结果压缩成概率:
y^=σ(z)=11+ez
  1. 分类决策:
y^0.51y^<0.50

直观理解

想象你要判断一个人是否患有某种病:

  • 你拿到他的一些指标(如年龄、血压、体重)。
  • 把这些指标带入模型,模型输出一个概率,比如 0.82。
  • 表示这个人有 82% 的概率患病,于是你预测他"患病"。

损失函数:交叉熵损失

逻辑回归使用 交叉熵(Cross Entropy)损失函数来衡量预测与真实标签的差距:

Loss=[ylog(y^)+(1y)log(1y^)]

这个函数对概率接近真实值的预测给予更低的惩罚,对错误预测惩罚大。

应用场景

  • 垃圾邮件分类

  • 用户是否会点击广告

  • 信用卡欺诈检测

  • 医疗诊断(是否患病)

实验代码

实验代码参考[1]

过拟合(Overfitting)

过拟合是指一个模型在训练数据上表现很好,但在新数据(测试集)上表现很差。也就是说,它“学得太好了”,以至于学会了训练数据的噪声和细节,而不是通用的模式

举个例子

假设你想用机器学习判断一个人是否会买冰淇淋,输入特征是温度:

  • 你有10个训练样本,某个模型刚好在这10个点上拟合得非常完美(准确率100%)。
  • 但当你拿新的天气数据测试时,它的判断变得很差。

这种情况就叫过拟合

防止过拟合

防止过拟合有以下方法:

  1. 收集更多的数据

  2. 选择特征

  3. 减少参数的大小

    正则化(Regularization)

正则化

在训练模型时,如果不加控制,模型可能会学得非常“贴合”训练数据(过拟合)。
正则化通过在损失函数中添加一项“惩罚项”,鼓励模型参数更小或更稀疏,从而避免复杂模型。

正则化(Ridge正则)

  • 惩罚项:所有权重的平方和
Loss=原始损失+λiwi2
  • 效果:鼓励权重变小但不为零,适合大多数模型。

L1正则化(Lasso正则)

  • 惩罚项:所有权重的绝对值和
Loss=原始损失+λi|wi|
  • 效果:会让一些权重变为 0,相当于特征选择(变得稀疏)。

参考


  1. https://github.com/x2nn/machine-learning ↩︎