├── Dataset
├── Dataset 1
│ ├── Benign
│ │ └── benign_1500_6_mixing.csv
│ ├── README.md
│ ├── Trojan
│ │ ├── AhMyth_wireshark_1500.csv
│ │ ├── AndroidRAT_wireshark_1500.csv
│ │ ├── AndroidTester_wireshark_1500.csv
│ │ ├── Droidjack_wireshark_1500.csv
│ │ ├── Hawkshaw_wireshark_1500.csv
│ │ ├── Spymax_wireshark_1500.csv
│ │ └── trojan_1500_6.csv
│ └── benign_trojan_18000_model_1_transformed.csv
└── Dataset 2
│ ├── README.md
│ ├── benign
│ └── benign_75_6_or_150_3_mixing.csv
│ └── trojan
│ ├── AhMyth_75.csv
│ ├── AndroidRAT_75.csv
│ ├── AndroidTester_75.csv
│ ├── DroidJack_75.csv
│ ├── HawkShaw_75.csv
│ └── SpyMax_75.csv
├── README.md
├── Remote Access Trojan Detection On Android Based On Network Traffic Observation Using Machine Learning.pdf
└── Testing Scratch
├── Dataset 1
├── Decision Tree
│ ├── Decision Tree Scratch.ipynb
│ ├── Decision Trees - Model 1 - 2021.rmp
│ ├── DecisionTreeClassifier with sklearn - Dataset 1 - testingv01.ipynb
│ ├── DecisionTreeClassifier with sklearn - Dataset 1 - testingv02.ipynb
│ ├── DecisionTreeClassifier with sklearn - Dataset 1 - testingv03.ipynb
│ └── Images
│ │ ├── Decision Tree - RapidMiner.PNG
│ │ ├── Decision Tree Result - Python (Jupyter) vs RapidMiner.PNG
│ │ ├── imagename.png
│ │ ├── imagenamev02.png
│ │ └── imagenamev03.png
├── Naive Bayes
│ ├── Images
│ │ ├── Naive Bayes - Rapid Miner.PNG
│ │ └── Naive Bayes Result - Python (Jupyter) vs RapidMiner.PNG
│ ├── Naive Bayes - Model 1 - 2021.rmp
│ ├── NaiveBayesClassifier with sklearn - Dataset 1 - testingv01.ipynb
│ ├── NaiveBayesClassifier with sklearn - Dataset 1 - testingv02.ipynb
│ └── NaiveBayesClassifier with sklearn - Dataset 1 - testingv03.ipynb
├── README.md
├── Random Forest
│ ├── Images
│ │ ├── Random Forest - Rapid Miner.PNG
│ │ └── Random Forest Result - Python (Jupyter) vs RapidMiner.PNG
│ ├── Random Forest - Model 1 - 2021.rmp
│ ├── RandomForestClassifier with sklearn - Dataset 1 - testingv01.ipynb
│ ├── RandomForestClassifier with sklearn - Dataset 1 - testingv02.ipynb
│ └── RandomForestClassifier with sklearn - Dataset 1 - testingv03.ipynb
├── testingv01.csv
├── testingv02.csv
├── testingv03.csv
└── training.csv
└── Dataset 2
├── Decision Tree
├── DecisionTreeClassifier with sklearn - Dataset 1 - testingv01.ipynb
├── DecisionTreeClassifier with sklearn - Dataset 1 - testingv02.ipynb
├── DecisionTreeClassifier with sklearn - Dataset 1 - testingv03.ipynb
└── Images
│ ├── Decision Tree Result dataset 2- Python (Jupyter) vs RapidMiner.PNG
│ ├── RapidMiner Process Model.PNG
│ ├── imagename01.png
│ ├── imagename02.png
│ └── imagename03.png
├── Naive Bayes
├── Images
│ ├── Naive Bayes result dataset2 - Python (Jupyter) vs RapidMiner.png
│ └── RapidMiner Naive Bayes Process Model.PNG
├── NaiveBayesClassifier with sklearn - Dataset 1 - testingv01.ipynb
├── NaiveBayesClassifier with sklearn - Dataset 1 - testingv02.ipynb
└── NaiveBayesClassifier with sklearn - Dataset 1 - testingv03.ipynb
├── README.md
├── Random Forest
├── Images
│ ├── Random Forest result dataset 2 Python (Jupyter) vs RapidMiner.PNG
│ └── RapidMiner Random Forest Model.PNG
├── RandomForestClassifier with sklearn - Dataset 1 - testingv01.ipynb
├── RandomForestClassifier with sklearn - Dataset 1 - testingv02.ipynb
└── RandomForestClassifier with sklearn - Dataset 1 - testingv03.ipynb
├── testingv1.csv
├── testingv2.csv
├── testingv3.csv
└── training.csv
/Dataset/Dataset 1/README.md:
--------------------------------------------------------------------------------
1 | # csv
2 | all csv file contains network traffic packet
3 |
4 | benign_trojan_18000_model_1_transformed.csv
5 |
6 | # ==== Protocol ====
7 |
8 | - SMPP = 9
9 | - GQUIC = 8
10 | - KNXnet/IP = 7
11 | - WebSocket = 6
12 | - ICMP = 5
13 | - HTTP = 4
14 | - TLSv1.3 = 3
15 | - TLSv1.2 = 2
16 | - tcp = 1
17 | - udp = 0
18 |
19 | # ==== Type ====
20 |
21 | - out 0
22 | - in 1
23 |
24 | # ===== LABEL =====
25 |
26 | - Benign 0
27 | - Trojan 1
28 |
29 | # Source,Destination,Protocol,Length,Type,Duration,Label
30 |
31 | - Source is port packet source
32 | - Destination is port packet Destination
33 | - Protocol
34 | - Length
35 | - Type based on IP, if source local to external destination means "out"
36 | - Duration is based on time current packet to previous packet (from A to B)
37 |
--------------------------------------------------------------------------------
/Dataset/Dataset 2/README.md:
--------------------------------------------------------------------------------
1 | # csv
2 | all csv file contains network traffic per 20packet to 1 row
3 |
4 | # example
5 | 20 row AhMyth traffic packet transform to 1 row package, means 75 row package = 1500 row packet
--------------------------------------------------------------------------------
/Dataset/Dataset 2/trojan/AhMyth_75.csv:
--------------------------------------------------------------------------------
1 | total_length_out,total_length_in,avg_packet_length_out,avg_packet_length_in,avg_duration_out,avg_duration_in,total_duration
2 | 2217,993,158.3571429,165.5,0.534560643,0.5021735,10.49689
3 | 704,757,64,84.11111111,4.531191909,5.064115667,95.420152
4 | 555,532,55.5,53.2,10.8981632,4.3171529,152.153161
5 | 742,378,53,63,6.5037385,3.231654833,110.442268
6 | 6001,1556,545.5454545,172.8888889,1.026273818,6.662169889,71.248541
7 | 2153,1045,165.6153846,149.2857143,0.118072231,0.058974,1.947757
8 | 555,812,55.5,81.2,7.4964943,4.11955,116.160443
9 | 633,758,63.3,68.90909091,6.0886212,3.545336,89.667757
10 | 4436,471,369.6666667,58.875,6.266031917,2.392116875,94.329318
11 | 853,217,53.3125,54.25,4.929131875,3.90058925,94.468467
12 | 4570,508,380.8333333,63.5,4.184390417,4.225012625,84.012786
13 | 1562,641,173.5555556,58.27272727,8.441892444,6.549571636,148.02232
14 | 6008,1622,546.1818182,180.2222222,2.611064818,0.210755222,30.61851
15 | 4792,540,368.6153846,77.14285714,4.398488,4.701446,90.090466
16 | 18200,364,1400,52,0.000222692,0.000210286,0.004367
17 | 18200,364,1400,52,0.000252231,0.000224857,0.004853
18 | 19600,312,1400,52,0.000277786,0.000137833,0.004716
19 | 8792,471,799.2727273,52.33333333,0.513871727,0.149289667,6.996196
20 | 18200,364,1400,52,0.000197,0.000245571,0.00428
21 | 18200,364,1400,52,0.000232538,0.000224429,0.004594
22 | 18200,364,1400,52,0.000162846,0.000385714,0.004817
23 | 19600,312,1400,52,0.000189071,0.000329833,0.004626
24 | 7316,468,665.0909091,52,0.699906182,0.000281667,7.701503
25 | 18196,364,1399.692308,52,0.000237,0.436016571,3.055197
26 | 19600,312,1400,52,0.000253,0.0002155,0.004835
27 | 18200,364,1400,52,0.000176615,0.000352571,0.004764
28 | 18200,364,1400,52,0.000200692,0.000311,0.004786
29 | 7160,468,716,52,0.7576526,0.231896667,9.663731
30 | 16952,364,1304,52,0.000151385,0.000364286,0.004518
31 | 19600,312,1400,52,0.000179429,0.000379,0.004786
32 | 18200,364,1400,52,0.000222846,0.000268714,0.004778
33 | 16800,364,1400,52,0.000241083,0.000228286,0.004536
34 | 16852,364,1296.307692,52,0.016553769,0.055523857,0.603866
35 | 18196,364,1399.692308,52,0.000181615,0.000298571,0.004451
36 | 19600,312,1400,52,0.000215643,0.000323667,0.004961
37 | 18200,364,1400,52,0.000232462,0.000282,0.004996
38 | 15524,364,1194.153846,52,0.016619231,0.010003,0.286071
39 | 18180,364,1398.461538,52,0.000246846,0.000194143,0.004568
40 | 18200,364,1400,52,0.000156846,0.000371,0.004636
41 | 18200,364,1400,52,0.000162923,0.000437714,0.005182
42 | 12744,416,1062,52,0.137838167,0.025451875,1.857673
43 | 12756,364,1063,52,1.10413125,0.034432571,13.49066
44 | 18200,364,1400,52,0.000217385,0.000244,0.004534
45 | 18200,364,1400,52,0.000222923,0.000279429,0.004854
46 | 19600,312,1400,52,0.000182929,0.000357833,0.004708
47 | 8680,468,789.0909091,52,0.289482727,0.000323111,3.187218
48 | 16852,364,1296.307692,52,0.262063769,0.492147429,6.851861
49 | 18180,364,1398.461538,52,0.000208615,0.000332,0.005036
50 | 18200,364,1400,52,0.000236462,0.000286571,0.00508
51 | 19600,312,1400,52,0.000176143,0.0003105,0.00508
52 | 5856,532,585.6,53.2,1.611882,1.0054566,26.173386
53 | 19600,312,1400,52,0.000301929,0.000199833,0.005426
54 | 16880,364,1298.461538,52,0.000218692,0.000189,0.004166
55 | 19600,312,1400,52,0.000199071,0.000360833,0.004952
56 | 18200,364,1400,52,0.000227769,0.000210714,0.004436
57 | 4824,492,438.5454545,54.66666667,0.670273636,0.606590111,12.832321
58 | 1660,496,150.9090909,55.11111111,3.670141182,0.769408111,47.296226
59 | 2333,735,179.4615385,105,3.873147769,1.051354,57.710399
60 | 1824,2396,182.4,239.6,2.4950565,4.5186617,70.137182
61 | 1182,641,118.2,64.1,5.0205738,3.4850297,85.056035
62 | 1080,0,54,0,0.18626495,0,3.725299
63 | 1120,0,56,0,1.34162985,0,26.832597
64 | 1308,112,72.66666667,56,2.736482667,0.1291545,49.514997
65 | 1630,1076,125.3846154,179.3333333,1.920484769,0.6198325,28.693083
66 | 605,565,60.5,56.5,5.0509084,5.5872811,106.381895
67 | 614,483,55.81818182,53.66666667,13.66482609,1.591593667,164.63743
68 | 826,299,55.06666667,59.8,4.0892242,3.7293468,79.985097
69 | 666,434,55.5,54.25,10.60122108,2.32946075,145.850339
70 | 631,597,57.36363636,66.33333333,10.59965909,3.117168556,144.650767
71 | 838,504,69.83333333,63,6.361316333,6.74210575,130.272642
72 | 752,494,62.66666667,61.75,6.73596875,2.417403375,100.170852
73 | 555,538,55.5,53.8,12.5173646,2.2065608,147.239254
74 | 666,431,55.5,53.875,12.51754408,3.129164375,175.243844
75 | 695,467,57.91666667,58.375,8.974165167,2.183049625,125.154379
76 |
--------------------------------------------------------------------------------
/Dataset/Dataset 2/trojan/AndroidRAT_75.csv:
--------------------------------------------------------------------------------
1 | total_length_out,total_length_in,avg_packet_length_out,avg_packet_length_in,avg_duration_out,avg_duration_in,total_duration
2 | 2445,621,222.2727273,69,0.026909818,42.96524767,386.983237
3 | 11562,4157,1051.090909,461.8888889,0.012191091,13.37589489,120.517156
4 | 8841,513,803.7272727,57,0.000461727,10.606716,95.465523
5 | 15747,334,1124.785714,55.66666667,0.011220357,11.0531495,66.475982
6 | 15371,479,1280.916667,59.875,0.00067925,10.41668138,83.341602
7 | 18200,364,1400,52,0.000239385,0.000242714,0.004811
8 | 19600,312,1400,52,0.000203071,0.000347833,0.00493
9 | 18200,364,1400,52,0.000174462,0.000363571,0.004813
10 | 16800,364,1400,52,0.000247,0.000297,0.00509
11 | 17484,364,1344.923077,52,0.000331538,0.013282143,0.097285
12 | 16800,364,1400,52,0.000311583,0.000227571,0.005381
13 | 18200,364,1400,52,0.000334154,0.000243286,0.006047
14 | 16800,364,1400,52,0.0003445,0.000227714,0.006144
15 | 11589,544,1158.9,60.44444444,0.0007427,6.858406778,61.733088
16 | 1537,821,170.7777778,74.63636364,0.007143444,35.71313564,392.908783
17 | 961,697,96.1,58.08333333,6.6972939,10.61556383,130.030605
18 | 891,520,99,52,0.800173667,0.2063735,9.265298
19 | 990,520,99,52,0.8007184,0.2070737,10.077921
20 | 990,520,99,52,0.7997319,0.2080924,10.078243
21 | 990,520,99,52,0.8947421,0.2052349,10.99977
22 | 990,520,99,52,0.8059514,0.2112545,10.172059
23 | 990,520,99,52,0.7892205,0.2123557,10.015762
24 | 990,520,99,52,0.7935952,0.2110402,10.046354
25 | 6058,1038,550.7272727,115.3333333,0.240070545,13.79114133,126.970269
26 | 13724,364,1055.692308,52,0.049071385,0.000714286,0.642928
27 | 14378,312,1027,52,0.045750786,0.0007815,0.645798
28 | 12978,364,998.3076923,52,0.043492077,0.000599286,0.569592
29 | 13724,364,1055.692308,52,0.048558538,0.000698714,0.636152
30 | 14378,312,1027,52,0.046092143,0.000684167,0.649395
31 | 12978,364,998.3076923,52,0.043372385,0.000674857,0.568565
32 | 13724,364,1055.692308,52,0.049418538,0.000599143,0.646635
33 | 14378,312,1027,52,0.046040286,0.000637833,0.648391
34 | 12978,364,998.3076923,52,0.042415692,0.000593857,0.555561
35 | 14378,13724,1027,1055.692308,0.046843357,0.050381,0.659358
36 | 14378,312,1027,52,0.046099857,0.000636333,0.649216
37 | 12978,364,998.3076923,52,0.042718,0.000806429,0.560979
38 | 13724,364,1055.692308,52,0.049306769,0.000785143,0.646484
39 | 14378,312,1027,52,0.045566143,0.000666167,0.641923
40 | 12978,364,998.3076923,52,0.042864538,0.000580857,0.561305
41 | 13724,364,1055.692308,52,0.049315077,0.000611571,0.645377
42 | 14378,312,1027,52,0.046574286,0.000616333,0.655738
43 | 13724,364,1055.692308,52,0.048424231,0.000557714,0.633419
44 | 14378,312,1027,52,0.045951286,0.000695333,0.64749
45 | 12978,364,998.3076923,52,0.042386538,0.000599857,0.555224
46 | 13724,364,1055.692308,52,0.049694154,0.000769,0.651407
47 | 14378,312,1027,52,0.047501429,0.000589833,0.668559
48 | 12978,364,998.3076923,52,0.040882231,0.000599286,0.535664
49 | 13724,364,1055.692308,52,0.051130154,0.000607571,0.668945
50 | 14378,312,1027,52,0.046318286,0.000606333,0.652094
51 | 12978,364,998.3076923,52,0.042541769,0.00061,0.557313
52 | 13724,364,1055.692308,52,0.049003154,0.000707143,0.641126
53 | 14378,312,1027,52,0.0463765,0.000731667,0.653661
54 | 12978,364,998.3076923,52,0.041508769,0.00058,0.543674
55 | 13724,364,1055.692308,52,0.050220385,0.000607857,0.65712
56 | 14378,312,1027,52,0.046739071,0.000577167,0.65781
57 | 12978,364,998.3076923,52,0.041349846,0.000581,0.541615
58 | 13724,364,1055.692308,52,0.050166846,0.000685143,0.656965
59 | 14378,312,1027,52,0.046899929,0.0005995,0.660196
60 | 12978,364,998.3076923,52,0.041375231,0.000697571,0.542761
61 | 14378,364,1027,52,0.047188571,0.000697571,0.542761
62 | 14378,312,1027,52,0.044743786,0.000907,0.631855
63 | 12978,364,998.3076923,52,0.044147692,0.000621571,0.578271
64 | 13724,364,1055.692308,52,0.048606308,0.000622143,0.636237
65 | 14378,312,1027,52,0.046374429,0.000574667,0.65269
66 | 12978,364,998.3076923,52,0.042167692,0.000655,0.552765
67 | 12324,312,1027,52,0.0475185,0.000622,0.665411
68 | 14378,312,1027,52,0.045990143,0.000576667,0.647322
69 | 12978,364,998.3076923,52,0.042159846,0.000544,0.551886
70 | 13724,364,1055.692308,52,0.049094923,0.000575286,0.642261
71 | 14378,312,1027,52,0.047311357,0.000668833,0.666372
72 | 12978,364,998.3076923,52,0.042836154,0.00067,0.56156
73 | 13724,364,1055.692308,52,0.048844538,0.000763143,0.640321
74 | 14378,312,1027,52,0.046235929,0.000714833,0.651592
75 | 14378,364,1027,52,0.045908786,0.000657143,0.647323
76 |
--------------------------------------------------------------------------------
/Dataset/Dataset 2/trojan/AndroidTester_75.csv:
--------------------------------------------------------------------------------
1 | total_length_out,total_length_in,avg_packet_length_out,avg_packet_length_in,avg_duration_out,avg_duration_in,total_duration
2 | 9231,1515,769.25,189.375,0.360779583,0.267285625,6.46764
3 | 684,624,76,56.72727273,0.210657,3.929349818,45.118761
4 | 3643,496,331.1818182,55.11111111,1.481594273,3.530327889,48.070488
5 | 944,577,94.4,57.7,2.2006779,2.0266149,42.272928
6 | 924,594,92.4,59.4,2.1771128,2.0055671,41.826799
7 | 808,594,80.8,59.4,1.3637388,3.4389643,48.027031
8 | 1061,625,106.1,62.5,1.6759973,1.4729539,31.489512
9 | 7009,582,637.1818182,64.66666667,0.932833273,1.599469667,24.656393
10 | 8510,589,773.6363636,65.44444444,1.053315727,1.801155667,27.796874
11 | 11274,582,867.2307692,83.14285714,0.071165231,0.480554143,4.289027
12 | 13291,482,1022.384615,68.85714286,0.072213308,0.126375429,1.823401
13 | 13291,389,1022.384615,55.57142857,0.224917923,0.439618286,6.001261
14 | 3591,531,359.1,59,2.2110927,1.377628444,34.773108
15 | 818,645,90.88888889,58.63636364,1.803340222,1.901697727,37.148737
16 | 1229,539,111.7272727,59.88888889,3.160890364,1.113644333,44.792593
17 | 1300,620,130,68.88888889,0.4842616,2.707477444,29.422324
18 | 772,606,77.2,60.6,2.4744696,2.112631,45.871006
19 | 880,650,88,65,2.5332566,0.4858034,30.1906
20 | 894,589,89.4,58.9,0.8219715,3.3576526,41.796241
21 | 6165,1710,685,155.4545455,1.907112333,0.478253455,22.424799
22 | 3666,489,333.2727273,54.33333333,1.918789273,0.499852111,25.605351
23 | 828,581,75.27272727,64.55555556,1.772894818,1.895952889,36.565419
24 | 669,686,74.33333333,62.36363636,2.773910778,1.761794364,44.344935
25 | 3928,437,327.3333333,54.625,0.98899925,2.479107375,31.70085
26 | 3643,496,331.1818182,55.11111111,2.491597182,2.937299111,53.843261
27 | 4924,605,492.4,60.5,1.0244591,0.8693194,18.937785
28 | 1003,577,91.18181818,64.11111111,0.750321455,2.673619222,32.316109
29 | 710,561,71,56.1,1.3741465,4.387906,57.620525
30 | 700,555,70,55.5,2.7107517,2.2565212,49.672729
31 | 4983,496,453,55.11111111,2.180034091,3.128993667,52.141318
32 | 2436,502,221.4545455,55.77777778,1.598198545,2.421099,39.370075
33 | 779,561,77.9,56.1,1.3426758,2.66267,40.053458
34 | 700,597,70,59.7,1.8277076,4.069385,58.970926
35 | 814,561,81.4,56.1,2.7985368,1.2618496,40.603864
36 | 700,555,70,55.5,2.5712553,3.9395091,65.107644
37 | 793,614,79.3,61.4,1.0604076,2.868772,39.291796
38 | 3617,1013,361.7,112.5555556,2.8431206,1.441117,41.401299
39 | 3222,589,402.75,58.9,0.859088375,1.2810868,19.794431
40 | 700,555,70,55.5,1.4860371,5.0811005,65.671376
41 | 666,561,74,56.1,2.166566111,2.0342376,40.617301
42 | 700,555,70,55.5,4.0626804,1.9279775,59.906579
43 | 711,567,71.1,56.7,1.9718562,2.7194815,46.913377
44 | 612,562,68,56.2,3.375359889,3.0589176,61.069897
45 | 3784,489,344,54.33333333,2.609163273,1.708903111,44.080924
46 | 928,593,103.1111111,53.90909091,2.150967778,0.776135364,27.896199
47 | 1109,482,100.8181818,53.55555556,2.315458636,0.371138889,28.810295
48 | 1226,482,111.4545455,53.55555556,3.919056091,0.629411,48.774316
49 | 6915,334,493.9285714,55.66666667,9.394775857,2.011904167,143.598287
50 | 720,632,80,57.45454545,1.580340222,3.948873,57.660665
51 | 898,502,81.63636364,55.77777778,0.863104364,4.157749667,46.913895
52 | 812,563,73.81818182,62.55555556,1.908398455,1.516605222,34.64183
53 | 9978,4259,1108.666667,387.1818182,0.021670667,0.041039364,0.646469
54 | 14057,1936,1277.909091,276.5714286,0.000369182,0.000180714,0.005436
55 | 16908,296,1207.714286,59.2,0.000263643,0.0000646,0.004015
56 | 16800,416,1400,52,0.00030475,0.00023425,0.005531
57 | 21000,260,1400,52,9.26667E-05,0.0001938,0.002359
58 | 16112,416,1342.666667,52,0.006949333,0.000110625,0.084277
59 | 19600,312,1400,52,9.07857E-05,0.0001665,0.00227
60 | 18200,364,1400,52,0.000145538,0.000165429,0.00305
61 | 14270,440,1189.166667,55,0.007531583,0.00011625,0.091309
62 | 21000,260,1400,52,0.000220933,0.0001248,0.003938
63 | 18200,364,1400,52,7.10769E-05,0.000096,0.001596
64 | 17038,364,1310.615385,52,0.007216077,0.000156429,0.094904
65 | 18200,364,1400,52,0.000112923,0.000143,0.002469
66 | 19600,312,1400,52,9.40714E-05,0.0001125,0.001992
67 | 18681,312,1334.357143,52,0.006832214,0.000259,0.097205
68 | 19600,312,1400,52,0.000526071,0.000170167,0.008386
69 | 22400,208,1400,52,0.000123938,0.002386,0.002386
70 | 17350,364,1334.615385,52,0.008385538,0.000151857,0.110075
71 | 19600,312,1400,52,0.000210714,0.000222833,0.004287
72 | 19600,312,1400,52,9.24286E-05,0.000155167,0.002225
73 | 16104,416,1342,52,0.000160417,0.000143,0.003069
74 | 23800,156,1400,52,0.007830941,0.000171,0.133639
75 | 19600,312,1400,52,0.0001255,0.000169667,0.002775
76 | 19202,312,1371.571429,52,0.000118643,0.000068,0.002069
77 |
--------------------------------------------------------------------------------
/Dataset/Dataset 2/trojan/DroidJack_75.csv:
--------------------------------------------------------------------------------
1 | total_length_out,total_length_in,avg_packet_length_out,avg_packet_length_in,avg_duration_out,avg_duration_in,total_duration
2 | 604,423,60.4,42.3,0.6278833,0.8051764,14.330597
3 | 549,340,45.75,42.5,2.63028075,0.162460625,32.863054
4 | 521,412,47.36363636,45.77777778,1.568119091,0.415189222,20.986013
5 | 556,345,46.33333333,43.125,0.774183833,2.8205075,31.854266
6 | 447,432,44.7,43.2,0.9567922,2.3155305,32.723227
7 | 574,424,47.83333333,53,0.330387,1.794419125,18.319997
8 | 517,418,47,46.44444444,0.337598182,0.931010556,12.092675
9 | 592,435,53.81818182,48.33333333,0.845618909,0.917920667,17.563094
10 | 1923,916,160.25,114.5,2.152666333,0.320335875,28.394683
11 | 12674,4712,1267.4,471.2,0.0012323,0.0001614,0.013937
12 | 452,452,50.22222222,50.22222222,0.000397889,0.000397889,0.009505
13 | 12784,368,1065.333333,46,0.001068083,0.000366375,0.015748
14 | 464,420,46.4,42,0.4963755,2.6102024,31.065779
15 | 486,527,48.6,52.7,0.5307111,2.7305077,32.612188
16 | 549,340,45.75,42.5,1.37366525,2.851924125,39.299376
17 | 504,385,45.81818182,42.77777778,0.393327545,3.127368889,32.472923
18 | 560,307,46.66666667,43.85714286,1.347795917,1.161245143,29.955233
19 | 474,425,47.4,42.5,1.5565769,2.4944899,40.510668
20 | 589,317,45.30769231,45.28571429,1.861570308,2.313324429,40.393685
21 | 531,411,48.27272727,45.66666667,1.367365455,1.029569333,24.307144
22 | 469,385,46.9,42.77777778,0.6075137,2.957443667,32.692963
23 | 611,305,47,43.57142857,2.790732308,1.709250571,48.244274
24 | 447,425,44.7,42.5,0.4051304,2.8595129,32.646433
25 | 8672,370,788.3636364,46.25,0.795775273,0.17183025,10.128547
26 | 16904,280,1300.307692,40,0.002118846,0.000533571,0.03128
27 | 494,385,44.90909091,42.77777778,0.253200455,3.152892444,31.161237
28 | 509,385,46.27272727,42.77777778,2.030481818,2.012164778,40.444783
29 | 584,380,48.66666667,47.5,0.904711417,2.573834875,31.447216
30 | 18272,240,1305.142857,40,0.036395643,0.000689667,0.513677
31 | 7376,323,614.6666667,46.14285714,1.214627667,0.597650714,18.75963
32 | 12877,252,919.7857143,42,0.1103275,0.008587333,1.596109
33 | 12789,325,1065.75,40.625,0.012644917,0.815204125,6.673372
34 | 509,385,46.27272727,42.77777778,0.991480364,3.281982222,40.444124
35 | 514,392,46.72727273,43.55555556,2.268802273,1.730107,40.527788
36 | 373,418,46.625,46.44444444,1.023252625,1.597824333,32.499242
37 | 9973,4176,997.3,417.6,0.1210324,0.0072081,1.282405
38 | 11286,1568,1128.6,156.8,0.0108419,0.0004051,0.11247
39 | 12725,368,1060.416667,46,0.002174083,0.000471625,0.029862
40 | 4618,375,419.8181818,41.66666667,1.135488182,1.166562222,22.98943
41 | 474,425,47.4,42.5,0.6585679,3.4096893,40.682572
42 | 520,436,47.27272727,48.44444444,0.676106909,1.133404556,17.637817
43 | 469,425,46.9,42.5,1.8039247,2.2452726,40.491973
44 | 514,397,46.72727273,44.11111111,1.575110182,2.564276778,40.404703
45 | 4562,460,456.2,46,0.3547376,2.6750203,30.297579
46 | 16872,280,1297.846154,40,0.002590769,0.000374,0.036298
47 | 4638,375,421.6363636,41.66666667,0.471202545,1.977509889,22.980817
48 | 520,415,47.27272727,46.11111111,0.290143727,2.105494889,22.141035
49 | 407,566,45.22222222,51.45454545,0.883423667,2.125143636,31.327393
50 | 579,347,48.25,43.375,0.408606333,1.299145625,15.296441
51 | 561,347,46.75,43.375,0.705417,2.50517425,28.506398
52 | 529,424,48.09090909,47.11111111,0.349791909,2.01566,21.988651
53 | 442,415,44.2,41.5,0.3843969,1.953759,23.381559
54 | 10089,398,840.75,49.75,0.151534417,0.600073,6.618997
55 | 7344,330,612,41.25,0.305987917,1.43025625,15.113905
56 | 442,441,44.2,49,1.0502016,2.444317889,32.505294
57 | 582,342,48.5,42.75,0.896522917,1.227278375,20.576502
58 | 559,444,50.81818182,49.33333333,0.629939091,1.482922556,20.275633
59 | 16912,240,1208,40,0.010454286,0.000471167,0.149187
60 | 514,380,46.72727273,42.22222222,0.564592364,2.802134778,31.429729
61 | 1902,427,172.9090909,47.44444444,0.196882364,1.972188444,19.915402
62 | 15616,240,1115.428571,40,0.001663,0.000615167,0.026973
63 | 424,477,47.11111111,43.36363636,0.796911889,2.901721,39.091138
64 | 527,428,47.90909091,47.55555556,0.304932091,1.780674222,19.380321
65 | 16912,240,1208,40,0.029941214,0.000561333,0.422545
66 | 490,383,49,42.55555556,4.9714792,0.709038667,56.100564
67 | 1878,957,170.7272727,106.3333333,0.747293182,2.118064222,27.282803
68 | 12674,4712,1267.4,471.2,0.0010817,0.00014,0.012217
69 | 11326,444,1029.636364,49.33333333,0.001054455,0.000265,0.013984
70 | 4539,477,453.9,47.7,0.3307535,0.3713376,7.020911
71 | 492,392,44.72727273,43.55555556,1.325905091,2.026035778,32.819278
72 | 580,452,52.72727273,50.22222222,0.375975455,0.405636667,7.78646
73 | 527,433,47.90909091,48.11111111,0.127961273,1.465372556,14.595927
74 | 518,488,51.8,48.8,0.2271266,0.8433118,10.704384
75 | 513,421,46.63636364,46.77777778,0.687467818,0.529674,12.329212
76 | 549,340,45.75,42.5,1.547604417,2.61769375,39.512803
77 |
--------------------------------------------------------------------------------
/Dataset/Dataset 2/trojan/HawkShaw_75.csv:
--------------------------------------------------------------------------------
1 | total_length_out,total_length_in,avg_packet_length_out,avg_packet_length_in,avg_duration_out,avg_duration_in,total_duration
2 | 1338,3769,148.6666667,418.7777778,0.015766,0.037854,0.596236
3 | 2781,1671,309,151.9090909,0.007215,0.021438273,0.300753
4 | 1567,1125,195.875,93.75,2.593616,0.034014333,21.157102
5 | 2065,602,206.5,66.88888889,0.019814,0.004838333,0.293994
6 | 2986,520,298.6,52,0.003246,0.0006183,0.038639
7 | 2798,1986,559.6,132.4,0.015186,0.005378867,0.156615
8 | 2853,1342,407.5714286,111.8333333,0.004111,0.002159417,0.119335
9 | 1796,974,199.5555556,88.54545455,0.021278,0.015513364,0.362146
10 | 2036,1041,226.2222222,94.63636364,0.014209,0.009590273,0.233374
11 | 1184,1093,148,91.08333333,0.077522,0.014618083,0.795596
12 | 19600,312,1400,52,0.000438,0.000223833,0.007481
13 | 19600,312,1400,52,0.000113,0.000211333,0.002849
14 | 16800,416,1400,52,0.000271,0.000250625,0.00526
15 | 21000,260,1400,52,0.000122,0.00231,0.00231
16 | 18200,364,1400,52,0.000267,0.000229,0.005072
17 | 19600,312,1400,52,0.000158,0.0001345,0.003025
18 | 16800,416,1400,52,0.000124,0.000134625,0.00257
19 | 19600,312,1400,52,0.000100,0.00012,0.002126
20 | 18200,312,1400,52,0.000178,0.000162,0.003368
21 | 18200,364,1400,52,0.000125,0.000211714,0.003111
22 | 21000,260,1400,52,0.000121,0.0001416,0.002521
23 | 18200,364,1400,52,0.000091,0.000147571,0.002211
24 | 18200,364,1400,52,0.000129,0.00018,0.002932
25 | 19600,312,1400,52,0.000093,0.000139667,0.002144
26 | 18200,364,1400,52,0.000139,0.000101857,0.002517
27 | 16800,364,1400,52,0.000418,0.000220571,0.006589
28 | 18200,364,1400,52,0.000816,0.000856714,0.016609
29 | 21000,260,1400,52,0.000056,0.0001496,0.001587
30 | 5374,654,597.1111111,65.4,0.015354,0.023884,0.793215
31 | 1902,1617,237.75,134.75,0.161324,0.028680083,1.634756
32 | 2088,922,208.8,92.2,0.502505,0.0485692,5.510743
33 | 1747,855,174.7,85.5,1.811875,0.0450097,18.568849
34 | 1345,855,134.5,85.5,0.750307,0.0464091,7.967163
35 | 1025,653,102.5,65.3,25.919710,12.0291471,379.488571
36 | 2419,4186,268.7777778,380.5454545,0.041541,0.042222909,0.838322
37 | 6860,1318,762.2222222,119.8181818,0.019397,0.020134545,0.396052
38 | 989,2616,164.8333333,186.8571429,0.080633,0.010938429,0.636936
39 | 1215,860,121.5,86,10.065422,0.0469063,101.12328
40 | 1589,860,158.9,86,0.071415,0.0576619,1.290768
41 | 1614,860,161.4,86,0.048999,0.0576762,1.066747
42 | 1639,860,163.9,86,0.064626,0.0340103,0.986367
43 | 1895,792,189.5,79.2,0.032678,0.0463268,0.790049
44 | 1458,928,145.8,92.8,0.047416,0.055569,1.029849
45 | 1714,860,171.4,86,0.187834,0.0577943,2.456282
46 | 1252,822,139.1111111,74.72727273,6.841962,0.041854,62.038049
47 | 1217,3757,110.6363636,417.4444444,3.064854,0.039054667,34.064883
48 | 2298,1820,255.3333333,165.4545455,7.590469,0.043089182,68.788203
49 | 1028,3864,114.2222222,351.2727273,6.086610,0.035679909,55.171972
50 | 2995,1863,332.7777778,169.3636364,0.015072,0.042623455,0.604502
51 | 1875,792,187.5,79.2,3.570179,0.02908,35.992589
52 | 1795,928,179.5,92.8,0.285265,0.0378509,3.231163
53 | 2057,1963,228.5555556,196.3,4.314500,0.0471139,39.314757
54 | 1964,2271,196.4,227.1,0.181284,0.0235935,2.048776
55 | 2154,980,239.3333333,89.09090909,12.021741,0.085423909,109.135335
56 | 2270,975,227,97.5,0.131224,1.55829,1.55829
57 | 2040,860,204,86,3.346793,0.0350576,33.81851
58 | 2648,740,240.7272727,82.22222222,1.347818,0.012898333,14.942087
59 | 1452,996,145.2,99.6,0.013731,0.0122205,0.259513
60 | 2295,1392,459,92.8,0.012347,0.015879267,0.299922
61 | 2090,844,232.2222222,76.72727273,0.013231,0.011104909,0.241232
62 | 1423,1408,284.6,100.5714286,0.127665,0.025620286,0.998865
63 | 1641,860,164.1,86,4.060108,0.0475922,41.076997
64 | 1908,912,212,82.90909091,13.096996,0.032658091,118.232202
65 | 2175,1220,310.7142857,93.84615385,0.027279,0.018778077,0.435065
66 | 1977,1152,282.4285714,88.61538462,0.029776,0.018739846,0.452048
67 | 1963,1084,280.4285714,83.38461538,0.017568,0.017978615,0.356699
68 | 1567,1100,195.875,91.66666667,0.073538,0.030069667,0.949139
69 | 1625,860,162.5,86,5.902242,0.0590767,59.613187
70 | 1937,860,193.7,86,6.068196,0.0355086,61.037045
71 | 2227,860,222.7,86,0.206149,0.0237078,2.298564
72 | 2028,860,202.8,86,12.344468,0.0688068,124.132743
73 | 3011,724,301.1,72.4,0.026888,0.0038576,0.307453
74 | 932,1184,103.5555556,107.6363636,0.006000,0.004229091,0.100518
75 | 4098,1504,455.3333333,136.7272727,0.026160,0.011338636,0.360161
76 | 1047,1340,174.5,95.71428571,0.015656,0.008912643,0.218713
77 |
--------------------------------------------------------------------------------
/Dataset/Dataset 2/trojan/SpyMax_75.csv:
--------------------------------------------------------------------------------
1 | total_length_out,total_length_in,avg_packet_length_out,avg_packet_length_in,avg_duration_out,avg_duration_in,total_duration
2 | 826,10152,82.6,1015.2,0.12666,0.0217003,1.483603
3 | 468,14104,52,1282.181818,0.000463222,0.001868182,0.024719
4 | 520,13172,52,1317.2,0.0002183,0.0011614,0.013797
5 | 520,13092,52,1309.2,0.0003639,0.0013296,0.016935
6 | 624,9757,52,1219.625,0.003626333,0.00346975,0.071274
7 | 5787,1420,526.0909091,157.7777778,1.000515909,3.711587222,44.40996
8 | 1014,996,101.4,99.6,0.2021121,8.6185294,88.206415
9 | 1228,788,102.3333333,98.5,0.443867583,10.818956,91.878059
10 | 996,974,90.54545455,108.2222222,0.287269091,9.652376,90.031344
11 | 857,1075,85.7,107.5,0.1532421,7.9874633,81.407054
12 | 1263,772,105.25,96.5,0.234897667,6.35791525,53.682094
13 | 990,996,99,99.6,0.1322238,8.7539815,88.862053
14 | 1260,788,105,98.5,0.279665583,10.98897188,91.267762
15 | 988,976,98.8,97.6,0.1109985,7.0384344,71.494329
16 | 1008,902,91.63636364,100.2222222,0.169979364,8.465874667,78.062645
17 | 996,979,90.54545455,108.7777778,0.158102455,9.791487444,89.862514
18 | 1254,882,114,98,0.163565636,8.254633556,76.090924
19 | 1011,1142,101.1,114.2,0.0204721,8.8920615,89.125336
20 | 1275,897,115.9090909,99.66666667,0.130686909,8.191028222,75.15681
21 | 1064,6139,96.72727273,682.1111111,0.080817,3.018422667,28.054791
22 | 608,8715,55.27272727,968.3333333,0.000739455,0.000432222,0.012024
23 | 416,12915,52,1076.25,0.00079075,0.003094167,0.043456
24 | 312,15715,52,1122.5,0.001864167,0.003644071,0.062202
25 | 312,14420,52,1030,0.001584667,0.002784143,0.048486
26 | 364,14315,52,1101.153846,0.001120571,0.004044077,0.060417
27 | 312,15715,52,1122.5,0.001177667,0.002842357,0.046859
28 | 364,13020,52,1001.538462,0.001901286,0.003154385,0.054316
29 | 312,15715,52,1122.5,0.002144,0.003084786,0.056051
30 | 364,14315,52,1101.153846,0.002700429,0.002597538,0.052671
31 | 364,13020,52,1001.538462,0.002321143,0.002335846,0.046614
32 | 312,15715,52,1122.5,0.002924167,0.002739786,0.055902
33 | 364,14315,52,1101.153846,0.002100714,0.002587923,0.048348
34 | 364,13020,52,1001.538462,0.001599429,0.002908231,0.049003
35 | 312,15715,52,1122.5,0.001403833,0.003628214,0.059218
36 | 364,14315,52,1101.153846,0.001497,0.002933231,0.048611
37 | 364,13020,52,1001.538462,0.001539571,0.002925769,0.048812
38 | 15715,15715,1122.5,1122.5,0.003536429,0.003536429,0.058592
39 | 766,4237,85.11111111,385.1818182,0.888631556,2.110949182,31.218125
40 | 1228,788,102.3333333,98.5,0.120679583,11.14400463,90.600192
41 | 1062,1011,106.2,101.1,0.0467927,8.9275389,89.743316
42 | 1228,788,102.3333333,98.5,0.055113833,11.206878,90.31639
43 | 1294,897,117.6363636,99.66666667,0.824873636,8.995013222,90.028729
44 | 1080,912,90,114,2.490228167,105.248529,105.248529
45 | 1048,850,87.33333333,106.25,2.4790745,9.433771,105.219062
46 | 1294,897,117.6363636,99.66666667,2.630769636,5.135479556,75.157782
47 | 996,902,90.54545455,100.2222222,2.650070455,8.452001222,105.218786
48 | 11372,4308,1033.818182,478.6666667,0.008387182,0.360653111,3.338137
49 | 16859,1884,1296.846154,314,0.000267308,0.0000985,0.004166
50 | 6417,654,583.3636364,72.66666667,1.009899273,1.734581556,26.720126
51 | 1305,976,118.6363636,108.4444444,2.616980909,5.096328444,74.653746
52 | 732,1266,73.2,126.6,1.288615,6.6868396,79.754546
53 | 1305,840,118.6363636,93.33333333,2.181283455,6.901020778,86.103305
54 | 1228,788,102.3333333,98.5,3.49053675,7.771528125,104.058666
55 | 1028,840,93.45454545,93.33333333,2.512567818,6.959213111,90.271164
56 | 1040,973,104,108.1111111,2.7263012,6.958272222,89.888707
57 | 1028,840,93.45454545,93.33333333,2.485776455,7.005427556,90.392389
58 | 996,984,90.54545455,109.3333333,2.466362818,6.989017,90.031144
59 | 996,976,90.54545455,108.4444444,2.464541,6.989515778,90.015593
60 | 1277,959,116.0909091,106.5555556,2.417429818,7.027518,89.83939
61 | 1028,840,93.45454545,93.33333333,90.238448,7.115695778,90.238448
62 | 996,976,90.54545455,108.4444444,2.353422545,7.127103,90.031575
63 | 1040,1145,104,114.5,1.2887131,6.4206516,77.093647
64 | 1228,788,102.3333333,98.5,3.137792917,8.140542125,102.777852
65 | 1028,840,93.45454545,93.33333333,2.272796727,7.253093,90.278601
66 | 996,902,90.54545455,100.2222222,2.270013636,7.486191444,92.345873
67 | 950,6216,86.36363636,690.6666667,0.024406,3.273078778,29.726175
68 | 416,12915,52,1076.25,0.00074825,0.000337583,0.010037
69 | 312,15715,52,1122.5,0.001034333,0.000356571,0.011198
70 | 312,14420,52,1030,0.000980667,0.000331286,0.010522
71 | 416,12862,52,1071.833333,0.001092875,0.00054225,0.013465
72 | 312,15715,52,1122.5,0.001011333,0.000387714,0.011496
73 | 312,14420,52,1030,0.000966,0.000308,0.010108
74 | 416,12915,52,1076.25,0.001479875,0.000473,0.017515
75 | 312,15715,52,1122.5,0.001565667,0.000498786,0.016377
76 | 364,14315,52,1101.153846,0.001513,0.000451615,0.016462
77 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Android-RAT-Dataset
2 |
This repo contains all dataset for my research/analysis about :
3 | "DETEKSI REMOTE ACCESS TROJAN PADA ANDROID BERBASIS PENGAMATAN LALU LINTAS JARINGAN MENGGUNAKAN MACHINE LEARNING."
4 |
5 | # Apps Name
6 | | Name | Label |
7 | | ---------- | ---------- |
8 | | AhMyth | Trojan |
9 | | AndroidRAT | Trojan |
10 | | AndroidTester | Trojan |
11 | | DroidJack | Trojan |
12 | | HawkShaw | Trojan |
13 | | SpyMax | Trojan |
14 | | Google | Benign |
15 | | Facebook | Benign |
16 | | Twitter | Benign |
17 |
18 | # DATA SET 1 FEATURES
19 | | Name | Desc |
20 | | ----------- | ------------ |
21 | | Source | The port number of source packet |
22 | | Destination | The port number of destination packet |
23 | | Protocol | The type protocol used in packet |
24 | | Length | The size of data generated by the packet (Byte) |
25 | | Type | Type of packet - In or Out |
26 | | Duration | The duration between previous package to the next packet (Second) |
27 |
28 | # DATA SET 2 FEATURES
29 | | Name | Desc |
30 | | ------------- | ------------ |
31 | | Total Length Out | The amount of data size generated by packet out of 20 mixed packet (Byte) |
32 | | Total Length In | The amount of data size generated by packet in of 20 mixed packet (Byte) |
33 | | Avg Packet Length Out | The average data size generated by packets out of 20 mixed packets (Byte) |
34 | | Avg Packet Length In | The average data size generated by incoming packets of 20 mixed packets (Byte) |
35 | | Avg Duration Out | The average duration required by packets out of 20 mixed packets (Second) |
36 | | Avg Duration In | The average duration required by incoming packets from 20 mixed packets (Second) |
37 | | Total Duration | The total duration required by 20 mixed packets (Second) |
38 |
39 | # Dataset
40 | | | Dataset 1 | Dataset 2 |
41 | | ----- | ---- | ---- |
42 | | Training | 14400 | 5400 |
43 | | Testing | 3600 | 600 |
44 | | Total | 18000 | 6000 |
45 |
46 | *note : raw/original dataset contains more row perpcap rat
47 |
48 | # Accuracy and Machine Learning Algorithm Used
49 | | Dataset 1 | Decision Tree | Random Forest | Naive Bayes |
50 | | ------------ | ---------- | ---------- | ---------- |
51 | | N900 - RAT90 | 0.9989 | 0.9990 | 0.1181 |
52 | | N1800 - RAT90 | 0.9994 | 0.9989 | 0.0756 |
53 | | N1800 - RAT1800 | 0.9997 | 0.9997 | 0.4691 |
54 |
55 | | Dataset 2 | Decision Tree | Random Forest | Naive Bayes |
56 | | ------------ | ---------- | ---------- | ---------- |
57 | | N150 - RAT10 | 0.873 | 0.933 | 0.513 |
58 | | N300 - RAT10 | 0.883 | 0.929 | 0.545 |
59 | | N300 - RAT300 | 0.90 | 0.928 | 0.71 |
60 |
61 | *note : accuracy based on jupyter python result
62 |
63 | # Source Original Dataset
64 | Name : Android Mischief Dataset v1
65 | Author : Kamila Babayeva , Stratosphere Laboratory
66 | Date : November 18th 2020
67 | URL : https://www.stratosphereips.org/android-mischief-dataset
68 |
69 | # Looking for Android Remote Access Trojan ?
70 | URL : https://github.com/wishihab/Android-RATList
71 |
--------------------------------------------------------------------------------
/Remote Access Trojan Detection On Android Based On Network Traffic Observation Using Machine Learning.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Remote Access Trojan Detection On Android Based On Network Traffic Observation Using Machine Learning.pdf
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 1/Decision Tree/Decision Tree Scratch.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "from sklearn import tree"
10 | ]
11 | },
12 | {
13 | "cell_type": "code",
14 | "execution_count": 2,
15 | "metadata": {},
16 | "outputs": [],
17 | "source": [
18 | "clf = tree.DecisionTreeClassifier();"
19 | ]
20 | },
21 | {
22 | "cell_type": "code",
23 | "execution_count": 15,
24 | "metadata": {},
25 | "outputs": [],
26 | "source": [
27 | "# Gmail 3 Facebook 3 Twitter 3 \n",
28 | "# RAT 3 Tester 3 Droidjack 3\n",
29 | "# TLSv.1.3 = 3\n",
30 | "# TLSv.1.2 = 2\n",
31 | "# tcp = 1\n",
32 | "# udp = 0\n",
33 | "\n",
34 | "# out 0\n",
35 | "# in 1\n",
36 | "\n",
37 | "# Length, Data, Protocol, Duration, Type, Source, Destination\n",
38 | "X = [\n",
39 | " ['591','0','3','0.00153','0','54534','443'],\n",
40 | " ['52','0','1','0.001147','0','54534','443'],\n",
41 | " ['60','0','1','0','0','54534','443'],\n",
42 | " ['60','0','1','0','0','33952','443'],\n",
43 | " ['60','0','1','0.000755','1','443','33952'],\n",
44 | " ['452','0','3','0.00153','0','33952','443'],\n",
45 | " ['60','0','1','0.007413','1','443','56228'],\n",
46 | " ['52','0','1','0.001804','0','56228','443'],\n",
47 | " ['569','0','2','0.012655','0','56228','443'],\n",
48 | " ['60','0','1','0','0','37451','1337'],\n",
49 | " ['60','0','1','0.022053','1','1337','37451'],\n",
50 | " ['52','0','1','0.006701','0','37451','1337'],\n",
51 | " ['59','7','1','0.281862','1','1337','37451'],\n",
52 | " ['52','0','1','0.107486','0','37451','1337'],\n",
53 | " ['59','7','1','11.910185','1','1337','37451'],\n",
54 | " ['40','0','1','0.041368','0','41893','1337'],\n",
55 | " ['45','5','1','1.422961','0','41893','1337'],\n",
56 | " ['45','5','1','0.270677','1','1337','41893']\n",
57 | " \n",
58 | "]"
59 | ]
60 | },
61 | {
62 | "cell_type": "code",
63 | "execution_count": 16,
64 | "metadata": {},
65 | "outputs": [
66 | {
67 | "data": {
68 | "text/plain": [
69 | "[['591', '0', '3', '0.00153', '0', '54534', '443'],\n",
70 | " ['52', '0', '1', '0.001147', '0', '54534', '443'],\n",
71 | " ['60', '0', '1', '0', '0', '54534', '443'],\n",
72 | " ['60', '0', '1', '0', '0', '33952', '443'],\n",
73 | " ['60', '0', '1', '0.000755', '1', '443', '33952'],\n",
74 | " ['452', '0', '3', '0.00153', '0', '33952', '443'],\n",
75 | " ['60', '0', '1', '0.007413', '1', '443', '56228'],\n",
76 | " ['52', '0', '1', '0.001804', '0', '56228', '443'],\n",
77 | " ['569', '0', '2', '0.012655', '0', '56228', '443'],\n",
78 | " ['60', '0', '1', '0', '0', '37451', '1337'],\n",
79 | " ['60', '0', '1', '0.022053', '1', '1337', '37451'],\n",
80 | " ['52', '0', '1', '0.006701', '0', '37451', '1337'],\n",
81 | " ['59', '7', '1', '0.281862', '1', '1337', '37451'],\n",
82 | " ['52', '0', '1', '0.107486', '0', '37451', '1337'],\n",
83 | " ['59', '7', '1', '11.910185', '1', '1337', '37451'],\n",
84 | " ['40', '0', '1', '0.041368', '0', '41893', '1337'],\n",
85 | " ['45', '5', '1', '1.422961', '0', '41893', '1337'],\n",
86 | " ['45', '5', '1', '0.270677', '1', '1337', '41893']]"
87 | ]
88 | },
89 | "execution_count": 16,
90 | "metadata": {},
91 | "output_type": "execute_result"
92 | }
93 | ],
94 | "source": [
95 | "X"
96 | ]
97 | },
98 | {
99 | "cell_type": "code",
100 | "execution_count": 17,
101 | "metadata": {},
102 | "outputs": [],
103 | "source": [
104 | "Y = [\n",
105 | " ['Benign'],\n",
106 | " ['Benign'],\n",
107 | " ['Benign'],\n",
108 | " ['Benign'],\n",
109 | " ['Benign'],\n",
110 | " ['Benign'],\n",
111 | " ['Benign'],\n",
112 | " ['Benign'],\n",
113 | " ['Benign'],\n",
114 | " ['Trojan'],\n",
115 | " ['Trojan'],\n",
116 | " ['Trojan'],\n",
117 | " ['Trojan'],\n",
118 | " ['Trojan'],\n",
119 | " ['Trojan'],\n",
120 | " ['Trojan'],\n",
121 | " ['Trojan'],\n",
122 | " ['Trojan']\n",
123 | "]"
124 | ]
125 | },
126 | {
127 | "cell_type": "code",
128 | "execution_count": 13,
129 | "metadata": {},
130 | "outputs": [
131 | {
132 | "data": {
133 | "text/plain": [
134 | "[['Benign'],\n",
135 | " ['Benign'],\n",
136 | " ['Benign'],\n",
137 | " ['Benign'],\n",
138 | " ['Benign'],\n",
139 | " ['Benign'],\n",
140 | " ['Benign'],\n",
141 | " ['Benign'],\n",
142 | " ['Benign'],\n",
143 | " ['Trojan'],\n",
144 | " ['Trojan'],\n",
145 | " ['Trojan'],\n",
146 | " ['Trojan'],\n",
147 | " ['Trojan'],\n",
148 | " ['Trojan'],\n",
149 | " ['Trojan'],\n",
150 | " ['Trojan'],\n",
151 | " ['Trojan']]"
152 | ]
153 | },
154 | "execution_count": 13,
155 | "metadata": {},
156 | "output_type": "execute_result"
157 | }
158 | ],
159 | "source": [
160 | "Y"
161 | ]
162 | },
163 | {
164 | "cell_type": "code",
165 | "execution_count": 18,
166 | "metadata": {},
167 | "outputs": [],
168 | "source": [
169 | "clf = clf.fit(X,Y)"
170 | ]
171 | },
172 | {
173 | "cell_type": "code",
174 | "execution_count": 19,
175 | "metadata": {},
176 | "outputs": [
177 | {
178 | "name": "stdout",
179 | "output_type": "stream",
180 | "text": [
181 | "['Benign']\n"
182 | ]
183 | }
184 | ],
185 | "source": [
186 | "prediction = clf.predict([['52','0','1','0.007339','1','443','56228']])\n",
187 | "print(prediction)"
188 | ]
189 | },
190 | {
191 | "cell_type": "code",
192 | "execution_count": null,
193 | "metadata": {},
194 | "outputs": [],
195 | "source": []
196 | }
197 | ],
198 | "metadata": {
199 | "kernelspec": {
200 | "display_name": "Python 3",
201 | "language": "python",
202 | "name": "python3"
203 | },
204 | "language_info": {
205 | "codemirror_mode": {
206 | "name": "ipython",
207 | "version": 3
208 | },
209 | "file_extension": ".py",
210 | "mimetype": "text/x-python",
211 | "name": "python",
212 | "nbconvert_exporter": "python",
213 | "pygments_lexer": "ipython3",
214 | "version": "3.8.5"
215 | }
216 | },
217 | "nbformat": 4,
218 | "nbformat_minor": 4
219 | }
220 |
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 1/Decision Tree/Decision Trees - Model 1 - 2021.rmp:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 1/Decision Tree/Images/Decision Tree - RapidMiner.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Testing Scratch/Dataset 1/Decision Tree/Images/Decision Tree - RapidMiner.PNG
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 1/Decision Tree/Images/Decision Tree Result - Python (Jupyter) vs RapidMiner.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Testing Scratch/Dataset 1/Decision Tree/Images/Decision Tree Result - Python (Jupyter) vs RapidMiner.PNG
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 1/Decision Tree/Images/imagename.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Testing Scratch/Dataset 1/Decision Tree/Images/imagename.png
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 1/Decision Tree/Images/imagenamev02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Testing Scratch/Dataset 1/Decision Tree/Images/imagenamev02.png
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 1/Decision Tree/Images/imagenamev03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Testing Scratch/Dataset 1/Decision Tree/Images/imagenamev03.png
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 1/Naive Bayes/Images/Naive Bayes - Rapid Miner.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Testing Scratch/Dataset 1/Naive Bayes/Images/Naive Bayes - Rapid Miner.PNG
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 1/Naive Bayes/Images/Naive Bayes Result - Python (Jupyter) vs RapidMiner.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Testing Scratch/Dataset 1/Naive Bayes/Images/Naive Bayes Result - Python (Jupyter) vs RapidMiner.PNG
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 1/Naive Bayes/Naive Bayes - Model 1 - 2021.rmp:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 1/Naive Bayes/NaiveBayesClassifier with sklearn - Dataset 1 - testingv01.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "import pandas as pd\n",
10 | "import numpy as np\n",
11 | "\n",
12 | "from sklearn.naive_bayes import GaussianNB"
13 | ]
14 | },
15 | {
16 | "cell_type": "code",
17 | "execution_count": 2,
18 | "metadata": {},
19 | "outputs": [],
20 | "source": [
21 | "def read_file(filename):\n",
22 | " df = pd.read_csv(filename)\n",
23 | " print(df.shape)\n",
24 | " df['Label'] = df['Label'].apply(lambda x: x.strip().lower())\n",
25 | " return df"
26 | ]
27 | },
28 | {
29 | "cell_type": "code",
30 | "execution_count": 3,
31 | "metadata": {},
32 | "outputs": [
33 | {
34 | "name": "stdout",
35 | "output_type": "stream",
36 | "text": [
37 | "(14400, 7)\n",
38 | "(990, 7)\n"
39 | ]
40 | }
41 | ],
42 | "source": [
43 | "FILE_HO_TRAIN = 'training.csv'\n",
44 | "FILE_HO_TEST = 'testingv01.csv'\n",
45 | "\n",
46 | "df_ho_train = read_file(FILE_HO_TRAIN)\n",
47 | "df_ho_test = read_file(FILE_HO_TEST)"
48 | ]
49 | },
50 | {
51 | "cell_type": "code",
52 | "execution_count": 4,
53 | "metadata": {},
54 | "outputs": [],
55 | "source": [
56 | "from sklearn.preprocessing import LabelEncoder\n",
57 | "\n",
58 | "target_encoder = LabelEncoder()\n",
59 | "df_ho_train['Target'] = target_encoder.fit_transform(df_ho_train['Label'])\n",
60 | "df_ho_test['Target'] = target_encoder.transform(df_ho_test['Label'])\n",
61 | "\n",
62 | "x_ho_train = df_ho_train.drop(['Label', 'Target'], axis=1)\n",
63 | "y_ho_train = df_ho_train['Target']\n",
64 | "\n",
65 | "x_ho_test = df_ho_test.drop(['Label', 'Target'], axis=1)\n",
66 | "y_ho_test = df_ho_test['Target']"
67 | ]
68 | },
69 | {
70 | "cell_type": "code",
71 | "execution_count": 5,
72 | "metadata": {},
73 | "outputs": [
74 | {
75 | "data": {
76 | "text/plain": [
77 | "0.11818181818181818"
78 | ]
79 | },
80 | "execution_count": 5,
81 | "metadata": {},
82 | "output_type": "execute_result"
83 | }
84 | ],
85 | "source": [
86 | "# Mengaktifkan/memanggil/membuat fungsi klasifikasi Naive Bayes\n",
87 | "modelnb = GaussianNB()\n",
88 | "\n",
89 | "# Memasukkan data training pada fungsi klasifikasi Naive Bayes\n",
90 | "nbtrain = modelnb.fit(x_ho_train, y_ho_train)\n",
91 | "modelnb.score(x_ho_test,y_ho_test)"
92 | ]
93 | },
94 | {
95 | "cell_type": "code",
96 | "execution_count": 6,
97 | "metadata": {},
98 | "outputs": [
99 | {
100 | "name": "stdout",
101 | "output_type": "stream",
102 | "text": [
103 | "Akurasi pada Algoritma RandomForest menggunakan split dengan persentase 90:10 = 11.818181818181818\n"
104 | ]
105 | }
106 | ],
107 | "source": [
108 | "from sklearn.metrics import accuracy_score, f1_score\n",
109 | "\n",
110 | "predicted= modelnb.predict(x_ho_test)\n",
111 | "\n",
112 | "accuracy_ho = accuracy_score(predicted, y_ho_test) * 100\n",
113 | "print('Akurasi pada Algoritma RandomForest menggunakan split dengan persentase 90:10 = %s' % accuracy_ho)"
114 | ]
115 | },
116 | {
117 | "cell_type": "code",
118 | "execution_count": 7,
119 | "metadata": {},
120 | "outputs": [
121 | {
122 | "data": {
123 | "image/png": "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\n",
124 | "text/plain": [
125 | ""
126 | ]
127 | },
128 | "metadata": {
129 | "needs_background": "light"
130 | },
131 | "output_type": "display_data"
132 | }
133 | ],
134 | "source": [
135 | "# Create Confusion Matrix\n",
136 | "\n",
137 | "import seaborn as sns\n",
138 | "import matplotlib.pyplot as plt\n",
139 | "\n",
140 | "from sklearn.metrics import confusion_matrix\n",
141 | "confusion_matrix(y_ho_test, predicted) \n",
142 | "\n",
143 | "f, ax = plt.subplots(figsize=(8,5))\n",
144 | "sns.heatmap(confusion_matrix(y_ho_test, predicted), annot=True, fmt=\".0f\", ax=ax)\n",
145 | "plt.xlabel(\"Predicted Class\")\n",
146 | "plt.ylabel(\"Actual Class\")\n",
147 | "plt.show()"
148 | ]
149 | },
150 | {
151 | "cell_type": "code",
152 | "execution_count": 8,
153 | "metadata": {},
154 | "outputs": [
155 | {
156 | "name": "stdout",
157 | "output_type": "stream",
158 | "text": [
159 | " precision recall f1-score support\n",
160 | "\n",
161 | " 0 0.91 0.03 0.06 900\n",
162 | " 1 0.09 0.97 0.17 90\n",
163 | "\n",
164 | " accuracy 0.12 990\n",
165 | " macro avg 0.50 0.50 0.12 990\n",
166 | "weighted avg 0.83 0.12 0.07 990\n",
167 | "\n"
168 | ]
169 | }
170 | ],
171 | "source": [
172 | "# Performance Matrix Report - Precision Recall f1score\n",
173 | "\n",
174 | "from sklearn.metrics import classification_report\n",
175 | "print (classification_report(y_ho_test, predicted))"
176 | ]
177 | },
178 | {
179 | "cell_type": "code",
180 | "execution_count": null,
181 | "metadata": {},
182 | "outputs": [],
183 | "source": []
184 | }
185 | ],
186 | "metadata": {
187 | "kernelspec": {
188 | "display_name": "Python 3",
189 | "language": "python",
190 | "name": "python3"
191 | },
192 | "language_info": {
193 | "codemirror_mode": {
194 | "name": "ipython",
195 | "version": 3
196 | },
197 | "file_extension": ".py",
198 | "mimetype": "text/x-python",
199 | "name": "python",
200 | "nbconvert_exporter": "python",
201 | "pygments_lexer": "ipython3",
202 | "version": "3.8.5"
203 | }
204 | },
205 | "nbformat": 4,
206 | "nbformat_minor": 4
207 | }
208 |
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 1/Naive Bayes/NaiveBayesClassifier with sklearn - Dataset 1 - testingv02.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "import pandas as pd\n",
10 | "import numpy as np\n",
11 | "\n",
12 | "from sklearn.naive_bayes import GaussianNB"
13 | ]
14 | },
15 | {
16 | "cell_type": "code",
17 | "execution_count": 2,
18 | "metadata": {},
19 | "outputs": [],
20 | "source": [
21 | "def read_file(filename):\n",
22 | " df = pd.read_csv(filename)\n",
23 | " print(df.shape)\n",
24 | " df['Label'] = df['Label'].apply(lambda x: x.strip().lower())\n",
25 | " return df"
26 | ]
27 | },
28 | {
29 | "cell_type": "code",
30 | "execution_count": 3,
31 | "metadata": {},
32 | "outputs": [
33 | {
34 | "name": "stdout",
35 | "output_type": "stream",
36 | "text": [
37 | "(14400, 7)\n",
38 | "(1890, 7)\n"
39 | ]
40 | }
41 | ],
42 | "source": [
43 | "FILE_HO_TRAIN = 'training.csv'\n",
44 | "FILE_HO_TEST = 'testingv02.csv'\n",
45 | "\n",
46 | "df_ho_train = read_file(FILE_HO_TRAIN)\n",
47 | "df_ho_test = read_file(FILE_HO_TEST)"
48 | ]
49 | },
50 | {
51 | "cell_type": "code",
52 | "execution_count": 4,
53 | "metadata": {},
54 | "outputs": [],
55 | "source": [
56 | "from sklearn.preprocessing import LabelEncoder\n",
57 | "\n",
58 | "target_encoder = LabelEncoder()\n",
59 | "df_ho_train['Target'] = target_encoder.fit_transform(df_ho_train['Label'])\n",
60 | "df_ho_test['Target'] = target_encoder.transform(df_ho_test['Label'])\n",
61 | "\n",
62 | "x_ho_train = df_ho_train.drop(['Label', 'Target'], axis=1)\n",
63 | "y_ho_train = df_ho_train['Target']\n",
64 | "\n",
65 | "x_ho_test = df_ho_test.drop(['Label', 'Target'], axis=1)\n",
66 | "y_ho_test = df_ho_test['Target']"
67 | ]
68 | },
69 | {
70 | "cell_type": "code",
71 | "execution_count": 5,
72 | "metadata": {},
73 | "outputs": [
74 | {
75 | "data": {
76 | "text/plain": [
77 | "0.07566137566137567"
78 | ]
79 | },
80 | "execution_count": 5,
81 | "metadata": {},
82 | "output_type": "execute_result"
83 | }
84 | ],
85 | "source": [
86 | "# Mengaktifkan/memanggil/membuat fungsi klasifikasi Naive Bayes\n",
87 | "modelnb = GaussianNB()\n",
88 | "\n",
89 | "# Memasukkan data training pada fungsi klasifikasi Naive Bayes\n",
90 | "nbtrain = modelnb.fit(x_ho_train, y_ho_train)\n",
91 | "modelnb.score(x_ho_test,y_ho_test)"
92 | ]
93 | },
94 | {
95 | "cell_type": "code",
96 | "execution_count": 6,
97 | "metadata": {},
98 | "outputs": [
99 | {
100 | "name": "stdout",
101 | "output_type": "stream",
102 | "text": [
103 | "Akurasi pada Algoritma RandomForest menggunakan split dengan persentase 90:10 = 7.5661375661375665\n"
104 | ]
105 | }
106 | ],
107 | "source": [
108 | "from sklearn.metrics import accuracy_score, f1_score\n",
109 | "\n",
110 | "predicted= modelnb.predict(x_ho_test)\n",
111 | "\n",
112 | "accuracy_ho = accuracy_score(predicted, y_ho_test) * 100\n",
113 | "print('Akurasi pada Algoritma RandomForest menggunakan split dengan persentase 90:10 = %s' % accuracy_ho)"
114 | ]
115 | },
116 | {
117 | "cell_type": "code",
118 | "execution_count": 7,
119 | "metadata": {},
120 | "outputs": [
121 | {
122 | "data": {
123 | "image/png": "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\n",
124 | "text/plain": [
125 | ""
126 | ]
127 | },
128 | "metadata": {
129 | "needs_background": "light"
130 | },
131 | "output_type": "display_data"
132 | }
133 | ],
134 | "source": [
135 | "# Create Confusion Matrix\n",
136 | "\n",
137 | "import seaborn as sns\n",
138 | "import matplotlib.pyplot as plt\n",
139 | "\n",
140 | "from sklearn.metrics import confusion_matrix\n",
141 | "confusion_matrix(y_ho_test, predicted) \n",
142 | "\n",
143 | "f, ax = plt.subplots(figsize=(8,5))\n",
144 | "sns.heatmap(confusion_matrix(y_ho_test, predicted), annot=True, fmt=\".0f\", ax=ax)\n",
145 | "plt.xlabel(\"Predicted Class\")\n",
146 | "plt.ylabel(\"Actual Class\")\n",
147 | "plt.show()"
148 | ]
149 | },
150 | {
151 | "cell_type": "code",
152 | "execution_count": 8,
153 | "metadata": {},
154 | "outputs": [
155 | {
156 | "name": "stdout",
157 | "output_type": "stream",
158 | "text": [
159 | " precision recall f1-score support\n",
160 | "\n",
161 | " 0 0.95 0.03 0.06 1800\n",
162 | " 1 0.05 0.97 0.09 90\n",
163 | "\n",
164 | " accuracy 0.08 1890\n",
165 | " macro avg 0.50 0.50 0.08 1890\n",
166 | "weighted avg 0.91 0.08 0.06 1890\n",
167 | "\n"
168 | ]
169 | }
170 | ],
171 | "source": [
172 | "# Performance Matrix Report - Precision Recall f1score\n",
173 | "\n",
174 | "from sklearn.metrics import classification_report\n",
175 | "print (classification_report(y_ho_test, predicted))"
176 | ]
177 | },
178 | {
179 | "cell_type": "code",
180 | "execution_count": null,
181 | "metadata": {},
182 | "outputs": [],
183 | "source": []
184 | }
185 | ],
186 | "metadata": {
187 | "kernelspec": {
188 | "display_name": "Python 3",
189 | "language": "python",
190 | "name": "python3"
191 | },
192 | "language_info": {
193 | "codemirror_mode": {
194 | "name": "ipython",
195 | "version": 3
196 | },
197 | "file_extension": ".py",
198 | "mimetype": "text/x-python",
199 | "name": "python",
200 | "nbconvert_exporter": "python",
201 | "pygments_lexer": "ipython3",
202 | "version": "3.8.5"
203 | }
204 | },
205 | "nbformat": 4,
206 | "nbformat_minor": 4
207 | }
208 |
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 1/README.md:
--------------------------------------------------------------------------------
1 | # csv
2 |
3 | # Algoritm
4 |
5 | 1. Decision Tree
6 | 2. Random Forest
7 | 3. Naive Bayes
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 1/Random Forest/Images/Random Forest - Rapid Miner.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Testing Scratch/Dataset 1/Random Forest/Images/Random Forest - Rapid Miner.PNG
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 1/Random Forest/Images/Random Forest Result - Python (Jupyter) vs RapidMiner.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Testing Scratch/Dataset 1/Random Forest/Images/Random Forest Result - Python (Jupyter) vs RapidMiner.PNG
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 1/Random Forest/Random Forest - Model 1 - 2021.rmp:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 1/Random Forest/RandomForestClassifier with sklearn - Dataset 1 - testingv01.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "import pandas as pd\n",
10 | "import numpy as np\n",
11 | "\n",
12 | "from sklearn.ensemble import RandomForestClassifier"
13 | ]
14 | },
15 | {
16 | "cell_type": "code",
17 | "execution_count": 2,
18 | "metadata": {},
19 | "outputs": [],
20 | "source": [
21 | "def read_file(filename):\n",
22 | " df = pd.read_csv(filename)\n",
23 | " print(df.shape)\n",
24 | " df['Label'] = df['Label'].apply(lambda x: x.strip().lower())\n",
25 | " return df"
26 | ]
27 | },
28 | {
29 | "cell_type": "code",
30 | "execution_count": 3,
31 | "metadata": {},
32 | "outputs": [
33 | {
34 | "name": "stdout",
35 | "output_type": "stream",
36 | "text": [
37 | "(14400, 7)\n",
38 | "(990, 7)\n"
39 | ]
40 | }
41 | ],
42 | "source": [
43 | "# training csv is 90% of 18000 dataset model 1 - transformed\n",
44 | "# testing csv is 10% of 18000 dataset model 1 - transformed\n",
45 | "\n",
46 | "FILE_HO_TRAIN = 'training.csv'\n",
47 | "FILE_HO_TEST = 'testingv01.csv'\n",
48 | "\n",
49 | "df_ho_train = read_file(FILE_HO_TRAIN)\n",
50 | "df_ho_test = read_file(FILE_HO_TEST)"
51 | ]
52 | },
53 | {
54 | "cell_type": "code",
55 | "execution_count": 4,
56 | "metadata": {},
57 | "outputs": [],
58 | "source": [
59 | "from sklearn.preprocessing import LabelEncoder\n",
60 | "\n",
61 | "target_encoder = LabelEncoder()\n",
62 | "df_ho_train['Target'] = target_encoder.fit_transform(df_ho_train['Label'])\n",
63 | "df_ho_test['Target'] = target_encoder.transform(df_ho_test['Label'])\n",
64 | "\n",
65 | "x_ho_train = df_ho_train.drop(['Label', 'Target'], axis=1)\n",
66 | "y_ho_train = df_ho_train['Target']\n",
67 | "\n",
68 | "x_ho_test = df_ho_test.drop(['Label', 'Target'], axis=1)\n",
69 | "y_ho_test = df_ho_test['Target']"
70 | ]
71 | },
72 | {
73 | "cell_type": "code",
74 | "execution_count": 5,
75 | "metadata": {},
76 | "outputs": [
77 | {
78 | "data": {
79 | "text/plain": [
80 | "0.998989898989899"
81 | ]
82 | },
83 | "execution_count": 5,
84 | "metadata": {},
85 | "output_type": "execute_result"
86 | }
87 | ],
88 | "source": [
89 | "# do like rapidminer setting\n",
90 | "# criterion entropy is information gain\n",
91 | "# estimator set 100\n",
92 | "# max depth 10\n",
93 | "\n",
94 | "modelRF = RandomForestClassifier(criterion=\"entropy\", n_estimators=100, max_depth=10)\n",
95 | "modelRF.fit(x_ho_train,y_ho_train)\n",
96 | "modelRF.score(x_ho_test,y_ho_test)"
97 | ]
98 | },
99 | {
100 | "cell_type": "code",
101 | "execution_count": 6,
102 | "metadata": {},
103 | "outputs": [
104 | {
105 | "name": "stdout",
106 | "output_type": "stream",
107 | "text": [
108 | "Akurasi pada Algoritma RandomForest menggunakan split dengan persentase 90:10 = 99.8989898989899\n"
109 | ]
110 | }
111 | ],
112 | "source": [
113 | "from sklearn.metrics import accuracy_score, f1_score\n",
114 | "\n",
115 | "predicted= modelRF.predict(x_ho_test)\n",
116 | "\n",
117 | "accuracy_ho = accuracy_score(predicted, y_ho_test) * 100\n",
118 | "print('Akurasi pada Algoritma RandomForest menggunakan split dengan persentase 90:10 = %s' % accuracy_ho)"
119 | ]
120 | },
121 | {
122 | "cell_type": "code",
123 | "execution_count": 7,
124 | "metadata": {},
125 | "outputs": [
126 | {
127 | "data": {
128 | "image/png": "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\n",
129 | "text/plain": [
130 | ""
131 | ]
132 | },
133 | "metadata": {
134 | "needs_background": "light"
135 | },
136 | "output_type": "display_data"
137 | }
138 | ],
139 | "source": [
140 | "# Create Confusion Matrix\n",
141 | "\n",
142 | "import seaborn as sns\n",
143 | "import matplotlib.pyplot as plt\n",
144 | "\n",
145 | "from sklearn.metrics import confusion_matrix\n",
146 | "confusion_matrix(y_ho_test, predicted) \n",
147 | "\n",
148 | "f, ax = plt.subplots(figsize=(8,5))\n",
149 | "sns.heatmap(confusion_matrix(y_ho_test, predicted), annot=True, fmt=\".0f\", ax=ax)\n",
150 | "plt.xlabel(\"Predicted Class\")\n",
151 | "plt.ylabel(\"Actual Class\")\n",
152 | "plt.show()"
153 | ]
154 | },
155 | {
156 | "cell_type": "code",
157 | "execution_count": 8,
158 | "metadata": {},
159 | "outputs": [
160 | {
161 | "name": "stdout",
162 | "output_type": "stream",
163 | "text": [
164 | " precision recall f1-score support\n",
165 | "\n",
166 | " 0 1.00 1.00 1.00 900\n",
167 | " 1 0.99 1.00 0.99 90\n",
168 | "\n",
169 | " accuracy 1.00 990\n",
170 | " macro avg 0.99 1.00 1.00 990\n",
171 | "weighted avg 1.00 1.00 1.00 990\n",
172 | "\n"
173 | ]
174 | }
175 | ],
176 | "source": [
177 | "# Performance Matrix Report - Precision Recall f1score\n",
178 | "\n",
179 | "from sklearn.metrics import classification_report\n",
180 | "print (classification_report(y_ho_test, predicted))"
181 | ]
182 | },
183 | {
184 | "cell_type": "code",
185 | "execution_count": null,
186 | "metadata": {},
187 | "outputs": [],
188 | "source": []
189 | }
190 | ],
191 | "metadata": {
192 | "kernelspec": {
193 | "display_name": "Python 3",
194 | "language": "python",
195 | "name": "python3"
196 | },
197 | "language_info": {
198 | "codemirror_mode": {
199 | "name": "ipython",
200 | "version": 3
201 | },
202 | "file_extension": ".py",
203 | "mimetype": "text/x-python",
204 | "name": "python",
205 | "nbconvert_exporter": "python",
206 | "pygments_lexer": "ipython3",
207 | "version": "3.8.5"
208 | }
209 | },
210 | "nbformat": 4,
211 | "nbformat_minor": 4
212 | }
213 |
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 2/Decision Tree/Images/Decision Tree Result dataset 2- Python (Jupyter) vs RapidMiner.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Testing Scratch/Dataset 2/Decision Tree/Images/Decision Tree Result dataset 2- Python (Jupyter) vs RapidMiner.PNG
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 2/Decision Tree/Images/RapidMiner Process Model.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Testing Scratch/Dataset 2/Decision Tree/Images/RapidMiner Process Model.PNG
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 2/Decision Tree/Images/imagename01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Testing Scratch/Dataset 2/Decision Tree/Images/imagename01.png
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 2/Decision Tree/Images/imagename02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Testing Scratch/Dataset 2/Decision Tree/Images/imagename02.png
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 2/Decision Tree/Images/imagename03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Testing Scratch/Dataset 2/Decision Tree/Images/imagename03.png
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 2/Naive Bayes/Images/Naive Bayes result dataset2 - Python (Jupyter) vs RapidMiner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Testing Scratch/Dataset 2/Naive Bayes/Images/Naive Bayes result dataset2 - Python (Jupyter) vs RapidMiner.png
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 2/Naive Bayes/Images/RapidMiner Naive Bayes Process Model.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Testing Scratch/Dataset 2/Naive Bayes/Images/RapidMiner Naive Bayes Process Model.PNG
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 2/Naive Bayes/NaiveBayesClassifier with sklearn - Dataset 1 - testingv01.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "import pandas as pd\n",
10 | "\n",
11 | "from sklearn.naive_bayes import GaussianNB"
12 | ]
13 | },
14 | {
15 | "cell_type": "code",
16 | "execution_count": 2,
17 | "metadata": {},
18 | "outputs": [],
19 | "source": [
20 | "def read_file(filename):\n",
21 | " df = pd.read_csv(filename)\n",
22 | " print(df.shape)\n",
23 | " df['label'] = df['label'].apply(lambda x: x.strip().lower())\n",
24 | " return df"
25 | ]
26 | },
27 | {
28 | "cell_type": "code",
29 | "execution_count": 4,
30 | "metadata": {},
31 | "outputs": [
32 | {
33 | "name": "stdout",
34 | "output_type": "stream",
35 | "text": [
36 | "(5400, 8)\n",
37 | "(150, 8)\n"
38 | ]
39 | }
40 | ],
41 | "source": [
42 | "FILE_HO_TRAIN = 'training.csv'\n",
43 | "FILE_HO_TEST = 'testingv1.csv'\n",
44 | "\n",
45 | "df_ho_train = read_file(FILE_HO_TRAIN)\n",
46 | "df_ho_test = read_file(FILE_HO_TEST)"
47 | ]
48 | },
49 | {
50 | "cell_type": "code",
51 | "execution_count": 5,
52 | "metadata": {},
53 | "outputs": [],
54 | "source": [
55 | "from sklearn.preprocessing import LabelEncoder\n",
56 | "\n",
57 | "target_encoder = LabelEncoder()\n",
58 | "df_ho_train['Target'] = target_encoder.fit_transform(df_ho_train['label'])\n",
59 | "df_ho_test['Target'] = target_encoder.transform(df_ho_test['label'])\n",
60 | "\n",
61 | "x_ho_train = df_ho_train.drop(['label', 'Target'], axis=1)\n",
62 | "y_ho_train = df_ho_train['Target']\n",
63 | "\n",
64 | "x_ho_test = df_ho_test.drop(['label', 'Target'], axis=1)\n",
65 | "y_ho_test = df_ho_test['Target']"
66 | ]
67 | },
68 | {
69 | "cell_type": "code",
70 | "execution_count": 7,
71 | "metadata": {},
72 | "outputs": [
73 | {
74 | "data": {
75 | "text/plain": [
76 | "0.5133333333333333"
77 | ]
78 | },
79 | "execution_count": 7,
80 | "metadata": {},
81 | "output_type": "execute_result"
82 | }
83 | ],
84 | "source": [
85 | "# Mengaktifkan/memanggil/membuat fungsi klasifikasi Naive Bayes\n",
86 | "modelnb = GaussianNB()\n",
87 | "\n",
88 | "# Memasukkan data training pada fungsi klasifikasi Naive Bayes\n",
89 | "nbtrain = modelnb.fit(x_ho_train, y_ho_train)\n",
90 | "modelnb.score(x_ho_test,y_ho_test)"
91 | ]
92 | },
93 | {
94 | "cell_type": "code",
95 | "execution_count": 8,
96 | "metadata": {},
97 | "outputs": [
98 | {
99 | "name": "stdout",
100 | "output_type": "stream",
101 | "text": [
102 | "Akurasi pada Algoritma RandomForest menggunakan split dengan persentase 90:10 = 51.33333333333333\n"
103 | ]
104 | }
105 | ],
106 | "source": [
107 | "from sklearn.metrics import accuracy_score, f1_score\n",
108 | "\n",
109 | "predicted= modelnb.predict(x_ho_test)\n",
110 | "\n",
111 | "accuracy_ho = accuracy_score(predicted, y_ho_test) * 100\n",
112 | "print('Akurasi pada Algoritma RandomForest menggunakan split dengan persentase 90:10 = %s' % accuracy_ho)"
113 | ]
114 | },
115 | {
116 | "cell_type": "code",
117 | "execution_count": 9,
118 | "metadata": {},
119 | "outputs": [
120 | {
121 | "data": {
122 | "image/png": "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\n",
123 | "text/plain": [
124 | ""
125 | ]
126 | },
127 | "metadata": {
128 | "needs_background": "light"
129 | },
130 | "output_type": "display_data"
131 | }
132 | ],
133 | "source": [
134 | "# Create Confusion Matrix\n",
135 | "\n",
136 | "import seaborn as sns\n",
137 | "import matplotlib.pyplot as plt\n",
138 | "\n",
139 | "from sklearn.metrics import confusion_matrix\n",
140 | "confusion_matrix(y_ho_test, predicted) \n",
141 | "\n",
142 | "f, ax = plt.subplots(figsize=(8,5))\n",
143 | "sns.heatmap(confusion_matrix(y_ho_test, predicted), annot=True, fmt=\".0f\", ax=ax)\n",
144 | "plt.xlabel(\"Predicted Class\")\n",
145 | "plt.ylabel(\"Actual Class\")\n",
146 | "plt.show()"
147 | ]
148 | },
149 | {
150 | "cell_type": "code",
151 | "execution_count": 10,
152 | "metadata": {},
153 | "outputs": [
154 | {
155 | "name": "stdout",
156 | "output_type": "stream",
157 | "text": [
158 | " precision recall f1-score support\n",
159 | "\n",
160 | " 0 1.00 0.48 0.65 140\n",
161 | " 1 0.12 1.00 0.22 10\n",
162 | "\n",
163 | " accuracy 0.51 150\n",
164 | " macro avg 0.56 0.74 0.43 150\n",
165 | "weighted avg 0.94 0.51 0.62 150\n",
166 | "\n"
167 | ]
168 | }
169 | ],
170 | "source": [
171 | "# Performance Matrix Report - Precision Recall f1score\n",
172 | "\n",
173 | "from sklearn.metrics import classification_report\n",
174 | "print (classification_report(y_ho_test, predicted))"
175 | ]
176 | },
177 | {
178 | "cell_type": "code",
179 | "execution_count": null,
180 | "metadata": {},
181 | "outputs": [],
182 | "source": []
183 | }
184 | ],
185 | "metadata": {
186 | "kernelspec": {
187 | "display_name": "Python 3",
188 | "language": "python",
189 | "name": "python3"
190 | },
191 | "language_info": {
192 | "codemirror_mode": {
193 | "name": "ipython",
194 | "version": 3
195 | },
196 | "file_extension": ".py",
197 | "mimetype": "text/x-python",
198 | "name": "python",
199 | "nbconvert_exporter": "python",
200 | "pygments_lexer": "ipython3",
201 | "version": "3.8.5"
202 | }
203 | },
204 | "nbformat": 4,
205 | "nbformat_minor": 4
206 | }
207 |
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 2/Naive Bayes/NaiveBayesClassifier with sklearn - Dataset 1 - testingv02.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "import pandas as pd\n",
10 | "\n",
11 | "from sklearn.naive_bayes import GaussianNB"
12 | ]
13 | },
14 | {
15 | "cell_type": "code",
16 | "execution_count": 2,
17 | "metadata": {},
18 | "outputs": [],
19 | "source": [
20 | "def read_file(filename):\n",
21 | " df = pd.read_csv(filename)\n",
22 | " print(df.shape)\n",
23 | " df['label'] = df['label'].apply(lambda x: x.strip().lower())\n",
24 | " return df"
25 | ]
26 | },
27 | {
28 | "cell_type": "code",
29 | "execution_count": 4,
30 | "metadata": {},
31 | "outputs": [
32 | {
33 | "name": "stdout",
34 | "output_type": "stream",
35 | "text": [
36 | "(5400, 8)\n",
37 | "(310, 8)\n"
38 | ]
39 | }
40 | ],
41 | "source": [
42 | "FILE_HO_TRAIN = 'training.csv'\n",
43 | "FILE_HO_TEST = 'testingv2.csv'\n",
44 | "\n",
45 | "df_ho_train = read_file(FILE_HO_TRAIN)\n",
46 | "df_ho_test = read_file(FILE_HO_TEST)"
47 | ]
48 | },
49 | {
50 | "cell_type": "code",
51 | "execution_count": 5,
52 | "metadata": {},
53 | "outputs": [],
54 | "source": [
55 | "from sklearn.preprocessing import LabelEncoder\n",
56 | "\n",
57 | "target_encoder = LabelEncoder()\n",
58 | "df_ho_train['Target'] = target_encoder.fit_transform(df_ho_train['label'])\n",
59 | "df_ho_test['Target'] = target_encoder.transform(df_ho_test['label'])\n",
60 | "\n",
61 | "x_ho_train = df_ho_train.drop(['label', 'Target'], axis=1)\n",
62 | "y_ho_train = df_ho_train['Target']\n",
63 | "\n",
64 | "x_ho_test = df_ho_test.drop(['label', 'Target'], axis=1)\n",
65 | "y_ho_test = df_ho_test['Target']"
66 | ]
67 | },
68 | {
69 | "cell_type": "code",
70 | "execution_count": 8,
71 | "metadata": {},
72 | "outputs": [
73 | {
74 | "data": {
75 | "text/plain": [
76 | "0.5451612903225806"
77 | ]
78 | },
79 | "execution_count": 8,
80 | "metadata": {},
81 | "output_type": "execute_result"
82 | }
83 | ],
84 | "source": [
85 | "# Mengaktifkan/memanggil/membuat fungsi klasifikasi Naive Bayes\n",
86 | "modelnb = GaussianNB()\n",
87 | "\n",
88 | "# Memasukkan data training pada fungsi klasifikasi Naive Bayes\n",
89 | "nbtrain = modelnb.fit(x_ho_train, y_ho_train)\n",
90 | "modelnb.score(x_ho_test,y_ho_test)"
91 | ]
92 | },
93 | {
94 | "cell_type": "code",
95 | "execution_count": 9,
96 | "metadata": {},
97 | "outputs": [
98 | {
99 | "name": "stdout",
100 | "output_type": "stream",
101 | "text": [
102 | "Akurasi pada Algoritma RandomForest menggunakan split dengan persentase 90:10 = 54.516129032258064\n"
103 | ]
104 | }
105 | ],
106 | "source": [
107 | "from sklearn.metrics import accuracy_score, f1_score\n",
108 | "\n",
109 | "predicted= modelnb.predict(x_ho_test)\n",
110 | "\n",
111 | "accuracy_ho = accuracy_score(predicted, y_ho_test) * 100\n",
112 | "print('Akurasi pada Algoritma RandomForest menggunakan split dengan persentase 90:10 = %s' % accuracy_ho)"
113 | ]
114 | },
115 | {
116 | "cell_type": "code",
117 | "execution_count": 10,
118 | "metadata": {},
119 | "outputs": [
120 | {
121 | "data": {
122 | "image/png": "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\n",
123 | "text/plain": [
124 | ""
125 | ]
126 | },
127 | "metadata": {
128 | "needs_background": "light"
129 | },
130 | "output_type": "display_data"
131 | }
132 | ],
133 | "source": [
134 | "# Create Confusion Matrix\n",
135 | "\n",
136 | "import seaborn as sns\n",
137 | "import matplotlib.pyplot as plt\n",
138 | "\n",
139 | "from sklearn.metrics import confusion_matrix\n",
140 | "confusion_matrix(y_ho_test, predicted) \n",
141 | "\n",
142 | "f, ax = plt.subplots(figsize=(8,5))\n",
143 | "sns.heatmap(confusion_matrix(y_ho_test, predicted), annot=True, fmt=\".0f\", ax=ax)\n",
144 | "plt.xlabel(\"Predicted Class\")\n",
145 | "plt.ylabel(\"Actual Class\")\n",
146 | "plt.show()"
147 | ]
148 | },
149 | {
150 | "cell_type": "code",
151 | "execution_count": 11,
152 | "metadata": {},
153 | "outputs": [
154 | {
155 | "name": "stdout",
156 | "output_type": "stream",
157 | "text": [
158 | " precision recall f1-score support\n",
159 | "\n",
160 | " 0 1.00 0.53 0.69 300\n",
161 | " 1 0.07 1.00 0.12 10\n",
162 | "\n",
163 | " accuracy 0.55 310\n",
164 | " macro avg 0.53 0.77 0.41 310\n",
165 | "weighted avg 0.97 0.55 0.67 310\n",
166 | "\n"
167 | ]
168 | }
169 | ],
170 | "source": [
171 | "# Performance Matrix Report - Precision Recall f1score\n",
172 | "\n",
173 | "from sklearn.metrics import classification_report\n",
174 | "print (classification_report(y_ho_test, predicted))"
175 | ]
176 | },
177 | {
178 | "cell_type": "code",
179 | "execution_count": null,
180 | "metadata": {},
181 | "outputs": [],
182 | "source": []
183 | }
184 | ],
185 | "metadata": {
186 | "kernelspec": {
187 | "display_name": "Python 3",
188 | "language": "python",
189 | "name": "python3"
190 | },
191 | "language_info": {
192 | "codemirror_mode": {
193 | "name": "ipython",
194 | "version": 3
195 | },
196 | "file_extension": ".py",
197 | "mimetype": "text/x-python",
198 | "name": "python",
199 | "nbconvert_exporter": "python",
200 | "pygments_lexer": "ipython3",
201 | "version": "3.8.5"
202 | }
203 | },
204 | "nbformat": 4,
205 | "nbformat_minor": 4
206 | }
207 |
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 2/Naive Bayes/NaiveBayesClassifier with sklearn - Dataset 1 - testingv03.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "import pandas as pd\n",
10 | "\n",
11 | "from sklearn.naive_bayes import GaussianNB"
12 | ]
13 | },
14 | {
15 | "cell_type": "code",
16 | "execution_count": 2,
17 | "metadata": {},
18 | "outputs": [],
19 | "source": [
20 | "def read_file(filename):\n",
21 | " df = pd.read_csv(filename)\n",
22 | " print(df.shape)\n",
23 | " df['label'] = df['label'].apply(lambda x: x.strip().lower())\n",
24 | " return df"
25 | ]
26 | },
27 | {
28 | "cell_type": "code",
29 | "execution_count": 4,
30 | "metadata": {},
31 | "outputs": [
32 | {
33 | "name": "stdout",
34 | "output_type": "stream",
35 | "text": [
36 | "(5400, 8)\n",
37 | "(600, 8)\n"
38 | ]
39 | }
40 | ],
41 | "source": [
42 | "FILE_HO_TRAIN = 'training.csv'\n",
43 | "FILE_HO_TEST = 'testingv3.csv'\n",
44 | "\n",
45 | "df_ho_train = read_file(FILE_HO_TRAIN)\n",
46 | "df_ho_test = read_file(FILE_HO_TEST)"
47 | ]
48 | },
49 | {
50 | "cell_type": "code",
51 | "execution_count": 5,
52 | "metadata": {},
53 | "outputs": [],
54 | "source": [
55 | "from sklearn.preprocessing import LabelEncoder\n",
56 | "\n",
57 | "target_encoder = LabelEncoder()\n",
58 | "df_ho_train['Target'] = target_encoder.fit_transform(df_ho_train['label'])\n",
59 | "df_ho_test['Target'] = target_encoder.transform(df_ho_test['label'])\n",
60 | "\n",
61 | "x_ho_train = df_ho_train.drop(['label', 'Target'], axis=1)\n",
62 | "y_ho_train = df_ho_train['Target']\n",
63 | "\n",
64 | "x_ho_test = df_ho_test.drop(['label', 'Target'], axis=1)\n",
65 | "y_ho_test = df_ho_test['Target']"
66 | ]
67 | },
68 | {
69 | "cell_type": "code",
70 | "execution_count": 8,
71 | "metadata": {},
72 | "outputs": [
73 | {
74 | "data": {
75 | "text/plain": [
76 | "0.71"
77 | ]
78 | },
79 | "execution_count": 8,
80 | "metadata": {},
81 | "output_type": "execute_result"
82 | }
83 | ],
84 | "source": [
85 | "# Mengaktifkan/memanggil/membuat fungsi klasifikasi Naive Bayes\n",
86 | "modelnb = GaussianNB()\n",
87 | "\n",
88 | "# Memasukkan data training pada fungsi klasifikasi Naive Bayes\n",
89 | "nbtrain = modelnb.fit(x_ho_train, y_ho_train)\n",
90 | "modelnb.score(x_ho_test,y_ho_test)"
91 | ]
92 | },
93 | {
94 | "cell_type": "code",
95 | "execution_count": 9,
96 | "metadata": {},
97 | "outputs": [
98 | {
99 | "name": "stdout",
100 | "output_type": "stream",
101 | "text": [
102 | "Akurasi pada Algoritma RandomForest menggunakan split dengan persentase 90:10 = 71.0\n"
103 | ]
104 | }
105 | ],
106 | "source": [
107 | "from sklearn.metrics import accuracy_score, f1_score\n",
108 | "\n",
109 | "predicted= modelnb.predict(x_ho_test)\n",
110 | "\n",
111 | "accuracy_ho = accuracy_score(predicted, y_ho_test) * 100\n",
112 | "print('Akurasi pada Algoritma RandomForest menggunakan split dengan persentase 90:10 = %s' % accuracy_ho)"
113 | ]
114 | },
115 | {
116 | "cell_type": "code",
117 | "execution_count": 11,
118 | "metadata": {},
119 | "outputs": [
120 | {
121 | "data": {
122 | "image/png": "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\n",
123 | "text/plain": [
124 | ""
125 | ]
126 | },
127 | "metadata": {
128 | "needs_background": "light"
129 | },
130 | "output_type": "display_data"
131 | }
132 | ],
133 | "source": [
134 | "# Create Confusion Matrix\n",
135 | "\n",
136 | "import seaborn as sns\n",
137 | "import matplotlib.pyplot as plt\n",
138 | "\n",
139 | "from sklearn.metrics import confusion_matrix\n",
140 | "confusion_matrix(y_ho_test, predicted) \n",
141 | "\n",
142 | "f, ax = plt.subplots(figsize=(8,5))\n",
143 | "sns.heatmap(confusion_matrix(y_ho_test, predicted), annot=True, fmt=\".0f\", ax=ax)\n",
144 | "plt.xlabel(\"Predicted Class\")\n",
145 | "plt.ylabel(\"Actual Class\")\n",
146 | "plt.show()"
147 | ]
148 | },
149 | {
150 | "cell_type": "code",
151 | "execution_count": 12,
152 | "metadata": {},
153 | "outputs": [
154 | {
155 | "name": "stdout",
156 | "output_type": "stream",
157 | "text": [
158 | " precision recall f1-score support\n",
159 | "\n",
160 | " 0 0.83 0.53 0.65 300\n",
161 | " 1 0.65 0.89 0.75 300\n",
162 | "\n",
163 | " accuracy 0.71 600\n",
164 | " macro avg 0.74 0.71 0.70 600\n",
165 | "weighted avg 0.74 0.71 0.70 600\n",
166 | "\n"
167 | ]
168 | }
169 | ],
170 | "source": [
171 | "# Performance Matrix Report - Precision Recall f1score\n",
172 | "\n",
173 | "from sklearn.metrics import classification_report\n",
174 | "print (classification_report(y_ho_test, predicted))"
175 | ]
176 | },
177 | {
178 | "cell_type": "code",
179 | "execution_count": null,
180 | "metadata": {},
181 | "outputs": [],
182 | "source": []
183 | }
184 | ],
185 | "metadata": {
186 | "kernelspec": {
187 | "display_name": "Python 3",
188 | "language": "python",
189 | "name": "python3"
190 | },
191 | "language_info": {
192 | "codemirror_mode": {
193 | "name": "ipython",
194 | "version": 3
195 | },
196 | "file_extension": ".py",
197 | "mimetype": "text/x-python",
198 | "name": "python",
199 | "nbconvert_exporter": "python",
200 | "pygments_lexer": "ipython3",
201 | "version": "3.8.5"
202 | }
203 | },
204 | "nbformat": 4,
205 | "nbformat_minor": 4
206 | }
207 |
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 2/README.md:
--------------------------------------------------------------------------------
1 | # csv
2 |
3 | # Algoritm
4 |
5 | 1. Decision Tree
6 | 2. Random Forest
7 | 3. Naive Bayes
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 2/Random Forest/Images/Random Forest result dataset 2 Python (Jupyter) vs RapidMiner.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Testing Scratch/Dataset 2/Random Forest/Images/Random Forest result dataset 2 Python (Jupyter) vs RapidMiner.PNG
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 2/Random Forest/Images/RapidMiner Random Forest Model.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wishihab/Android-RAT-Dataset/fa4b9f7c94e19cd2c47e7985e47aa08b1530bed7/Testing Scratch/Dataset 2/Random Forest/Images/RapidMiner Random Forest Model.PNG
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 2/Random Forest/RandomForestClassifier with sklearn - Dataset 1 - testingv01.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "import pandas as pd\n",
10 | "import numpy as np\n",
11 | "\n",
12 | "from sklearn.ensemble import RandomForestClassifier"
13 | ]
14 | },
15 | {
16 | "cell_type": "code",
17 | "execution_count": 2,
18 | "metadata": {},
19 | "outputs": [],
20 | "source": [
21 | "def read_file(filename):\n",
22 | " df = pd.read_csv(filename)\n",
23 | " print(df.shape)\n",
24 | " df['label'] = df['label'].apply(lambda x: x.strip().lower())\n",
25 | " return df"
26 | ]
27 | },
28 | {
29 | "cell_type": "code",
30 | "execution_count": 4,
31 | "metadata": {},
32 | "outputs": [
33 | {
34 | "name": "stdout",
35 | "output_type": "stream",
36 | "text": [
37 | "(5400, 8)\n",
38 | "(150, 8)\n"
39 | ]
40 | }
41 | ],
42 | "source": [
43 | "# training 5400\n",
44 | "# testing 150-10\n",
45 | "\n",
46 | "FILE_HO_TRAIN = 'training.csv'\n",
47 | "FILE_HO_TEST = 'testingv1.csv'\n",
48 | "\n",
49 | "df_ho_train = read_file(FILE_HO_TRAIN)\n",
50 | "df_ho_test = read_file(FILE_HO_TEST)"
51 | ]
52 | },
53 | {
54 | "cell_type": "code",
55 | "execution_count": 5,
56 | "metadata": {},
57 | "outputs": [],
58 | "source": [
59 | "from sklearn.preprocessing import LabelEncoder\n",
60 | "\n",
61 | "target_encoder = LabelEncoder()\n",
62 | "df_ho_train['Target'] = target_encoder.fit_transform(df_ho_train['label'])\n",
63 | "df_ho_test['Target'] = target_encoder.transform(df_ho_test['label'])\n",
64 | "\n",
65 | "x_ho_train = df_ho_train.drop(['label', 'Target'], axis=1)\n",
66 | "y_ho_train = df_ho_train['Target']\n",
67 | "\n",
68 | "x_ho_test = df_ho_test.drop(['label', 'Target'], axis=1)\n",
69 | "y_ho_test = df_ho_test['Target']"
70 | ]
71 | },
72 | {
73 | "cell_type": "code",
74 | "execution_count": 6,
75 | "metadata": {},
76 | "outputs": [
77 | {
78 | "data": {
79 | "text/plain": [
80 | "0.9333333333333333"
81 | ]
82 | },
83 | "execution_count": 6,
84 | "metadata": {},
85 | "output_type": "execute_result"
86 | }
87 | ],
88 | "source": [
89 | "# do like rapidminer setting\n",
90 | "# criterion entropy is information gain\n",
91 | "# estimator set 100\n",
92 | "# max depth 10\n",
93 | "\n",
94 | "modelRF = RandomForestClassifier(criterion=\"entropy\", n_estimators=100, max_depth=10)\n",
95 | "modelRF.fit(x_ho_train,y_ho_train)\n",
96 | "modelRF.score(x_ho_test,y_ho_test)"
97 | ]
98 | },
99 | {
100 | "cell_type": "code",
101 | "execution_count": 7,
102 | "metadata": {},
103 | "outputs": [
104 | {
105 | "name": "stdout",
106 | "output_type": "stream",
107 | "text": [
108 | "Akurasi pada Algoritma RandomForest menggunakan split dengan persentase 90:10 = 93.33333333333333\n"
109 | ]
110 | }
111 | ],
112 | "source": [
113 | "from sklearn.metrics import accuracy_score, f1_score\n",
114 | "\n",
115 | "predicted= modelRF.predict(x_ho_test)\n",
116 | "\n",
117 | "accuracy_ho = accuracy_score(predicted, y_ho_test) * 100\n",
118 | "print('Akurasi pada Algoritma RandomForest menggunakan split dengan persentase 90:10 = %s' % accuracy_ho)"
119 | ]
120 | },
121 | {
122 | "cell_type": "code",
123 | "execution_count": 8,
124 | "metadata": {},
125 | "outputs": [
126 | {
127 | "data": {
128 | "image/png": "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\n",
129 | "text/plain": [
130 | ""
131 | ]
132 | },
133 | "metadata": {
134 | "needs_background": "light"
135 | },
136 | "output_type": "display_data"
137 | }
138 | ],
139 | "source": [
140 | "# Create Confusion Matrix\n",
141 | "\n",
142 | "import seaborn as sns\n",
143 | "import matplotlib.pyplot as plt\n",
144 | "\n",
145 | "from sklearn.metrics import confusion_matrix\n",
146 | "confusion_matrix(y_ho_test, predicted) \n",
147 | "\n",
148 | "f, ax = plt.subplots(figsize=(8,5))\n",
149 | "sns.heatmap(confusion_matrix(y_ho_test, predicted), annot=True, fmt=\".0f\", ax=ax)\n",
150 | "plt.xlabel(\"Predicted Class\")\n",
151 | "plt.ylabel(\"Actual Class\")\n",
152 | "plt.show()"
153 | ]
154 | },
155 | {
156 | "cell_type": "code",
157 | "execution_count": 9,
158 | "metadata": {},
159 | "outputs": [
160 | {
161 | "name": "stdout",
162 | "output_type": "stream",
163 | "text": [
164 | " precision recall f1-score support\n",
165 | "\n",
166 | " 0 1.00 0.93 0.96 140\n",
167 | " 1 0.50 1.00 0.67 10\n",
168 | "\n",
169 | " accuracy 0.93 150\n",
170 | " macro avg 0.75 0.96 0.81 150\n",
171 | "weighted avg 0.97 0.93 0.94 150\n",
172 | "\n"
173 | ]
174 | }
175 | ],
176 | "source": [
177 | "# Performance Matrix Report - Precision Recall f1score\n",
178 | "\n",
179 | "from sklearn.metrics import classification_report\n",
180 | "print (classification_report(y_ho_test, predicted))"
181 | ]
182 | },
183 | {
184 | "cell_type": "code",
185 | "execution_count": null,
186 | "metadata": {},
187 | "outputs": [],
188 | "source": []
189 | }
190 | ],
191 | "metadata": {
192 | "kernelspec": {
193 | "display_name": "Python 3",
194 | "language": "python",
195 | "name": "python3"
196 | },
197 | "language_info": {
198 | "codemirror_mode": {
199 | "name": "ipython",
200 | "version": 3
201 | },
202 | "file_extension": ".py",
203 | "mimetype": "text/x-python",
204 | "name": "python",
205 | "nbconvert_exporter": "python",
206 | "pygments_lexer": "ipython3",
207 | "version": "3.8.5"
208 | }
209 | },
210 | "nbformat": 4,
211 | "nbformat_minor": 4
212 | }
213 |
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 2/Random Forest/RandomForestClassifier with sklearn - Dataset 1 - testingv02.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "import pandas as pd\n",
10 | "import numpy as np\n",
11 | "\n",
12 | "from sklearn.ensemble import RandomForestClassifier"
13 | ]
14 | },
15 | {
16 | "cell_type": "code",
17 | "execution_count": 2,
18 | "metadata": {},
19 | "outputs": [],
20 | "source": [
21 | "def read_file(filename):\n",
22 | " df = pd.read_csv(filename)\n",
23 | " print(df.shape)\n",
24 | " df['label'] = df['label'].apply(lambda x: x.strip().lower())\n",
25 | " return df"
26 | ]
27 | },
28 | {
29 | "cell_type": "code",
30 | "execution_count": 3,
31 | "metadata": {},
32 | "outputs": [
33 | {
34 | "name": "stdout",
35 | "output_type": "stream",
36 | "text": [
37 | "(5400, 8)\n",
38 | "(310, 8)\n"
39 | ]
40 | }
41 | ],
42 | "source": [
43 | "# training 5400\n",
44 | "# testing 300-10\n",
45 | "\n",
46 | "FILE_HO_TRAIN = 'training.csv'\n",
47 | "FILE_HO_TEST = 'testingv2.csv'\n",
48 | "\n",
49 | "df_ho_train = read_file(FILE_HO_TRAIN)\n",
50 | "df_ho_test = read_file(FILE_HO_TEST)"
51 | ]
52 | },
53 | {
54 | "cell_type": "code",
55 | "execution_count": 4,
56 | "metadata": {},
57 | "outputs": [],
58 | "source": [
59 | "from sklearn.preprocessing import LabelEncoder\n",
60 | "\n",
61 | "target_encoder = LabelEncoder()\n",
62 | "df_ho_train['Target'] = target_encoder.fit_transform(df_ho_train['label'])\n",
63 | "df_ho_test['Target'] = target_encoder.transform(df_ho_test['label'])\n",
64 | "\n",
65 | "x_ho_train = df_ho_train.drop(['label', 'Target'], axis=1)\n",
66 | "y_ho_train = df_ho_train['Target']\n",
67 | "\n",
68 | "x_ho_test = df_ho_test.drop(['label', 'Target'], axis=1)\n",
69 | "y_ho_test = df_ho_test['Target']"
70 | ]
71 | },
72 | {
73 | "cell_type": "code",
74 | "execution_count": 5,
75 | "metadata": {},
76 | "outputs": [
77 | {
78 | "data": {
79 | "text/plain": [
80 | "0.9290322580645162"
81 | ]
82 | },
83 | "execution_count": 5,
84 | "metadata": {},
85 | "output_type": "execute_result"
86 | }
87 | ],
88 | "source": [
89 | "# do like rapidminer setting\n",
90 | "# criterion entropy is information gain\n",
91 | "# estimator set 100\n",
92 | "# max depth 10\n",
93 | "\n",
94 | "modelRF = RandomForestClassifier(criterion=\"entropy\", n_estimators=100, max_depth=10)\n",
95 | "modelRF.fit(x_ho_train,y_ho_train)\n",
96 | "modelRF.score(x_ho_test,y_ho_test)"
97 | ]
98 | },
99 | {
100 | "cell_type": "code",
101 | "execution_count": 6,
102 | "metadata": {},
103 | "outputs": [
104 | {
105 | "name": "stdout",
106 | "output_type": "stream",
107 | "text": [
108 | "Akurasi pada Algoritma RandomForest menggunakan split dengan persentase 90:10 = 92.90322580645162\n"
109 | ]
110 | }
111 | ],
112 | "source": [
113 | "from sklearn.metrics import accuracy_score, f1_score\n",
114 | "\n",
115 | "predicted= modelRF.predict(x_ho_test)\n",
116 | "\n",
117 | "accuracy_ho = accuracy_score(predicted, y_ho_test) * 100\n",
118 | "print('Akurasi pada Algoritma RandomForest menggunakan split dengan persentase 90:10 = %s' % accuracy_ho)"
119 | ]
120 | },
121 | {
122 | "cell_type": "code",
123 | "execution_count": 7,
124 | "metadata": {},
125 | "outputs": [
126 | {
127 | "data": {
128 | "image/png": "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\n",
129 | "text/plain": [
130 | ""
131 | ]
132 | },
133 | "metadata": {
134 | "needs_background": "light"
135 | },
136 | "output_type": "display_data"
137 | }
138 | ],
139 | "source": [
140 | "# Create Confusion Matrix\n",
141 | "\n",
142 | "import seaborn as sns\n",
143 | "import matplotlib.pyplot as plt\n",
144 | "\n",
145 | "from sklearn.metrics import confusion_matrix\n",
146 | "confusion_matrix(y_ho_test, predicted) \n",
147 | "\n",
148 | "f, ax = plt.subplots(figsize=(8,5))\n",
149 | "sns.heatmap(confusion_matrix(y_ho_test, predicted), annot=True, fmt=\".0f\", ax=ax)\n",
150 | "plt.xlabel(\"Predicted Class\")\n",
151 | "plt.ylabel(\"Actual Class\")\n",
152 | "plt.show()"
153 | ]
154 | },
155 | {
156 | "cell_type": "code",
157 | "execution_count": 8,
158 | "metadata": {},
159 | "outputs": [
160 | {
161 | "name": "stdout",
162 | "output_type": "stream",
163 | "text": [
164 | " precision recall f1-score support\n",
165 | "\n",
166 | " 0 1.00 0.93 0.96 300\n",
167 | " 1 0.31 1.00 0.48 10\n",
168 | "\n",
169 | " accuracy 0.93 310\n",
170 | " macro avg 0.66 0.96 0.72 310\n",
171 | "weighted avg 0.98 0.93 0.95 310\n",
172 | "\n"
173 | ]
174 | }
175 | ],
176 | "source": [
177 | "# Performance Matrix Report - Precision Recall f1score\n",
178 | "\n",
179 | "from sklearn.metrics import classification_report\n",
180 | "print (classification_report(y_ho_test, predicted))"
181 | ]
182 | },
183 | {
184 | "cell_type": "code",
185 | "execution_count": null,
186 | "metadata": {},
187 | "outputs": [],
188 | "source": []
189 | }
190 | ],
191 | "metadata": {
192 | "kernelspec": {
193 | "display_name": "Python 3",
194 | "language": "python",
195 | "name": "python3"
196 | },
197 | "language_info": {
198 | "codemirror_mode": {
199 | "name": "ipython",
200 | "version": 3
201 | },
202 | "file_extension": ".py",
203 | "mimetype": "text/x-python",
204 | "name": "python",
205 | "nbconvert_exporter": "python",
206 | "pygments_lexer": "ipython3",
207 | "version": "3.8.5"
208 | }
209 | },
210 | "nbformat": 4,
211 | "nbformat_minor": 4
212 | }
213 |
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 2/Random Forest/RandomForestClassifier with sklearn - Dataset 1 - testingv03.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "import pandas as pd\n",
10 | "\n",
11 | "from sklearn.ensemble import RandomForestClassifier"
12 | ]
13 | },
14 | {
15 | "cell_type": "code",
16 | "execution_count": 2,
17 | "metadata": {},
18 | "outputs": [],
19 | "source": [
20 | "def read_file(filename):\n",
21 | " df = pd.read_csv(filename)\n",
22 | " print(df.shape)\n",
23 | " df['label'] = df['label'].apply(lambda x: x.strip().lower())\n",
24 | " return df"
25 | ]
26 | },
27 | {
28 | "cell_type": "code",
29 | "execution_count": 3,
30 | "metadata": {},
31 | "outputs": [
32 | {
33 | "name": "stdout",
34 | "output_type": "stream",
35 | "text": [
36 | "(5400, 8)\n",
37 | "(600, 8)\n"
38 | ]
39 | }
40 | ],
41 | "source": [
42 | "# training 5400\n",
43 | "# testing 300-300\n",
44 | "\n",
45 | "FILE_HO_TRAIN = 'training.csv'\n",
46 | "FILE_HO_TEST = 'testingv3.csv'\n",
47 | "\n",
48 | "df_ho_train = read_file(FILE_HO_TRAIN)\n",
49 | "df_ho_test = read_file(FILE_HO_TEST)"
50 | ]
51 | },
52 | {
53 | "cell_type": "code",
54 | "execution_count": 4,
55 | "metadata": {},
56 | "outputs": [],
57 | "source": [
58 | "from sklearn.preprocessing import LabelEncoder\n",
59 | "\n",
60 | "target_encoder = LabelEncoder()\n",
61 | "df_ho_train['Target'] = target_encoder.fit_transform(df_ho_train['label'])\n",
62 | "df_ho_test['Target'] = target_encoder.transform(df_ho_test['label'])\n",
63 | "\n",
64 | "x_ho_train = df_ho_train.drop(['label', 'Target'], axis=1)\n",
65 | "y_ho_train = df_ho_train['Target']\n",
66 | "\n",
67 | "x_ho_test = df_ho_test.drop(['label', 'Target'], axis=1)\n",
68 | "y_ho_test = df_ho_test['Target']"
69 | ]
70 | },
71 | {
72 | "cell_type": "code",
73 | "execution_count": 10,
74 | "metadata": {},
75 | "outputs": [
76 | {
77 | "data": {
78 | "text/plain": [
79 | "0.9283333333333333"
80 | ]
81 | },
82 | "execution_count": 10,
83 | "metadata": {},
84 | "output_type": "execute_result"
85 | }
86 | ],
87 | "source": [
88 | "# do like rapidminer setting\n",
89 | "# criterion entropy is information gain\n",
90 | "# estimator set 100\n",
91 | "# max depth 10\n",
92 | "\n",
93 | "modelRF = RandomForestClassifier(criterion=\"entropy\", n_estimators=100, max_depth=10)\n",
94 | "modelRF.fit(x_ho_train,y_ho_train)\n",
95 | "modelRF.score(x_ho_test,y_ho_test)"
96 | ]
97 | },
98 | {
99 | "cell_type": "code",
100 | "execution_count": 11,
101 | "metadata": {},
102 | "outputs": [
103 | {
104 | "name": "stdout",
105 | "output_type": "stream",
106 | "text": [
107 | "Akurasi pada Algoritma RandomForest menggunakan split dengan persentase 90:10 = 92.83333333333333\n"
108 | ]
109 | }
110 | ],
111 | "source": [
112 | "from sklearn.metrics import accuracy_score, f1_score\n",
113 | "\n",
114 | "predicted= modelRF.predict(x_ho_test)\n",
115 | "\n",
116 | "accuracy_ho = accuracy_score(predicted, y_ho_test) * 100\n",
117 | "print('Akurasi pada Algoritma RandomForest menggunakan split dengan persentase 90:10 = %s' % accuracy_ho)"
118 | ]
119 | },
120 | {
121 | "cell_type": "code",
122 | "execution_count": 12,
123 | "metadata": {},
124 | "outputs": [
125 | {
126 | "data": {
127 | "image/png": "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\n",
128 | "text/plain": [
129 | ""
130 | ]
131 | },
132 | "metadata": {
133 | "needs_background": "light"
134 | },
135 | "output_type": "display_data"
136 | }
137 | ],
138 | "source": [
139 | "# Create Confusion Matrix\n",
140 | "\n",
141 | "import seaborn as sns\n",
142 | "import matplotlib.pyplot as plt\n",
143 | "\n",
144 | "from sklearn.metrics import confusion_matrix\n",
145 | "confusion_matrix(y_ho_test, predicted) \n",
146 | "\n",
147 | "f, ax = plt.subplots(figsize=(8,5))\n",
148 | "sns.heatmap(confusion_matrix(y_ho_test, predicted), annot=True, fmt=\".0f\", ax=ax)\n",
149 | "plt.xlabel(\"Predicted Class\")\n",
150 | "plt.ylabel(\"Actual Class\")\n",
151 | "plt.show()"
152 | ]
153 | },
154 | {
155 | "cell_type": "code",
156 | "execution_count": 13,
157 | "metadata": {},
158 | "outputs": [
159 | {
160 | "name": "stdout",
161 | "output_type": "stream",
162 | "text": [
163 | " precision recall f1-score support\n",
164 | "\n",
165 | " 0 0.94 0.92 0.93 300\n",
166 | " 1 0.92 0.94 0.93 300\n",
167 | "\n",
168 | " accuracy 0.93 600\n",
169 | " macro avg 0.93 0.93 0.93 600\n",
170 | "weighted avg 0.93 0.93 0.93 600\n",
171 | "\n"
172 | ]
173 | }
174 | ],
175 | "source": [
176 | "# Performance Matrix Report - Precision Recall f1score\n",
177 | "\n",
178 | "from sklearn.metrics import classification_report\n",
179 | "print (classification_report(y_ho_test, predicted))"
180 | ]
181 | },
182 | {
183 | "cell_type": "code",
184 | "execution_count": null,
185 | "metadata": {},
186 | "outputs": [],
187 | "source": []
188 | }
189 | ],
190 | "metadata": {
191 | "kernelspec": {
192 | "display_name": "Python 3",
193 | "language": "python",
194 | "name": "python3"
195 | },
196 | "language_info": {
197 | "codemirror_mode": {
198 | "name": "ipython",
199 | "version": 3
200 | },
201 | "file_extension": ".py",
202 | "mimetype": "text/x-python",
203 | "name": "python",
204 | "nbconvert_exporter": "python",
205 | "pygments_lexer": "ipython3",
206 | "version": "3.8.5"
207 | }
208 | },
209 | "nbformat": 4,
210 | "nbformat_minor": 4
211 | }
212 |
--------------------------------------------------------------------------------
/Testing Scratch/Dataset 2/testingv1.csv:
--------------------------------------------------------------------------------
1 | total_length_out,total_length_in,avg_packet_length_out,avg_packet_length_in,avg_duration_out,avg_duration_in,total_duration,label
2 | 5856,532,585.6,53.2,1.611882,1.005457,26.173386,Trojan
3 | 19600,312,1400,52,0.000302,0.000200,0.005426,Trojan
4 | 13724,364,1055.692308,52,0.049003,0.000707,0.641126,Trojan
5 | 14378,312,1027,52,0.046377,0.000732,0.653661,Trojan
6 | 812,563,73.81818182,62.55555556,1.908398,1.516605,34.64183,Trojan
7 | 9978,4259,1108.666667,387.1818182,0.021671,0.041039,0.646469,Trojan
8 | 442,415,44.2,41.5,0.384397,1.953759,23.381559,Trojan
9 | 10089,398,840.75,49.75,0.151534,0.600073,6.618997,Trojan
10 | 1795,928,179.5,92.8,0.285265,0.037851,3.231163,Trojan
11 | 732,1266,73.2,126.6,1.288615,6.686840,79.754546,Trojan
12 | 416,15526,52,1293.833333,0.000220,0.000060,0.002477,Benign
13 | 520,13732,52,1373.2,0.000192,0.000135,0.003269,Benign
14 | 936,1526,52,763,0.000272,0.000166,0.005227,Benign
15 | 1040,0,52,0,0.000318,0.000000,0.006355,Benign
16 | 1040,0,52,0,0.000290,0.000000,0.005792,Benign
17 | 1040,0,52,0,0.000283,0.000000,0.005665,Benign
18 | 1040,0,52,0,0.000301,0.000000,0.006016,Benign
19 | 1040,0,52,0,0.000287,0.000000,0.005739,Benign
20 | 948,7000,63.2,1400,0.000202,0.000194,0.004001,Benign
21 | 1288,2800,71.55555556,1400,0.000296,0.000128,0.005577,Benign
22 | 1440,0,72,0,0.000300,0.000000,0.006005,Benign
23 | 1440,0,72,0,0.000291,0.000000,0.005827,Benign
24 | 1200,1400,63.15789474,1400,0.000262,0.000108,0.005089,Benign
25 | 1132,0,56.6,0,0.000263,0.000000,0.005254,Benign
26 | 168,16523,56,971.9411765,0.000270,0.006370,0.109101,Benign
27 | 0,24290,0,1214.5,0.000000,0.000022,0.00043,Benign
28 | 520,9107,52,910.7,0.000171,0.000012,0.001826,Benign
29 | 1040,0,52,0,0.000219,0.000000,0.004375,Benign
30 | 896,828,52.70588235,276,0.000286,0.008357,0.029939,Benign
31 | 683,23130,341.5,1285,0.167521,0.000108,0.336982,Benign
32 | 416,14210,52,1184.166667,0.000284,0.000017,0.002477,Benign
33 | 1040,0,52,0,0.000284,0.000000,0.005673,Benign
34 | 700,20376,233.3333333,1198.588235,0.041032,0.001865,0.154808,Benign
35 | 0,28000,0,1400,0.000000,0.000010,0.000191,Benign
36 | 52,26435,52,1391.315789,0.000173,0.000016,0.000472,Benign
37 | 52,26600,52,1400,0.000053,0.000011,0.000266,Benign
38 | 833,7087,59.5,1181.166667,0.000561,0.000112,0.00853,Benign
39 | 1635,52,86.05263158,52,0.000506,0.000715,0.01033,Benign
40 | 1040,0,52,0,0.000026,0.000000,0.000526,Benign
41 | 520,14000,52,1400,0.000033,0.000035,0.000673,Benign
42 | 0,28000,0,1400,0.000000,0.000026,0.000527,Benign
43 | 312,19600,52,1400,0.000024,0.000013,0.00033,Benign
44 | 104,25200,52,1400,0.000013,0.000031,25200,Benign
45 | 312,19185,52,1370.357143,0.001794,0.000032,0.011208,Benign
46 | 988,126,52,126,0.000020,0.000001,0.000377,Benign
47 | 1040,0,52,0,0.000479,0.000000,0.009583,Benign
48 | 1040,0,52,0,0.000049,0.000000,0.000977,Benign
49 | 1040,0,52,0,0.000041,0.000000,0.000819,Benign
50 | 936,364,52,182,0.000226,0.001219,0.006499,Benign
51 | 1350,17631,270,1175.4,0.009026,0.000152,0.047405,Benign
52 | 260,19618,52,1307.866667,0.001377,0.000021,0.007194,Benign
53 | 1040,0,52,0,0.000327,0.000000,0.006533,Benign
54 | 260,17868,52,1191.2,0.000028,0.000450,0.006885,Benign
55 | 104,20883,52,1160.166667,0.001297,0.000019,0.002939,Benign
56 | 1040,0,52,0,0.000385,0.000000,0.007709,Benign
57 | 468,9316,52,846.9090909,0.001572,0.003209,0.049455,Benign
58 | 927,3851,61.8,770.2,0.000741,0.000023,0.01123,Benign
59 | 208,12481,52,780.0625,0.000644,0.000191,0.005622,Benign
60 | 1006,2813,111.7777778,255.7272727,0.006983,0.008674,0.158257,Benign
61 | 699,3125,87.375,260.4166667,0.011236,0.029025,0.43818,Benign
62 | 1213,6172,121.3,617.2,0.250721,0.023988,2.747083,Benign
63 | 1792,1256,149.3333333,157,1.136611,0.153883,14.870386,Benign
64 | 468,15196,52,1381.454545,0.000602,0.000089,0.006397,Benign
65 | 367,18304,61.16666667,1307.428571,0.002962,0.000128,0.019569,Benign
66 | 777,8291,59.76923077,1036.375,0.001078,0.000154,0.015233,Benign
67 | 3869,4696,386.9,469.6,3.475922,0.008177,34.840995,Benign
68 | 5841,3387,486.75,423.375,0.082086,0.004039,1.017344,Benign
69 | 12600,572,1400,52,0.000237,0.000153,0.003819,Benign
70 | 14000,520,1400,52,0.000144,0.000122,0.002661,Benign
71 | 11049,1828,1227.666667,166.1818182,0.047967,0.028197,0.741869,Benign
72 | 13567,1138,1130.583333,142.25,0.017619,0.002865,0.234347,Benign
73 | 4443,4330,493.6666667,393.6363636,0.028444,0.018051,0.454552,Benign
74 | 6109,3281,555.3636364,364.5555556,0.021890,0.008087,0.313572,Benign
75 | 2254,2739,250.4444444,249,15.417934,0.005021,138.816634,Benign
76 | 2153,4869,215.3,486.9,0.342925,0.004785,3.477093,Benign
77 | 1498,1683,187.25,140.25,0.025416,5.005738,60.272179,Benign
78 | 644,476,58.54545455,52.88888889,5.485595,13.274716,179.813989,Benign
79 | 1144,3178,114.4,317.8,17.252015,0.003792,172.55807,Benign
80 | 2209,1777,200.8181818,177.7,1.448418,0.027127,16.203002,Benign
81 | 2001,4449,222.3333333,404.4545455,0.006135,0.005726,0.118203,Benign
82 | 1810,3857,201.1111111,350.6363636,13.578150,0.011711,122.33217,Benign
83 | 1621,1676,202.625,139.6666667,0.012625,8.470028,101.741331,Benign
84 | 6235,4772,566.8181818,530.2222222,1.324204,0.007430,14.633111,Benign
85 | 1606,3713,160.6,371.3,0.118602,0.022756,1.413574,Benign
86 | 1873,1015,208.1111111,92.27272727,0.021721,0.002725,0.22546,Benign
87 | 671,4417,83.875,368.0833333,0.677163,0.009401,5.530116,Benign
88 | 1945,1825,176.8181818,202.7777778,0.011313,0.016697,0.274721,Benign
89 | 536,536,67,53.6,0.749217,10.893955,116.274163,Benign
90 | 0,22667,0,1133.35,0.000000,0.000021,0.000416,Benign
91 | 1309,9029,187,694.5384615,0.000454,0.000217,0.005991,Benign
92 | 1469,178,81.61111111,89,0.000649,0.001243,0.014167,Benign
93 | 620,9612,56.36363636,1068,0.001414,0.000027,0.015794,Benign
94 | 1245,7338,103.75,917.25,0.007912,0.000309,0.097412,Benign
95 | 588,6543,53.45454545,727,0.001994,0.002583,0.045183,Benign
96 | 416,13312,52,1109.333333,0.001624,0.000021,0.013243,Benign
97 | 1995,2681,153.4615385,446.8333333,0.002476,0.000645,0.036259,Benign
98 | 1019,10573,169.8333333,755.2142857,0.000859,0.000174,0.007595,Benign
99 | 1255,1615,83.66666667,323,0.004289,0.001328,0.070978,Benign
100 | 665,665,95,95,0.000552,0.000552,0.0603,Benign
101 | 4562,972,380.1666667,121.5,0.003639,0.000355,0.046501,Benign
102 | 649,23116,324.5,1284.222222,0.017717,0.000099,0.03722,Benign
103 | 0,28000,0,1400,0.000000,0.000027,0.000549,Benign
104 | 0,28000,0,1400,0.000000,0.000010,0.0002,Benign
105 | 700,23032,233.3333333,1354.823529,0.000722,0.000017,0.002458,Benign
106 | 0,28000,0,1400,0.000000,0.000011,0.000225,Benign
107 | 0,28000,0,1400,0.000000,0.000009,0.000178,Benign
108 | 52,26600,52,1400,0.000061,0.000016,0.000372,Benign
109 | 312,18252,52,1303.714286,0.000275,0.000204,0.004511,Benign
110 | 7859,7243,714.4545455,804.7777778,0.000766,0.000378,0.01183,Benign
111 | 864,18853,144,1346.642857,0.000329,0.005011,0.005011,Benign
112 | 0,26675,0,1333.75,0.000000,0.000100,0.001998,Benign
113 | 0,26464,0,1323.2,0.000000,0.000035,0.000704,Benign
114 | 208,19301,52,1206.3125,0.000290,0.000090,0.002598,Benign
115 | 416,16800,52,1400,0.000694,0.000149,0.007337,Benign
116 | 12238,2427,1359.777778,220.6363636,0.000878,0.039199,0.439087,Benign
117 | 656,7125,72.88888889,647.7272727,3.865589,0.003982,34.834099,Benign
118 | 1452,1447,145.2,144.7,0.005393,0.011599,0.169923,Benign
119 | 1222,3767,135.7777778,342.4545455,0.035985,0.011201,0.447081,Benign
120 | 1449,1695,181.125,141.25,0.026967,19.968305,239.835392,Benign
121 | 708,504,70.8,50.4,2.454773,0.027523,24.822953,Benign
122 | 2272,2611,252.4444444,237.3636364,55.823881,0.007820,502.500952,Benign
123 | 2765,2876,276.5,287.6,0.240199,0.026164,2.663622,Benign
124 | 1715,1872,142.9166667,234,5.016834,29.997419,300.181352,Benign
125 | 3831,1499,383.1,149.9,0.019733,0.003069,0.228017,Benign
126 | 1901,2646,190.1,264.6,2.319603,0.028269,23.478724,Benign
127 | 3911,3027,391.1,302.7,0.080811,0.120381,2.01192,Benign
128 | 3749,2247,374.9,224.7,1.006559,0.083725,10.902833,Benign
129 | 2515,4145,251.5,414.5,0.343112,0.434465,7.775766,Benign
130 | 640,5266,64,526.6,0.001436,0.000747,0.021831,Benign
131 | 640,4705,64,470.5,0.001078,0.001503,0.025806,Benign
132 | 448,6771,64,520.8461538,0.000679,0.000667,0.013428,Benign
133 | 648,4110,54,513.75,0.000890,0.000510,0.014751,Benign
134 | 1475,2291,122.9166667,286.375,0.537064,0.023667,6.634098,Benign
135 | 1570,7112,157,711.2,3.330282,0.002362,33.326437,Benign
136 | 3758,1147,341.6363636,127.4444444,0.010364,0.001746,0.129727,Benign
137 | 7190,1922,653.6363636,213.5555556,0.031467,0.030463,0.620305,Benign
138 | 2772,829,252,92.11111111,6.089106,0.036370,67.307489,Benign
139 | 4578,893,457.8,89.3,1.174172,0.034073,12.082454,Benign
140 | 882,625,67.84615385,89.28571429,8.879899,0.006421,115.483628,Benign
141 | 4336,1834,394.1818182,203.7777778,0.000623,0.000420,0.010631,Benign
142 | 1257,598,89.78571429,99.66666667,4.346160,40.000051,300.846552,Benign
143 | 6060,1307,550.9090909,145.2222222,0.047773,0.000473,0.529757,Benign
144 | 0,20830,0,1041.5,0.000000,0.001919,0.038374,Benign
145 | 696,11618,77.33333333,1056.181818,0.000201,0.000008,0.001893,Benign
146 | 1560,0,78,0,0.000301,0.000000,0.00602,Benign
147 | 838,4705,76.18181818,522.7777778,0.031981,0.029532,0.617579,Benign
148 | 1065,9758,118.3333333,887.0909091,0.003838,0.000256,0.037358,Benign
149 | 1399,7592,174.875,632.6666667,0.001163,0.000183,0.011497,Benign
150 | 1723,6289,132.5384615,898.4285714,0.001663,0.000283,0.023606,Benign
151 | 1493,7375,186.625,614.5833333,0.001381,0.000301,0.014656,Benign
152 |
--------------------------------------------------------------------------------