2017-01-10 61 views
0

だから私は、マルチクラス分類のために以下で構成されたネットワークを書かれている:私のクラス -modelコンパイルだから損失関数 としてcategorical_crossentropyを使用してto_categorical -last層で形質転換 -y_labelsは3個のニューロンとシグモイド関数を使用しています私はkerasモデルのsklearnからの分類レポートの使い方は?

model.predict_classes(x_test) 

を使用して、私は

classification_report(y_test,pred) 

y_testが to_categoricalフォームを持っていると私は、次のERRを取得しています

としてそれを使用しましたまたは:

ValueError: Mix type of y not allowed, got types set(['binary', 'multilabel-indicator']) 

私の質問は、それをどのように使用するために戻すことができますか?

答えて

2

このエラーは、単にy_testpredが異なるタイプであることを示しています。 multiclass.pyに機能type_of_targetを確認してください。ここに示すように、yのうちの1つはクラスのインジケータであり、別のクラスベクトルのインジケータである。形状を印刷するだけで、どれが何であるか推測できます。y_test.shape , pred.shape

の代わりにmodel.predictの出力を使用しているため、model.predict_classesの出力はクラスだけで、クラスベクトルではありません。あなたのコメントから、あなたは非常に多くの

# class --> class vector 
from keras.utils import np_utils 
x_vec = np_utils.to_categorical(x, nb_classes) 

# class vector --> class 
x = x_vec.argmax(axis=-1) 
+0

感謝を:

だからどちらかがによってそれらのいずれかを変換する必要があります。それは私にしばらく時間がかかりましたが、単純な解決策でした。再度ありがとう –

+0

問題はありません。それが助けられたら答えを受け入れることができますか? – indraforyou

関連する問題