利用perfcurve函数画ROC和DET等评价曲线

本文介绍了如何使用SVM训练模型,并通过perfcurve函数绘制ROC曲线来评估模型性能。此外,还展示了如何调整perfcurve参数以输出DET曲线。

具体使用方法可以参考perfcurve帮助

load heart_scale.mat

model = svmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');
[predict_label, accuracy, dec_values] = svmpredict(heart_scale_label, heart_scale_inst,model);

[X,Y] =perfcurve(heart_scale_label,dec_values,'1');
%[X,Y] = perfcurve(labels,scores,posclass,'param1', val1,'param2',val2,...)
%labels:目标标签 scores:决策值 posclass:正类标签
%'param'和val可以定义X和Y的输出值,具体可以看函数帮助,默认是定义X轴为FPR,Y轴为TPR

plot(X,Y),xlabel('FPR'),ylabel('TPR');%输出ROC曲线

[X,Y] =perfcurve(heart_scale_label,dec_values,'1','xCrit','FPR','yCrit','FNR');
%重新定义输出值,'xCrit','FPR'表示定义X输出为FPR=FP/(TN+FP),这里其实就是默认值
%'yCrit','FNR'表示定义y输出为FNR=FN/(TP+FN)

figure,plot(X,Y),xlabel('fall'),ylabel('miss');%输出DET曲线
ROC曲线AUC值是描述二元分类模型性能的重要指标。Python作为一种高效的编程语言,提供了很多ROC曲线计算AUC值的工具。 要ROC曲线,需要先得到模型的预测概率分数真实标签。然后,可以使用sklearn.metrics包中的roc_curveauc函数进行计算绘图。具体步骤如下: 1. 从模型中得到预测概率分数真实标签(0或1)。 2. 使用roc_curve函数计算出不同阈值下的真正率(True Positive Rate)假正率(False Positive Rate)。 3. 使用plt.plot函数ROC曲线,并使用plt.show函数显示结果。 4. 使用auc函数计算AUC值。 示例代码如下: ``` from sklearn.metrics import roc_curve, auc import matplotlib.pyplot as plt # 获取预测概率分数真实标签 y_pred = model.predict_proba(X_test)[:,1] fpr, tpr, thresholds = roc_curve(y_test, y_pred) # ROC曲线 plt.plot(fpr, tpr, label='ROC curve (area = %0.2f)' % auc(fpr, tpr)) plt.plot([0, 1], [0, 1], 'k--') plt.xlim([0.0, 1.0]) plt.ylim([0.0, 1.05]) plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.title('Receiver operating characteristic') plt.legend(loc="lower right") plt.show() # 计算AUC值 auc_value = auc(fpr, tpr) print('AUC value is: %.2f' % auc_value) ``` 在这个示例中,我们使用model.predict_proba函数获取模型的预测概率分数,X_test为测试数据,y_test为测试数据的真实标签。我们使用roc_curve函数计算出不同阈值下的真正率假正率,并使用plt.plot函数ROC曲线。我们使用auc函数计算ROC曲线下的面积即AUC值,并输出AUC值。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值