roc

准确率与召回率

半城伤御伤魂 提交于 2020-02-27 05:14:48
在信息检索、分类体系中,有一系列的指标,搞清楚这些指标对于评价检索和分类性能非常重要,因此最近根据网友的博客做了一个汇总。 准确率、召回率、F1 信息检索、分类、识别、翻译等领域两个最基本指标是 召回率(Recall Rate) 和 准确率(Precision Rate) ,召回率也叫查全率,准确率也叫查准率,概念公式 : 召回率( R ecall) = 系统检索到的相关文件 / 系统所有相关的文件总数 准确率( P recision) = 系统检索到的相关文件 / 系统所有检索到的文件总数 图示表示如下: 注意:准确率和召回率是互相影响的,理想情况下肯定是做到两者都高,但是一般情况下准确率高、召回率就低,召回率低、准确率高,当然如果两者都低,那是什么地方出问题了 。一般情况,用不同的阀值,统计出一组不同阀值下的精确率和召回率,如下图: 如果是做搜索,那就是保证召回的情况下提升准确率;如果做疾病监测、反垃圾,则是保准确率的条件下,提升召回。 所以,在两者都要求高的情况下,可以用F1来衡量。 [python] view plain copy F1 = 2 * P * R / (P + R) 公式基本上就是这样,但是如何算图1中的A、B、C、D呢? 这需要人工标注,人工标注数据需要较多时间且枯燥,如果仅仅是做实验可以用用现成的语料。当然,还有一个办法,找个一个比较成熟的算法作为基准

AUC、ROC、ACC区别

£可爱£侵袭症+ 提交于 2020-02-26 07:26:18
很多时候我们都用到ROC(receiver operating characteristic curve,受试者工作特征曲线)和AUC(Area Under Curve,被定义为ROC曲线下的面积)来评判一个二值分类器的优劣,其实AUC跟ROC息息相关,AUC就是ROC曲线下部分的面积,所以需要首先知道什么是ROC,ROC怎么得来的。然后我们要知道一般分类器会有个准确率ACC,那么既然有了ACC,为什么还要有ROC呢,ACC和ROC的区别又在哪儿,这是我喜欢的一种既生瑜何生亮问题。 最后又简单说明了一下有了ROC之后,为什么还要有AUC呢 ROC简介 ROC曲线的横坐标为false positive rate(FPR)即负类样本中被判定为正类的比例,也就是传说中的误纳率. 纵坐标为true positive rate(TPR)即正类样本中被判定为正类的样本,1-TPR也就是传说中的误拒率 接下来我们考虑ROC曲线图中的四个点和一条线。 第一个点,(0,1),即左上角的点,在这个点意味着FPR=0,TPR=1,稍微翻译一下就是误纳率为0,误拒率为0,再翻译成人话就是负类样本中被判断为正类的比例为0,说明负类样本都被判断为负类,判断正确,正类样本中被判断为正类的比例为1,说明正类样本都被判断正确,所以这是一个完美的分类器,它将所有的样本都正确分类。 第二个点,(1,0),即右下角的点

4.模型评估之ROC和AUC

