-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathproject2.py
More file actions
60 lines (57 loc) · 1.92 KB
/
project2.py
File metadata and controls
60 lines (57 loc) · 1.92 KB
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
import numpy as np
from sklearn.neural_network import MLPRegressor
from keras.models import Sequential
from keras.layers import Dense
def get_data(fname):
ins=[]
outs=[]
count =0
with open(fname) as f:
for line in f:
line=line.split()
if (count % 2 ):
outs.append(line)
else:
ins.append(line)
count = count + 1
ins=np.array(ins,dtype=float)
outs=np.array(outs,dtype=float)
meanx=np.mean(ins,axis=0)
stdx=np.std(ins,axis=0)
ins=(ins-meanx)/stdx
return ins,outs
def create_mlp_model(hidden_layer=(10,),iters=7500):
clf = MLPRegressor(hidden_layer_sizes=hidden_layer, max_iter=iters,solver='lbfgs',activation='tanh',epsilon=1e-08)
return clf
def calculate_mse(outs,pred):
A=outs-pred
A=np.dot(A.T,A)
mse=np.trace(A)/np.size(pred,0)
return mse
fname_train='Twod1.tra'
fname_test='Twod.tst'
X,y=get_data(fname_train)
Xtest,ytest=get_data(fname_test)
model_train=create_mlp_model(hidden_layer=(10,),iters=750)
model_train.fit(X,y)
pred_train=model_train.predict(X)
pred_val=model_train.predict(Xtest)
train_mse=calculate_mse(y,pred_train)
val_mse=calculate_mse(ytest,pred_val)
model = Sequential() #Start of a keras implementation
model.add(Dense(10, input_dim=8, use_bias=True,activation='tanh'))
model.add(Dense(7))
# Compile model
model.compile(loss='mean_squared_error',optimizer='adam',metrics=['mae'])
# Fit the model
model.fit(X,y, epochs=50)
keras_pred_train=model.predict(X, verbose=0, steps=None)
keras_pred_val=model.predict(X, verbose=0, steps=None)
print calculate_mse(y,keras_pred_train)
score_train=model.evaluate(X,y,verbose=0)[1]
score_val=model.evaluate(Xtest,ytest,verbose=0)[1]
# evaluate the model
print 'Keras results'
print 'Training error: %f\tValidation error: %f'%(score_train,score_val)
print 'Scikit-Learn MLP results'
print 'Training error: %f\tValidation error: %f'%(train_mse,val_mse)