In [20]:
%matplotlib inline
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
d1 = pd.read_csv("L4test_output.dat")
d2 = pd.read_csv("L4testZCA_output.dat")
d1T = d1[d1["mode"]=="Train"]
d1E = d1[d1["mode"]=="Test"]
d2T = d2[d2["mode"]=="Train"]
d2E = d2[d2["mode"]=="Test"]
plt.plot(d1T["epoch"],d1T["accuracy"]*100.,linestyle="-", color="blue",label="No ZCA")
plt.plot(d1E["epoch"],d1E["accuracy"]*100.,linestyle=":", color="blue",label="")
plt.plot(d2T["epoch"],d2T["accuracy"]*100.,linestyle="-", color="green",label="With ZCA")
plt.plot(d2E["epoch"],d2E["accuracy"]*100.,linestyle=":", color="green",label="")
plt.grid()
plt.title("Accuracy comparison with / without ZCA")
plt.xlabel("epoch")
plt.ylabel("accuracy [%]")
plt.legend(loc=4)
plt.show()
ZCAありでTest dataの最高が35%、ZCAなしだと25%程度であり、かなり性能は向上。ここでのTest dataの処理には、Training Dataより作成した変換行列Uzcaと、mean, stdを使用している。