特定の方法でデータセットをサンプリングするエレガントな方法を探しています。いくつかの解決策を見つけましたが、もっと良い方法を知っている人がいるかどうか疑問に思っていました。
これが私が見ているタスクです:
クラス 0 のインスタンス数とクラス 1 のインスタンス数が同じになるように、データセットのバランスを取りたいので、以下の例では、クラス 1 のインスタンスが 5 つ、クラス 0 のインスタンスが 11 あります。
ID | クラス ------ | ------ 1 | 1 1 | 0 1 | 0 1 | 0 1 | 0 2 | 1 2 | 1 2 | 0 2 | 0 2 | 0 3 | 1 3 | 1 3 | 0 3 | 0 3 | 0 3 | 0
クラス 0 の 6 つのインスタンスをランダムに削除しましたが、1 つの ID のすべてのインスタンスが削除されないようにしたいと考えています。sklearn を使用して階層化された「分割」を試みましたが、すべての ID に複数のアイテムが含まれているわけではないため、機能しません。目的の出力は次のようになります。
ID | クラス ------ | ------ 1 | 1 1 | 0 2 | 1 2 | 1 2 | 0 2 | 0 3 | 1 3 | 1 3 | 0 3 | 0
良いアイデアはありますか?