有没有一种简单的方法可以交叉验证分类器并立即计算精度和召回率?目前我使用的功能
cross_validation.cross_val_score(classifier, designMatrix, classes, cv=5, scoring="precision")
但是,它只计算一个指标,因此我必须调用它两次才能计算精度和召回率。对于大型ML模型,则计算不必要地花费了2倍的时间。有没有内置的更好的选择,还是我必须自己实现交叉验证?谢谢。
最佳答案
我不确定当前的事务状态(已讨论了此功能),但您始终可以避免以下问题-糟糕-骇客
from sklearn.metrics import recall_score, precision_score
from sklearn.metrics.scorer import make_scorer
recall_accumulator = []
def score_func(y_true, y_pred, **kwargs):
recall_accumulator.append(recall_score(y_true, y_pred, **kwargs))
return precision_score(y_true, y_pred, **kwargs)
scorer = make_scorer(score_func)
然后在交叉验证中使用
scoring=scorer
。您应该在recall_accumulator
数组中找到召回值。请注意,此数组是全局数组,因此请确保不要以无法解释结果的方式写入该数组。关于python - 与sklearn一起交叉验证精度,召回率和f1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30683433/