データセットが不均衡のときにKerasでclass_weightを適用する最も簡単な方法は何ですか?Kerasでclass_weightを簡単に割り当てる方法はありますか?
私のターゲットには2つのクラスしかありません。
ありがとうございました
データセットが不均衡のときにKerasでclass_weightを適用する最も簡単な方法は何ですか?Kerasでclass_weightを簡単に割り当てる方法はありますか?
私のターゲットには2つのクラスしかありません。
ありがとうございました
適用する正しい重み付けやコード内で行う方法について質問していますか?
class_weights = {}
for i in range(2):
class_weights[i] = your_weight
、その後、あなたはmodel.fit
に引数を渡すclass_weight=class_weights
:コードは単純です。
使用する正しい重み付けはある種の逆周波数です。少しでも試行錯誤を繰り返すことができます。
fit()関数のclass_weightパラメータは、クラスを重み値にマッピングするディクショナリです。 class_weight = {0:3,1:1}でフィードするよりも、クラス0のサンプルが500サンプル、クラス1のサンプルが1500個あるとします。クラス0はクラス1の3倍の重みを与えます。
train_generator.classesは、重みの適切なクラス名を提供します。あなたはこれを計算したい場合は
プログラムであなたはscikit-learn's sklearn.utils.compute_class_weight()を使用することができます。https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/utils/class_weight.py
機能は、ラベルの分布を見て、同じように下または過罰するための重みを生成トレーニングセットのクラスを表しています。
は、ここでは、この便利なスレッドも参照してください:https://github.com/fchollet/keras/issues/1875
このスレッドにも助けになるかもしれません:それは自動的にKerasにflow_from_directoryからclass_weightを推測することは可能ですか?
最後に明確な例を探していたものです!それ以外のところでは、重み付けが上下にスケールされるかどうかはわかりません –
sklearnキットのclass_weightを使用しています。
Imはまた、不均衡データ
from sklearn.utils import class_weight
class_weight = class_weight.compute_class_weight('balanced'
,np.unique(Y_train)
,Y_train)
その後、model.fit
Classifier.fit(train_X,train_Y,batch_size = 100, epochs = 10
,validation_data= (test_X,test_Y),class_weight = class_weight)
おかげに対処するために、このメソッドを使用して、それは私が – Javi