コード例 #1
0
ファイル: main.py プロジェクト: quentinLeDilavrec/SpamNN
              [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()
コード例 #2
0
ファイル: main.py プロジェクト: Phyronnaz/SpamNN
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)
コード例 #3
0
              [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]])