Can't handle a mix of multilabel-indicator and binary targets/can't handle a mix of multilabel-indicator and multiclass

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Körniger
User
Beiträge: 3
Registriert: Dienstag 23. November 2021, 14:41

Hey, bin absoluter Neuling und bekomme beim ausführen immer die beiden oben genannten Fehlermeldungen quasi im Wechsel angezeigt. Mal bekomme ich als Fehler "Can't handle a mix of multilabel-indicator and binary targets" angezeigt und mal "can't handle a mix of multilabel-indicator and multiclass " ohne, dass ich am Code irgendwas verändere..
Beim googlen stoße ich immer wieder auf np.argmax als Heilbringer, aber in meinem Fall scheint es keine Hilfe zu sein.
Habe jetzt nicht den gesamten Code eingefügt, nur das was evtl wichtig sein könnte.

Code: Alles auswählen

class DataManager(object):
    def __init__(self):
        self.train = DataLoader("xyz").load()  # path for train dataset
        self.test = DataLoader("xyzt").load()  # path for test dataset
data = DataManager()
input_train = data.train.sampledata
input_train = input_train.reshape(-1,  375, 1)
target_train = data.train.labeldata
target_train = target_train.reshape(-1, 1).astype('int32')
target_train = one_hot(target_train[:, -1], no_classes)
input_test = data.test.sampledata
input_test = input_test.reshape(-1,  375, 1)
target_test = data.test.labeldata
target_test = target_test.reshape(-1, 1).astype('int32')
target_test = one_hot(target_test[:, -1], no_classes)

pred_test = model.predict(input_test)
pred_test = np.argmax(pred_test, axis =1)

f1score = sklearn.metrics.f1_score(target_test, pred_test)
print('f1score:' + {f1score})
Bin dankbar für jede Hilfe :)
Körniger
User
Beiträge: 3
Registriert: Dienstag 23. November 2021, 14:41

pred_test
[ 0 0 0 0 0 0 19 19 0 0]
pred_test-Shape
(1000,)
target_test
[[1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]
target_test_shape
(1000, 21)
input_test
[[[0.342857]
[0.342857]
[0.35 ]
...
[0. ]
[0. ]
[0. ]]]
input_test_shape
(1000, 375, 1)
Körniger
User
Beiträge: 3
Registriert: Dienstag 23. November 2021, 14:41

Hi, bin absoluter Neuling und bekomme beim ausführen meines Codes immer die oben genannte Fehlermeldung. Beim googlen stoße ich immer wieder auf den Heilbringer np.argmax, aber dies löst mein Problem anscheinend nicht.
Anbei mal paar Auszüge des Codes + Fehlermeldung.

Code: Alles auswählen

 class DataManager(object):
    def __init__(self):
        self.train = DataLoader("xyz/alltrain").load()  # path for train dataset
        self.test = DataLoader("xyz/alltest").load()  # path for test dataset
data = DataManager()
input_train = data.train.sampledata
input_train = input_train.reshape(-1,  375, 1)
target_train = data.train.labeldata
target_train = target_train.reshape(-1, 1).astype('int32')
target_train = one_hot(target_train[:, -1], no_classes)
input_test = data.test.sampledata
input_test = input_test.reshape(-1,  375, 1)
target_test = data.test.labeldata
target_test = target_test.reshape(-1, 1).astype('int32')
target_test = one_hot(target_test[:, -1], no_classes)
print(input_train.shape)
model = models.Sequential()

pred_test = model.predict(input_test)
pred_test = np.argmax(pred_test, axis =1)

print("pred_test")
print(pred_test[:10])
print("pred_test-Shape")
print(pred_test.shape)
print("target_test")
print(target_test[:10])
print("target_test_shape")
print(target_test.shape)



f1score = sklearn.metrics.f1_score(target_test, pred_test)
print('f1score:' + {f1score})
Fehlermeldungen :
Traceback (most recent call last):
File "C:/Users/derg/PycharmProjects/ecgcnnmulticlass/main.py", line 160, in <module>
f1score = sklearn.metrics.f1_score(target_test, pred_test)
File "C:\Users\derg\anaconda3\envs\Tensorflow2\lib\site-packages\sklearn\utils\validation.py", line 72, in inner_f
return f(**kwargs)
File "C:\Users\derg\anaconda3\envs\Tensorflow2\lib\site-packages\sklearn\metrics\_classification.py", line 1044, in f1_score
return fbeta_score(y_true, y_pred, beta=1, labels=labels,
File "C:\Users\derg\anaconda3\envs\Tensorflow2\lib\site-packages\sklearn\utils\validation.py", line 72, in inner_f
return f(**kwargs)
File "C:\Users\derg\anaconda3\envs\Tensorflow2\lib\site-packages\sklearn\metrics\_classification.py", line 1168, in fbeta_score
_, _, f, _ = precision_recall_fscore_support(y_true, y_pred,
File "C:\Users\derg\anaconda3\envs\Tensorflow2\lib\site-packages\sklearn\utils\validation.py", line 72, in inner_f
return f(**kwargs)
File "C:\Users\derg\anaconda3\envs\Tensorflow2\lib\site-packages\sklearn\metrics\_classification.py", line 1433, in precision_recall_fscore_support
labels = _check_set_wise_labels(y_true, y_pred, average, labels,
File "C:\Users\derg\anaconda3\envs\Tensorflow2\lib\site-packages\sklearn\metrics\_classification.py", line 1250, in _check_set_wise_labels
y_type, y_true, y_pred = _check_targets(y_true, y_pred)
File "C:\Users\derg\anaconda3\envs\Tensorflow2\lib\site-packages\sklearn\metrics\_classification.py", line 90, in _check_targets
raise ValueError("Classification metrics can't handle a mix of {0} "
ValueError: Classification metrics can't handle a mix of multilabel-indicator and multiclass targets
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

@Koerninger: bitte nicht zum gleichen Thema wieder einen neuen Post erstellen. Du hast die gleiche Frage schon hier viewtopic.php?f=1&t=53487&p=396783#p396783 gestellt.
Antworten