R或matlab中精确召回曲线下的面积
Posted
技术标签:
【中文标题】R或matlab中精确召回曲线下的面积【英文标题】:area under precision-recall curve in R or matlab 【发布时间】:2012-09-03 22:16:33 【问题描述】:我有一个二元目标列表的预测分数。使用 R 或 matlab 计算精确召回曲线下面积的最佳方法是什么?
我对此进行了一些搜索,但没有找到任何相关函数/库来完成此任务。这似乎很奇怪,因为这应该是人们做的相当普遍的事情。不知道我是否错过了什么。任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:下面是matlab实现
function auc = scoreAUC(category,posterior)
% auc = scoreAUC(category,posterior)
%
% Calculates the area under the ROC for a given set
% of posterior predictions and labels. Currently limited to two classes.
%
% posterior: n1 matrix of posterior probabilities for class 1
% category: n1 matrix of categories 0,1
% auc: Area under the curve
%
% Author: Benjamin Hamner
% Date Modified: October 14, 2010
%
% Algorithm found in
% A Simple Generalisation of the Area Under the ROC
% Curve for Multiple Class Classification Problems
% David Hand and Robert Till
% http://www.springerlink.com/content/nn141j42838n7u21/fulltext.pdf
r = tiedrank(posterior);
auc = (sum(r(category==1)) - sum(category==1) * (sum(category==1)+1)/2) / ...
( sum(category<1) * sum(category==1));
【讨论】:
以上是关于R或matlab中精确召回曲线下的面积的主要内容,如果未能解决你的问题,请参考以下文章