前端进阶之旅前端进阶之旅
  • 基础篇HTML/CSS/JS 打底
  • 进阶篇原理与工程化
  • 高频篇面试最常问的那批
  • 精选篇按模块收敛的总结
  • 手写篇常考代码手写实现
  • 面经篇真实面试问题复盘
  • AI 篇NEWAI 时代的前端考点
  • 历年面经NEW按年份追踪真实考点
  • 每日一题每天一道,攒手感
  • 专项自测100 题快速查漏
  • 小程序题库小程序专项刷题
  • 算法题库NEW在线编码即时判题
  • 知识卡片NEW碎片时间过考点
  • 面试题大全常见问题解析
  • AI 答疑NEW随时提问,即时解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • AI 定制路线NEW按你的简历现排
  • AI 知识地图NEW串起全站知识点
  • 原理篇React / Vue 源码拆解
  • HTTP从报文一路讲到 HTTPS
  • 浏览器渲染、事件循环、进程
  • 计算机基础Linux、网络、操作系统
  • 设计模式23 种模式怎么用
  • Node学习指南从环境搭建到服务端
  • NPM工作流script、依赖与发布
  • Docker容器化部署上手
  • Canvas图形与动画实战
  • 前端系统进阶学习大型项目工程化
  • 前端综合文章长期沉淀的实践文
  • 思维导图知识点全景图
  • 学习路线按图索骥不跑偏
  • AI 热点NEWAI 每日动态
  • 公众号动态公众号历史文章
  • 博客动态站长的技术博客
  • 开发者导航常用工具与文档站
  • 基础篇HTML/CSS/JS 打底
  • 进阶篇原理与工程化
  • 高频篇面试最常问的那批
  • 精选篇按模块收敛的总结
  • 手写篇常考代码手写实现
  • 面经篇真实面试问题复盘
  • AI 篇NEWAI 时代的前端考点
  • 历年面经NEW按年份追踪真实考点
  • 每日一题每天一道,攒手感
  • 专项自测100 题快速查漏
  • 小程序题库小程序专项刷题
  • 算法题库NEW在线编码即时判题
  • 知识卡片NEW碎片时间过考点
  • 面试题大全常见问题解析
  • AI 答疑NEW随时提问,即时解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • AI 定制路线NEW按你的简历现排
  • AI 知识地图NEW串起全站知识点
  • 原理篇React / Vue 源码拆解
  • HTTP从报文一路讲到 HTTPS
  • 浏览器渲染、事件循环、进程
  • 计算机基础Linux、网络、操作系统
  • 设计模式23 种模式怎么用
  • Node学习指南从环境搭建到服务端
  • NPM工作流script、依赖与发布
  • Docker容器化部署上手
  • Canvas图形与动画实战
  • 前端系统进阶学习大型项目工程化
  • 前端综合文章长期沉淀的实践文
  • 思维导图知识点全景图
  • 学习路线按图索骥不跑偏
  • AI 热点NEWAI 每日动态
  • 公众号动态公众号历史文章
  • 博客动态站长的技术博客
  • 开发者导航常用工具与文档站
首页程序员面试题库训练数据 标签不平衡 采样策略 改进方法
AIAI 开发微调与数据

在标签严重不平衡的数据集中,如何通过采样策略改进微调效果?请说明具体实现方式。

通过过采样少数类、欠采样多数类或两者结合,并配合加权损失,可缓解标签不平衡对微调的影响。关键是按类别频率调整样本或损失权重,避免模型偏向多数类。

前端进阶之旅 · 一题精讲更新于 2026.09.05
AI 开发#微调与数据
先看核心答案
理解线索

类别频率与损失权重

  1. 过采样复制少数类样本,增加其出现次数
  2. 欠采样随机丢弃多数类样本,减少其数量
  3. 加权损失损失函数乘以类别权重,放大少数类梯度

当少数类占比很低(如低于1%)时,纯过采样易过拟合,建议结合数据增强或早停。

核心回答

先记住这个答案

在标签严重不平衡时,可对训练集进行重采样:对少数类过采样(如复制或SMOTE)或对多数类欠采样,使各类样本数接近。也可不改变数据,而在损失函数中按类别频率倒数加权,如torch.nn.CrossEntropyLoss(weight=class_weights)。更稳健的是结合两者:先用欠采样控制总量,再用类别权重微调。

  • 重采样调整类别分布
  • 加权损失按频率倒数
  • 结合两者更稳健

重采样与加权损失的平衡机制

