如何通过交叉验证绘制 SVM 模型的每条 ROC 曲线

数据挖掘 机器学习 Python scikit-学习 评估
2022-03-03 17:07:51

我想在python中制作如下图: 在此处输入图像描述

也就是说,每折一条曲线。

我有以下代码,我使用 SVM 模型对一些数据进行分类

kf = KFold(n_splits=10)

a, fma, fmi = [], [], []
for train, eval in kf.split(x_train):
    x_train_i, x_eval_i, y_train_i, y_eval_i = x_train[train], x_train[eval], y_train[train], y_train[eval]
    c = svm.SVC(kernel='rbf', gamma='scale', C=40).fit( x_train_i, y_train_i )
    p = c.predict(x_eval_i)
    acc = c.score(x_eval_i, y_eval_i)
    f1ma = f1_score(y_eval_i, p, average='macro')
    f1mi = f1_score(y_eval_i, p, average='micro')
    a.append(acc)
    fma.append(f1ma)
    fmi.append(f1mi)

有谁知道在循环中添加什么来显示像上面那样的图表?非常感谢你。

0个回答
没有发现任何回复~