




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流引用 Weka学习五(ROC简介).精品文档.引用 Weka学习五(ROC简介)智能信息处理 2010-07-11 22:13:11 阅读3 评论0 字号:大中小 订阅 .引用其实 的 Weka学习五(ROC简介)今天我们来介绍一下ROC(Receiver operating characteristics)国内复旦张文彤老师在SPSS统计分析基础教材中将其翻译成“受试者工作特征”,也有按字面意思译成“接受者操作特征曲线”。到底选择哪一个大家自便吧。ROC曲线是有TP(True positive rate)、FP(Flase positive
2、 rate)构成的,以TP作为Y轴,FP作为X轴。对于一个离散型分类器(discrete classifier),每一个分类器仅仅对测试集生成一组(fp,tp)点。这个结果对应着ROC空间上的一个点,例如上图中的A、B、C几个点。那么如何让它们产生一个曲线就成了大家最关心的问题。有一种方法通过对每一个样本集中的样本依次排序进入队列,来到一个样本就计算一次(fp,tp)值,直到样本集中样本全部进入为止。这样我们就得到了一个与样本数量相同的(fp,tp)数组了。然后我们通过这个二维数组我们就可以在ROC空间上做出一个ROC曲线了。具体的算法大家可以参见An introduction to ROC
3、anslysisTom Fawcett, 2005。这篇论文中对ROC曲面进行了很详细的讲解。这样我们就可以得到一个如上图所示的ROC曲线。我们可以看到上图中有很多条ROC曲线,但是到底哪一条ROC曲线代表对应的分类器的分类效果?这也是一个值得探讨的问题。我们可以看到ROC曲线下面覆盖了一定的面积,不同的曲线覆盖的大小不同,于是一个通俗的想法就是比较它们覆盖面积的不同来判断分类器的效果。当然这个通俗的想法也是有其缘由的,因为对于在ROC空间中的点来说,分类器的分类效果越好它所对应的TP值就越高,FP越低,那么这个对应的点就越靠近西北方向(及左上角)。那么对于一个分类效果比较好的分类器来说,它的
4、ROC曲面必然靠近西北方向,当然它所覆盖的面积就会比其它分类效果较差的分类器要大了。学界称这个面积为Area under the ROC curve(AUC)。说了这么多,如果需要仔细了解ROC的原理请大家参考上文提到的那篇论文。现在我将weka中得到ROC曲面的方法,以及通过SPSS绘制一个ROC曲面的方法以源码的形式介绍给大家:package com.csdn;import java.awt.BorderLayout;import java.io.BufferedReader;import java.io.FileReader;import java.util.Random;import
5、weka.classifiers.Classifier;import weka.classifiers.Evaluation;import weka.classifiers.bayes.NaiveBayes;import weka.classifiers.evaluation.ThresholdCurve;import weka.core.Instances;import weka.core.Utils;import weka.gui.visualize.PlotData2D;import weka.gui.visualize.ThresholdVisualizePanel;import co
6、m.learning.Util; * Date: 2009.4.6 * by: Wang Yi * Email: wangyi19840906 * QQ: 270135367public class SimpleROC * param args public static void main(String args) throws Exception / TODO Auto-generated method stub * 1.读入数据集 Instances data = new Instances( new BufferedReader( new FileReader("C:Prog
7、ram FilesWeka-3-6datasegment-challenge.arff"); data.setClassIndex(data.numAttributes() - 1); * 2.训练分类器并用十字交叉验证法来获得Evaluation对象 * 注意这里的方法与我们在上几节中使用的验证法是不同。 Classifier cl = new NaiveBayes(); Evaluation eval = new Evaluation(data); eval.crossValidateModel(cl, data, 10, new Random(1); * 3.生成用于得到ROC
8、曲面和AUC值的Instances对象 * 顺带打印了一些其它信息,用于在SPSS中生成ROC曲面 * 如果我们查看weka源码就会知道这个Instances对象包含了很多分类的结果信息 * 例如:FMeasure、Recall、Precision、True Positive Rate、 * False Positive Rate等等。我们可以用这些信息绘制各种曲面。 ThresholdCurve tc = new ThresholdCurve(); /classIndex is the index of the class to consider as "positive"
9、; int classIndex = 0; Instances result = tc.getCurve(eval.predictions(), classIndex); System.out.println("The area under the ROCcurve: " + eval.areaUnderROC(classIndex); * 在这里我们通过结果信息Instances对象得到包含TP、FP的两个数组 * 这两个数组用于在SPSS中通过线图绘制ROC曲面 int tpIndex = result.attribute(ThresholdCurve.TP_RATE_
10、NAME).index(); int fpIndex = result.attribute(ThresholdCurve.FP_RATE_NAME).index(); double tpRate = result.attributeToDoubleArray(tpIndex); double fpRate = result.attributeToDoubleArray(fpIndex); Util.writeArray(tpRate, fpRate, "d:roc.txt"); * 4.使用结果信息instances对象来显示ROC曲面 ThresholdVisualize
11、Panel vmc = new ThresholdVisualizePanel(); /这个获得AUC的方式与上面的不同,其实得到的都是一个共同的结果 vmc.setROCString("(Area under ROC = " + Utils.doubleToString(tc.getROCArea(result), 4) + ")"); vmc.setName(result.relationName(); PlotData2D tempd = new PlotData2D(result); tempd.setPlotName(result.relati
12、onName(); tempd.addInstanceNumberAttribute(); vmc.addPlot(tempd); / 显示曲面 String plotName = vmc.getName(); final javax.swing.JFrame jf = new javax.swing.JFrame("Weka Classifier Visualize: "+plotName); jf.setSize(500,400); jf.getContentPane().setLayout(new BorderLayout(); jf.getContentPane()
13、.add(vmc, BorderLayout.CENTER); jf.addWindowListener(new java.awt.event.WindowAdapter() public void windowClosing(java.awt.event.WindowEvent e) jf.dispose(); jf.setVisible(true);在代码的第三部分,有一个result 的结果信息对象被建立,这个对象里面有很多分类器分类后产生的结果,如代码中解释的那样,它们包括,TP Rate, FP Rate, Recall, FMeasure等等。在这里我将这个Instances的ar
14、ff头罗列出来供大家参见。relation ThresholdCurveattribute 'True Positives' numericattribute 'False Negatives' numericattribute 'False Positives' numericattribute 'True Negatives' numericattribute 'False Positive Rate' numericattribute 'True Positive Rate' numerica
15、ttribute Precision numericattribute Recall numericattribute Fallout numericattribute FMeasure numericattribute Threshold numeric由于在weka中得到的ROC曲线图不够清晰而且无法导出,因此我通过SPSS绘制了ROC曲线。我们是通过result这个对象得到TP Rate和 FP Rate数组,然后借助SPSS的线图功能得到ROC曲线图的。线图效果图如下: PS:最近发现我的源代码下载后无法正常工作,大家可以把"import com.learning.Util;";同时删除" Util.writeArray(tpR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新质生产力政策
- 人教高中物理必修三第九章静电场及其应用第一节电荷教学设计教案2份
- 2025届湖南省长沙市大附中博才实验中学数学七下期末综合测试模拟试题含解析
- 肌纤维瘤的临床护理
- 北师大版六年级数学下册反比例的意义教学设计
- 服装销售总结模版
- 医院护士面试试题及答案
- 一级消防试题及答案案例
- 2025年苏教版数学五年级下册期末检测题及答案(一)
- 美妆品牌购物中心美妆专区综合委托经营合作协议
- 中国艺术歌曲赏析及实践知到课后答案智慧树章节测试答案2025年春四川音乐学院
- 2025年社区工作者必考试题库及答案
- GB/T 44625-2024动态响应同步调相机技术要求
- (高清版)JTGT 3610-2019 公路路基施工技术规范
- 2018年可行性研究报告投资估算及财务分析全套计算表格共14个附表excle带公式只更改标红部分即可带说明
- 企业落实安全生产主体责任重点事项清单(20项要点)
- 护士分层级培训与管理课件
- 《人机工程学》第5章人的作业能力与疲劳课件
- 照明电气安装工程施工方案及工艺方法要求
- 彩钢产品合格证
- 人脸识别外文文献(共9页)
评论
0/150
提交评论