Scikit learn 在scikit learn中按名称获取评分函数
在Scikit learn 在scikit learn中按名称获取评分函数,scikit-learn,Scikit Learn,在scikit-learn中,有一个评分函数的概念。如果我们有一些预测标签和真实标签,我们可以通过调用scoring(y\u true,y\u predict)获得分数。此类评分函数的一个示例是sklearn.metrics.accurity\u score 评分函数不应与评分器混为一谈,该评分器是一个可称为评分器(估计器,X,y\u true)的对象 在scikit-learn中有许多内置记分器。可以通过他们的字符串名找到这些记分员。例如,我们可以通过调用sklearn.metrics.get
scikit-learn
中,有一个评分函数的概念。如果我们有一些预测标签和真实标签,我们可以通过调用scoring(y\u true,y\u predict)
获得分数。此类评分函数的一个示例是sklearn.metrics.accurity\u score
评分函数不应与评分器混为一谈,该评分器是一个可称为评分器(估计器,X,y\u true)
的对象
在scikit-learn
中有许多内置记分器。可以通过他们的字符串名找到这些记分员。例如,我们可以通过调用sklearn.metrics.get\u scorer(“accurity”)
/
但事实证明,没有明显的机制可以在运行时通过名称访问内置的评分函数,方法是将名称作为字符串传递。例如,无法通过名称accurity
访问sklearn.metrics.accurity\u score
例如,如果在运行时,程序知道评分函数的名称包含在变量name
中,我正在寻找一种机制get\u scoring\u function()
,这样,get\u scoring\u function(name)
将返回评分函数句柄。请注意,这个名称,name
,在编写脚本时是未知的
有没有办法在运行时通过名称作为字符串传递来访问内置的评分函数。您可以使用get\u scorer()
函数,该函数接受字符串作为参数,然后获取返回对象的\u score\u func
属性
比如说
from sklearn.metrics import get_scorer
get_scorer('accuracy')._score_func(y_true, y_pred)
相当于
from sklearn.metrics import accuracy_score
accuracy_score(y_true, y_pred)
我的意思是,我想通过它的名字来访问这个函数,也就是“准确性”,我稍微澄清了这个问题,强调我试图通过它的字符串名字来访问一个函数,我是在寻找一个函数,而不是一个记分员。这不是我真正的问题。我真正的问题是通过名字进入内置的评分函数。例如,“f1”应该给我f1评分函数,精度
应该给我精度评分函数,f1宏
应该给我f1宏评分函数。我正在寻找一个与sklearn.metrics.get_scorer()并行的访问器,但它返回的是一个函数而不是一个scorer。我想我已经找到了困惑所在。这是因为我没有说我想在运行时按名称获取函数。运行时似乎是需要强调的关键词。很抱歉。