次のようにI 2つのnumpyの配列を有する:numpy配列でクラスのバランスを取る方法は?
images
は(images.shape
が(N、3、128、128)である)、画像ファイルの名前を含む: image_1.jpg image_2.jpg image_3.jpg image_4.jpg
labels
は、対応するラベルを含みます(0-3)(labels.shape
は(N)である): 私が直面してる問題は、クラスがクラス3 >> 1> 2> 0で、不均衡であるということです 1 1 3 2
私は、最終的なデータセットを両立したいと思います:各クラスの(サンプル)
- 他の3つのクラスのための画像/ラベルの最大数としてそのカウント
- ランダムポップ過剰イメージ/
images
の他の3つのクラスからラベルとlabels
これまでのところ私は、クラスごとの画像の数を特定するためにCounter
を使用しています:
from Collections import Counter
import numpy as np
count = Counter(labels)
print(count)
>>>Counter({'1': 2991, '0': 2953, '2': 2510, '3': 2488})
あなたは私がランダムにimages
とlabels
から一致する要素をポップので、彼らはクラス0、1の2488個のサンプルが含まれていることをお勧めどのように、 2?
は '私は両方に適用したいブールベクトルでix'うアレイ? (画像とラベル) – pepe
申し訳ありません私の答えは間違っていました、私はそれを修正しました。 'ix'は両方の配列のインデックスに使う整数ベクトルです – maxymoo