有没有办法对参数值运行网格搜索,这些参数值针对选定类的分数(例如'f1')进行了优化,而不是所有类的默认分数?
编辑的假设是,这样的网格搜索应该返回一组参数,使所选类别的分数最大化(例如,'f1',‘准确性’,‘召回’),而不是所有类别的总分数。这样的方法似乎很有用,例如对于高度不平衡的数据集,当试图构建一个在具有少量实例的类上做合理工作的分类器时。
使用默认评分方法的GridSearchCV示例(此处:对所有类使用'f1‘):
from __future__ import print_function
from sklearn.cross_valid
我有两个给出精度和召回率分数的函数,我需要在使用这两个分数的同一个库中定义一个调和均值函数。这些函数如下所示:
以下是函数:
def precision(ref, hyp):
"""Calculates precision.
Args:
- ref: a list of 0's and 1's extracted from a reference file
- hyp: a list of 0's and 1's extracted from a hypothesis file
Returns:
sklearn函数中计算的平均精度分数遵循下图所示的公式。
AP = Σ(Rn - Rn-1)Pn *The index value of the sumation is n. Please refer to the attached image for a clear version of the formula
我正在努力完全理解这个函数背后的数学原理。我特别好奇公式中的第n个阈值是如何计算的。阈值的数量是否等于样本的数量?