分类器性能度量

实验3 分类器性能度量

一、实验目的

(1)理解分类器性能度量的方法。
(2)编程ROC曲线绘制。

二、实验内容

1、编程实现ROC曲线绘制的函数roc_plot。其中,分类概率使用matlab自带的朴素贝叶斯函数得到。

测试代码如下:

load('testingData.mat')
load('trainingData.mat')
nb = NaiveBayes.fit(trAttr, trLabels);
p=posterior (nb,tstAttr);
y1=p(:,2);
[auc1 ,FPR1 ,TPR1 ]  = roc_plot(y1,tstLabels);

(将执行正确的roc_plot函数代码粘贴在此处,核心代码要求有注释)

function [auc1 ,FPR1 ,TPR1 ]  = roc_plot(y1,tstLabels)
[val,ind]=sort(y1);
roc_y=tstLabels(ind);
num=length(roc_y);
fpr=zeros(num,1);
tpr=zeros(num,1);
for i=1:num
    p=sum(roc_y(:)==1);%实际上为真的数目
    n=sum(roc_y(:)==0);%实际上位假的数目
    fp=sum(roc_y(i:end)==0);%被分为真实际上是假的数目
    tp=sum(roc_y(i:end)==1);%被分为真实际上市真的数目
    fpr(i)=fp/p;
    tpr(i)=tp/n;
end
tpr=[tpr;0];
fpr=[fpr;0];
auc=0;
for i=2:num+1
    auc=auc+tpr(i)*(fpr(i-1)-fpr(i));%计算AUC
end
figure,plot(fpr,tpr);
xlabel('false Positive Rate');
ylabel('True Positive Rate');
title(['ROC curve(AUC=)' num2str(auc) ')']);


end
 
2、(难度2)编程实现ROC曲线绘制的函数roc_plot。其中,分类概率使用自己编写的朴素贝叶斯函数bys_post1得到。

测试代码如下:

load('testingData.mat')
load('trainingData.mat')
[post4all]=bys_post1(trAttr, trLabels,tstAttr);
y2=post4all(:,2);
[auc2 ,FPR2 ,TPR2 ]  = roc_plot(y2,tstLabels);

(将执行正确的bys_post1函数代码粘贴在此处,核心代码要求有注释)

function [auc ,fpr ,tpr ]  = roc_plot(y1,tstLabels)
[val,ind]=sort(y1);
roc_y=tstLabels(ind);
num=length(roc_y);
fpr=zeros(num,1);
tpr=zeros(num,1);
for i=1:num
    p=sum(roc_y(:)==1);%ʵ¼ÊÉÏΪÕæµÄÊýÄ¿
    n=sum(roc_y(:)==0);%ʵ¼ÊÉÏλ¼ÙµÄÊýÄ¿
    fp=sum(roc_y(i:end)==0);%±»•ÖΪÕæʵ¼ÊÉÏÊǼٵÄÊýÄ¿
    tp=sum(roc_y(i:end)==1);%±»•ÖΪÕæʵ¼ÊÉÏÊÐÕæµÄÊýÄ¿
    fpr(i)=fp/p;
    tpr(i)=tp/n;
end
tpr=[tpr;0];
fpr=[fpr;0];
auc=0;
for i=2:num+1
    auc=auc+tpr(i)*(fpr(i-1)-fpr(i));%¼ÆËãAUC
end
figure,plot(fpr,tpr);
xlabel('false Positive Rate');
ylabel('True Positive Rate');
title(['ROC curve(AUC=)' num2str(auc) ')']);
 
 
end
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值