[英]how to improve f1 score for a imbalanced multiclass classification problem, tried using smote but it is giving bad results?
數據集: train.csv
方法
我有四個要預測的類別,它們確實非常不平衡,所以我嘗試使用 SMOTE 和前饋網絡,但與測試數據上的原始數據集相比,使用 smote 的結果非常差
model架構
#model architecture
from tensorflow.keras.layers import Dense, BatchNormalization, Dropout, Flatten
model = tf.keras.Sequential()
model.add(Dense(512, activation='relu', input_shape=(7, )))
model.add(BatchNormalization())
model.add(Dense(256, activation='relu'))
model.add(BatchNormalization())
model.add(Dense(128, activation='relu'))
model.add(BatchNormalization())
model.add(Dense(64, activation='relu'))
model.add(Dense(4, activation='softmax'))
earlystopping = tf.keras.callbacks.EarlyStopping(
monitor="val_loss",
patience=40,
mode="auto",
restore_best_weights=True,
)
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()
那么如何解決這個問題並增加測試數據集上的 f1-score 任何幫助表示贊賞
以下是對您的案例的最佳方法的解釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.