我正在尝试计算交叉验证的 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)
最好的问候,弗兰克