class_weight=‘balanced‘缓解类别不平衡问题

当 class_weight='balanced' 时,每个类别 i 的权重 w_i 计算如下:

nsamples​ :训练集总样本数

nclasses​ :类别总数(不包含背景,如果有)

ni​ :类别 i 的样本数

假设训练集共有 1000 个样本,分为 3 个类别:

复制代码
类别 A:500 个样本
类别 B:300 个样本
类别 C:200 个样本

那么:

复制代码
类别 A 的权重:1000/(3×500)=1000/1500≈0.6671000/(3×500)=1000/1500≈0.667
类别 B 的权重:1000/(3×300)=1000/900≈1.1111000/(3×300)=1000/900≈1.111
类别 C 的权重:1000/(3×200)=1000/600≈1.6671000/(3×200)=1000/600≈1.667

类别 C(样本最少)获得最大权重,类别 A(样本最多)权重最小。

在 SVM 中的作用

SVM 的目标是最小化:

其中 ξi是松弛变量。

class_weight 将样本的惩罚系数 C 乘以对应的类别权重。实际效果是:

复制代码
对少数类样本,其松弛变量 ξi​ 的惩罚被放大,迫使模型更努力地正确分类它们(或允许更少的误分类)。
对多数类样本,惩罚相对减小,模型对它们的误分类容忍度更高。

最终,模型会倾向于找到一个决策边界,使得少数类样本被更准确地分类,从而提升整体的类别平衡性能。

相关推荐
richard_first3 小时前
Transformer 与大语言模型:第10章 Residual (残差连接)
人工智能·深度学习·机器学习·transformer
星星.7224 小时前
C++算法竞赛|二分查找与二分答案:边界模板、浮点二分、STL
数据结构·c++·算法
sel_94 小时前
【OPD论文导读(二)】OPD(On-Policy Distillation)全景调研:十篇论文讲透“在自己生成的内容上学习“这件事
人工智能·python·深度学习·学习·算法·语言模型
北山小恐龙4 小时前
使用手势在电脑刷抖音
人工智能·python·深度学习·yolo·机器学习·计算机视觉
金幄科技5 小时前
RAG第四篇:重排序 Rerank——粗召回之后,为什么还需要一次精排
人工智能·算法·ai·ai编程
M78佐菲5 小时前
Linux学习笔记:文件IO
linux·笔记·学习·算法
格林威5 小时前
C#图像分块处理:图像按行或按块(Tile)切分,多个 CPU 核心同时处理不同的区域
开发语言·图像处理·人工智能·机器学习·计算机视觉·c#·工业相机
Sinclair6 小时前
从神经网络到文件加密:一次关于 SIREN、ARX 与密码安全性的实验探索
人工智能·机器学习
lhldsg6 小时前
课程排课系统实战指南:从数据库设计到算法调优全流程解析
java·数据库·算法·小程序
BSD_HY6 小时前
薄膜开关矩阵扫描电路设计中的防鬼键措施
人工智能·算法·矩阵·人机交互·薄膜开关·源头工厂·深圳工厂