多分类标签场景下,如何用Sklearn计算SVM模型准确率?
嗨,别担心,多分类场景下计算准确率其实不用换特殊函数,sklearn里的accuracy_score完全能搞定!
你之前的二分类代码思路是对的,只是需要补充完整预测步骤,再调用准确率计算函数就行。而且SVC默认就支持多分类(采用one-vs-one策略),不需要额外设置参数(当然你也可以通过decision_function_shape改成one-vs-rest)。
给你补全完整的代码示例:
# 先导入所有需要的模块 from sklearn.model_selection import train_test_split from sklearn.svm import SVC from sklearn.metrics import accuracy_score # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0) # 训练线性SVM分类器(多分类场景下直接用就行) svm_model_linear = SVC(kernel='linear', C=1).fit(X_train, y_train) # 生成测试集预测结果 svm_predictions = svm_model_linear.predict(X_test) # 计算多分类准确率 accuracy = accuracy_score(y_test, svm_predictions) print(f"多分类模型准确率: {accuracy:.4f}")
如果你还想更全面评估模型(比如看每个类别的精确率、召回率),可以用classification_report,它也完美支持多分类:
from sklearn.metrics import classification_report print(classification_report(y_test, svm_predictions))
简单说一下原理:accuracy_score在多分类里的计算逻辑和二分类一致——正确预测的样本数 / 总样本数,完全适配你的需求。
内容的提问来源于stack exchange,提问作者april
相关产品推荐
相关产品推荐

