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
+
0 commit comments