我们两清 提交于 2020-02-11 06:46:06
基本概念 ROC全称是“受试者工作特征”(Receiver Operating Characteristic)曲线。ROC曲线的纵轴是“真正率”(True Positive Rate, TPR),横轴是“假正例率”(False Positive Rate, FPR)。 TPR = TP / ( TP + FN ) FPR = FP / ( TN + FP ) 进行学习器的比较时,若一个学习器的ROC曲线被另一个学习器的曲线完全“包住”,则可以断言后者的性能优于前者;若两个学习器的ROC曲线发生交叉,则难以一般性地断言两者孰优孰劣。此时较为合理的判据是比较ROC曲面下的面积,即AUC(Area Under ROC Curve)。 示例演示 我们看看sklearn的官方例子: Receiver Operating Characteristic (ROC) with cross validation 。 """ ============================================================= Receiver Operating Characteristic (ROC) with cross validation =============================================================

apt-get update报错

ぐ巨炮叔叔 提交于 2020-02-02 09:38:22
主要原因是update时你以前安装什么什么东西时所用的库(可能你当时已经安装失败了但是没管)在你选择的镜像源那里面找不到或者已经不支持维护了,所以,方法就是让你所用到的那个不再存在的东西无效 (说得绕口得很。。。) cd /etc/apt/ 找到那个sourse.list文件,vim 它,把对应的报错的那个东西后面加上尾缀让它无效,一般不是删掉它,免得出么岔子,就可以了。 再,apt-get update,应该就没啥事儿了。 来源: CSDN 作者: roc-ever 链接: https://blog.csdn.net/roc_ever/article/details/104129185

ROC曲线 vs Precision-Recall曲线

☆樱花仙子☆ 提交于 2020-01-31 22:50:29
 深入理解对比两个曲线各自的特性和相互的差异需要花不少时间研读一些国外的技术博客与相关paper,暂时先列出下面这么多,这部分后续 可以继续补充 。  ROC曲线和AUC的定义可以参看“ ROC曲线于AUC ”,Precision-Recall曲线顾名思义即Precision为纵轴,Recall为横轴的曲线,作图方法与AUC曲线一致,只是横纵轴坐标意义不同。 ROC曲线的优势   ROC曲线有个很好的特性: 当测试集中的正负样本的分布变化的时候,ROC曲线能够保持稳定 。在实际的数据集中经常会出现类不平衡现象,而且测试数据中的正负样本的分布也可能随着时间变化。下图是ROC曲线和Precision-Recall曲线的对比。   其中(a)和(c)为ROC曲线,(b)和(d)为Precision-Recall曲线。(a)和(b)展示的是分类器在原始测试集(正负样本分布平衡)的结果,(c)和(d)是将测试集中负样本的数量增加到原来的10倍。可以明显看出,ROC曲线基本保持原貌,而Precision-Recall曲线则变化较大。   PR曲线会面临一个问题,当需要获得更高recall时,model需要输出更多的样本,precision可能会伴随出现下降/不变/升高,得到的曲线会出现浮动差异(出现锯齿),无法像ROC一样保证单调性。所以, 对于正负样本分布大致均匀的问题

roc curve with sklearn [python]

旧时模样 提交于 2020-01-29 05:15:09
问题 I have an understanding problem by using the roc libraries. I want to plot a roc curve with a python http://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_auc_score.html I am writing a program which evalutes detectors (haarcascade, neuronal networks) and want to evaluate them. So I already have the data saved in a file in the following format: 0.5 TP 0.43 FP 0.72 FN 0.82 TN ... whereas TP means True Positive, FP - False Positivve, FN - False Negative, TN - True Negative I parse

roc曲线 vs pr曲线(AUC vs f1)

自作多情 提交于 2020-01-28 05:29:40
什么是AUC 摘录:https://tracholar.github.io/machine-learning/2018/01/26/auc.html 如果auc=0.70,代表给定一个正样本和一个负样本,在70%的情况下,模型对正样本的打分高于对负样本的打分。 什么时候应使用AUC?哪个时候应使用F1? 以前理解是觉得使用f1值(即采用召回率和精确率)来评价模型会更好。 因为召回率和精确率更直观,可以使业务方对模型的预测效果有较准确预期。 那auc有什么用处呢?什么时候应该使用呢? 接下来本篇会将roc曲线与pr曲线做对比,并且介绍auc的应用场景 ROC曲线 vs PR曲线 相比P-R曲线,ROC曲线有一个特点,当正负样本的分布发生变化时,ROC曲线的形状能够基本保持不变,而P-R曲线的形状一般会发生较剧烈的变化。 举例来说,图2.3是ROC曲线和P-R曲线的对比图,其中图2.3(a)和图2.3(c)是ROC曲线,图2.3(b)和图2.3(d)是P-R曲线,图2.3(c)和图2.3(d)则是将测试集中的负样本数量增加10倍后的曲线图。 可以看出,P-R曲线发生了明显的变化,而ROC曲线形状基本不变。这个特点让ROC曲线能够尽量降低不同测试集带来的干扰,更加客观地衡量模型本身的性能。 这有什么实际意义呢?在很多实际问题中,正负样本数量往往很不均衡。比如

ROC曲线基于R语言-(pROC包)

為{幸葍}努か 提交于 2020-01-24 19:31:58
R语言ROC曲线 ROC曲线简介: 很多的模型在进行分类预测时,会产生一个实际值或者概率值,然后我们将这个预测值与一个用于分类的阈值进行比较,将结果分成正类和反类。一般我们可以通过任务需求的不同来采用不同的截断点。在绘制ROC曲线前,我们根据学习期的预测结果对样例进行排序,按照该顺序计算出横纵坐标,纵轴是“真正例率”(TRP),横轴是“假正例率”(FPR),图像与x=1,y=0的直线围成的面积为AUC值。 R语言绘制ROC曲线: 调用“pROC包”中的roc()函数: library ( "pROC" ) data ( aSAH ) 在aSAH数据集中s100b是对outcome的预测实值 > head ( aSAH ) gos6 outcome gender age wfns s100b ndka 29 5 Good Female 42 1 0.13 3.01 30 5 Good Female 37 1 0.14 8.54 31 5 Good Female 42 1 0.10 8.09 32 5 Good Female 27 1 0.04 10.42 33 1 Poor Female 42 3 0.13 17.40 34 1 Poor Male 48 2 0.10 12.75 使用roc函数的格式大致如下,ci=T代表计算95%的置信区间,auc=T则会返回auc值 roc (

机器学习读书笔记(七):Combining Different Models for Ensemble Learning

家住魔仙堡 提交于 2020-01-23 18:23:44
机器学习读书笔记(七):Combining Different Models for Ensemble Learning Ensemble Learning Introduction Majority voting (plurality voting) Implementating a simple majority classifier Let's do this by Python! Let's use it in practice! Evaluating and tuning the ensemble classifier Compute a ROC curve from the test set Plot the decision region Grid Search Bagging: for bootstrap sample Leveraging weak learners via adaptive boosting Basic concepts: Now let's concentrate on the star today: **Adaboost** Summary 学习目标: Making predictions based on majority voting . Reduce overfitting by drawing random combinations

Roc curve and cut off point. Python

放肆的年华 提交于 2020-01-19 04:18:47
问题 I ran a logistic regression model and made predictions of the logit values. I used this to get the points on the ROC curve: from sklearn import metrics fpr, tpr, thresholds = metrics.roc_curve(Y_test,p) I know metrics.roc_auc_score gives the area under the ROC curve. Can anyone tell me what command will find the optimal cut-off point (threshold value)? 回答1: Though its late to answer, thought might be helpful. You can do this using the epi package in R (here!), however I could not find similar