前提・実現したいこと
画像分類を行った時に、混同行列を用いて制度などを確認したいのですが、ヒートマップに「%表示」で出力したいのですが、いろいろ試したのですが、うまくいきません。分かる方いましたら教えていただけると助かります。
該当のソースコード
import cnn_model import keras import matplotlib.pyplot as plt import numpy as np from sklearn.model_selection import train_test_split from sklearn.metrics import confusion_matrix import pandas as pd import seaborn as sns #入力と出力を指定 im_rows=32 im_cols=32 im_color=3 in_shape=(im_rows,im_cols,im_color) nb_classes=4 #写真データを読み込み photos=np.load(".\dataset.npz") x=photos["x"] y=photos["y"] #読み込んだデータを三次元配列に変換 x=x.reshape(-1,im_rows,im_cols,im_color) x=x.astype("float32")/255 #ラベルデータをone-hotベクトルに直す y=keras.utils.np_utils.to_categorical(y.astype("int32"),nb_classes) #学習用とテスト用に分ける x_train,x_test,y_train,y_test=train_test_split(x,y,train_size=0.9) #cnnモデルを取得 model=cnn_model.get_model(in_shape,nb_classes) #学習を実行 hist=model.fit(x_train,y_train, batch_size=32, epochs=5, verbose=1, validation_data=(x_test,y_test)) #モデルを評価 score=model.evaluate(x_test,y_test,verbose=1) print("正解率=",score[1],"loss=",score[0]) #学習の様子をグラフへ描写 #正解率の推移をプロット plt.plot(hist.history["acc"]) plt.plot(hist.history["val_acc"]) plt.title("Accuracy") plt.legend(["train","test"],loc="upper left") plt.show() #ロスの推移をプロット plt.plot(hist.history["loss"]) plt.plot(hist.history["val_loss"]) plt.title("Loss") plt.legend(["train","test"],loc="upper left") plt.show() model.summary() model.save_weights(".\cnn.hdf5") def print_cmx(y_true, y_pred): labels = sorted(list(set(y_true))) cmx_data = confusion_matrix(y_true, y_pred, labels=labels) labels= ["cat","dog","brid","human"] df_cmx = pd.DataFrame(cmx_data, index=labels, columns=labels) plt.figure(figsize = (10,7)) sns.heatmap(df_cmx, annot=True) plt.xlabel("Predict-labels") plt.ylabel("True-labels") plt.show() predict_classes = model.predict_classes(x_test, batch_size=32) true_classes = np.argmax(y_test,1) print_cmx(true_classes,predict_classes)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/12 05:44
2019/12/12 06:32
2019/12/12 06:37 編集
2019/12/12 12:44
2019/12/12 12:48
2019/12/12 14:17
2019/12/13 07:26
2019/12/18 05:20