-
Notifications
You must be signed in to change notification settings - Fork 0
/
_Bike Sharing-hour_Test.py
69 lines (55 loc) · 2.73 KB
/
_Bike Sharing-hour_Test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import Network as net
import ActivationFunction as af
import Evaluation as ev
import numpy as np
import os
import math
import time
_DataSetPath = os.path.join(os.path.dirname(os.path.abspath(
__file__)), 'DataSet') # Get the directory for StringFunctions
_curentdatapath = os.path.join(_DataSetPath, "Bike Sharing-hour.data")
data = np.loadtxt(_curentdatapath, dtype=float, delimiter=",")
np.random.shuffle(data)
for i in range(len(data[0,:])):
_max = np.max(data[:,i])
_min = np.min(data[:,i])
data[:,i] = (data[:,i]-_min)/(_max - _min)
trainPortion = int(len(data)*66/100)
trainData = data[:trainPortion]
testData = data[trainPortion:]
test_dataset = testData[:, :-1].tolist()
test_target = testData[:, -1:].tolist()
dataset = trainData[:, :-1].tolist()
target = trainData[:, -1:].tolist()
myNet5 = net.Dense()
myNet5.AddLayer(13, isInput=True)
myNet5.AddLayer(5, activationFunction=af.Sigmoid)
myNet5.AddLayer(1, activationFunction=af.Sigmoid)
myNet20 = net.Dense()
myNet20.AddLayer(13, isInput=True)
myNet20.AddLayer(20, activationFunction=af.Sigmoid)
myNet20.AddLayer(1, activationFunction=af.Sigmoid)
start_time = time.time()
myNet5.Train(dataset, target, iterationCount= 20, learningRateStart=.6, learningRateEnd=.0, regulationRate=.02)
train5_Time = time.time() - start_time
start_time = time.time()
myNet20.Train(dataset, target, iterationCount= 20, learningRateStart=.6, learningRateEnd=.0, regulationRate=.02)
train20_Time = time.time() - start_time
# **************************************** Print Metrics *************************************************************
from sklearn.metrics import mean_squared_error
t5, o5= ev.GetPredictions(myNet5, test_dataset, test_target)
t20, o20= ev.GetPredictions(myNet20, test_dataset, test_target)
print(" ")
print("---------------------------------------------------------------------------------")
print("------------------------------ Bike Sharing Data Set ----------------------------")
print(">>>>>>>>>>>>> 5 hidden units")
print("mean_squared_error : {}".format(round(mean_squared_error(t5, o5),6)))
print("Root_MSE : {}".format(round(math.sqrt(mean_squared_error(t5, o5)),6)))
print("Training Time : {} Seconds".format(round(train5_Time,3)))
print("- - - - - - - - - - - - - - - - - - - - - - - - - - -")
print(">>>>>>>>>>>>> 20 hidden units")
print("mean_squared_error : {}".format(round(mean_squared_error(t20, o20),6)))
print("Root_MSE : {}".format(round(math.sqrt(mean_squared_error(t20, o20)),6)))
print("Training Time : {} Seconds".format(round(train20_Time,3)))
print("---------------------------------------------------------------------------------")
print(" ")