Validation 如何为我的算法使用一个测试数据集来形成精度召回曲线?

Validation 如何为我的算法使用一个测试数据集来形成精度召回曲线?,validation,scikit-learn,nltk,curve,precision-recall,Validation,Scikit Learn,Nltk,Curve,Precision Recall,我正在研究知识图,更确切地说是在自然语言处理领域。为了评估我的算法的组成部分,有必要能够对好的候选和差的候选进行分类。为此,我们在数据集中手动对数据对进行分类 我的系统根据实现逻辑返回相关对。现在我可以计算: 为了建立一条完整的曲线,我需要其余的点(X,Y),我应该怎么做 你提出的两种方法都没有。简而言之,精确召回或ROC曲线是为具有概率输出的分类器设计的。也就是说,不是简单地生成0或1(在二进制分类的情况下),而是需要能够提供[0,1]范围内概率的分类器。是在sklearn中执行此操作的函数,

我正在研究知识图,更确切地说是在自然语言处理领域。为了评估我的算法的组成部分,有必要能够对好的候选和差的候选进行分类。为此,我们在数据集中手动对数据对进行分类

我的系统根据实现逻辑返回相关对。现在我可以计算:

为了建立一条完整的曲线,我需要其余的点(X,Y),我应该怎么做


你提出的两种方法都没有。简而言之,精确召回或ROC曲线是为具有概率输出的分类器设计的。也就是说,不是简单地生成
0
1
(在二进制分类的情况下),而是需要能够提供
[0,1]
范围内概率的分类器。是在
sklearn
中执行此操作的函数,请注意第二个参数如何调用
probas\u pred


要将这种可能性转化为具体的类预测,您可以设置一个阈值,例如在
.5
处。然而,设置这样的阈值是有问题的,因为您可以通过改变阈值来权衡精度/召回率,并且任意选择可能会给分类器的性能留下错误印象。为了避免这种情况,我们使用了与阈值无关的度量,如ROC下面积或精确召回曲线。他们以不同的间隔创建阈值,比如说
0.1,0.2,0.3…0.9
,将概率转化为二进制类,然后计算每个阈值的精确召回率。

您提出的两种方法都不适用。简而言之,精确召回或ROC曲线是为具有概率输出的分类器设计的。也就是说,不是简单地生成
0
1
(在二进制分类的情况下),而是需要能够提供
[0,1]
范围内概率的分类器。是在
sklearn
中执行此操作的函数,请注意第二个参数如何调用
probas\u pred

要将这种可能性转化为具体的类预测,您可以设置一个阈值,例如在
.5
处。然而,设置这样的阈值是有问题的,因为您可以通过改变阈值来权衡精度/召回率,并且任意选择可能会给分类器的性能留下错误印象。为了避免这种情况,我们使用了与阈值无关的度量,如ROC下面积或精确召回曲线。他们以不同的间隔创建阈值,比如说
0.1,0.2,0.3…0.9
,将概率转化为二进制类,然后计算每个阈值的召回精度。

感谢您的回答,但这种解释让概念变得非常模糊,我用一种简单的方式测试了给我一个坐标(X,Y),(召回,精度)的数据集如何计算其余的?谢谢你的回答,但是这个解释让这个概念变得非常模糊,简单地说,我已经测试了数据集,它给了我一个坐标(X,Y),(回忆,精度)如何计算其余的?
Precision = X
Recall = Y
build another dataset for test ?
split my dataset ?
or any other solution ?