ValueError: Klassifizierungsmetriken können eine Mischung aus Multiklassen- und Multilabel-Indikatorzielen nicht verarbePython

Python-Programme
Guest
 ValueError: Klassifizierungsmetriken können eine Mischung aus Multiklassen- und Multilabel-Indikatorzielen nicht verarbe

Post by Guest »

Ich habe ein Problem mit der Klassifizierung von beschriftetem Text in mehreren Klassen mit 2000 verschiedenen Beschriftungen. Klassifizierung mit LSTM mit Glove Embedding durchführen.
  • Label-Encoder der Zielvariablen
  • LSTM-Ebene mit Embedd-Ebene
    Fehlermetrik ist F2-Score
LabelEncoded-Zielvariable:

Code: Select all

le = LabelEncoder()
le.fit(y)
train_y = le.transform(y_train)
test_y = le.transform(y_test)
LSTM-Netzwerk ist wie unten mit Glove Embeddings

Code: Select all

np.random.seed(seed)
K.clear_session()
model = Sequential()
model.add(Embedding(max_features, embed_dim, input_length = X_train.shape[1],
weights=[embedding_matrix]))#,trainable=False
model.add(LSTM(100, dropout=0.2, recurrent_dropout=0.2))
model.add(Dense(num_classes, activation='softmax'))
model.compile(optimizer='rmsprop', loss='sparse_categorical_crossentropy')
print(model.summary())

Meine Fehlermetrik ist der F1-Score. Ich erstelle die folgende Funktion für die Fehlermetrik

Code: Select all

class Metrics(Callback):
def on_train_begin(self, logs={}):
self.val_f1s = []
self.val_recalls = []
self.val_precisions = []

def on_epoch_end(self, epoch, logs={}):
val_predict = (np.asarray(self.model.predict(self.validation_data[0]))).round()
val_targ = self.validation_data[1]
_val_f1 = f1_score(val_targ, val_predict)
_val_recall = recall_score(val_targ, val_predict)
_val_precision = precision_score(val_targ, val_predict)
self.val_f1s.append(_val_f1)
self.val_recalls.append(_val_recall)
self.val_precisions.append(_val_precision)
print("— val_f1: %f — val_precision: %f — val_recall %f" % (_val_f1, _val_precision, _val_recall))
return

metrics = Metrics()
##Modellanpassung ist

Code: Select all

model.fit(X_train, train_y, validation_data=(X_test, test_y),epochs=10, batch_size=64, callbacks=[metrics])
Fehler nach der ersten Epoche:

Code: Select all

ValueError: Classification metrics can't handle a mix of multiclass and continuous-multioutput targets
Wo ist der Fehler in meinem Code?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post