scikit-learnのクロスバリデーションのためのランダムフォールドを生成するにはどうすればよいですか?クロスバリデーションのための不均衡なデータのscikit-learnアンダーサンプリング
私たちは1つのクラスの20個のサンプルを持ち、80個のサンプルを持ち、N個のトレーニングセットとテストセットを生成する必要があると想像してください。各トレーニングセットには30個のトレーニングセットがあります。クラス1の50%、クラス2の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)
私は何が欠けていますか?
なぜ 'random.sample()'を使用しないのですか? – Skyler
他のすべてのcross_validation関数があるのと同じ理由で! – adrin
独自のクロスバリデーションジェネレータを定義することができます。これは 'N 'を返す' __len__'と '' train_indices、test_indices''の 'N'ペアを生成する' __iter__'を持つオブジェクトでなければなりません。 –