熊猫基于特定列创建交叉验证

问题描述 投票:0回答:1

我有一个数百行的数据框,可以将其分组为如下的id:

df = Val1 Val2 Val3 Id
      2     2   8    b
      1     2   3    a
      5     7   8    z
      5     1   4    a
      0     9   0    c
      3     1   3    b
      2     7   5    z
      7     2   8    c
      6     5   5    d
...
      5     1   8    a
      4     9   0    z
      1     8   2    z

我想使用GridSearchCV,但是具有一个自定义CV,它将确保来自同一ID的所有行将始终位于同一集合上。因此,如果a中的所有行都在测试集中,或者所有行都在训练集中-则对于所有不同的ID都是如此。

我想进行5折-因此80%的ID将去火车,而20%的ID将去测试。我知道不能保证所有折页的行数完全相同-因为一个ID的行数可能比另一个ID多。

最佳方法是什么?

pandas scikit-learn data-science cross-validation gridsearchcv
1个回答
0
投票
如sklearn documentation中所述,有一个名为“ cv”的参数,您可以在其中提供“可迭代的屈服(训练,测试)拆分为索引数组。”

以后再检查文档。

© www.soinside.com 2019 - 2024. All rights reserved.