Scikit学习自定义分数函数需要来自X和y以外的数据集的值

问题描述 投票:6回答:2

我正在尝试根据历史体育博彩的表现来评估模型。

我有一个由以下几列组成的数据集:

feature1 | ... | featureX | oddsPlayerA | oddsPlayerB | winner

模型将进行回归,其中输出是玩家A赢得比赛的几率

据我了解,我可以使用自定义评分功能来返回模型,如果每次条件都正确时下注,它将使用该值来衡量模型的适用性。条件如下:

if prediction_player_A_win_odds < oddsPlayerA
   money += bet_playerA(oddsPlayerA, winner) 
if inverse_odd(prediction_player_A_win_odds) < oddsPlayerB
   money += bet_playerB(oddsPlayerB, winner) 

在自定义计分功能中,我需要从“数据集(这是问题所在!)。

如果以与原始数据集完全相同的顺序调用数据的自定义评分功能,那么从数据集中检索所需的额外数据将很简单。但是实际上,当使用交叉验证方法时,所获得的数据都是混合在一起的(与原始数据相比)。

我已经尝试了最明显的方法,即用[oddsA,oddsB,winner](尺寸[n,3])传递y变量,但是scikit不允许这样做。

因此,如何从数据集中将数据获取到既不是X也不是y但仍然以相同顺序“捆绑在一起”的自定义评分函数中?

python scikit-learn regression scoring
2个回答
4
投票
目前无法实际执行此操作,对不起。您可以在交叉验证折叠上编写自己的循环,这不难。您无法使用GridSearchCVcross_val_score执行此操作

0
投票
所以已经有好几年了,但是我遇到了一个非常相似的场景,没有看到搜索解决方案。在复制和修改sklearn.model_selection._validation.cross_validate之前,我想检查一下是否有任何更新,也许是一种更好的方法?谢谢!
© www.soinside.com 2019 - 2024. All rights reserved.