2017年11月28日火曜日

imbalanced-learnでお手軽サンプリング

アンダーサンプリングやオーバーサンプリングは今まで手動で書いていたのですが、imbalanced-learnという素晴らしいライブラリがある事に気付きました。

以下はKerasと組み合わせた時のアンダーサンプリングの実装例。
from keras.utils import np_utils
from imblearn.under_sampling import RandomUnderSampler

negative = y_train.count(0)
positive = y_train.count(1)
count = min([positive, negative])
rus = RandomUnderSampler(ratio={0:count, 1:count})
x_train, y_train = rus.fit_sample(x_train, y_train)

y_train = np_utils.to_categorical(y_train, class_num)
y_test = np_utils.to_categorical(y_test, class_num)

model.fit(x_train, y_train, batch_size=128, epochs=1000)

上記は一番簡単なアルゴリズムを採用していますが、他にも様々なアルゴリズムを利用できるのはポイント高い。 これでもう面倒なコードを書かないでOKですね。

0 件のコメント: