У меня есть этот набор данных, количество меток которого следующее: ![enter image description here](https://i.stack.imgur.com/Ecu5r.png)
Я понимаю, что он очень несбалансирован. Я пробовал перед выборкой и при выборке, и они дали хорошую точность для обучения. однако, конечно, они дали очень низкую точность проверки. Я также попробовал вес класса следующим образом: class_weights = class_weight.compute_class_weight('balanced', np.unique(Y), Y)
, и это также дало низкую точность для проверки. Я даже исключил исключение других меток и оставил только 5 самых высоких меток, все еще получая около 36% точности проверки и 92% точности обучения. Я думаю, что все это из-за чрезмерной подгонки. Но моя модель очень проста; это:
model = tf.keras.Sequential([
tf.keras.layers.Embedding(MAX_NB_WORDS,int(len(word_index)*.25),input_length=X.shape[1]),
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(64,dropout=.5)),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(5, activation='sigmoid')
])
Я в замешательстве и не знаю, что делать?