给定一个具有1000个数据样本的样本数据集,假设我想对数据进行预处理以获得10000行数据,因此每个原始数据行导致10个新样本。此外,当训练我的模型时,我也希望能够执行交叉验证。我的评分函数使用原始数据来计算分数,所以我希望交叉验证评分对原始数据以及而不是生成的一个工作。由于我将生成的数据提供给训练器(我使用的是RandomForestClassifier),因此我不能依赖交叉验证来根据原始样本正确分割数据。
我想做什么:
- 创建一个自定义特征提取器来提取特征以提供给分类器。
- 将特征提取器添加到管道中,并将其提供给GridSearchCv,例如
- 实现一个自定义计分器,它在给定一组选定参数的原始数据上对模型进行评分。
对于我想要完成的事情,有没有更好的方法?
我问这个问题与Kaggle上正在进行的竞争有关
也许你可以在扩展样本上使用分层交叉验证(例如分层K-Fold或分层Shuffle Split),并使用原始样本idx作为分层信息,结合自定义评分函数,在模型评估中忽略非原始样本。