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

Sklearn中双SVM模型得分平均方法咨询:同类别不同样本训练

如何对两个SVM模型的得分进行平均?

嘿,这个问题其实有两种常见的实现思路,取决于你想要的是直接平均两个模型各自的测试得分,还是融合它们的预测结果后计算一个综合得分。我给你详细拆解两种方式的代码实现:

方式一:直接平均两个模型的独立得分

这种思路很直接——先分别算出两个模型在测试集上的表现得分(比如准确率、F1值等),再取算术平均。

假设你已经准备好了测试集X_test和对应的标签y_test,代码可以这么写:

# 计算两个模型各自的准确率得分
score1 = clf_1.score(X_test, y_test)
score2 = clf_2.score(X_test, y_test)

# 计算平均得分
average_score = (score1 + score2) / 2
print(f"两个模型的平均准确率: {average_score:.4f}")

如果你需要其他评估指标(比如F1分数、召回率),可以用sklearn.metrics里的对应函数来计算后再平均:

from sklearn.metrics import f1_score

# 先获取两个模型的预测结果
y_pred1 = clf_1.predict(X_test)
y_pred2 = clf_2.predict(X_test)

# 计算各自的F1得分(这里用macro平均,适合多分类场景)
f1_1 = f1_score(y_test, y_pred1, average='macro')
f1_2 = f1_score(y_test, y_pred2, average='macro')
average_f1 = (f1_1 + f1_2) / 2
print(f"两个模型的平均F1分数: {average_f1:.4f}")

方式二:融合预测结果后计算综合得分

如果你想要的是通过融合两个模型的预测输出,得到一个更稳健的组合模型得分,可以试试这两种融合方式:

硬投票(多数表决)

简单来说就是让两个模型“投票”,取出现次数最多的类别作为最终预测,再计算这个最终结果的得分:

from sklearn.ensemble import VotingClassifier
from sklearn.metrics import accuracy_score

# 构建硬投票分类器,传入已训练好的两个模型
voting_clf = VotingClassifier(estimators=[('clf1', clf_1), ('clf2', clf_2)], voting='hard')
# 这里调用fit只是让分类器完成初始化,不会重新训练已有的模型
voting_clf.fit(X_test, y_test)

# 得到融合后的预测结果
y_pred_vote = voting_clf.predict(X_test)
# 计算融合后的准确率得分
vote_score = accuracy_score(y_test, y_pred_vote)
print(f"硬投票融合后的得分: {vote_score:.4f}")

软投票(概率平均)

如果你的SVM模型在训练时设置了probability=True(开启概率输出),可以对两个模型输出的类别概率取平均,再根据平均概率确定最终预测,最后计算得分:

from sklearn.metrics import accuracy_score

# 注意:训练clf_1和clf_2时必须设置probability=True
# 示例:clf_1 = SVC(probability=True, kernel='rbf', ...)

# 获取两个模型的类别概率预测
prob1 = clf_1.predict_proba(X_test)
prob2 = clf_2.predict_proba(X_test)

# 对概率取平均
avg_prob = (prob1 + prob2) / 2
# 根据平均概率得到最终预测(取概率最大的类别)
y_pred_avg = avg_prob.argmax(axis=1)

# 计算融合后的得分
avg_score = accuracy_score(y_test, y_pred_avg)
print(f"概率平均融合后的得分: {avg_score:.4f}")

小提示:如果你的SVM模型训练时没开probability=True,软投票就用不了,这时候硬投票是更稳妥的选择。两种思路各有适用场景——直接平均得分是对单个模型的表现做汇总,融合预测则是构建了一个新的组合模型,你可以根据自己的需求来选~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:16:09