支持向量机多分类模型,计算评估指标acc、f1、auc.
from sklearn import datasets
from sklearn.svm import SVC
from sklearn import model_selection
from sklearn import metrics
from sklearn.preprocessing import label_binarize
import numpy as np
# 加载数据集,划分数据集
X,y = datasets.load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.3, random_state=123)
# 加载并训练模型
clf = SVC(probability=True)
clf.fit(X_train, y_train)
# 使用模型进行预测
y_pred = clf.predict(X_test)
y_pred_prob = clf.predict_proba(X_test)
# 计算模型评估指标
acc = metrics.accuracy_score(y_test, y_pred)
print('acc: '+str(acc))
f1 = metrics.f1_score(y_test, y_pred,average='micro')
print('f1: '+str(f1))
class_names = np.unique(y_train)
y_binarize = label_binarize(y_test, classes=class_names)
y_fit=label_binarize(y_pred, classes = class_names)
fpr, tpr, _= metrics.roc_curve(y_binarize.ravel(),y_fit.ravel())
auc = metrics.auc(fpr, tpr)
print('auc: '+str(auc))
结果:
acc: 0.9111111111111111
f1: 0.9111111111111111
auc: 0.9333333333333332