File size: 203,473 Bytes
4b89a11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Auto Encoder Developement"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "4d48baab",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import tensorflow as tf\n",
    "from tensorflow import keras\n",
    "from tensorflow.keras import layers\n",
    "from tensorflow.keras.models import Model\n",
    "import keras_tuner as kt\n",
    "from keras.wrappers.scikit_learn import KerasRegressor\n",
    "from sklearn.model_selection import KFold,GridSearchCV,RandomizedSearchCV,train_test_split,StratifiedKFold\n",
    "from sklearn.metrics import confusion_matrix,accuracy_score,r2_score,roc_auc_score,precision_score,recall_score,f1_score,mean_squared_error\n",
    "from jupyterthemes import jtplot\n",
    "jtplot.style(theme='monokai', context='notebook', ticks=True, grid=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "from pathlib import Path"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>remaining_cycles</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>191</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>190</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>189</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>188</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>187</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20626</th>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20627</th>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20628</th>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20629</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20630</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>20631 rows × 1 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       remaining_cycles\n",
       "0                   191\n",
       "1                   190\n",
       "2                   189\n",
       "3                   188\n",
       "4                   187\n",
       "...                 ...\n",
       "20626                 4\n",
       "20627                 3\n",
       "20628                 2\n",
       "20629                 1\n",
       "20630                 0\n",
       "\n",
       "[20631 rows x 1 columns]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv('traininglabels.csv')\n",
    "df.drop(columns='Unnamed: 0')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "f48dd172",
   "metadata": {},
   "outputs": [],
   "source": [
    "col_names = ['id', 'cycle', 'setting1', 'setting2', 'setting3', 'T2', 'T24'\n",
    "             , 'T30', 'T50','P2', 'P15', 'P30', 'Nf', 'Nc', 'epr', 'Ps30'\n",
    "             , 'phi', 'NRf', 'NRc', 'BPR','farB', 'htBleed', 'Nf_dmd',\n",
    "             'PCNfR_dmd','W31', 'W32', 's22', 's23']"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cc90d235",
   "metadata": {},
   "source": [
    "Import the training, test, and remaining useful life data and remove all NaN values."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "b1cb9faf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>remaining_cycles</th>\n",
       "      <th>Nan</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>112</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>98</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>69</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>82</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>91</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   remaining_cycles  Nan\n",
       "0               112  NaN\n",
       "1                98  NaN\n",
       "2                69  NaN\n",
       "3                82  NaN\n",
       "4                91  NaN"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train = pd.read_csv(\"train.txt\", sep=' ', names=col_names)\n",
    "test = pd.read_csv(\"test.txt\", sep=' ', names=col_names)\n",
    "RUL = pd.read_csv(\"RUL.txt\", sep=' ', names=['remaining_cycles', 'Nan'])\n",
    "RUL.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "train.to_csv('testin123.txt')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "a9224d1f",
   "metadata": {},
   "outputs": [],
   "source": [
    "train.drop(columns=['s22', 's23'], axis=1, inplace=True)\n",
    "test.drop(columns=['s22', 's23'], axis=1, inplace=True)\n",
    "RUL.drop(columns=['Nan'], axis=1, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "be6ccb37",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>remaining_cycles</th>\n",
       "      <th>id</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>112</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>98</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>69</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>82</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>91</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   remaining_cycles  id\n",
       "0               112   1\n",
       "1                98   2\n",
       "2                69   3\n",
       "3                82   4\n",
       "4                91   5"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "RUL['id'] = RUL.index + 1\n",
    "\n",
    "RUL.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f00a7399",
   "metadata": {},
   "source": [
    "The dataset is made up of sensor data for 100 different engines, as can be seen below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "1bc5c3d4",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Engine IDs: [  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18\n",
      "  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36\n",
      "  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54\n",
      "  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72\n",
      "  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90\n",
      "  91  92  93  94  95  96  97  98  99 100]\n"
     ]
    }
   ],
   "source": [
    "print('Engine IDs:', train.id.unique())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a1ad2e86",
   "metadata": {},
   "source": [
    "## Processing Data"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "49eb2c6e",
   "metadata": {},
   "source": [
    "A testing dataset is provided where the engines are not ran until failure, and a complimentary vector is provided for the remaining useful life (RUL) for each engine ID. In order to match the engines in the test set with their corresponding RUL, we must concatenate the two datasets."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f34cf0cb",
   "metadata": {},
   "source": [
    "Since the engines in the test set are ran until failure, you can calculate the remaining cycles until failure by subtracting the current cycle from the maximum cycle for each engine ID. He does this for the test set as well. Since the remaining useful life for all the test engines are given, as well as their current cycle, the maximum cycles for each engine can be calculated."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "id": "f53a4ce3",
   "metadata": {},
   "outputs": [],
   "source": [
    "train['remaining_cycles'] = train.groupby(['id'])['cycle'].transform(max)-train['cycle']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "fb095086",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>cycle</th>\n",
       "      <th>setting1</th>\n",
       "      <th>setting2</th>\n",
       "      <th>setting3</th>\n",
       "      <th>T2</th>\n",
       "      <th>T24</th>\n",
       "      <th>T30</th>\n",
       "      <th>T50</th>\n",
       "      <th>P2</th>\n",
       "      <th>...</th>\n",
       "      <th>NRf</th>\n",
       "      <th>NRc</th>\n",
       "      <th>BPR</th>\n",
       "      <th>farB</th>\n",
       "      <th>htBleed</th>\n",
       "      <th>Nf_dmd</th>\n",
       "      <th>PCNfR_dmd</th>\n",
       "      <th>W31</th>\n",
       "      <th>W32</th>\n",
       "      <th>remaining_cycles</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>-0.0007</td>\n",
       "      <td>-0.0004</td>\n",
       "      <td>100.0</td>\n",
       "      <td>518.67</td>\n",
       "      <td>641.82</td>\n",
       "      <td>1589.70</td>\n",
       "      <td>1400.60</td>\n",
       "      <td>14.62</td>\n",
       "      <td>...</td>\n",
       "      <td>2388.02</td>\n",
       "      <td>8138.62</td>\n",
       "      <td>8.4195</td>\n",
       "      <td>0.03</td>\n",
       "      <td>392</td>\n",
       "      <td>2388</td>\n",
       "      <td>100.0</td>\n",
       "      <td>39.06</td>\n",
       "      <td>23.4190</td>\n",
       "      <td>191</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0.0019</td>\n",
       "      <td>-0.0003</td>\n",
       "      <td>100.0</td>\n",
       "      <td>518.67</td>\n",
       "      <td>642.15</td>\n",
       "      <td>1591.82</td>\n",
       "      <td>1403.14</td>\n",
       "      <td>14.62</td>\n",
       "      <td>...</td>\n",
       "      <td>2388.07</td>\n",
       "      <td>8131.49</td>\n",
       "      <td>8.4318</td>\n",
       "      <td>0.03</td>\n",
       "      <td>392</td>\n",
       "      <td>2388</td>\n",
       "      <td>100.0</td>\n",
       "      <td>39.00</td>\n",
       "      <td>23.4236</td>\n",
       "      <td>190</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>-0.0043</td>\n",
       "      <td>0.0003</td>\n",
       "      <td>100.0</td>\n",
       "      <td>518.67</td>\n",
       "      <td>642.35</td>\n",
       "      <td>1587.99</td>\n",
       "      <td>1404.20</td>\n",
       "      <td>14.62</td>\n",
       "      <td>...</td>\n",
       "      <td>2388.03</td>\n",
       "      <td>8133.23</td>\n",
       "      <td>8.4178</td>\n",
       "      <td>0.03</td>\n",
       "      <td>390</td>\n",
       "      <td>2388</td>\n",
       "      <td>100.0</td>\n",
       "      <td>38.95</td>\n",
       "      <td>23.3442</td>\n",
       "      <td>189</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>0.0007</td>\n",
       "      <td>0.0000</td>\n",
       "      <td>100.0</td>\n",
       "      <td>518.67</td>\n",
       "      <td>642.35</td>\n",
       "      <td>1582.79</td>\n",
       "      <td>1401.87</td>\n",
       "      <td>14.62</td>\n",
       "      <td>...</td>\n",
       "      <td>2388.08</td>\n",
       "      <td>8133.83</td>\n",
       "      <td>8.3682</td>\n",
       "      <td>0.03</td>\n",
       "      <td>392</td>\n",
       "      <td>2388</td>\n",
       "      <td>100.0</td>\n",
       "      <td>38.88</td>\n",
       "      <td>23.3739</td>\n",
       "      <td>188</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>-0.0019</td>\n",
       "      <td>-0.0002</td>\n",
       "      <td>100.0</td>\n",
       "      <td>518.67</td>\n",
       "      <td>642.37</td>\n",
       "      <td>1582.85</td>\n",
       "      <td>1406.22</td>\n",
       "      <td>14.62</td>\n",
       "      <td>...</td>\n",
       "      <td>2388.04</td>\n",
       "      <td>8133.80</td>\n",
       "      <td>8.4294</td>\n",
       "      <td>0.03</td>\n",
       "      <td>393</td>\n",
       "      <td>2388</td>\n",
       "      <td>100.0</td>\n",
       "      <td>38.90</td>\n",
       "      <td>23.4044</td>\n",
       "      <td>187</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20626</th>\n",
       "      <td>100</td>\n",
       "      <td>196</td>\n",
       "      <td>-0.0004</td>\n",
       "      <td>-0.0003</td>\n",
       "      <td>100.0</td>\n",
       "      <td>518.67</td>\n",
       "      <td>643.49</td>\n",
       "      <td>1597.98</td>\n",
       "      <td>1428.63</td>\n",
       "      <td>14.62</td>\n",
       "      <td>...</td>\n",
       "      <td>2388.26</td>\n",
       "      <td>8137.60</td>\n",
       "      <td>8.4956</td>\n",
       "      <td>0.03</td>\n",
       "      <td>397</td>\n",
       "      <td>2388</td>\n",
       "      <td>100.0</td>\n",
       "      <td>38.49</td>\n",
       "      <td>22.9735</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20627</th>\n",
       "      <td>100</td>\n",
       "      <td>197</td>\n",
       "      <td>-0.0016</td>\n",
       "      <td>-0.0005</td>\n",
       "      <td>100.0</td>\n",
       "      <td>518.67</td>\n",
       "      <td>643.54</td>\n",
       "      <td>1604.50</td>\n",
       "      <td>1433.58</td>\n",
       "      <td>14.62</td>\n",
       "      <td>...</td>\n",
       "      <td>2388.22</td>\n",
       "      <td>8136.50</td>\n",
       "      <td>8.5139</td>\n",
       "      <td>0.03</td>\n",
       "      <td>395</td>\n",
       "      <td>2388</td>\n",
       "      <td>100.0</td>\n",
       "      <td>38.30</td>\n",
       "      <td>23.1594</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20628</th>\n",
       "      <td>100</td>\n",
       "      <td>198</td>\n",
       "      <td>0.0004</td>\n",
       "      <td>0.0000</td>\n",
       "      <td>100.0</td>\n",
       "      <td>518.67</td>\n",
       "      <td>643.42</td>\n",
       "      <td>1602.46</td>\n",
       "      <td>1428.18</td>\n",
       "      <td>14.62</td>\n",
       "      <td>...</td>\n",
       "      <td>2388.24</td>\n",
       "      <td>8141.05</td>\n",
       "      <td>8.5646</td>\n",
       "      <td>0.03</td>\n",
       "      <td>398</td>\n",
       "      <td>2388</td>\n",
       "      <td>100.0</td>\n",
       "      <td>38.44</td>\n",
       "      <td>22.9333</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20629</th>\n",
       "      <td>100</td>\n",
       "      <td>199</td>\n",
       "      <td>-0.0011</td>\n",
       "      <td>0.0003</td>\n",
       "      <td>100.0</td>\n",
       "      <td>518.67</td>\n",
       "      <td>643.23</td>\n",
       "      <td>1605.26</td>\n",
       "      <td>1426.53</td>\n",
       "      <td>14.62</td>\n",
       "      <td>...</td>\n",
       "      <td>2388.23</td>\n",
       "      <td>8139.29</td>\n",
       "      <td>8.5389</td>\n",
       "      <td>0.03</td>\n",
       "      <td>395</td>\n",
       "      <td>2388</td>\n",
       "      <td>100.0</td>\n",
       "      <td>38.29</td>\n",
       "      <td>23.0640</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20630</th>\n",
       "      <td>100</td>\n",
       "      <td>200</td>\n",
       "      <td>-0.0032</td>\n",
       "      <td>-0.0005</td>\n",
       "      <td>100.0</td>\n",
       "      <td>518.67</td>\n",
       "      <td>643.85</td>\n",
       "      <td>1600.38</td>\n",
       "      <td>1432.14</td>\n",
       "      <td>14.62</td>\n",
       "      <td>...</td>\n",
       "      <td>2388.26</td>\n",
       "      <td>8137.33</td>\n",
       "      <td>8.5036</td>\n",
       "      <td>0.03</td>\n",
       "      <td>396</td>\n",
       "      <td>2388</td>\n",
       "      <td>100.0</td>\n",
       "      <td>38.37</td>\n",
       "      <td>23.0522</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>20631 rows × 27 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        id  cycle  setting1  setting2  setting3      T2     T24      T30  \\\n",
       "0        1      1   -0.0007   -0.0004     100.0  518.67  641.82  1589.70   \n",
       "1        1      2    0.0019   -0.0003     100.0  518.67  642.15  1591.82   \n",
       "2        1      3   -0.0043    0.0003     100.0  518.67  642.35  1587.99   \n",
       "3        1      4    0.0007    0.0000     100.0  518.67  642.35  1582.79   \n",
       "4        1      5   -0.0019   -0.0002     100.0  518.67  642.37  1582.85   \n",
       "...    ...    ...       ...       ...       ...     ...     ...      ...   \n",
       "20626  100    196   -0.0004   -0.0003     100.0  518.67  643.49  1597.98   \n",
       "20627  100    197   -0.0016   -0.0005     100.0  518.67  643.54  1604.50   \n",
       "20628  100    198    0.0004    0.0000     100.0  518.67  643.42  1602.46   \n",
       "20629  100    199   -0.0011    0.0003     100.0  518.67  643.23  1605.26   \n",
       "20630  100    200   -0.0032   -0.0005     100.0  518.67  643.85  1600.38   \n",
       "\n",
       "           T50     P2  ...      NRf      NRc     BPR  farB  htBleed  Nf_dmd  \\\n",
       "0      1400.60  14.62  ...  2388.02  8138.62  8.4195  0.03      392    2388   \n",
       "1      1403.14  14.62  ...  2388.07  8131.49  8.4318  0.03      392    2388   \n",
       "2      1404.20  14.62  ...  2388.03  8133.23  8.4178  0.03      390    2388   \n",
       "3      1401.87  14.62  ...  2388.08  8133.83  8.3682  0.03      392    2388   \n",
       "4      1406.22  14.62  ...  2388.04  8133.80  8.4294  0.03      393    2388   \n",
       "...        ...    ...  ...      ...      ...     ...   ...      ...     ...   \n",
       "20626  1428.63  14.62  ...  2388.26  8137.60  8.4956  0.03      397    2388   \n",
       "20627  1433.58  14.62  ...  2388.22  8136.50  8.5139  0.03      395    2388   \n",
       "20628  1428.18  14.62  ...  2388.24  8141.05  8.5646  0.03      398    2388   \n",
       "20629  1426.53  14.62  ...  2388.23  8139.29  8.5389  0.03      395    2388   \n",
       "20630  1432.14  14.62  ...  2388.26  8137.33  8.5036  0.03      396    2388   \n",
       "\n",
       "       PCNfR_dmd    W31      W32  remaining_cycles  \n",
       "0          100.0  39.06  23.4190               191  \n",
       "1          100.0  39.00  23.4236               190  \n",
       "2          100.0  38.95  23.3442               189  \n",
       "3          100.0  38.88  23.3739               188  \n",
       "4          100.0  38.90  23.4044               187  \n",
       "...          ...    ...      ...               ...  \n",
       "20626      100.0  38.49  22.9735                 4  \n",
       "20627      100.0  38.30  23.1594                 3  \n",
       "20628      100.0  38.44  22.9333                 2  \n",
       "20629      100.0  38.29  23.0640                 1  \n",
       "20630      100.0  38.37  23.0522                 0  \n",
       "\n",
       "[20631 rows x 27 columns]"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "1b33f6b4",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Maximum cycles = cycles at test end + remaining useful life\n",
    "\n",
    "maxCycles = pd.DataFrame(test.groupby('id')['cycle'].max()).reset_index()\n",
    "maxCycles.columns = ['id', 'max_tested']\n",
    "maxCycles['max_cycles'] = RUL['remaining_cycles'] + maxCycles['max_tested']\n",
    "maxCycles.drop(['max_tested'], axis=1, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "50f53584",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>max_cycles</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>143</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>147</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>195</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>188</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>189</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id  max_cycles\n",
       "0   1         143\n",
       "1   2         147\n",
       "2   3         195\n",
       "3   4         188\n",
       "4   5         189"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "maxCycles.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "4a58ed0c",
   "metadata": {},
   "outputs": [],
   "source": [
    "test = test.merge(maxCycles, on=['id'], how='left')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "a8f89b67",
   "metadata": {},
   "outputs": [],
   "source": [
    "test['remaining_cycles'] = test['max_cycles'] - test['cycle']\n",
    "test.drop(['max_cycles'], axis=1, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "# X = train.drop(['id', 'setting3', 'P2', 'P15', 'epr', 'htBleed', 'PCNfR_dmd', 'W31',\n",
    "#                 'remaining_cycles'], axis=1)\n",
    "# X_test = test.drop(['id', 'setting3', 'P2', 'P15', 'epr', 'htBleed', 'PCNfR_dmd', 'W31',\n",
    "#                 'remaining_cycles'], axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = train.drop(['id', 'cycle', 'setting2', 'setting3', 'T2', 'T24', 'epr', 'farB', 'Nf_dmd', 'PCNfR_dmd',\n",
    "                'remaining_cycles'], axis=1)\n",
    "X_test = test.drop(['id', 'cycle', 'setting2', 'setting3', 'T2', 'T24', 'epr', 'farB', 'Nf_dmd', 'PCNfR_dmd',\n",
    "                'remaining_cycles'], axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Arash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python39\\site-packages\\sklearn\\preprocessing\\_data.py:3251: RuntimeWarning: divide by zero encountered in log\n",
      "  loglike = -n_samples / 2 * np.log(x_trans.var())\n"
     ]
    }
   ],
   "source": [
    "from sklearn.preprocessing import MinMaxScaler, PowerTransformer\n",
    "gen = MinMaxScaler(feature_range=(0,1))\n",
    "X = gen.fit_transform(X)\n",
    "X = pd.DataFrame(X)\n",
    "X = np.nan_to_num(X)\n",
    "\n",
    "pt = PowerTransformer()\n",
    "X = pt.fit_transform(X)\n",
    "X = np.array(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_test = test.remaining_cycles"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "0607bc22",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Arash\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python39\\site-packages\\sklearn\\preprocessing\\_data.py:3251: RuntimeWarning: divide by zero encountered in log\n",
      "  loglike = -n_samples / 2 * np.log(x_trans.var())\n"
     ]
    }
   ],
   "source": [
    "gen2 = MinMaxScaler(feature_range=(0,1))\n",
    "X_test = gen.fit_transform(X_test)\n",
    "X_test = pd.DataFrame(X_test)\n",
    "X_test = np.nan_to_num(X_test)\n",
    "pt = PowerTransformer()\n",
    "X_test = pt.fit_transform(X_test)\n",
    "X_test = np.array(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [],
   "source": [
    "class AutoEncoder(Model):\n",
    "    def __init__(self, latent_dim, input_dim):\n",
    "        super(AutoEncoder, self).__init__()\n",
    "        self.latent_dim = latent_dim\n",
    "        self.encoder = tf.keras.Sequential([\n",
    "            # layers.Dense(16*latent_dim, activation = \"relu\"),\n",
    "            # layers.Dense(8*latent_dim, activation = \"relu\"),\n",
    "            # layers.Dense(4*latent_dim, activation = \"relu\"),\n",
    "            layers.Dense(2*latent_dim, activation = \"relu\"),\n",
    "            layers.Dense(latent_dim, activation = \"relu\"),\n",
    "        ])\n",
    "        self.decoder = tf.keras.Sequential([\n",
    "            layers.Dense(2*latent_dim, activation = \"relu\"),\n",
    "            # layers.Dense(4*latent_dim, activation = \"relu\"),\n",
    "            # layers.Dense(8*latent_dim, activation = \"relu\"),\n",
    "            # layers.Dense(16*latent_dim, activation = \"relu\"),\n",
    "            layers.Dense(input_dim, activation = \"relu\"),           \n",
    "        ])\n",
    "        \n",
    "    def call(self, x):\n",
    "        encoded = self.encoder(x)\n",
    "        decoded = self.decoder(encoded)\n",
    "        return decoded"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [],
   "source": [
    "def find_latent_dims(AutoEncoder, latent_dim):\n",
    "    tf.keras.backend.clear_session()\n",
    "    callback = tf.keras.callbacks.EarlyStopping(monitor='val_loss', min_delta=0, patience=10)\n",
    "    autoencoder = AutoEncoder(latent_dim, X.shape[1])\n",
    "    autoencoder.compile(optimizer=\"adam\", loss=\"mean_squared_error\")\n",
    "    history = autoencoder.fit(X, X, epochs=1000, shuffle=True, validation_data=(X, X), verbose=False, callbacks=callback)\n",
    "    return history"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [],
   "source": [
    "latent_dim = 11\n",
    "\n",
    "tf.keras.backend.clear_session()\n",
    "callback = tf.keras.callbacks.EarlyStopping(monitor='val_loss', min_delta=0, patience=10)\n",
    "autoencoder = AutoEncoder(latent_dim, X.shape[1])\n",
    "autoencoder.compile(optimizer=\"adam\", loss=\"mean_squared_error\")\n",
    "history = autoencoder.fit(X, X, epochs=1000, shuffle=True, validation_data=(X, X), verbose=False, callbacks=callback)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(13096, 16)"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "410/410 [==============================] - 0s 506us/step - loss: 0.0000e+00\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.0"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "autoencoder.evaluate(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "# latent_dim = np.arange(X.shape[1]) + 1\n",
    "\n",
    "# lossSave = []\n",
    "# lowestLoss = []\n",
    "# i = 0\n",
    "# for dim in latent_dim:\n",
    "#     history = find_latent_dims(AutoEncoder, dim)\n",
    "#     lossSave.append(history.history['loss'])\n",
    "#     lowestLoss.append(lossSave[i][-1])\n",
    "#     i += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [],
   "source": [
    "# plt.figure(figsize=(20,20))\n",
    "# plt.scatter(range(len(lowestLoss)), lowestLoss)  \n",
    "# plt.xlabel(\"Number of Latent Dimensions\")\n",
    "# plt.ylabel(\"Mean Squared Error\")\n",
    "# plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [],
   "source": [
    "# plt.figure(figsize=(20,20))\n",
    "# for losses in lossSave:\n",
    "#     plt.plot(losses)    \n",
    "# plt.xlabel(\"Epochs\")\n",
    "# plt.ylabel(\"Mean Squared Error\")\n",
    "# plt.legend(latent_dim)\n",
    "# plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_loss(fit):\n",
    "    plt.figure(figsize=(16,9))\n",
    "    plt.plot(fit.history['loss'], label='loss')\n",
    "    plt.plot(fit.history['val_loss'], label='val_loss')\n",
    "    plt.xlabel('Epoch')\n",
    "    plt.ylabel('Remaining Cycles Error')\n",
    "    plt.legend(loc=0, prop={'size':26})\n",
    "    plt.grid(True)\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [],
   "source": [
    "def make_fully_connected_model(autoencoder, loss_type, activation_type):\n",
    "    autoencoder.encoder.trainable = False\n",
    "    model = keras.Sequential([autoencoder.encoder,\n",
    "                              layers.Dense(512, kernel_initializer= \"glorot_normal\", activation=activation_type),\n",
    "                              layers.BatchNormalization(axis=1),\n",
    "                              layers.Dense(256, kernel_initializer= \"glorot_normal\", activation=activation_type),\n",
    "                              layers.BatchNormalization(axis=1),\n",
    "                              layers.Dense(128, kernel_initializer= \"glorot_normal\", activation=activation_type),\n",
    "                              layers.BatchNormalization(axis=1),\n",
    "                              layers.Dense(64, kernel_initializer= \"glorot_normal\", activation=activation_type),\n",
    "                              layers.Dropout(0.5),\n",
    "                              layers.BatchNormalization(axis=1),\n",
    "                              layers.Dense(16, kernel_initializer= \"glorot_normal\", activation=activation_type),\n",
    "                              layers.Dense(1, kernel_initializer= \"glorot_normal\", activation=\"linear\")])\n",
    "    model.compile(loss=loss_type, optimizer=keras.optimizers.Adam(learning_rate=0.001))\n",
    "    return model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"auto_encoder\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "sequential (Sequential)      (20631, 11)               627       \n",
      "_________________________________________________________________\n",
      "sequential_1 (Sequential)    (20631, 16)               632       \n",
      "=================================================================\n",
      "Total params: 1,259\n",
      "Trainable params: 1,259\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "latent_dim = 11\n",
    "tf.keras.backend.clear_session()\n",
    "autoencoder = AutoEncoder(latent_dim, X.shape[1])\n",
    "autoencoder.compile(optimizer=\"adam\", loss=\"mean_squared_error\")\n",
    "autoencoder.build(X.shape)\n",
    "autoencoder.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/1000\n",
      "645/645 [==============================] - 1s 926us/step - loss: 0.7004 - val_loss: 0.6486\n",
      "Epoch 2/1000\n",
      "645/645 [==============================] - 1s 827us/step - loss: 0.6314 - val_loss: 0.6116\n",
      "Epoch 3/1000\n",
      "645/645 [==============================] - 1s 853us/step - loss: 0.6071 - val_loss: 0.6041\n",
      "Epoch 4/1000\n",
      "645/645 [==============================] - 1s 883us/step - loss: 0.6015 - val_loss: 0.5990\n",
      "Epoch 5/1000\n",
      "645/645 [==============================] - 1s 830us/step - loss: 0.5982 - val_loss: 0.5974\n",
      "Epoch 6/1000\n",
      "645/645 [==============================] - 1s 866us/step - loss: 0.5968 - val_loss: 0.5964\n",
      "Epoch 7/1000\n",
      "645/645 [==============================] - 1s 812us/step - loss: 0.5958 - val_loss: 0.5954\n",
      "Epoch 8/1000\n",
      "645/645 [==============================] - 1s 790us/step - loss: 0.5951 - val_loss: 0.5950\n",
      "Epoch 9/1000\n",
      "645/645 [==============================] - 0s 763us/step - loss: 0.5948 - val_loss: 0.5947\n",
      "Epoch 10/1000\n",
      "645/645 [==============================] - 1s 777us/step - loss: 0.5946 - val_loss: 0.5945\n",
      "Epoch 11/1000\n",
      "645/645 [==============================] - 1s 777us/step - loss: 0.5945 - val_loss: 0.5946\n",
      "Epoch 12/1000\n",
      "645/645 [==============================] - 1s 804us/step - loss: 0.5945 - val_loss: 0.5945\n",
      "Epoch 13/1000\n",
      "645/645 [==============================] - 1s 780us/step - loss: 0.5944 - val_loss: 0.5944\n",
      "Epoch 14/1000\n",
      "645/645 [==============================] - 0s 763us/step - loss: 0.5944 - val_loss: 0.5943\n",
      "Epoch 15/1000\n",
      "645/645 [==============================] - 0s 761us/step - loss: 0.5944 - val_loss: 0.5943\n",
      "Epoch 16/1000\n",
      "645/645 [==============================] - 0s 767us/step - loss: 0.5943 - val_loss: 0.5944\n",
      "Epoch 17/1000\n",
      "645/645 [==============================] - 1s 802us/step - loss: 0.5943 - val_loss: 0.5943\n",
      "Epoch 18/1000\n",
      "645/645 [==============================] - 1s 848us/step - loss: 0.5943 - val_loss: 0.5942\n",
      "Epoch 19/1000\n",
      "645/645 [==============================] - 0s 768us/step - loss: 0.5943 - val_loss: 0.5941\n",
      "Epoch 20/1000\n",
      "645/645 [==============================] - 1s 799us/step - loss: 0.5941 - val_loss: 0.5940\n",
      "Epoch 21/1000\n",
      "645/645 [==============================] - 0s 768us/step - loss: 0.5940 - val_loss: 0.5939\n",
      "Epoch 22/1000\n",
      "645/645 [==============================] - 1s 791us/step - loss: 0.5940 - val_loss: 0.5939\n",
      "Epoch 23/1000\n",
      "645/645 [==============================] - 1s 846us/step - loss: 0.5939 - val_loss: 0.5941\n",
      "Epoch 24/1000\n",
      "645/645 [==============================] - 1s 783us/step - loss: 0.5939 - val_loss: 0.5938\n",
      "Epoch 25/1000\n",
      "645/645 [==============================] - 1s 794us/step - loss: 0.5939 - val_loss: 0.5938\n",
      "Epoch 26/1000\n",
      "645/645 [==============================] - 0s 754us/step - loss: 0.5939 - val_loss: 0.5940\n",
      "Epoch 27/1000\n",
      "645/645 [==============================] - 1s 789us/step - loss: 0.5939 - val_loss: 0.5938\n",
      "Epoch 28/1000\n",
      "645/645 [==============================] - 0s 764us/step - loss: 0.5938 - val_loss: 0.5938\n",
      "Epoch 29/1000\n",
      "645/645 [==============================] - 0s 769us/step - loss: 0.5938 - val_loss: 0.5938\n",
      "Epoch 30/1000\n",
      "645/645 [==============================] - 1s 798us/step - loss: 0.5938 - val_loss: 0.5938\n",
      "Epoch 31/1000\n",
      "645/645 [==============================] - 1s 812us/step - loss: 0.5938 - val_loss: 0.5938\n",
      "Epoch 32/1000\n",
      "645/645 [==============================] - 0s 772us/step - loss: 0.5938 - val_loss: 0.5940\n",
      "Epoch 33/1000\n",
      "645/645 [==============================] - 1s 836us/step - loss: 0.5938 - val_loss: 0.5938\n",
      "Epoch 34/1000\n",
      "645/645 [==============================] - 1s 785us/step - loss: 0.5938 - val_loss: 0.5938\n",
      "Epoch 35/1000\n",
      "645/645 [==============================] - 0s 755us/step - loss: 0.5938 - val_loss: 0.5937\n",
      "Epoch 36/1000\n",
      "645/645 [==============================] - 1s 777us/step - loss: 0.5938 - val_loss: 0.5938\n",
      "Epoch 37/1000\n",
      "645/645 [==============================] - 0s 771us/step - loss: 0.5938 - val_loss: 0.5938\n",
      "Epoch 38/1000\n",
      "645/645 [==============================] - 0s 771us/step - loss: 0.5938 - val_loss: 0.5937\n",
      "Epoch 39/1000\n",
      "645/645 [==============================] - 0s 762us/step - loss: 0.5938 - val_loss: 0.5938\n",
      "Epoch 40/1000\n",
      "645/645 [==============================] - 1s 794us/step - loss: 0.5938 - val_loss: 0.5937\n",
      "Epoch 41/1000\n",
      "645/645 [==============================] - 1s 782us/step - loss: 0.5938 - val_loss: 0.5937\n",
      "Epoch 42/1000\n",
      "645/645 [==============================] - 1s 809us/step - loss: 0.5937 - val_loss: 0.5937\n",
      "Epoch 43/1000\n",
      "645/645 [==============================] - 0s 758us/step - loss: 0.5938 - val_loss: 0.5937\n",
      "Epoch 44/1000\n",
      "645/645 [==============================] - 1s 790us/step - loss: 0.5938 - val_loss: 0.5939\n",
      "Epoch 45/1000\n",
      "645/645 [==============================] - 0s 759us/step - loss: 0.5938 - val_loss: 0.5937\n",
      "Epoch 46/1000\n",
      "645/645 [==============================] - 1s 780us/step - loss: 0.5938 - val_loss: 0.5937\n",
      "Epoch 47/1000\n",
      "645/645 [==============================] - 1s 787us/step - loss: 0.5938 - val_loss: 0.5937\n",
      "Epoch 48/1000\n",
      "645/645 [==============================] - 0s 764us/step - loss: 0.5938 - val_loss: 0.5937\n",
      "Epoch 49/1000\n",
      "645/645 [==============================] - 1s 785us/step - loss: 0.5938 - val_loss: 0.5937\n",
      "Epoch 50/1000\n",
      "645/645 [==============================] - 0s 747us/step - loss: 0.5937 - val_loss: 0.5938\n",
      "Epoch 51/1000\n",
      "645/645 [==============================] - 0s 750us/step - loss: 0.5938 - val_loss: 0.5937\n",
      "Epoch 52/1000\n",
      "645/645 [==============================] - 0s 772us/step - loss: 0.5937 - val_loss: 0.5937\n",
      "Epoch 53/1000\n",
      "645/645 [==============================] - 0s 765us/step - loss: 0.5938 - val_loss: 0.5938\n",
      "Epoch 54/1000\n",
      "645/645 [==============================] - 0s 767us/step - loss: 0.5938 - val_loss: 0.5938\n",
      "Epoch 55/1000\n",
      "645/645 [==============================] - 0s 762us/step - loss: 0.5937 - val_loss: 0.5937\n",
      "Epoch 56/1000\n",
      "645/645 [==============================] - 1s 782us/step - loss: 0.5937 - val_loss: 0.5938\n",
      "Epoch 57/1000\n",
      "645/645 [==============================] - 1s 828us/step - loss: 0.5937 - val_loss: 0.5937\n",
      "Epoch 58/1000\n",
      "645/645 [==============================] - 1s 846us/step - loss: 0.5937 - val_loss: 0.5937\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "callback = tf.keras.callbacks.EarlyStopping(monitor='val_loss', min_delta=0, patience=10)\n",
    "autoencoder.fit(X, X, epochs=1000, shuffle=True, validation_data=(X, X), verbose=True, callbacks=callback)\n",
    "autoencoder.encoder.trainable = False\n",
    "autoencoder.encoder.trainable"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [],
   "source": [
    "# train_shuffled = train.sample(frac=1)\n",
    "# X_shuffled = train_shuffled.drop(['remaining_cycles'], axis=1)\n",
    "# y = train_shuffled.remaining_cycles\n",
    "y = train.remaining_cycles"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.18864815084096742"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(1-(len(X)-(len(X)-16739))/len(X))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [],
   "source": [
    "dnn = make_fully_connected_model(autoencoder, 'mean_squared_error', 'relu')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/200\n",
      "524/524 [==============================] - 2s 2ms/step - loss: 7278.1138 - val_loss: 2674.4407\n",
      "Epoch 2/200\n",
      "524/524 [==============================] - 1s 2ms/step - loss: 1893.8789 - val_loss: 2626.8767\n",
      "Epoch 3/200\n",
      "524/524 [==============================] - 1s 2ms/step - loss: 1832.4019 - val_loss: 2660.2070\n",
      "Epoch 4/200\n",
      "524/524 [==============================] - 1s 2ms/step - loss: 1769.7224 - val_loss: 2808.4233\n",
      "Epoch 5/200\n",
      "524/524 [==============================] - 1s 2ms/step - loss: 1719.7145 - val_loss: 2845.0103\n",
      "Epoch 6/200\n",
      "524/524 [==============================] - 1s 2ms/step - loss: 1716.2521 - val_loss: 2736.5913\n",
      "Epoch 7/200\n",
      "524/524 [==============================] - 1s 2ms/step - loss: 1714.2373 - val_loss: 2782.4182\n",
      "Epoch 8/200\n",
      "524/524 [==============================] - 1s 2ms/step - loss: 1710.5170 - val_loss: 2614.4263\n",
      "Epoch 9/200\n",
      "524/524 [==============================] - 1s 2ms/step - loss: 1670.0110 - val_loss: 2640.8169\n",
      "Epoch 10/200\n",
      "524/524 [==============================] - 1s 2ms/step - loss: 1671.2395 - val_loss: 2856.2546\n",
      "Epoch 11/200\n",
      "524/524 [==============================] - 1s 2ms/step - loss: 1665.1494 - val_loss: 2719.6948\n",
      "Epoch 12/200\n",
      "524/524 [==============================] - 1s 2ms/step - loss: 1666.6438 - val_loss: 2800.3516\n",
      "Epoch 13/200\n",
      "524/524 [==============================] - 1s 2ms/step - loss: 1653.4049 - val_loss: 2889.2249\n",
      "Epoch 14/200\n",
      "524/524 [==============================] - 1s 2ms/step - loss: 1649.0724 - val_loss: 2638.1091\n",
      "Epoch 15/200\n",
      "524/524 [==============================] - 1s 2ms/step - loss: 1653.8826 - val_loss: 2751.6404\n",
      "Epoch 16/200\n",
      "524/524 [==============================] - 1s 2ms/step - loss: 1626.2393 - val_loss: 2693.3792\n",
      "Epoch 17/200\n",
      "524/524 [==============================] - 1s 2ms/step - loss: 1637.8171 - val_loss: 2867.2119\n",
      "Epoch 18/200\n",
      "524/524 [==============================] - 1s 2ms/step - loss: 1636.0332 - val_loss: 2897.6934\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<keras.callbacks.History at 0x1d2390ef340>"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "callback = tf.keras.callbacks.EarlyStopping(monitor='val_loss', min_delta=0, patience=10)\n",
    "dnn.fit(X, y, validation_split=(1-(len(train)-(len(train)-16739))/len(train)), verbose=1, epochs=200, callbacks=callback)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "test1 = np.array([0, 1, 2, 3])\n",
    "test1.shape[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "WindowsPath('~/ML_Capstone')"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Path('~/ML_Capstone')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Assets written to: ../saved_model/AutoEncoderTestConnected\\assets\n"
     ]
    }
   ],
   "source": [
    "\n",
    "dnn.save('../saved_model/AutoEncoderTestConnected')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Ql144YWSMr3gGzZs0Msvv5yzYNdQznELwbhEOOkuWbGj8tSyABcAAACQL1u3blU4HFZtba3OP/98bdiwQeecc45qa2sVjUa1adOm7LF+v1/3339/tqc1mUxq3759OnTokEKhkN59911deeWVWr58uSuvZbBh/GTHPfvss3rllVe0cOFCnXfeeZozZ478fr8aGhq0YsUKXXnllfr617+uQ4cOndU5biAYlxArHOKSTQAAAEAe2batN954Q1dffbUWL16sDRs2ZIdRb9iwQel0Onvs7/3e72nq1KlKJpN67LHHtGHDhn7DhXsu4+SGSCQzjL6uru6Ux40ePTrn+BMf49VXX9Wrr74q0zQ1ffp0LVq0SFdeeaWqq6t166236t///d/P+pyRNvID2zFsrHBInupJksFfKwAAAJAvPcOl58+fL7/frwsuuCBne4++w6vXrVs34BzahoaGYa725Pbt2ydJGj9+fDb8DqRnHnQoFJKUCfNXXnmlPvKRj6i2tjZ7nG3b2r17t37605/qxRdflNQ7j3ko57iJBFVCrHCzDE+FzGC926UAAAAAJaO5uVkHDhyQ3+/XzTffrKqqKh05ckS7d+/OOa6nN/hkQ5Evuugi1ddnPqt7PJ7hLXoA27ZtU2dnp0zTzF626UTz58/XnDlzJEkbN26UJFmWpVtvvVVXXnmlli1bdsrn6JkvPJRz3EQwLiFWJPONDvOMAQAAgPzq6R2+4oorcu73tXfvXknSsmXLtGTJkmxArq2t1YoVK/SHf/iH2WN9Pt/wFjyAVCqVvUzT8uXLdeedd2aHVXu9Xl1yySW65557JEk7d+7MXp85lUppzZo1kqSbb75Z73vf+7L1e71eXXzxxbrmmmsk9f65DOUcNzHHuIRYkYNyHFvemialtM7tcgAAAICSsW7dOv3e7/1etqd3oDD35JNP6oEHHpDP59Ndd92lj3/840omkwoEApKkWCym7du3a+HChRo7duyI1t/jN7/5jUaPHq0bbrhBl156qS699FJFo1FVVlbK683Ew507d+p73/ueHMfJnvf0009rxowZampq0h133KE77rhD0WhUgUAge+mpd955Ry+88MJZneMWgnEpsVOyO1voMQYAAADyrL29XTt27NC8efO0e/duHTlypN8xe/fu1cMPP6wbb7xRc+bMUXV1tQzDUCgU0rZt2/TrX/9a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",
      "text/plain": [
       "<Figure size 1152x648 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_loss(history)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "82920e9a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "410/410 [==============================] - 0s 620us/step - loss: 3393.8442\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "3393.84423828125"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dnn.evaluate(X_test, y_test, verbose=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8376bd6c",
   "metadata": {},
   "source": [
    "Making predictions with the model. Note that the test data has been scaled from 0 to 1 but not shuffled."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "ae45b4f1",
   "metadata": {},
   "outputs": [],
   "source": [
    "pred = dnn.predict(X_test)\n",
    "pred = np.reshape(pred, -1)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3909f490",
   "metadata": {},
   "source": [
    "As we can see, the model predictions do not exactly match the test dataset. However, the model does seem to underpredict the amount of remaining cycles on average, which is good from a safety standpoint. The magnitude and distribution of the predictions seem to both be smaller than that of the test data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "fd5ea082",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 576x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure()\n",
    "plt.scatter(range(len(y)), y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "21ad17fa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAHGCAYAAAACITPOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAD8zElEQVR4nOy9d3wc1bk+/szMFq1WvUsustyEe+8Fgw1uMrYBGzDNhA4JCdybEH4kX3KTOEBugJBLCy0QCMXYgMHGYGOwacYd996bJNuyLWlVtsz8/tid2ZnZKWdmd6WVdp7Px7Cacs57zpzynrdS3bp142DBggULFixYSCrQrU2ABQsWLFiwYKHlYTEAFixYsGDBQhLCYgAsWLBgwYKFJITFAFiwYMGCBQtJCIsBsGDBggULFpIQFgNgwYIFCxYsJCFsrU2AhcTGggULkJubixdffBFbt26V3EtNTcX//u//orGxEf/93/9tqvx+/frh/vvvxz333KP7bG5uLhYsWIA//vGPOHXqVMT9hx56CD179hT+ZlkW9fX12LZtG5YsWYK6ujpTNCrhkUcewfbt27F06VJUVFSgX79+ePzxx3Xf69GjBxobG3HixAnd9rQljBgxArfddhs++ugjfPHFF4beHTt2LH788Uf4/f6o6dD6Fnx/i8GyLBoaGrBv3z689957qK2tjZoGM1iwYAFWrlyJ1atX6z576623wul04uWXX44bPZ06dcKUKVPQo0cPOBwOVFZWYuXKldi0aVPUZT/00EM4evQoFi9eHANKLUQDiwGwoAu/34+BAwdGMAADBgwARVGtRJUy1qxZg2XLlgEAKIpCTk4ObrnlFvzsZz/Ds88+G5c6V65cia+//pro2f/6r//C888/jxMnTqCmpga/+c1vUF9fHxe6WhIjRoxAVVUVRo0aZYgB6NGjB2666SZs2LAhJgwACZ566ilUVVUBAGiaRklJCebNm4f58+fjH//4R4vQIMfjjz+O5uZmomfff//9uM67fv364c4778SaNWvwj3/8A16vF3379sVtt92GzMxMfPXVV3Gr20LLwlIBWNDFvn370K9fv4hFZ+DAgTh8+HArUaUMr9eL2tpa1NbW4uLFizh8+DCWLVuGXr16ITU1NS51Njc3w+PxGH6P4zjU1taCZdk4UNVyyMjIQHl5OT799FMUFRWhW7duxO+2BgPp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",
      "text/plain": [
       "<Figure size 576x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure()\n",
    "plt.plot(y_test, label='Test Data')\n",
    "plt.plot(pred, label='Model Predictions')\n",
    "plt.xlabel('Count')\n",
    "plt.ylabel('Number of Remaining Cycles')\n",
    "plt.title('Model Predictions vs Actual Remaining Cycles')\n",
    "plt.legend(loc=0, prop={'size':16})\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "fe776ce4",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "R^2 is 0.02430537816306011\n"
     ]
    }
   ],
   "source": [
    "print(f\"R^2 is {r2_score(y_test, pred)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "9cf77d9e31fba3236aefb4748d140888e596bc65dcef8da4aa710fb6056a88b0"
  },
  "kernelspec": {
   "display_name": "Python 3.9.9 64-bit (windows store)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.10"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}