ROC曲线原理及其matlab实现源码
来源:互联网 发布:qq mac 摄像头不能用 编辑:程序博客网 时间:2024/06/09 21:49
ROC曲线和AUC经常用来评价二分类器的好坏,ROC简单的说就是在不断地调整阀值(正例置信度)的条件下,求TPR(True Positive Rate)和FPR(False Positive Rate)的值,具体的定义如下图:
由于我们实验室做的是气象方面,所以使用的是POD,FAR和CSI
四个特殊点和一条直线:
(1)(0,0)全部预测为负类,TPR=FPR=0,即TP=FP=0,
(2)(0,1)全部分类正确,TPR=1,FPR=0,即FN=0(每个正例都预测正确),FP=0(所有的的负类分类正确)
(3)(1,1)全部预测为正类,TPR=FPR=1,FN=0(所有的正类都预测对了),TN=0(所有的负类都预测错了)
(4)(1,0)全部分类错误,TPR=0,FPR=1,即TP=0,TN=0(没有预测对的)
(5)y=x直线:下面考虑ROC曲线图中的虚线y=x上的点,这条对角线上的点其实表示的是一个采用随机猜测策略的分类器的结果,例如(0.5,0.5),表示该分类器随机对于一半的样本猜测其为正样本,另外一半的样本为负样本
matlab源码:
dec = load('dec_values.txt');%所有样本的预测概率,即一个样本对应一个1*2维的向量,分别对应属于负类和正类的概率value = load('test_label_54.txt');%真实标签predict = dec(:,2);%获取属于正类的概率ground_truth = value;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%初始点为(1.0, 1.0) x = 1.0; y = 1.0; %计算出ground_truth中正样本的数目pos_num和负样本的数目neg_num pos_num = sum(ground_truth==1); neg_num = sum(ground_truth==0); %根据该数目可以计算出沿x轴或者y轴的步长 x_step = 1.0/neg_num; y_step = 1.0/pos_num; %首先对predict中的分类器输出值按照从小到大排列 [predict,index] = sort(predict); ground_truth = ground_truth(index); %对predict中的每个样本分别判断他们是FP或者是TP %遍历ground_truth的元素, %若ground_truth[i]=1,则TP减少了1,往y轴方向下降y_step%实际上就是一当前样本属于正类的概率为阀值,当前样本实际是正类,但是我们预测成了负类,TP就减少了1,TP+FN是实际正类的数量,这肯定是不变的,以下同理可得 %若ground_truth[i]=0,则FP减少了1,往x轴方向下降x_step for i=1:length(ground_truth) if ground_truth(i) == 1 y = y - y_step; else x = x - x_step; end X(i)=x; Y(i)=y; end %画出图像 XX = X;YY = Y;plot(X,Y,'-kp','LineWidth',1,'MarkerSize',1); xlabel('False Positive Rate'); ylabel('True Positive Rate'); %计算小矩形的面积,返回auc auc = -trapz(X,Y);title(['ROC Curve of (AUC = ',num2str(auc),')']);
参考网址:
(1)https://www.douban.com/note/284051363/
阅读全文
0 0
- ROC曲线原理及其matlab实现源码
- ROC曲线及其matlab实现ROC曲线的绘画
- ROC曲线及其matlab实现ROC曲线的绘画
- ROC曲线及其matlab实现ROC曲线的绘画
- Precision/Recall和ROC曲线原理以及Matlab源码
- Precision/Recall和ROC曲线原理以及Matlab源码
- Precision/Recall和ROC曲线原理以及Matlab源码
- ROC曲线的matlab技巧实现
- ROC曲线MATLAB实现以及AUC
- 【人工智能】算法--Precision/Recall和ROC曲线原理以及Matlab源码
- ROC曲线 及其绘制
- MATLAB画ROC曲线
- matlab plotroc 画roc曲线
- ROC曲线和AUC面积计算 matlab
- matlab ROC曲线(receiver operating characteristic)/AUC
- ROC曲线详解及matlab绘图实例
- ROC曲线详解及matlab绘图实例
- ROC曲线详解及matlab绘图实例
- iOS判断一些权限是否被禁止
- mybatis字符串比较
- Spark计算结果继续追加在HDFS目录下,不会覆盖之前的文件
- WebApi发布到外网提示404问题
- 2017-7-11北京_运行ssm框架项目前的准备
- ROC曲线原理及其matlab实现源码
- Java基础加强总结(一)——注解(Annotation)
- 大雁塔,青龙寺,樱花舞,落尘香
- Java中的静态方法具有多态性吗?
- 在rhel7的11.2.0.4 的GI上rootcrs.pl -unlock失败
- Unity3D-下载资源至本地缓存
- 生产者消费者
- 分布式服务Dubbo从入门到"精通"之Schema实现
- 使用信号监控 Django 模型对象字段值的变化