1

我正在尝试计算交叉验证的 ROC 曲线。特别是参数 AUC(曲线下面积)和 OPTROCPT(最佳 ROC 点)。我想我可以通过平均每次迭代的 AUC 和 th OptROCPt 来计算它们,但我没有得到正确的结果。我究竟做错了什么?

我的代码是:

 cv = cvpartition(size(Y,1),'kfold',10);
 AUCvector=zeros(10,1);
 OptPtovector=zeros(10,2);

 for k=1:10
     istrain = training(cv,k);
     istest = test(cv,k);
     [b,dev,stats] = glmfit(X(istrain),y(istrain),'binomial','logit'); 
     p=glmval(b,X(istest),'logit'); $ Are p the scores for perfcurve?
     clear AUC OptPto
     [Temp1,Temp2,Temp3,AUC,OptPto]=perfcurve(y(istest),p,1);
     AUCvector(k,1)=AUC;
     OptPtovector(k,:)=OptPto;
  end
  mAUC=mean(AUCvector)
  mOptPto=mean(OptPtovector,2)

最好的问候,弗兰克

4

0 回答 0