roc曲线python实现_使用python制作ROC曲线进行多分类

从这里跟进:Converting a 1D array into a 2D class-based matrix in python

我想为我的46个班级中的每个班级绘制ROC曲线.我有300个测试样本,已对其运行分类器以进行预测.

y_test是真实的类,而y_pred是我的分类器预测的.

这是我的代码:

from sklearn.metrics import confusion_matrix, roc_curve, auc

from sklearn.preprocessing import label_binarize

import numpy as np

y_test_bi = label_binarize(y_test, classes=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18, 19,20,21,2,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,3,40,41,42,43,44,45])

y_pred_bi = label_binarize(y_pred, classes=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18, 19,20,21,2,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,3,40,41,42,43,44,45])

# Compute ROC curve and ROC area for each class

fpr = dict()

tpr = dict()

roc_auc = dict()

for i in range(2):

fpr[i], tpr[i], _ = roc_curve(y_test_bi, y_pred_bi)

roc_auc[i] = auc(fpr[i], tpr[i])

但是,现在出现以下错误:

Traceback (most recent call last):

File "C:\Users\app\Documents\Python Scripts\gbc_classifier_test.py", line 152, in

fpr[i], tpr[i], _ = roc_curve(y_test_bi, y_pred_bi)

File "C:\Users\app\Anaconda\lib\site-packages\sklearn\metrics\metrics.py", line 672, in roc_curve

fps, tps, thresholds = _binary_clf_curve(y_true, y_score, pos_label)

File "C:\Users\app\Anaconda\lib\site-packages\sklearn\metrics\metrics.py", line 505, in _binary_clf_curve

y_true = column_or_1d(y_true)

File "C:\Users\app\Anaconda\lib\site-packages\sklearn\utils\validation.py", line 265, in column_or_1d

raise ValueError("bad input shape {0}".format(shape))

ValueError: bad input shape (300L, 46L)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值