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

训练分类模型时如何无需额外训练设置默认分类类别

无需额外训练设置默认分类的可行方案

完全可以在不新增训练数据、不重新训练模型的前提下实现默认分类,核心是在推理阶段增加一层输出校验逻辑,常用实现方式如下:

  • 基于softmax置信度阈值过滤
    你训练好的文本分类模型最后一层通常为softmax激活层,会输出每个预设分类的匹配概率,所有概率总和为1。你可以提前设定一个置信度阈值,当模型输出的最高匹配概率低于该阈值时,直接将文本归类到默认的「其他」分类即可。
    参考代码(适配TensorFlow 2.7版本):
import tensorflow as tf

# 加载已训练完成的文本分类模型
trained_model = tf.keras.models.load_model("your_text_clf_model.h5")
# 置信度阈值,可根据测试效果调整,通用建议取值范围为0.6~0.8
CONFIDENCE_THRESHOLD = 0.7
# 你的预设分类列表,最后一位为默认分类
CLASSES = ["时政", "娱乐", "科技", "体育", "其他"]

def predict_with_default(input_text):
    pred_probs = trained_model.predict(input_text, verbose=0)[0]
    max_prob = pred_probs.max()
    pred_class_idx = pred_probs.argmax()
    if max_prob < CONFIDENCE_THRESHOLD:
        # 置信度不足,返回默认分类
        return CLASSES[-1]
    return CLASSES[pred_class_idx]

阈值可以通过混跑「预设分类内样本+非预设分类样本」的测试集调整,直到匹配你的业务误判容忍度即可。

  • 基于logit差值判断
    如果你的模型输出层没有加softmax激活,直接输出logit值,也可以通过最高logit值与第二高logit值的差值判断分类置信度:差值低于阈值时归为默认分类。该方案比softmax阈值判断的抗干扰性更强,适合预设分类之间区分度较低的场景。
注意事项
  • 上述两种方案都不需要修改模型结构,也不需要额外标注样本训练,仅需在推理逻辑中新增几行判断代码即可实现
  • 阈值没有统一标准:如果要求预设分类的识别准确率优先,可将阈值设置得更高,更多边缘样本会被归为默认分类;如果要求尽可能少漏判预设分类,可将阈值设置得更低
  • 如果后续发现阈值调整无法满足误判率要求,再考虑新增少量非预设分类样本微调模型即可,前期可以直接用上述方案快速上线

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:18:06