You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确设置Keras中model.fit的class_weights参数?

搞懂Keras class_weight的类别对应逻辑

别担心,我来帮你理清楚这个权重怎么对应才对!

首先得明确class_weight的核心逻辑:它是给样本数量少的类别分配更大的权重,这样模型在训练时会更“重视”这个容易被忽略的少数类,解决类别不平衡的问题。权重的计算逻辑通常是总样本数 / (类别数 × 该类样本数),所以样本越少的类别,算出来的权重值就越大。

那怎么判断你的权重该怎么对应呢?按这两步来:

  • 第一步:先统计你的训练集里两个类别的样本数量,比如用代码:
    import numpy as np
    # 假设y_train是你的标签数组
    class_counts = np.bincount(y_train)
    print(f"类别0的样本数:{class_counts[0]},类别1的样本数:{class_counts[1]}")
    
  • 第二步:看哪个类别的样本数更少,那个类别就对应你手里更大的权重值(也就是2.217857142857143),样本多的类别对应小的权重值(0.6455301455301455)。

举个例子:

  • 如果类别0是少数类(样本数远少于类别1),那你最初写的class_weight={0: 2.217857142857143, 1: 0.6455301455301455}就是对的;
  • 如果类别1是少数类,那就要反过来写成class_weight={0: 0.6455301455301455, 1: 2.217857142857143}。

内容的提问来源于stack exchange,提问作者MJimitater

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 21:02:29