2021
04-07
04-07
R语言利用caret包比较ROC曲线的操作
说明我们之前探讨了多种算法,每种算法都有优缺点,因而当我们针对具体问题去判断选择那种算法时,必须对不同的预测模型进行重做评估。为了简化这个过程,我们使用caret包来生成并比较不同的模型与性能。操作加载对应的包与将训练控制算法设置为10折交叉验证,重复次数为3:library(ROCR)library(e1071)library("pROC")library(caret)library("pROC")control=trainControl(method="repaetedcv",number=10,repeats=3,...
继续阅读 >
1roc曲线的意义ROC曲线就是用来判断诊断的正确性,最理想的就是曲线下的面积为1,比较理想的状态就是曲线下的面积在0.8-0.9之间,0.5的话对实验结果没有什么影响。如图:2代码部分install.packages(“pROC”)install.packages(“ggplot2”)library(pROC)library(ggplot2)#建立曲线data(aSAH)rocobj1<-roc(aSAHoutcome,aSAHoutcome,aSAHoutcome,aSAHs100b)rocobj2<-roc(aSAHoutcome,aSAHoutcome,aSAHoutco...
基本概念precision:预测为对的当中,原本为对的比例(越大越好,1为理想状态)recall:原本为对的当中,预测为对的比例(越大越好,1为理想状态)F-measure:F度量是对准确率和召回率做一个权衡(越大越好,1为理想状态,此时precision为1,recall为1)accuracy:预测对的(包括原本是对预测为对,原本是错的预测为错两种情形)占整个的比例(越大越好,1为理想状态)fprate:原本是错的预测为对的比例(越小越好,0为理想状态)...
为了获取ROC曲线的最佳阈值,需要使用一个指标--约登指数,也称正确指数。借助于matlab的roc函数可以得出计算。%1-specificity=fpr%Sensitivity=tpr;[tpr,fpr,thresholds]=roc(Tar',Val');RightIndex=(tpr+(1-fpr)-1);[~,index]=max(RightIndex);%RightIndexVal=RightIndex(index(1));tpr_val=tpr(index(1));fpr_val=fpr(index(1));thresholds_val=thresholds(index(1));disp(['平均准确率:',num2str((RightIndexVal+1)*0...
之前在做kaggle比赛时,有个比赛使用AUC来评比的,当时试着画了ROC曲线,结果出来的下图这样的图形。跟平时的ROC曲线差好远,就只有一个点。而别人家的都是很多转折的,为啥我的不一样。我的图如下:正常的图(sklearn上面截取的):思考过后,发现原来:ROC曲线,一般适用于你的分类器输出一个“概率值”,即这个样本属于某个类的概率是多少。如此的话,你就需要设定一个阈值,大于这个阈值属于正类,小于这个阈值属于负类。从...