[1, 0, 1], [1, 1, 1]]) Y = np.array([0, 0, 1, 1]) nn = NN(3, [df_train.shape[1], 50, 1], 3 * [sigma], 3 * [dsigma]) X = df_train Y = df["spam_or_not"] errors = [] result_errors = [] for i in range(1000, 50000): k = np.random.randint(0, 4600) nn.train(X[k], Y[k], 1000. / i) if i % 10000 == 0: error = nn.error(X[:1000], Y[:1000]) errors.append(error) print("Epoch: {}; Error: {}".format(i, error)) result_errors.append(nn.result_error(X[:1000], Y[:1000])) with open('nn.pkl', 'wb') as f: dill.dump(nn,f) print(nn.error(X, Y)) plt.plot(errors) plt.plot(result_errors, "r") plt.ylim([0, 1]) plt.show()
errors_01 = [] errors_001 = [] errors_1N = [] ############# # eta = 0.1 # ############# nn = NN(4, [df_train.shape[1], 50, 50, 1], 4 * [sigma], 4 * [dsigma]) for i in range(5000, 1000000): k = np.random.randint(0, len(X_train)) nn.train(X_train[k], Y_train[k], 0.1) if i % 10000 == 0: error = nn.error(X_test, Y_test) errors_01.append(error) print("Epoch: {}; Error: {}".format(i, error)) ############## # eta = 0.01 # ############## nn = NN(4, [df_train.shape[1], 50, 50, 1], 4 * [sigma], 4 * [dsigma]) for i in range(5000, 1000000): k = np.random.randint(0, len(X_train)) nn.train(X_train[k], Y_train[k], 0.01) if i % 10000 == 0: error = nn.error(X_test, Y_test)
[0, 1, 1], [1, 0, 1], [1, 1, 1]]) Y = np.array([0, 0, 1, 1]) for eta in [1, 0.5, 0.1, 0.05, 0.01, 0.005, 0.001]: errors = [] nn = NN(2, [3, 1], 2 * [sigma], 2 * [dsigma]) for i in range(10000): k = np.random.randint(0, 4) nn.train(X[k], Y[k], eta) if i % 10 == 0: error = nn.error(X, Y) errors.append(error) print("Epoch: {}; Error: {}".format(i, error)) plt.plot([10 * i for i in range(len(errors))], errors, label = "eta = {}".format(eta)) plt.legend() plt.xlabel("Epoch") plt.ylabel("Error") plt.title("Basic") plt.ylim([0, 1]) plt.show() X = np.array([[0, 0, 1], [0, 1, 1], [1, 0, 1], [1, 1, 1]])