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

使用Sklearn训练分类模型时,分类准确率括号内数值的含义是什么?

关于分类模型交叉验证结果中括号内数值的疑问

我正在使用Sklearn针对分类问题训练随机森林和梯度提升等模型,代码实现如下:

models = []
models.append(('DT', DecisionTreeClassifier(criterion = "gini", random_state = 10, max_depth=3, min_samples_leaf=2)))
models.append(('RF', RandomForestClassifier(n_estimators=500, criterion='gini', max_features='auto',min_samples_split=2)))
models.append(('XT', ExtraTreesClassifier(n_estimators=500,max_features= 8,criterion= 'entropy',min_samples_split= 2, max_depth= 5, min_samples_leaf= 3)))
models.append(('GB', GradientBoostingClassifier(learning_rate=0.1,n_estimators=700, min_samples_split=2,min_samples_leaf=3,max_depth=4, max_features='sqrt',subsample=0.6,random_state=10)))
models.append(('ADB', AdaBoostClassifier(n_estimators=500,learning_rate=0.2,random_state=0)))
# 依次评估每个模型
results = []
names = []
for name, model in models:
    kfold = model_selection.KFold(n_splits=10, random_state=seed)
    cv_results = model_selection.cross_val_score(model, x_train, Y_train, cv=kfold, scoring=scoring)
    results.append(cv_results)
    names.append(name)
    msg = "%s: %f (%f)" % (name, cv_results.mean(), cv_results.std())
    print(msg)

执行上述代码后,得到分类准确率结果为0.770 (0.048),请问括号中的数字代表什么含义?


这个括号里的0.048是10折交叉验证中各折准确率的标准差,给你拆解下具体含义:

  • 你用了KFold(n_splits=10)做10折交叉验证,训练集会被拆成10份,每次用9份训练模型、1份测试,跑完10次后会得到10个独立的准确率数值。
  • 前面的0.770是这10个准确率的平均值,代表模型的整体平均分类能力。
  • 括号里的标准差则反映了模型在不同数据子集上的表现波动:数值越小,说明模型在不同折的测试集上表现越稳定,泛化能力更可靠;数值越大,说明模型在不同数据分布下的性能差异大,可能存在过拟合或者对数据变化过于敏感的问题。

简单来说,这个标准差是用来衡量模型性能稳定性的指标,和平均准确率搭配看,能帮你更全面地判断模型的实际表现。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:41:28