欢迎光临散文网 会员登陆 & 注册

科研代码分享|python构建SVM分类器并绘制ROC曲线

2022-06-15 11:52 作者:尔云间  | 我要投稿

科研有捷径,输入代码,一键获取科研成果!就是这么省事,来具体看下有多方便!

搜索http://985.so/a9kb查看全部代码(目前共计50+持续新增中),也可以点击右侧【目录】,可以看到更多有趣的代码

真香提示:文末可以知道如何获取代码~   

在高通量数据分析过程中,数据挖掘已成为一种切实有效的分析方法,能够帮助我们在海量数据中挖掘出其内在关联和显著的特征,因此在医疗,生物,物理,经济等多个领域都有着广泛应用。

支持向量机SVM是一种快速高效的分类器方法,在使用SVM分类器对数据进行分类预测时,我们需要做两个重要的准备工作,第一是特征选择,第二是参数优化:

1、特征选择是指从海量特征中筛选出最显著的,对于分类贡献最大的特征,去除冗余和重复的特征,从而达到降维和增加预测精度的目的,一般特征选择的方法有        recursive feature elimination,逻辑回归,差异检验等。

2、参数优化是指在分类过程中,由于技术偏见,不可避免存在假阳性和假阴性,因此需要对惩罚参数C,以及sigma进行优化,一般的优化方法如方格暴力优化,退火算法,遗传算法,贪婪算法等。然而在这一系列优化筛选过后,最重要的是通过一个测度标准来评价预测结果的好坏。

这里我们介绍一种通过python语言实现的ROC曲线绘制方法,结合交叉验证,同时计算曲线下面积AUC值。

首先导入数据为数据矩阵,如下表所示:

这里特征选择的过程我们采用recursive feature elimination(RFE)的方法,参数优化采用python自带的grid.py暴力搜索模式,最终获得预测结果。

上图为利用SVM分类器通过五倍交叉验证绘制ROC曲线的结果。横轴代表假阳性率,纵轴代表真阳性率,五倍交叉验证中将数据集分成五份,以四份做训练,对剩下的一份做预测,此过程重复五次,直至所有的数据都在预测集中被预测,且只被预测一次。并统计五次预测的精度,分别用不同颜色曲线表示,同时计算对应的AUC值(即ROC曲线下面积area值),最终为了从整体上评价SVM分类器的预测效能,我们综合五次验证的结果,取平均值,并通过mean ROC(图中黑色续写)表示。如图所示,最后平均预测AUC值为0.92,说明我们这个模型预测精度很高,且五次预测结果最低0.87,最高0.97,也证明了这个模型的稳健性。

Python实现绘制ROC曲线的代码如下:

抱歉,B站复制长代码,乱码了,上传不了,请扫码查看原文中的代码!

扫码查看原文中的代码


科研代码分享|python构建SVM分类器并绘制ROC曲线的评论 (共 条)

分享到微博请遵守国家法律