Skip to content

Commit 2665a75

Browse files
committed
init commit
0 parents  commit 2665a75

File tree

5 files changed

+538
-0
lines changed

5 files changed

+538
-0
lines changed
6.94 MB
Binary file not shown.

MainCode.py

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
import numpy as np
2+
import pandas as pd
3+
import math
4+
import time
5+
from sklearn.neural_network import MLPClassifier
6+
from sklearn.metrics import mean_squared_error
7+
from sklearn.decomposition import PCA
8+
9+
def split_train_test(X,y,percent_train=0.9,seed=None):
10+
if seed!=None:
11+
np.random.seed(seed)
12+
ind = np.random.permutation(X.shape[0])
13+
train = ind[:int(X.shape[0]*percent_train)]
14+
test = ind[int(X.shape[0]*percent_train):]
15+
return X[train],X[test], y[train], y[test]
16+
17+
18+
19+
def accuracy(y_true,y_pred):
20+
return np.sum(y_true==y_pred)/y_true.shape[0]
21+
22+
23+
if __name__ == "__main__":
24+
25+
#Noahs Data Path
26+
data_path = 'C:\\Users\\Noah\\Desktop\\cahsi_data_2022\\' # Use your own path her
27+
28+
df_d1 = pd.read_csv(data_path+'D1.csv')
29+
df_d2 = pd.read_csv(data_path+'D2.csv')
30+
31+
32+
#Train
33+
X_train = df_d1[:].values
34+
35+
#training
36+
X_d1 = X_train[:,:-1]
37+
y_d1 = X_train[:,-1]
38+
39+
#Testing
40+
X_test = df_d2[:].values
41+
X_d2 = X_test[:,:]
42+
43+
44+
45+
pca = PCA(n_components=24)
46+
pca.fit(X_d1)
47+
ev = pca.explained_variance_ratio_
48+
cum_ev = np.cumsum(ev)
49+
cum_ev = cum_ev/cum_ev[-1]
50+
51+
X_train_t = pca.transform(X_d1)
52+
X_test_t = pca.transform(X_d2)
53+
54+
55+
56+
57+
58+
#X_train, X_test, y_train, y_test = split_train_test(X,y,seed=20)
59+
60+
61+
model = MLPClassifier(solver='adam', alpha=1e-5, batch_size = 400 ,learning_rate='adaptive',momentum=0.95, hidden_layer_sizes=(400), verbose=True, random_state=1)
62+
63+
start = time.time()
64+
#model.fit(X_d1, y_d1)
65+
model.fit(X_train_t, y_d1)
66+
elapsed_time = time.time()-start
67+
print('Elapsed_time training {0:.6f} '.format(elapsed_time))
68+
print('Training iterations {} '.format(model.n_iter_))
69+
70+
start = time.time()
71+
#pred = model.predict(X_d2)
72+
pred = model.predict(X_test_t)
73+
elapsed_time = time.time()-start
74+
print('Elapsed_time testing {0:.6f} '.format(elapsed_time))
75+
#print('Accuracy: {0:.6f}'.format(accuracy(y_test,pred)))
76+
77+
# print("MSE",mean_squared_error(y_test, pred))
78+
79+
80+
#export
81+
with open("answer.txt", "w") as txt_file:
82+
for line in pred:
83+
txt_file.write(str(line) + "\n") # works with any number of elements in a line
84+
85+
86+
87+
88+
89+
90+
91+
92+
93+

Testing.py

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
2+
import numpy as np
3+
import pandas as pd
4+
import math
5+
import time
6+
from sklearn.neural_network import MLPClassifier
7+
from sklearn.metrics import mean_squared_error
8+
9+
10+
def split_train_test(X,y,percent_train=0.9,seed=None):
11+
if seed!=None:
12+
np.random.seed(seed)
13+
ind = np.random.permutation(X.shape[0])
14+
train = ind[:int(X.shape[0]*percent_train)]
15+
test = ind[int(X.shape[0]*percent_train):]
16+
return X[train],X[test], y[train], y[test]
17+
18+
19+
20+
def accuracy(y_true,y_pred):
21+
return np.sum(y_true==y_pred)/y_true.shape[0]
22+
23+
24+
if __name__ == "__main__":
25+
26+
#Noahs Data Path
27+
data_path = 'C:\\Users\\Noah\\Desktop\\cahsi_data_2022\\' # Use your own path her
28+
29+
df_d1 = pd.read_csv(data_path+'D1.csv')
30+
df_d2 = pd.read_csv(data_path+'D2.csv')
31+
32+
33+
#Train
34+
X = df_d1[:].values
35+
X_d1 = X[:,:-1]
36+
y_d1 = X[:,-1]
37+
38+
X_train, X_test, y_train, y_test = split_train_test(X_d1,y_d1,seed=20)
39+
40+
41+
model = MLPClassifier(activation= 'relu',solver='adam', alpha=1e-5, batch_size = 100 ,learning_rate='adaptive',momentum=0.95, hidden_layer_sizes=(200), verbose=True, random_state=1)
42+
43+
start = time.time()
44+
model.fit(X_train, y_train)
45+
elapsed_time = time.time()-start
46+
print('Elapsed_time training {0:.6f} '.format(elapsed_time))
47+
print('Training iterations {} '.format(model.n_iter_))
48+
49+
start = time.time()
50+
pred = model.predict(X_test)
51+
elapsed_time = time.time()-start
52+
print('Elapsed_time testing {0:.6f} '.format(elapsed_time))
53+
print('Accuracy: {0:.6f}'.format(accuracy(y_test,pred)))
54+
55+
print("MSE",mean_squared_error(y_test, pred))
56+
57+
58+
#export
59+
with open("answers.txt", "w") as txt_file:
60+
for line in pred:
61+
txt_file.write(str(line) + "\n") # works with any number of elements in a line
62+
63+
64+
65+
66+
67+
68+
69+

0 commit comments

Comments
 (0)