机器学习之支持向量机SVM之python实现ROC曲线绘制(二分类和多分类)

本文介绍了ROC曲线的作用,并详细阐述了如何使用Python绘制支持向量机(SVM)的ROC曲线,包括二分类和多分类问题。在二分类中,重点解析了roc_curve函数的关键代码和完整流程。而在多分类问题中,讨论了两种不同的方法,即宏观平均和微观平均,以及在sklearn库中对应的实现。文章提供了相关参考文献以供深入学习。
摘要由CSDN通过智能技术生成

目录

 

一、ROC曲线

二、TP、FP、TN、FN

三、 python绘制ROC曲线(二分类)

1、思路

2、关键代码

3、完整代码

四、 python绘制ROC曲线(多分类)

五、参考文献


一、ROC曲线

定义可见:

《机器学习——支持向量机SVM实例》

作用:通过ROC曲线可以获取相关性能指标,如EER、AUC等,这些性能指标可以用来评价一个SVM训练出来模型的优劣

二、TP、FP、TN、FN

三、 python绘制ROC曲线(二分类)

1、思路

python主要的思路是通过roc_curve函数和测试样本的实际标签集test_label、由训练模型预测得到的标签集test_predict_label获得。通过比对实际标签和预测标签来计算TP、FP、TN、FN,通过roc_curve函数可以实现,返回的是TP、FP、以及阈值threshold。计算ROC曲线只需要TPFP即可。

2、关键代码

................

#train_data用于训练的样本集, test_data用于测试的样本集, train_label训练样本对应的标签集, test_label测试样本对应的标签集

###通过decision_function()计算得到的test_predict_label的值,用在roc_curve()函数中
test_predict_label = svm.fit(train_data, train_label).decision_function(test_data)
#首先通过fit来对训练样本和训练样本标签进行训练得到模型,然后通过decision_function来获得模型对于测试样本集预测的标签集

# Compute ROC curve and ROC area for each class#计算tp,fp
#通过测试样本输入的标签集和模型预测的标签集进行比对,得到fp,tp,不同的fp,tp是算法通过一定的规则改变阈值获得的
fpr,tpr,threshold = roc_curve(test_label, test_predict_label) ###计算真正率和假正率
roc_auc = auc(fpr,tpr) ###计算auc的值,auc就是曲线包围的面积,越大越好

..................

 

#test_predict_label
[ 0.17284263  0.65445393 -0.54087101  0.3555818   0.00579262 -0.20174248
  0.0565328   0.00571205 -0.1517872   0.25656427  0.39764688  0.04549989
  0.33455816 -0.12499602  0.23724787 -0.36250412 -0.0874348  -0.11575856
 -0.25270656 -0.23457408 -0.18239472 -0.10728706 -0.32201471  0.71954289
 -0.29292995 -0.22073314 -0.32473373 -0.19383585 -0.24296148  0.37524795]

在二分类问题中,阈值的改变其实就是相当于从一个边界移动到另一个边界,阈值的改变也就使得tp和fp的改变


                
  • 12
    点赞
  • 133
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有情怀的机械男

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值