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を使用している。