【发布时间】:2016-03-22 19:37:42
【问题描述】:
我正在尝试制作一个自定义记分器函数,用于在 scikit-learn (Python) 中交叉验证我的(二进制分类)模型。
我的原始测试数据的一些示例:
Source Feature1 Feature2 Feature3
123 0.1 0.2 0.3
123 0.4 0.5 0.6
456 0.7 0.8 0.9
假设任何折叠可能包含来自同一来源的多个测试示例...
然后对于具有相同来源的示例集,我希望我的自定义记分器“决定”“获胜者”是模型吐出更高概率的示例。换句话说,每个来源只能有一个正确的预测,但如果我的模型声称多个评估示例是“正确的”(标签 = 1),我希望概率最高的示例与事实相匹配我的得分手。
我的问题是记分器功能需要签名:
score_func(y_true, y_pred, **kwargs)
其中y_true 和y_pred 仅包含概率/标签。
然而,我真正需要的是:
score_func(y_true_with_source, y_pred_with_source, **kwargs)
所以我可以按来源对y_pred_with_source 示例进行分组,并选择与y_true_with_source 真相匹配的获胜者。然后我可以继续计算我的精度,例如。
有什么方法可以让我以某种方式传递这些信息吗?也许是示例的索引?
【问题讨论】:
标签: python numpy scikit-learn cross-validation