在Keras中處理不平衡數據集可以通過以下幾種方法:
class_weight
參數將類權重傳遞給模型。class_weights = {0: 1, 1: 10} # 設置兩個類別的權重,假設少數類的權重為10
model.fit(X_train, y_train, class_weight=class_weights)
RandomOverSampler
和RandomUnderSampler
類來實現。from imblearn.over_sampling import RandomOverSampler
oversampler = RandomOverSampler()
X_resampled, y_resampled = oversampler.fit_resample(X_train, y_train)
from sklearn.ensemble import RandomForestClassifier
model1 = RandomForestClassifier()
model2 = RandomForestClassifier(class_weight='balanced')
# 訓練多個模型
model1.fit(X_train1, y_train1)
model2.fit(X_train2, y_train2)
# 組合預測結果
y_pred1 = model1.predict(X_test)
y_pred2 = model2.predict(X_test)
y_pred = (y_pred1 + y_pred2) / 2
通過以上方法,可以有效處理不平衡數據集,提高模型的性能和泛化能力。