gpt4 book ai didi

python - scikit-learn 对不平衡数据进行欠采样以进行交叉验证

转载 作者:太空狗 更新时间:2023-10-30 00:17:31 24 4
gpt4 key购买 nike

如何在 scikit-learn 中为交叉验证生成随机折叠?

假设我们有一个类别的 20 个样本,另一个类别的 80 个样本,我们需要生成 N 个训练集和测试集,每个训练集的大小为 30,在每个训练集中的约束条件下,我们有 50第一类的 % 和第二类的 50%。

我找到了这个讨论 ( https://github.com/scikit-learn/scikit-learn/issues/1362 ),但我不明白如何弃牌。理想情况下我认为我需要这样的功能:

cfolds = np.cross_validation.imaginaryfunction(
[list(itertools.repeat(1,20)), list(itertools.repeat(2,80))],
n_iter=100, test_size=0.70)

我错过了什么?

最佳答案

没有直接的方法在 scikit 中使用欠采样进行交叉验证,但有两种解决方法:

1.

使用 StratifiedCrossValidation 实现交叉验证,每个折叠中的分布反射(reflect)数据的分布,然后您可以通过 class_weight 参数实现分类器的不平衡减少,该参数可以采用auto 和欠采样/过采样类与其计数成反比,或者您可以传递具有显式权重的字典。

2.

编写您自己的交叉验证例程,使用 pandas 应该非常简单.

关于python - scikit-learn 对不平衡数据进行欠采样以进行交叉验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20711867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com