微调时,损失函数通常对所有样本平等对待。若多数类占比99%,模型只需预测多数类即可获得低损失,导致少数类学习不足。过采样通过重复少数类样本,使每个batch中少数类出现频率提高,梯度更新更频繁。但简单复制会引入重复样本,导致模型对少数类过拟合,泛化性下降。

加权损失则在不改变数据分布的前提下,为每个样本的损失乘以系数。常用权重为N / (K * n_c),其中N为总样本数,K为类别数,n_c为类别c的样本数。这样每个类别的贡献被归一化。但权重过大可能使训练不稳定,需适当缩放。

二分类中1%正样本的微调实践

假设微调情感分类模型,正样本仅1%(100条),负样本9900条。直接训练时,模型精度可达99%但召回率为0。首先随机欠采样负样本至2000条,使正负比例约为1:20。然后设置CrossEntropyLoss的权重为[1.0, 20.0]。训练时监控验证集的F1分数,而非精度,因为精度会被多数类主导。

此设置下,模型每个batch平均约有4.8%正样本(即1/21),损失权重又放大20倍,正样本梯度贡献显著。验证集也需保持原始分布,但用F1评估。相对于直接训练,正样本召回率和F1预期会有明显提升。若直接过采样正样本至5000条,模型可能记住重复样本,在验证集上表现波动更大。

失效条件与应对代价

当少数类样本极少(少于10条)时,过采样或加权损失都会导致严重过拟合,模型几乎记住这些样本。此时应放弃采样与加权,改用focal loss或调节分类阈值,同时增加正则化。另一种情况是类别间存在难例重叠,重采样可能放大噪声样本的影响。

处理方式上,可先用异常检测筛选少数类中的离群点,再决定是否重采样。欠采样会丢失多数类信息,若多数类本身包含重要子结构,可考虑集成多个欠采样模型。加权损失则受学习率影响大,需调低学习率或使用梯度裁剪。代价是整体收敛变慢,需要更多验证轮次。

回答前,多想一步

容易答错的地方

只看准确率而忽视分布
在1%正样本下,模型全预测负类也能达到99%准确率,但实际无用。评估必须用F1、召回率等指标,并确保验证集代表真实分布。
过采样比例越高越好
过采样至完全平衡(1:1)容易导致过拟合,尤其当少数类样本本身多样性不足时。通常保留一定不平衡度(如1:10)并配合正则化更有效。
试着用自己的话回答

面试官还会怎么问?

过采样和加权损失能同时使用吗?

能,但需小心。同时使用可能过度放大少数类信号。建议先重采样至中等比例(如1:10),再设置较小权重(如2倍),用验证集调参。

采样策略对验证集有要求吗?

验证集必须保持原始测试分布,不能重采样,否则评估指标失真。需按真实场景采样,并计算加权指标如宏观F1。

在多分类任务中如何选择权重?

权重可设为max_count / count_c,但需缩放避免过大。也可按有效样本数公式(1-beta^n)/(1-beta)计算,beta通常取0.99。

从一道题,走向一组知识

把知识连起来

微调与数据

当训练数据量有限时,如何通过数据质量提升(如去重、过滤噪声)来弥补数量不足?请给出具体策略。

同属「微调与数据」专题,接着看 训练数据 质量数量权衡 去重 过滤噪声 补偿策略 在具体场景中的处理方式。

微调与数据

在持续学习多个任务时,为何模型会遗忘旧任务知识?请从参数更新机制解释根本原因。

同属「微调与数据」专题,接着看 灾难性遗忘 持续学习 参数更新 旧任务遗忘 在具体场景中的处理方式。

多模态应用

当音频与视频流的时间戳不同步时,如何通过语义内容实现精准对齐?

继续了解 时间对齐 语义对齐 音视频同步,补充本题涉及的 AI 开发 相关知识。

参考资料

  • Features overview - Claude Platform Docs

示例用于理解所注明的运行环境与边界;延伸学习可结合原文中的更多案例。

本题目录
  1. 先记住这个答案
  2. 重采样与加权损失的平衡机制
  3. 二分类中1%正样本的微调实践
  4. 失效条件与应对代价
  5. 容易答错的地方
  6. 面试官还会怎么问
  7. 把知识连起来
读懂,再试着讲出来

先看核心答案,再读代码。最后展开追问,检查自己有没有遗漏边界。

试着回答追问
浏览全部面试题理解原理,也关注真实的使用场景。回到顶部 ↑