Q 统计量的计算

    Q统计量和ROC曲线或者AUC统计量均是衡量分类器差别的重要统计量,ROC曲线可以由相关R包直接调用,本文用简单几行代码实现Q统计量的计算,具体文献可以参考Measures of Diversity in Classifier Ensembles and Their Relationship with the Ensemble Accuracy

##Q统计量是衡量分类器差别的重要统计量
##其计算建立在分类器关系矩阵上
##我们实现的原理首先是建立关系矩阵
##然后计算Q统计量
#Q值越大说明分类器差别越大,反之越小
real<-c(1,1,0,0,1,0)  #真实值
pre_a<-c(1,0,0,1,0,0)  #a分类器预测值
pre_b<-c(0,1,0,1,0,0)  #b分类器预测值


#建立与真是值得参考序列,若预测正确则为1,否则为0
func<-function(x){
     for(i in 1:length(x)){
         if(x[i]==real[i]){
             x[i]=1
         }else
             x[i]=0
      }
   return(x)
}

#主函数,其中调用上面的与真实值参考函数
nfunc<-function(x,y){
       x<-func(x)
       y<-func(y)
       n11<-0
       n10<-0
       n01<-0
       n00<-0
       for(i in 1:length(x)){
print(i)
           if(x[i]==1 & y[i]==1){
               n11<-n11+1
            } else if(x[i]==1 & y[i]==0){
               n10<-n10+1
            } else if(x[i]==0 & y[i]==1){
               n01<-n01+1
            } else
               n00<-n00+1
        }
   return(matrix(c(n11,n10,n01,n00),nrow=2,ncol=2))
}

#计算        
qnn<-nfunc(pre_a,pre_b)
Q<-(qnn[1,1]*qnn[2,2]-qnn[1,2]*qnn[2,1])/(qnn[1,1]*qnn[2,2]+qnn[1,2]*qnn[2,1])

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值