Showing
3 changed files
with
1432 additions
and
0 deletions
Code/DoS_CNN.ipynb
0 → 100644
1 | +{ | ||
2 | + "cells": [ | ||
3 | + { | ||
4 | + "cell_type": "code", | ||
5 | + "execution_count": 4, | ||
6 | + "metadata": { | ||
7 | + "scrolled": true | ||
8 | + }, | ||
9 | + "outputs": [], | ||
10 | + "source": [ | ||
11 | + "import csv\n", | ||
12 | + "import numpy as np\n", | ||
13 | + "import os\n", | ||
14 | + "import pandas as pd" | ||
15 | + ] | ||
16 | + }, | ||
17 | + { | ||
18 | + "cell_type": "code", | ||
19 | + "execution_count": 1, | ||
20 | + "metadata": {}, | ||
21 | + "outputs": [], | ||
22 | + "source": [ | ||
23 | + "def transferData(dir_, outputdir_) :\n", | ||
24 | + " outputfile = open(outputdir_, 'w', newline='\\n')\n", | ||
25 | + " fopen = open(dir_, 'r')\n", | ||
26 | + " csvreader = csv.reader(fopen)\n", | ||
27 | + " \n", | ||
28 | + " fw = csv.writer(outputfile)\n", | ||
29 | + " \n", | ||
30 | + " for line in csvreader :\n", | ||
31 | + " newdata = []\n", | ||
32 | + " can_id = int(line[1], 16)\n", | ||
33 | + " newdata.append(can_id)\n", | ||
34 | + " newdata.append(line[2])\n", | ||
35 | + " \n", | ||
36 | + " ll = len(line)\n", | ||
37 | + " num = int(line[2])\n", | ||
38 | + " \n", | ||
39 | + " data = []\n", | ||
40 | + " if num == 8 :\n", | ||
41 | + " data = line[3:11]\n", | ||
42 | + " else :\n", | ||
43 | + " data = line[3:3+num]\n", | ||
44 | + " for _ in range(8-num):\n", | ||
45 | + " data.append('0')\n", | ||
46 | + " #print(line)\n", | ||
47 | + " newdata.extend(list(map(lambda x:int(x, 16), data)))\n", | ||
48 | + " \n", | ||
49 | + " if line[-1] == 'T' :\n", | ||
50 | + " newdata.append(0)\n", | ||
51 | + " else :\n", | ||
52 | + " newdata.append(1)\n", | ||
53 | + " \n", | ||
54 | + " fw.writerow(newdata)\n", | ||
55 | + "\n", | ||
56 | + "def Preprocess(dir_) :\n", | ||
57 | + " f1 = open(dir_, 'r')\n", | ||
58 | + " fr = csv.reader(f1)\n", | ||
59 | + " d = [] \n", | ||
60 | + " for line in fr :\n", | ||
61 | + " l = []\n", | ||
62 | + " l.append(line[0])\n", | ||
63 | + " l.append(line[1])\n", | ||
64 | + " l.extend(line[2:11])\n", | ||
65 | + " \n", | ||
66 | + " d.append(l)\n", | ||
67 | + " return d" | ||
68 | + ] | ||
69 | + }, | ||
70 | + { | ||
71 | + "cell_type": "code", | ||
72 | + "execution_count": 5, | ||
73 | + "metadata": {}, | ||
74 | + "outputs": [], | ||
75 | + "source": [ | ||
76 | + "transferData('DoS_dataset.csv', 'DoS.csv')" | ||
77 | + ] | ||
78 | + }, | ||
79 | + { | ||
80 | + "cell_type": "code", | ||
81 | + "execution_count": 6, | ||
82 | + "metadata": {}, | ||
83 | + "outputs": [], | ||
84 | + "source": [ | ||
85 | + "datalist = Preprocess('DoS.csv')" | ||
86 | + ] | ||
87 | + }, | ||
88 | + { | ||
89 | + "cell_type": "code", | ||
90 | + "execution_count": 7, | ||
91 | + "metadata": {}, | ||
92 | + "outputs": [], | ||
93 | + "source": [ | ||
94 | + "datalist = datalist[0:3665761]" | ||
95 | + ] | ||
96 | + }, | ||
97 | + { | ||
98 | + "cell_type": "code", | ||
99 | + "execution_count": 8, | ||
100 | + "metadata": {}, | ||
101 | + "outputs": [ | ||
102 | + { | ||
103 | + "data": { | ||
104 | + "text/plain": [ | ||
105 | + "['790', '8', '5', '33', '104', '9', '33', '33', '0', '111', '1']" | ||
106 | + ] | ||
107 | + }, | ||
108 | + "execution_count": 8, | ||
109 | + "metadata": {}, | ||
110 | + "output_type": "execute_result" | ||
111 | + } | ||
112 | + ], | ||
113 | + "source": [ | ||
114 | + "datalist[0]" | ||
115 | + ] | ||
116 | + }, | ||
117 | + { | ||
118 | + "cell_type": "code", | ||
119 | + "execution_count": 9, | ||
120 | + "metadata": {}, | ||
121 | + "outputs": [], | ||
122 | + "source": [ | ||
123 | + "def createsequence(data) :\n", | ||
124 | + " arr = []\n", | ||
125 | + " for i in range(0, len(data)-11): \n", | ||
126 | + " d = []\n", | ||
127 | + " t = []\n", | ||
128 | + " for x in range(i, i+11):\n", | ||
129 | + " t = list(map(float, data[x]))\n", | ||
130 | + " #t = np.array(t, dtype=np.float32)\n", | ||
131 | + " #t = tf.convert_to_tensor(t)\n", | ||
132 | + " d.append(t)\n", | ||
133 | + " arr.append(d)\n", | ||
134 | + " return arr" | ||
135 | + ] | ||
136 | + }, | ||
137 | + { | ||
138 | + "cell_type": "code", | ||
139 | + "execution_count": 10, | ||
140 | + "metadata": {}, | ||
141 | + "outputs": [], | ||
142 | + "source": [ | ||
143 | + "resData = createsequence(datalist)" | ||
144 | + ] | ||
145 | + }, | ||
146 | + { | ||
147 | + "cell_type": "code", | ||
148 | + "execution_count": 11, | ||
149 | + "metadata": { | ||
150 | + "scrolled": true | ||
151 | + }, | ||
152 | + "outputs": [ | ||
153 | + { | ||
154 | + "name": "stdout", | ||
155 | + "output_type": "stream", | ||
156 | + "text": [ | ||
157 | + "[[0.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [305.0, 8.0, 0.0, 128.0, 0.0, 0.0, 76.0, 127.0, 10.0, 154.0, 1.0], [0.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [320.0, 8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 37.0, 42.0, 71.0, 1.0], [0.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [880.0, 8.0, 0.0, 32.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0], [0.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1087.0, 8.0, 0.0, 64.0, 96.0, 255.0, 126.0, 203.0, 8.0, 0.0, 1.0], [0.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1088.0, 8.0, 255.0, 0.0, 0.0, 0.0, 255.0, 203.0, 8.0, 0.0, 1.0], [0.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]]\n", | ||
158 | + "11\n", | ||
159 | + "<class 'list'>\n" | ||
160 | + ] | ||
161 | + } | ||
162 | + ], | ||
163 | + "source": [ | ||
164 | + "print(resData[1478])\n", | ||
165 | + "print(len(resData[1478]))\n", | ||
166 | + "print(type(resData))" | ||
167 | + ] | ||
168 | + }, | ||
169 | + { | ||
170 | + "cell_type": "code", | ||
171 | + "execution_count": 12, | ||
172 | + "metadata": {}, | ||
173 | + "outputs": [], | ||
174 | + "source": [ | ||
175 | + "def check(data):\n", | ||
176 | + " check = []\n", | ||
177 | + " \n", | ||
178 | + " for e in data :\n", | ||
179 | + " flag = False\n", | ||
180 | + " for i in e :\n", | ||
181 | + " if i[-1] == 0 :\n", | ||
182 | + " check.append(0)\n", | ||
183 | + " flag = True\n", | ||
184 | + " break\n", | ||
185 | + " if flag == False :\n", | ||
186 | + " check.append(1)\n", | ||
187 | + " \n", | ||
188 | + " return check\n", | ||
189 | + "\n", | ||
190 | + "cc = check(resData)" | ||
191 | + ] | ||
192 | + }, | ||
193 | + { | ||
194 | + "cell_type": "code", | ||
195 | + "execution_count": 13, | ||
196 | + "metadata": {}, | ||
197 | + "outputs": [ | ||
198 | + { | ||
199 | + "name": "stdout", | ||
200 | + "output_type": "stream", | ||
201 | + "text": [ | ||
202 | + "2585455\n", | ||
203 | + "1080295\n" | ||
204 | + ] | ||
205 | + } | ||
206 | + ], | ||
207 | + "source": [ | ||
208 | + "cnt = 0\n", | ||
209 | + "for e in cc:\n", | ||
210 | + " if e == 1 :\n", | ||
211 | + " cnt += 1\n", | ||
212 | + " \n", | ||
213 | + "print(cnt)\n", | ||
214 | + "print(len(cc)-cnt)" | ||
215 | + ] | ||
216 | + }, | ||
217 | + { | ||
218 | + "cell_type": "code", | ||
219 | + "execution_count": 216, | ||
220 | + "metadata": {}, | ||
221 | + "outputs": [], | ||
222 | + "source": [ | ||
223 | + "from sklearn.model_selection import train_test_split\n", | ||
224 | + "import tensorflow as tf" | ||
225 | + ] | ||
226 | + }, | ||
227 | + { | ||
228 | + "cell_type": "code", | ||
229 | + "execution_count": 404, | ||
230 | + "metadata": { | ||
231 | + "scrolled": true | ||
232 | + }, | ||
233 | + "outputs": [], | ||
234 | + "source": [ | ||
235 | + "df = pd.DataFrame(resData)\n", | ||
236 | + "n = len(df)\n", | ||
237 | + "\n", | ||
238 | + "X_train = df.iloc[0:n, 0:11].values.tolist()\n", | ||
239 | + "Y_train = cc\n", | ||
240 | + "\n", | ||
241 | + "#X_train = pd.\n", | ||
242 | + "X_train = np.asarray(X_train)\n", | ||
243 | + "Y_train = np.asarray(Y_train)\n", | ||
244 | + "#X_train = tf.constant(X_train)\n", | ||
245 | + "#print(X_train[-1])\n", | ||
246 | + "#Y_train = tf.convert_to_tensor(Y_train)\n", | ||
247 | + "\n", | ||
248 | + "#Y_train = np.squeeze(Y_train, axis=1)\n", | ||
249 | + "x_train, x_test, y_train, y_test = train_test_split(X_train, Y_train, test_size=0.3, random_state=321)" | ||
250 | + ] | ||
251 | + }, | ||
252 | + { | ||
253 | + "cell_type": "code", | ||
254 | + "execution_count": 405, | ||
255 | + "metadata": { | ||
256 | + "scrolled": false | ||
257 | + }, | ||
258 | + "outputs": [ | ||
259 | + { | ||
260 | + "name": "stdout", | ||
261 | + "output_type": "stream", | ||
262 | + "text": [ | ||
263 | + "(333251, 11)\n", | ||
264 | + "(3665750, 11, 11)\n", | ||
265 | + "(3665750,)\n" | ||
266 | + ] | ||
267 | + } | ||
268 | + ], | ||
269 | + "source": [ | ||
270 | + "print(X_train_.shape)\n", | ||
271 | + "print(X_train.shape)\n", | ||
272 | + "print(Y_train.shape)" | ||
273 | + ] | ||
274 | + }, | ||
275 | + { | ||
276 | + "cell_type": "code", | ||
277 | + "execution_count": 241, | ||
278 | + "metadata": {}, | ||
279 | + "outputs": [], | ||
280 | + "source": [ | ||
281 | + "for i in x_train:\n", | ||
282 | + " for j in i:\n", | ||
283 | + " if len(j) != 11:\n", | ||
284 | + " print(j)" | ||
285 | + ] | ||
286 | + }, | ||
287 | + { | ||
288 | + "cell_type": "code", | ||
289 | + "execution_count": 211, | ||
290 | + "metadata": { | ||
291 | + "scrolled": true | ||
292 | + }, | ||
293 | + "outputs": [ | ||
294 | + { | ||
295 | + "data": { | ||
296 | + "text/html": [ | ||
297 | + "<div>\n", | ||
298 | + "<style scoped>\n", | ||
299 | + " .dataframe tbody tr th:only-of-type {\n", | ||
300 | + " vertical-align: middle;\n", | ||
301 | + " }\n", | ||
302 | + "\n", | ||
303 | + " .dataframe tbody tr th {\n", | ||
304 | + " vertical-align: top;\n", | ||
305 | + " }\n", | ||
306 | + "\n", | ||
307 | + " .dataframe thead th {\n", | ||
308 | + " text-align: right;\n", | ||
309 | + " }\n", | ||
310 | + "</style>\n", | ||
311 | + "<table border=\"1\" class=\"dataframe\">\n", | ||
312 | + " <thead>\n", | ||
313 | + " <tr style=\"text-align: right;\">\n", | ||
314 | + " <th></th>\n", | ||
315 | + " <th>0</th>\n", | ||
316 | + " <th>1</th>\n", | ||
317 | + " <th>2</th>\n", | ||
318 | + " <th>3</th>\n", | ||
319 | + " <th>4</th>\n", | ||
320 | + " <th>5</th>\n", | ||
321 | + " <th>6</th>\n", | ||
322 | + " <th>7</th>\n", | ||
323 | + " <th>8</th>\n", | ||
324 | + " <th>9</th>\n", | ||
325 | + " <th>10</th>\n", | ||
326 | + " </tr>\n", | ||
327 | + " </thead>\n", | ||
328 | + " <tbody>\n", | ||
329 | + " <tr>\n", | ||
330 | + " <th>0</th>\n", | ||
331 | + " <td>[790.0, 8.0, 5.0, 33.0, 104.0, 9.0, 33.0, 33.0...</td>\n", | ||
332 | + " <td>[399.0, 8.0, 254.0, 91.0, 0.0, 0.0, 0.0, 60.0,...</td>\n", | ||
333 | + " <td>[608.0, 8.0, 25.0, 33.0, 34.0, 48.0, 8.0, 142....</td>\n", | ||
334 | + " <td>[672.0, 8.0, 100.0, 0.0, 154.0, 29.0, 151.0, 2...</td>\n", | ||
335 | + " <td>[809.0, 8.0, 64.0, 187.0, 127.0, 20.0, 17.0, 3...</td>\n", | ||
336 | + " <td>[1349.0, 8.0, 216.0, 0.0, 0.0, 138.0, 0.0, 0.0...</td>\n", | ||
337 | + " <td>[2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 11.0,...</td>\n", | ||
338 | + " <td>[339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255....</td>\n", | ||
339 | + " <td>[704.0, 8.0, 20.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0....</td>\n", | ||
340 | + " <td>[304.0, 8.0, 8.0, 128.0, 0.0, 255.0, 49.0, 128...</td>\n", | ||
341 | + " <td>[305.0, 8.0, 229.0, 127.0, 0.0, 0.0, 72.0, 127...</td>\n", | ||
342 | + " </tr>\n", | ||
343 | + " <tr>\n", | ||
344 | + " <th>1</th>\n", | ||
345 | + " <td>[399.0, 8.0, 254.0, 91.0, 0.0, 0.0, 0.0, 60.0,...</td>\n", | ||
346 | + " <td>[608.0, 8.0, 25.0, 33.0, 34.0, 48.0, 8.0, 142....</td>\n", | ||
347 | + " <td>[672.0, 8.0, 100.0, 0.0, 154.0, 29.0, 151.0, 2...</td>\n", | ||
348 | + " <td>[809.0, 8.0, 64.0, 187.0, 127.0, 20.0, 17.0, 3...</td>\n", | ||
349 | + " <td>[1349.0, 8.0, 216.0, 0.0, 0.0, 138.0, 0.0, 0.0...</td>\n", | ||
350 | + " <td>[2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 11.0,...</td>\n", | ||
351 | + " <td>[339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255....</td>\n", | ||
352 | + " <td>[704.0, 8.0, 20.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0....</td>\n", | ||
353 | + " <td>[304.0, 8.0, 8.0, 128.0, 0.0, 255.0, 49.0, 128...</td>\n", | ||
354 | + " <td>[305.0, 8.0, 229.0, 127.0, 0.0, 0.0, 72.0, 127...</td>\n", | ||
355 | + " <td>[320.0, 8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 34.0, 43...</td>\n", | ||
356 | + " </tr>\n", | ||
357 | + " <tr>\n", | ||
358 | + " <th>2</th>\n", | ||
359 | + " <td>[608.0, 8.0, 25.0, 33.0, 34.0, 48.0, 8.0, 142....</td>\n", | ||
360 | + " <td>[672.0, 8.0, 100.0, 0.0, 154.0, 29.0, 151.0, 2...</td>\n", | ||
361 | + " <td>[809.0, 8.0, 64.0, 187.0, 127.0, 20.0, 17.0, 3...</td>\n", | ||
362 | + " <td>[1349.0, 8.0, 216.0, 0.0, 0.0, 138.0, 0.0, 0.0...</td>\n", | ||
363 | + " <td>[2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 11.0,...</td>\n", | ||
364 | + " <td>[339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255....</td>\n", | ||
365 | + " <td>[704.0, 8.0, 20.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0....</td>\n", | ||
366 | + " <td>[304.0, 8.0, 8.0, 128.0, 0.0, 255.0, 49.0, 128...</td>\n", | ||
367 | + " <td>[305.0, 8.0, 229.0, 127.0, 0.0, 0.0, 72.0, 127...</td>\n", | ||
368 | + " <td>[320.0, 8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 34.0, 43...</td>\n", | ||
369 | + " <td>[848.0, 8.0, 5.0, 32.0, 20.0, 104.0, 119.0, 0....</td>\n", | ||
370 | + " </tr>\n", | ||
371 | + " <tr>\n", | ||
372 | + " <th>3</th>\n", | ||
373 | + " <td>[672.0, 8.0, 100.0, 0.0, 154.0, 29.0, 151.0, 2...</td>\n", | ||
374 | + " <td>[809.0, 8.0, 64.0, 187.0, 127.0, 20.0, 17.0, 3...</td>\n", | ||
375 | + " <td>[1349.0, 8.0, 216.0, 0.0, 0.0, 138.0, 0.0, 0.0...</td>\n", | ||
376 | + " <td>[2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 11.0,...</td>\n", | ||
377 | + " <td>[339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255....</td>\n", | ||
378 | + " <td>[704.0, 8.0, 20.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0....</td>\n", | ||
379 | + " <td>[304.0, 8.0, 8.0, 128.0, 0.0, 255.0, 49.0, 128...</td>\n", | ||
380 | + " <td>[305.0, 8.0, 229.0, 127.0, 0.0, 0.0, 72.0, 127...</td>\n", | ||
381 | + " <td>[320.0, 8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 34.0, 43...</td>\n", | ||
382 | + " <td>[848.0, 8.0, 5.0, 32.0, 20.0, 104.0, 119.0, 0....</td>\n", | ||
383 | + " <td>[1087.0, 8.0, 0.0, 64.0, 96.0, 255.0, 126.0, 2...</td>\n", | ||
384 | + " </tr>\n", | ||
385 | + " <tr>\n", | ||
386 | + " <th>4</th>\n", | ||
387 | + " <td>[809.0, 8.0, 64.0, 187.0, 127.0, 20.0, 17.0, 3...</td>\n", | ||
388 | + " <td>[1349.0, 8.0, 216.0, 0.0, 0.0, 138.0, 0.0, 0.0...</td>\n", | ||
389 | + " <td>[2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 11.0,...</td>\n", | ||
390 | + " <td>[339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255....</td>\n", | ||
391 | + " <td>[704.0, 8.0, 20.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0....</td>\n", | ||
392 | + " <td>[304.0, 8.0, 8.0, 128.0, 0.0, 255.0, 49.0, 128...</td>\n", | ||
393 | + " <td>[305.0, 8.0, 229.0, 127.0, 0.0, 0.0, 72.0, 127...</td>\n", | ||
394 | + " <td>[320.0, 8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 34.0, 43...</td>\n", | ||
395 | + " <td>[848.0, 8.0, 5.0, 32.0, 20.0, 104.0, 119.0, 0....</td>\n", | ||
396 | + " <td>[1087.0, 8.0, 0.0, 64.0, 96.0, 255.0, 126.0, 2...</td>\n", | ||
397 | + " <td>[880.0, 8.0, 0.0, 32.0, 0.0, 0.0, 0.0, 0.0, 0....</td>\n", | ||
398 | + " </tr>\n", | ||
399 | + " <tr>\n", | ||
400 | + " <th>...</th>\n", | ||
401 | + " <td>...</td>\n", | ||
402 | + " <td>...</td>\n", | ||
403 | + " <td>...</td>\n", | ||
404 | + " <td>...</td>\n", | ||
405 | + " <td>...</td>\n", | ||
406 | + " <td>...</td>\n", | ||
407 | + " <td>...</td>\n", | ||
408 | + " <td>...</td>\n", | ||
409 | + " <td>...</td>\n", | ||
410 | + " <td>...</td>\n", | ||
411 | + " <td>...</td>\n", | ||
412 | + " </tr>\n", | ||
413 | + " <tr>\n", | ||
414 | + " <th>333246</th>\n", | ||
415 | + " <td>[809.0, 8.0, 220.0, 183.0, 127.0, 20.0, 17.0, ...</td>\n", | ||
416 | + " <td>[880.0, 8.0, 0.0, 32.0, 0.0, 0.0, 0.0, 0.0, 0....</td>\n", | ||
417 | + " <td>[1072.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0....</td>\n", | ||
418 | + " <td>[1088.0, 8.0, 255.0, 0.0, 0.0, 0.0, 255.0, 138...</td>\n", | ||
419 | + " <td>[1201.0, 8.0, 41.0, 39.0, 39.0, 35.0, 0.0, 0.0...</td>\n", | ||
420 | + " <td>[497.0, 8.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0...</td>\n", | ||
421 | + " <td>[339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255....</td>\n", | ||
422 | + " <td>[2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 8.0, ...</td>\n", | ||
423 | + " <td>[848.0, 8.0, 5.0, 32.0, 164.0, 104.0, 118.0, 0...</td>\n", | ||
424 | + " <td>[1349.0, 8.0, 216.0, 82.0, 0.0, 139.0, 0.0, 0....</td>\n", | ||
425 | + " <td>[304.0, 8.0, 17.0, 128.0, 0.0, 255.0, 251.0, 1...</td>\n", | ||
426 | + " </tr>\n", | ||
427 | + " <tr>\n", | ||
428 | + " <th>333247</th>\n", | ||
429 | + " <td>[880.0, 8.0, 0.0, 32.0, 0.0, 0.0, 0.0, 0.0, 0....</td>\n", | ||
430 | + " <td>[1072.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0....</td>\n", | ||
431 | + " <td>[1088.0, 8.0, 255.0, 0.0, 0.0, 0.0, 255.0, 138...</td>\n", | ||
432 | + " <td>[1201.0, 8.0, 41.0, 39.0, 39.0, 35.0, 0.0, 0.0...</td>\n", | ||
433 | + " <td>[497.0, 8.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0...</td>\n", | ||
434 | + " <td>[339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255....</td>\n", | ||
435 | + " <td>[2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 8.0, ...</td>\n", | ||
436 | + " <td>[848.0, 8.0, 5.0, 32.0, 164.0, 104.0, 118.0, 0...</td>\n", | ||
437 | + " <td>[1349.0, 8.0, 216.0, 82.0, 0.0, 139.0, 0.0, 0....</td>\n", | ||
438 | + " <td>[304.0, 8.0, 17.0, 128.0, 0.0, 255.0, 251.0, 1...</td>\n", | ||
439 | + " <td>[305.0, 8.0, 233.0, 127.0, 0.0, 0.0, 63.0, 127...</td>\n", | ||
440 | + " </tr>\n", | ||
441 | + " <tr>\n", | ||
442 | + " <th>333248</th>\n", | ||
443 | + " <td>[1072.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0....</td>\n", | ||
444 | + " <td>[1088.0, 8.0, 255.0, 0.0, 0.0, 0.0, 255.0, 138...</td>\n", | ||
445 | + " <td>[1201.0, 8.0, 41.0, 39.0, 39.0, 35.0, 0.0, 0.0...</td>\n", | ||
446 | + " <td>[497.0, 8.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0...</td>\n", | ||
447 | + " <td>[339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255....</td>\n", | ||
448 | + " <td>[2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 8.0, ...</td>\n", | ||
449 | + " <td>[848.0, 8.0, 5.0, 32.0, 164.0, 104.0, 118.0, 0...</td>\n", | ||
450 | + " <td>[1349.0, 8.0, 216.0, 82.0, 0.0, 139.0, 0.0, 0....</td>\n", | ||
451 | + " <td>[304.0, 8.0, 17.0, 128.0, 0.0, 255.0, 251.0, 1...</td>\n", | ||
452 | + " <td>[305.0, 8.0, 233.0, 127.0, 0.0, 0.0, 63.0, 127...</td>\n", | ||
453 | + " <td>[320.0, 8.0, 0.0, 0.0, 0.0, 0.0, 22.0, 34.0, 4...</td>\n", | ||
454 | + " </tr>\n", | ||
455 | + " <tr>\n", | ||
456 | + " <th>333249</th>\n", | ||
457 | + " <td>[1088.0, 8.0, 255.0, 0.0, 0.0, 0.0, 255.0, 138...</td>\n", | ||
458 | + " <td>[1201.0, 8.0, 41.0, 39.0, 39.0, 35.0, 0.0, 0.0...</td>\n", | ||
459 | + " <td>[497.0, 8.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0...</td>\n", | ||
460 | + " <td>[339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255....</td>\n", | ||
461 | + " <td>[2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 8.0, ...</td>\n", | ||
462 | + " <td>[848.0, 8.0, 5.0, 32.0, 164.0, 104.0, 118.0, 0...</td>\n", | ||
463 | + " <td>[1349.0, 8.0, 216.0, 82.0, 0.0, 139.0, 0.0, 0....</td>\n", | ||
464 | + " <td>[304.0, 8.0, 17.0, 128.0, 0.0, 255.0, 251.0, 1...</td>\n", | ||
465 | + " <td>[305.0, 8.0, 233.0, 127.0, 0.0, 0.0, 63.0, 127...</td>\n", | ||
466 | + " <td>[320.0, 8.0, 0.0, 0.0, 0.0, 0.0, 22.0, 34.0, 4...</td>\n", | ||
467 | + " <td>[1264.0, 8.0, 0.0, 0.0, 0.0, 128.0, 0.0, 105.0...</td>\n", | ||
468 | + " </tr>\n", | ||
469 | + " <tr>\n", | ||
470 | + " <th>333250</th>\n", | ||
471 | + " <td>[1201.0, 8.0, 41.0, 39.0, 39.0, 35.0, 0.0, 0.0...</td>\n", | ||
472 | + " <td>[497.0, 8.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0...</td>\n", | ||
473 | + " <td>[339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255....</td>\n", | ||
474 | + " <td>[2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 8.0, ...</td>\n", | ||
475 | + " <td>[848.0, 8.0, 5.0, 32.0, 164.0, 104.0, 118.0, 0...</td>\n", | ||
476 | + " <td>[1349.0, 8.0, 216.0, 82.0, 0.0, 139.0, 0.0, 0....</td>\n", | ||
477 | + " <td>[304.0, 8.0, 17.0, 128.0, 0.0, 255.0, 251.0, 1...</td>\n", | ||
478 | + " <td>[305.0, 8.0, 233.0, 127.0, 0.0, 0.0, 63.0, 127...</td>\n", | ||
479 | + " <td>[320.0, 8.0, 0.0, 0.0, 0.0, 0.0, 22.0, 34.0, 4...</td>\n", | ||
480 | + " <td>[1264.0, 8.0, 0.0, 0.0, 0.0, 128.0, 0.0, 105.0...</td>\n", | ||
481 | + " <td>[1680.0, 8.0, 0.0, 0.0, 1.0, 0.0, 160.0, 34.0,...</td>\n", | ||
482 | + " </tr>\n", | ||
483 | + " </tbody>\n", | ||
484 | + "</table>\n", | ||
485 | + "<p>333251 rows × 11 columns</p>\n", | ||
486 | + "</div>" | ||
487 | + ], | ||
488 | + "text/plain": [ | ||
489 | + " 0 \\\n", | ||
490 | + "0 [790.0, 8.0, 5.0, 33.0, 104.0, 9.0, 33.0, 33.0... \n", | ||
491 | + "1 [399.0, 8.0, 254.0, 91.0, 0.0, 0.0, 0.0, 60.0,... \n", | ||
492 | + "2 [608.0, 8.0, 25.0, 33.0, 34.0, 48.0, 8.0, 142.... \n", | ||
493 | + "3 [672.0, 8.0, 100.0, 0.0, 154.0, 29.0, 151.0, 2... \n", | ||
494 | + "4 [809.0, 8.0, 64.0, 187.0, 127.0, 20.0, 17.0, 3... \n", | ||
495 | + "... ... \n", | ||
496 | + "333246 [809.0, 8.0, 220.0, 183.0, 127.0, 20.0, 17.0, ... \n", | ||
497 | + "333247 [880.0, 8.0, 0.0, 32.0, 0.0, 0.0, 0.0, 0.0, 0.... \n", | ||
498 | + "333248 [1072.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.... \n", | ||
499 | + "333249 [1088.0, 8.0, 255.0, 0.0, 0.0, 0.0, 255.0, 138... \n", | ||
500 | + "333250 [1201.0, 8.0, 41.0, 39.0, 39.0, 35.0, 0.0, 0.0... \n", | ||
501 | + "\n", | ||
502 | + " 1 \\\n", | ||
503 | + "0 [399.0, 8.0, 254.0, 91.0, 0.0, 0.0, 0.0, 60.0,... \n", | ||
504 | + "1 [608.0, 8.0, 25.0, 33.0, 34.0, 48.0, 8.0, 142.... \n", | ||
505 | + "2 [672.0, 8.0, 100.0, 0.0, 154.0, 29.0, 151.0, 2... \n", | ||
506 | + "3 [809.0, 8.0, 64.0, 187.0, 127.0, 20.0, 17.0, 3... \n", | ||
507 | + "4 [1349.0, 8.0, 216.0, 0.0, 0.0, 138.0, 0.0, 0.0... \n", | ||
508 | + "... ... \n", | ||
509 | + "333246 [880.0, 8.0, 0.0, 32.0, 0.0, 0.0, 0.0, 0.0, 0.... \n", | ||
510 | + "333247 [1072.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.... \n", | ||
511 | + "333248 [1088.0, 8.0, 255.0, 0.0, 0.0, 0.0, 255.0, 138... \n", | ||
512 | + "333249 [1201.0, 8.0, 41.0, 39.0, 39.0, 35.0, 0.0, 0.0... \n", | ||
513 | + "333250 [497.0, 8.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0... \n", | ||
514 | + "\n", | ||
515 | + " 2 \\\n", | ||
516 | + "0 [608.0, 8.0, 25.0, 33.0, 34.0, 48.0, 8.0, 142.... \n", | ||
517 | + "1 [672.0, 8.0, 100.0, 0.0, 154.0, 29.0, 151.0, 2... \n", | ||
518 | + "2 [809.0, 8.0, 64.0, 187.0, 127.0, 20.0, 17.0, 3... \n", | ||
519 | + "3 [1349.0, 8.0, 216.0, 0.0, 0.0, 138.0, 0.0, 0.0... \n", | ||
520 | + "4 [2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 11.0,... \n", | ||
521 | + "... ... \n", | ||
522 | + "333246 [1072.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.... \n", | ||
523 | + "333247 [1088.0, 8.0, 255.0, 0.0, 0.0, 0.0, 255.0, 138... \n", | ||
524 | + "333248 [1201.0, 8.0, 41.0, 39.0, 39.0, 35.0, 0.0, 0.0... \n", | ||
525 | + "333249 [497.0, 8.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0... \n", | ||
526 | + "333250 [339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255.... \n", | ||
527 | + "\n", | ||
528 | + " 3 \\\n", | ||
529 | + "0 [672.0, 8.0, 100.0, 0.0, 154.0, 29.0, 151.0, 2... \n", | ||
530 | + "1 [809.0, 8.0, 64.0, 187.0, 127.0, 20.0, 17.0, 3... \n", | ||
531 | + "2 [1349.0, 8.0, 216.0, 0.0, 0.0, 138.0, 0.0, 0.0... \n", | ||
532 | + "3 [2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 11.0,... \n", | ||
533 | + "4 [339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255.... \n", | ||
534 | + "... ... \n", | ||
535 | + "333246 [1088.0, 8.0, 255.0, 0.0, 0.0, 0.0, 255.0, 138... \n", | ||
536 | + "333247 [1201.0, 8.0, 41.0, 39.0, 39.0, 35.0, 0.0, 0.0... \n", | ||
537 | + "333248 [497.0, 8.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0... \n", | ||
538 | + "333249 [339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255.... \n", | ||
539 | + "333250 [2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 8.0, ... \n", | ||
540 | + "\n", | ||
541 | + " 4 \\\n", | ||
542 | + "0 [809.0, 8.0, 64.0, 187.0, 127.0, 20.0, 17.0, 3... \n", | ||
543 | + "1 [1349.0, 8.0, 216.0, 0.0, 0.0, 138.0, 0.0, 0.0... \n", | ||
544 | + "2 [2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 11.0,... \n", | ||
545 | + "3 [339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255.... \n", | ||
546 | + "4 [704.0, 8.0, 20.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.... \n", | ||
547 | + "... ... \n", | ||
548 | + "333246 [1201.0, 8.0, 41.0, 39.0, 39.0, 35.0, 0.0, 0.0... \n", | ||
549 | + "333247 [497.0, 8.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0... \n", | ||
550 | + "333248 [339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255.... \n", | ||
551 | + "333249 [2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 8.0, ... \n", | ||
552 | + "333250 [848.0, 8.0, 5.0, 32.0, 164.0, 104.0, 118.0, 0... \n", | ||
553 | + "\n", | ||
554 | + " 5 \\\n", | ||
555 | + "0 [1349.0, 8.0, 216.0, 0.0, 0.0, 138.0, 0.0, 0.0... \n", | ||
556 | + "1 [2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 11.0,... \n", | ||
557 | + "2 [339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255.... \n", | ||
558 | + "3 [704.0, 8.0, 20.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.... \n", | ||
559 | + "4 [304.0, 8.0, 8.0, 128.0, 0.0, 255.0, 49.0, 128... \n", | ||
560 | + "... ... \n", | ||
561 | + "333246 [497.0, 8.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0... \n", | ||
562 | + "333247 [339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255.... \n", | ||
563 | + "333248 [2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 8.0, ... \n", | ||
564 | + "333249 [848.0, 8.0, 5.0, 32.0, 164.0, 104.0, 118.0, 0... \n", | ||
565 | + "333250 [1349.0, 8.0, 216.0, 82.0, 0.0, 139.0, 0.0, 0.... \n", | ||
566 | + "\n", | ||
567 | + " 6 \\\n", | ||
568 | + "0 [2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 11.0,... \n", | ||
569 | + "1 [339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255.... \n", | ||
570 | + "2 [704.0, 8.0, 20.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.... \n", | ||
571 | + "3 [304.0, 8.0, 8.0, 128.0, 0.0, 255.0, 49.0, 128... \n", | ||
572 | + "4 [305.0, 8.0, 229.0, 127.0, 0.0, 0.0, 72.0, 127... \n", | ||
573 | + "... ... \n", | ||
574 | + "333246 [339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255.... \n", | ||
575 | + "333247 [2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 8.0, ... \n", | ||
576 | + "333248 [848.0, 8.0, 5.0, 32.0, 164.0, 104.0, 118.0, 0... \n", | ||
577 | + "333249 [1349.0, 8.0, 216.0, 82.0, 0.0, 139.0, 0.0, 0.... \n", | ||
578 | + "333250 [304.0, 8.0, 17.0, 128.0, 0.0, 255.0, 251.0, 1... \n", | ||
579 | + "\n", | ||
580 | + " 7 \\\n", | ||
581 | + "0 [339.0, 8.0, 0.0, 33.0, 16.0, 255.0, 0.0, 255.... \n", | ||
582 | + "1 [704.0, 8.0, 20.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.... \n", | ||
583 | + "2 [304.0, 8.0, 8.0, 128.0, 0.0, 255.0, 49.0, 128... \n", | ||
584 | + "3 [305.0, 8.0, 229.0, 127.0, 0.0, 0.0, 72.0, 127... \n", | ||
585 | + "4 [320.0, 8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 34.0, 43... \n", | ||
586 | + "... ... \n", | ||
587 | + "333246 [2.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 8.0, ... \n", | ||
588 | + "333247 [848.0, 8.0, 5.0, 32.0, 164.0, 104.0, 118.0, 0... \n", | ||
589 | + "333248 [1349.0, 8.0, 216.0, 82.0, 0.0, 139.0, 0.0, 0.... \n", | ||
590 | + "333249 [304.0, 8.0, 17.0, 128.0, 0.0, 255.0, 251.0, 1... \n", | ||
591 | + "333250 [305.0, 8.0, 233.0, 127.0, 0.0, 0.0, 63.0, 127... \n", | ||
592 | + "\n", | ||
593 | + " 8 \\\n", | ||
594 | + "0 [704.0, 8.0, 20.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.... \n", | ||
595 | + "1 [304.0, 8.0, 8.0, 128.0, 0.0, 255.0, 49.0, 128... \n", | ||
596 | + "2 [305.0, 8.0, 229.0, 127.0, 0.0, 0.0, 72.0, 127... \n", | ||
597 | + "3 [320.0, 8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 34.0, 43... \n", | ||
598 | + "4 [848.0, 8.0, 5.0, 32.0, 20.0, 104.0, 119.0, 0.... \n", | ||
599 | + "... ... \n", | ||
600 | + "333246 [848.0, 8.0, 5.0, 32.0, 164.0, 104.0, 118.0, 0... \n", | ||
601 | + "333247 [1349.0, 8.0, 216.0, 82.0, 0.0, 139.0, 0.0, 0.... \n", | ||
602 | + "333248 [304.0, 8.0, 17.0, 128.0, 0.0, 255.0, 251.0, 1... \n", | ||
603 | + "333249 [305.0, 8.0, 233.0, 127.0, 0.0, 0.0, 63.0, 127... \n", | ||
604 | + "333250 [320.0, 8.0, 0.0, 0.0, 0.0, 0.0, 22.0, 34.0, 4... \n", | ||
605 | + "\n", | ||
606 | + " 9 \\\n", | ||
607 | + "0 [304.0, 8.0, 8.0, 128.0, 0.0, 255.0, 49.0, 128... \n", | ||
608 | + "1 [305.0, 8.0, 229.0, 127.0, 0.0, 0.0, 72.0, 127... \n", | ||
609 | + "2 [320.0, 8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 34.0, 43... \n", | ||
610 | + "3 [848.0, 8.0, 5.0, 32.0, 20.0, 104.0, 119.0, 0.... \n", | ||
611 | + "4 [1087.0, 8.0, 0.0, 64.0, 96.0, 255.0, 126.0, 2... \n", | ||
612 | + "... ... \n", | ||
613 | + "333246 [1349.0, 8.0, 216.0, 82.0, 0.0, 139.0, 0.0, 0.... \n", | ||
614 | + "333247 [304.0, 8.0, 17.0, 128.0, 0.0, 255.0, 251.0, 1... \n", | ||
615 | + "333248 [305.0, 8.0, 233.0, 127.0, 0.0, 0.0, 63.0, 127... \n", | ||
616 | + "333249 [320.0, 8.0, 0.0, 0.0, 0.0, 0.0, 22.0, 34.0, 4... \n", | ||
617 | + "333250 [1264.0, 8.0, 0.0, 0.0, 0.0, 128.0, 0.0, 105.0... \n", | ||
618 | + "\n", | ||
619 | + " 10 \n", | ||
620 | + "0 [305.0, 8.0, 229.0, 127.0, 0.0, 0.0, 72.0, 127... \n", | ||
621 | + "1 [320.0, 8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 34.0, 43... \n", | ||
622 | + "2 [848.0, 8.0, 5.0, 32.0, 20.0, 104.0, 119.0, 0.... \n", | ||
623 | + "3 [1087.0, 8.0, 0.0, 64.0, 96.0, 255.0, 126.0, 2... \n", | ||
624 | + "4 [880.0, 8.0, 0.0, 32.0, 0.0, 0.0, 0.0, 0.0, 0.... \n", | ||
625 | + "... ... \n", | ||
626 | + "333246 [304.0, 8.0, 17.0, 128.0, 0.0, 255.0, 251.0, 1... \n", | ||
627 | + "333247 [305.0, 8.0, 233.0, 127.0, 0.0, 0.0, 63.0, 127... \n", | ||
628 | + "333248 [320.0, 8.0, 0.0, 0.0, 0.0, 0.0, 22.0, 34.0, 4... \n", | ||
629 | + "333249 [1264.0, 8.0, 0.0, 0.0, 0.0, 128.0, 0.0, 105.0... \n", | ||
630 | + "333250 [1680.0, 8.0, 0.0, 0.0, 1.0, 0.0, 160.0, 34.0,... \n", | ||
631 | + "\n", | ||
632 | + "[333251 rows x 11 columns]" | ||
633 | + ] | ||
634 | + }, | ||
635 | + "execution_count": 211, | ||
636 | + "metadata": {}, | ||
637 | + "output_type": "execute_result" | ||
638 | + } | ||
639 | + ], | ||
640 | + "source": [ | ||
641 | + "df" | ||
642 | + ] | ||
643 | + }, | ||
644 | + { | ||
645 | + "cell_type": "code", | ||
646 | + "execution_count": 406, | ||
647 | + "metadata": {}, | ||
648 | + "outputs": [ | ||
649 | + { | ||
650 | + "name": "stdout", | ||
651 | + "output_type": "stream", | ||
652 | + "text": [ | ||
653 | + "(1099725, 11, 11)\n" | ||
654 | + ] | ||
655 | + } | ||
656 | + ], | ||
657 | + "source": [ | ||
658 | + "print(x_test.shape)" | ||
659 | + ] | ||
660 | + }, | ||
661 | + { | ||
662 | + "cell_type": "code", | ||
663 | + "execution_count": 358, | ||
664 | + "metadata": {}, | ||
665 | + "outputs": [], | ||
666 | + "source": [ | ||
667 | + "# Model\n", | ||
668 | + "from keras.models import Sequential\n", | ||
669 | + "from keras.layers import Dense, LSTM, Conv1D, Dropout, GlobalAveragePooling1D, MaxPooling1D\n", | ||
670 | + "from keras.utils import np_utils\n", | ||
671 | + "from keras.layers.normalization import BatchNormalization" | ||
672 | + ] | ||
673 | + }, | ||
674 | + { | ||
675 | + "cell_type": "code", | ||
676 | + "execution_count": 407, | ||
677 | + "metadata": {}, | ||
678 | + "outputs": [ | ||
679 | + { | ||
680 | + "name": "stdout", | ||
681 | + "output_type": "stream", | ||
682 | + "text": [ | ||
683 | + "Model: \"sequential_53\"\n", | ||
684 | + "_________________________________________________________________\n", | ||
685 | + "Layer (type) Output Shape Param # \n", | ||
686 | + "=================================================================\n", | ||
687 | + "conv1d_99 (Conv1D) (None, 9, 64) 2176 \n", | ||
688 | + "_________________________________________________________________\n", | ||
689 | + "global_average_pooling1d_24 (None, 64) 0 \n", | ||
690 | + "_________________________________________________________________\n", | ||
691 | + "dropout_13 (Dropout) (None, 64) 0 \n", | ||
692 | + "_________________________________________________________________\n", | ||
693 | + "dense_35 (Dense) (None, 1) 65 \n", | ||
694 | + "=================================================================\n", | ||
695 | + "Total params: 2,241\n", | ||
696 | + "Trainable params: 2,241\n", | ||
697 | + "Non-trainable params: 0\n", | ||
698 | + "_________________________________________________________________\n" | ||
699 | + ] | ||
700 | + } | ||
701 | + ], | ||
702 | + "source": [ | ||
703 | + "model = Sequential()\n", | ||
704 | + "model.add(Conv1D(64, 3, input_shape=(11, 11), activation='relu'))\n", | ||
705 | + "#model.add(Conv1D(64, 3, activation='relu'))\n", | ||
706 | + "#model.add(MaxPooling1D(2))\n", | ||
707 | + "#model.add(Conv1D(128, 2, activation='relu'))\n", | ||
708 | + "#model.add(Conv1D(128, 2, activation='relu'))\n", | ||
709 | + "model.add(GlobalAveragePooling1D())\n", | ||
710 | + "model.add(Dropout(0.5))\n", | ||
711 | + "model.add(Dense(1, activation='sigmoid'))\n", | ||
712 | + "model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])\n", | ||
713 | + "model.summary()" | ||
714 | + ] | ||
715 | + }, | ||
716 | + { | ||
717 | + "cell_type": "code", | ||
718 | + "execution_count": 408, | ||
719 | + "metadata": {}, | ||
720 | + "outputs": [ | ||
721 | + { | ||
722 | + "name": "stdout", | ||
723 | + "output_type": "stream", | ||
724 | + "text": [ | ||
725 | + "Epoch 1/10\n", | ||
726 | + "25661/25661 [==============================] - 33s 1ms/step - loss: 0.0926 - accuracy: 0.9975 - val_loss: 0.0021 - val_accuracy: 0.9997\n", | ||
727 | + "Epoch 2/10\n", | ||
728 | + "25661/25661 [==============================] - 32s 1ms/step - loss: 0.0019 - accuracy: 0.9997 - val_loss: 8.2212e-04 - val_accuracy: 0.9998\n", | ||
729 | + "Epoch 3/10\n", | ||
730 | + "25661/25661 [==============================] - 33s 1ms/step - loss: 0.0012 - accuracy: 0.9998 - val_loss: 5.0894e-04 - val_accuracy: 0.9999\n", | ||
731 | + "Epoch 4/10\n", | ||
732 | + "25661/25661 [==============================] - 33s 1ms/step - loss: 8.3683e-04 - accuracy: 0.9999 - val_loss: 4.0702e-04 - val_accuracy: 0.9999\n", | ||
733 | + "Epoch 5/10\n", | ||
734 | + "25661/25661 [==============================] - 32s 1ms/step - loss: 6.7326e-04 - accuracy: 0.9999 - val_loss: 1.0525e-04 - val_accuracy: 1.0000\n", | ||
735 | + "Epoch 6/10\n", | ||
736 | + "25661/25661 [==============================] - 33s 1ms/step - loss: 4.6771e-04 - accuracy: 0.9999 - val_loss: 8.2441e-05 - val_accuracy: 1.0000\n", | ||
737 | + "Epoch 7/10\n", | ||
738 | + "25661/25661 [==============================] - 32s 1ms/step - loss: 5.0164e-04 - accuracy: 0.9999 - val_loss: 2.7738e-05 - val_accuracy: 1.0000\n", | ||
739 | + "Epoch 8/10\n", | ||
740 | + "25661/25661 [==============================] - 32s 1ms/step - loss: 4.3489e-04 - accuracy: 0.9999 - val_loss: 5.0454e-05 - val_accuracy: 1.0000\n", | ||
741 | + "Epoch 9/10\n", | ||
742 | + "25661/25661 [==============================] - 32s 1ms/step - loss: 3.8201e-04 - accuracy: 0.9999 - val_loss: 3.5519e-05 - val_accuracy: 1.0000\n", | ||
743 | + "Epoch 10/10\n", | ||
744 | + "25661/25661 [==============================] - 32s 1ms/step - loss: 2.5039e-04 - accuracy: 1.0000 - val_loss: 3.4685e-05 - val_accuracy: 1.0000\n" | ||
745 | + ] | ||
746 | + } | ||
747 | + ], | ||
748 | + "source": [ | ||
749 | + "history = model.fit(x_train, y_train, batch_size=100, epochs=10,validation_data=(x_test, y_test))" | ||
750 | + ] | ||
751 | + }, | ||
752 | + { | ||
753 | + "cell_type": "code", | ||
754 | + "execution_count": null, | ||
755 | + "metadata": {}, | ||
756 | + "outputs": [], | ||
757 | + "source": [] | ||
758 | + } | ||
759 | + ], | ||
760 | + "metadata": { | ||
761 | + "kernelspec": { | ||
762 | + "display_name": "Python 3", | ||
763 | + "language": "python", | ||
764 | + "name": "python3" | ||
765 | + }, | ||
766 | + "language_info": { | ||
767 | + "codemirror_mode": { | ||
768 | + "name": "ipython", | ||
769 | + "version": 3 | ||
770 | + }, | ||
771 | + "file_extension": ".py", | ||
772 | + "mimetype": "text/x-python", | ||
773 | + "name": "python", | ||
774 | + "nbconvert_exporter": "python", | ||
775 | + "pygments_lexer": "ipython3", | ||
776 | + "version": "3.8.5" | ||
777 | + } | ||
778 | + }, | ||
779 | + "nbformat": 4, | ||
780 | + "nbformat_minor": 4 | ||
781 | +} |
Code/Fuzzy_CNN.ipynb
0 → 100644
1 | +{ | ||
2 | + "cells": [ | ||
3 | + { | ||
4 | + "cell_type": "code", | ||
5 | + "execution_count": 1, | ||
6 | + "metadata": {}, | ||
7 | + "outputs": [], | ||
8 | + "source": [ | ||
9 | + "import csv\n", | ||
10 | + "import numpy as np\n", | ||
11 | + "import os\n", | ||
12 | + "import pandas as pd" | ||
13 | + ] | ||
14 | + }, | ||
15 | + { | ||
16 | + "cell_type": "code", | ||
17 | + "execution_count": 5, | ||
18 | + "metadata": {}, | ||
19 | + "outputs": [], | ||
20 | + "source": [ | ||
21 | + "def Preprocess(dir_) :\n", | ||
22 | + " f1 = open(dir_, 'r')\n", | ||
23 | + " fr = csv.reader(f1)\n", | ||
24 | + " d = [] \n", | ||
25 | + " for line in fr :\n", | ||
26 | + " l = []\n", | ||
27 | + " l.append(line[0])\n", | ||
28 | + " l.append(line[1])\n", | ||
29 | + " l.extend(line[2:11])\n", | ||
30 | + " \n", | ||
31 | + " d.append(l)\n", | ||
32 | + " return d\n", | ||
33 | + "\n", | ||
34 | + "data = Preprocess('Fuzzy.csv')" | ||
35 | + ] | ||
36 | + }, | ||
37 | + { | ||
38 | + "cell_type": "code", | ||
39 | + "execution_count": 6, | ||
40 | + "metadata": {}, | ||
41 | + "outputs": [], | ||
42 | + "source": [ | ||
43 | + "data = data[:3838857]" | ||
44 | + ] | ||
45 | + }, | ||
46 | + { | ||
47 | + "cell_type": "code", | ||
48 | + "execution_count": 7, | ||
49 | + "metadata": {}, | ||
50 | + "outputs": [ | ||
51 | + { | ||
52 | + "name": "stdout", | ||
53 | + "output_type": "stream", | ||
54 | + "text": [ | ||
55 | + "['1349', '8', '216', '0', '0', '138', '0', '0', '0', '0', '1']\n" | ||
56 | + ] | ||
57 | + } | ||
58 | + ], | ||
59 | + "source": [ | ||
60 | + "print(data[0])" | ||
61 | + ] | ||
62 | + }, | ||
63 | + { | ||
64 | + "cell_type": "code", | ||
65 | + "execution_count": 8, | ||
66 | + "metadata": {}, | ||
67 | + "outputs": [], | ||
68 | + "source": [ | ||
69 | + "def createsequence(data) :\n", | ||
70 | + " arr = []\n", | ||
71 | + " for i in range(0, len(data)-11): \n", | ||
72 | + " d = []\n", | ||
73 | + " t = []\n", | ||
74 | + " for x in range(i, i+11):\n", | ||
75 | + " t = list(map(float, data[x]))\n", | ||
76 | + " #t = np.array(t, dtype=np.float32)\n", | ||
77 | + " #t = tf.convert_to_tensor(t)\n", | ||
78 | + " d.append(t)\n", | ||
79 | + " arr.append(d)\n", | ||
80 | + " return arr\n", | ||
81 | + "\n", | ||
82 | + "resdata = createsequence(data)" | ||
83 | + ] | ||
84 | + }, | ||
85 | + { | ||
86 | + "cell_type": "code", | ||
87 | + "execution_count": 9, | ||
88 | + "metadata": {}, | ||
89 | + "outputs": [], | ||
90 | + "source": [ | ||
91 | + "def check(data):\n", | ||
92 | + " check = []\n", | ||
93 | + " \n", | ||
94 | + " for e in data :\n", | ||
95 | + " flag = False\n", | ||
96 | + " for i in e :\n", | ||
97 | + " if i[-1] == 0 :\n", | ||
98 | + " check.append(0)\n", | ||
99 | + " flag = True\n", | ||
100 | + " break\n", | ||
101 | + " if flag == False :\n", | ||
102 | + " check.append(1)\n", | ||
103 | + " \n", | ||
104 | + " return check\n", | ||
105 | + "\n", | ||
106 | + "checkblock = check(resdata)" | ||
107 | + ] | ||
108 | + }, | ||
109 | + { | ||
110 | + "cell_type": "code", | ||
111 | + "execution_count": 10, | ||
112 | + "metadata": {}, | ||
113 | + "outputs": [ | ||
114 | + { | ||
115 | + "name": "stdout", | ||
116 | + "output_type": "stream", | ||
117 | + "text": [ | ||
118 | + "2582020\n", | ||
119 | + "1256826\n" | ||
120 | + ] | ||
121 | + } | ||
122 | + ], | ||
123 | + "source": [ | ||
124 | + "cnt = 0\n", | ||
125 | + "for e in checkblock :\n", | ||
126 | + " if e == 1 :\n", | ||
127 | + " cnt += 1\n", | ||
128 | + "\n", | ||
129 | + "print(cnt)\n", | ||
130 | + "print(len(checkblock)-cnt)" | ||
131 | + ] | ||
132 | + }, | ||
133 | + { | ||
134 | + "cell_type": "code", | ||
135 | + "execution_count": 31, | ||
136 | + "metadata": {}, | ||
137 | + "outputs": [], | ||
138 | + "source": [ | ||
139 | + "from sklearn.model_selection import train_test_split\n", | ||
140 | + "import tensorflow as tf\n", | ||
141 | + "import pandas as pd\n", | ||
142 | + "import numpy as np" | ||
143 | + ] | ||
144 | + }, | ||
145 | + { | ||
146 | + "cell_type": "code", | ||
147 | + "execution_count": 32, | ||
148 | + "metadata": {}, | ||
149 | + "outputs": [], | ||
150 | + "source": [ | ||
151 | + "df = pd.DataFrame(resdata)\n", | ||
152 | + "n = len(df)\n", | ||
153 | + "\n", | ||
154 | + "X_train = df.iloc[0:n, 0:11].values.tolist()\n", | ||
155 | + "Y_train = checkblock\n", | ||
156 | + "\n", | ||
157 | + "X_train = np.asarray(X_train)\n", | ||
158 | + "Y_train = np.asarray(Y_train)\n", | ||
159 | + "\n", | ||
160 | + "x_train, x_test, y_train, y_test = train_test_split(X_train, Y_train, test_size=0.3, random_state=321)" | ||
161 | + ] | ||
162 | + }, | ||
163 | + { | ||
164 | + "cell_type": "code", | ||
165 | + "execution_count": 33, | ||
166 | + "metadata": {}, | ||
167 | + "outputs": [], | ||
168 | + "source": [ | ||
169 | + "for i in x_train:\n", | ||
170 | + " for j in i:\n", | ||
171 | + " if len(j) != 11:\n", | ||
172 | + " print(j)" | ||
173 | + ] | ||
174 | + }, | ||
175 | + { | ||
176 | + "cell_type": "code", | ||
177 | + "execution_count": 34, | ||
178 | + "metadata": {}, | ||
179 | + "outputs": [ | ||
180 | + { | ||
181 | + "name": "stdout", | ||
182 | + "output_type": "stream", | ||
183 | + "text": [ | ||
184 | + "(1151654, 11, 11)\n" | ||
185 | + ] | ||
186 | + } | ||
187 | + ], | ||
188 | + "source": [ | ||
189 | + "print(x_test.shape)" | ||
190 | + ] | ||
191 | + }, | ||
192 | + { | ||
193 | + "cell_type": "code", | ||
194 | + "execution_count": 1, | ||
195 | + "metadata": {}, | ||
196 | + "outputs": [], | ||
197 | + "source": [ | ||
198 | + "# Model\n", | ||
199 | + "from keras.models import Sequential\n", | ||
200 | + "from keras.layers import Dense, LSTM, Conv1D, Dropout, GlobalAveragePooling1D, MaxPooling1D\n", | ||
201 | + "from keras.utils import np_utils\n", | ||
202 | + "from tensorflow.keras.utils import plot_model\n", | ||
203 | + "from keras.layers.normalization import BatchNormalization" | ||
204 | + ] | ||
205 | + }, | ||
206 | + { | ||
207 | + "cell_type": "code", | ||
208 | + "execution_count": 2, | ||
209 | + "metadata": {}, | ||
210 | + "outputs": [ | ||
211 | + { | ||
212 | + "name": "stdout", | ||
213 | + "output_type": "stream", | ||
214 | + "text": [ | ||
215 | + "Model: \"sequential\"\n", | ||
216 | + "_________________________________________________________________\n", | ||
217 | + "Layer (type) Output Shape Param # \n", | ||
218 | + "=================================================================\n", | ||
219 | + "conv1d (Conv1D) (None, 9, 64) 2176 \n", | ||
220 | + "_________________________________________________________________\n", | ||
221 | + "global_average_pooling1d (Gl (None, 64) 0 \n", | ||
222 | + "_________________________________________________________________\n", | ||
223 | + "dropout (Dropout) (None, 64) 0 \n", | ||
224 | + "_________________________________________________________________\n", | ||
225 | + "dense (Dense) (None, 1) 65 \n", | ||
226 | + "=================================================================\n", | ||
227 | + "Total params: 2,241\n", | ||
228 | + "Trainable params: 2,241\n", | ||
229 | + "Non-trainable params: 0\n", | ||
230 | + "_________________________________________________________________\n", | ||
231 | + "('Failed to import pydot. You must `pip install pydot` and install graphviz (https://graphviz.gitlab.io/download/), ', 'for `pydotprint` to work.')\n" | ||
232 | + ] | ||
233 | + } | ||
234 | + ], | ||
235 | + "source": [ | ||
236 | + "model = Sequential()\n", | ||
237 | + "model.add(Conv1D(64, 3, input_shape=(11, 11), activation='relu'))\n", | ||
238 | + "model.add(GlobalAveragePooling1D())\n", | ||
239 | + "model.add(Dropout(0.5))\n", | ||
240 | + "model.add(Dense(1, activation='sigmoid'))\n", | ||
241 | + "model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])\n", | ||
242 | + "model.summary()\n", | ||
243 | + "\n", | ||
244 | + "plot_model(model, to_file='CNNmodel.png')" | ||
245 | + ] | ||
246 | + }, | ||
247 | + { | ||
248 | + "cell_type": "code", | ||
249 | + "execution_count": 37, | ||
250 | + "metadata": {}, | ||
251 | + "outputs": [ | ||
252 | + { | ||
253 | + "name": "stdout", | ||
254 | + "output_type": "stream", | ||
255 | + "text": [ | ||
256 | + "Epoch 1/10\n", | ||
257 | + "26872/26872 [==============================] - 31s 1ms/step - loss: 0.1271 - accuracy: 0.9865 - val_loss: 0.0066 - val_accuracy: 0.9983\n", | ||
258 | + "Epoch 2/10\n", | ||
259 | + "26872/26872 [==============================] - 31s 1ms/step - loss: 0.0129 - accuracy: 0.9969 - val_loss: 0.0060 - val_accuracy: 0.9986\n", | ||
260 | + "Epoch 3/10\n", | ||
261 | + "26872/26872 [==============================] - 31s 1ms/step - loss: 0.0107 - accuracy: 0.9975 - val_loss: 0.0046 - val_accuracy: 0.9990\n", | ||
262 | + "Epoch 4/10\n", | ||
263 | + "26872/26872 [==============================] - 31s 1ms/step - loss: 0.0093 - accuracy: 0.9979 - val_loss: 0.0037 - val_accuracy: 0.9993\n", | ||
264 | + "Epoch 5/10\n", | ||
265 | + "26872/26872 [==============================] - 31s 1ms/step - loss: 0.0081 - accuracy: 0.9982 - val_loss: 0.0034 - val_accuracy: 0.9993\n", | ||
266 | + "Epoch 6/10\n", | ||
267 | + "26872/26872 [==============================] - 31s 1ms/step - loss: 0.0074 - accuracy: 0.9984 - val_loss: 0.0042 - val_accuracy: 0.9991\n", | ||
268 | + "Epoch 7/10\n", | ||
269 | + "26872/26872 [==============================] - 31s 1ms/step - loss: 0.0070 - accuracy: 0.9985 - val_loss: 0.0039 - val_accuracy: 0.9992\n", | ||
270 | + "Epoch 8/10\n", | ||
271 | + "26872/26872 [==============================] - 31s 1ms/step - loss: 0.0065 - accuracy: 0.9987 - val_loss: 0.0033 - val_accuracy: 0.9994\n", | ||
272 | + "Epoch 9/10\n", | ||
273 | + "26872/26872 [==============================] - 31s 1ms/step - loss: 0.0063 - accuracy: 0.9987 - val_loss: 0.0032 - val_accuracy: 0.9994\n", | ||
274 | + "Epoch 10/10\n", | ||
275 | + "26872/26872 [==============================] - 31s 1ms/step - loss: 0.0058 - accuracy: 0.9988 - val_loss: 0.0031 - val_accuracy: 0.9994\n" | ||
276 | + ] | ||
277 | + } | ||
278 | + ], | ||
279 | + "source": [ | ||
280 | + "history = model.fit(x_train, y_train, batch_size=100, epochs=10,validation_data=(x_test, y_test))" | ||
281 | + ] | ||
282 | + }, | ||
283 | + { | ||
284 | + "cell_type": "code", | ||
285 | + "execution_count": 38, | ||
286 | + "metadata": { | ||
287 | + "scrolled": true | ||
288 | + }, | ||
289 | + "outputs": [ | ||
290 | + { | ||
291 | + "name": "stdout", | ||
292 | + "output_type": "stream", | ||
293 | + "text": [ | ||
294 | + "35990/35990 [==============================] - 13s 361us/step - loss: 0.0031 - accuracy: 0.9994\n", | ||
295 | + "\n", | ||
296 | + " Test accuracy : 0.9994\n" | ||
297 | + ] | ||
298 | + } | ||
299 | + ], | ||
300 | + "source": [ | ||
301 | + "print(\"\\n Test accuracy : %.4f\"%(model.evaluate(x_test, y_test)[1]))" | ||
302 | + ] | ||
303 | + }, | ||
304 | + { | ||
305 | + "cell_type": "code", | ||
306 | + "execution_count": null, | ||
307 | + "metadata": {}, | ||
308 | + "outputs": [], | ||
309 | + "source": [] | ||
310 | + } | ||
311 | + ], | ||
312 | + "metadata": { | ||
313 | + "kernelspec": { | ||
314 | + "display_name": "Python 3", | ||
315 | + "language": "python", | ||
316 | + "name": "python3" | ||
317 | + }, | ||
318 | + "language_info": { | ||
319 | + "codemirror_mode": { | ||
320 | + "name": "ipython", | ||
321 | + "version": 3 | ||
322 | + }, | ||
323 | + "file_extension": ".py", | ||
324 | + "mimetype": "text/x-python", | ||
325 | + "name": "python", | ||
326 | + "nbconvert_exporter": "python", | ||
327 | + "pygments_lexer": "ipython3", | ||
328 | + "version": "3.8.5" | ||
329 | + } | ||
330 | + }, | ||
331 | + "nbformat": 4, | ||
332 | + "nbformat_minor": 4 | ||
333 | +} |
Code/Spoofing_CNN.ipynb
0 → 100644
1 | +{ | ||
2 | + "cells": [ | ||
3 | + { | ||
4 | + "cell_type": "code", | ||
5 | + "execution_count": 4, | ||
6 | + "metadata": {}, | ||
7 | + "outputs": [], | ||
8 | + "source": [ | ||
9 | + "import csv\n", | ||
10 | + "import numpy as np\n", | ||
11 | + "import os\n", | ||
12 | + "import pandas as pd\n", | ||
13 | + "import import_ipynb\n", | ||
14 | + "import DoS_CNN as dos" | ||
15 | + ] | ||
16 | + }, | ||
17 | + { | ||
18 | + "cell_type": "code", | ||
19 | + "execution_count": null, | ||
20 | + "metadata": {}, | ||
21 | + "outputs": [], | ||
22 | + "source": [ | ||
23 | + "dos.transferData('gear_dataset.csv', 'Spoofing.csv')" | ||
24 | + ] | ||
25 | + }, | ||
26 | + { | ||
27 | + "cell_type": "code", | ||
28 | + "execution_count": 5, | ||
29 | + "metadata": {}, | ||
30 | + "outputs": [], | ||
31 | + "source": [ | ||
32 | + "data = dos.Preprocess('Spoofing.csv')" | ||
33 | + ] | ||
34 | + }, | ||
35 | + { | ||
36 | + "cell_type": "code", | ||
37 | + "execution_count": 10, | ||
38 | + "metadata": {}, | ||
39 | + "outputs": [ | ||
40 | + { | ||
41 | + "data": { | ||
42 | + "text/plain": [ | ||
43 | + "['320', '8', '0', '0', '0', '0', '16', '41', '42', '36', '1']" | ||
44 | + ] | ||
45 | + }, | ||
46 | + "execution_count": 10, | ||
47 | + "metadata": {}, | ||
48 | + "output_type": "execute_result" | ||
49 | + } | ||
50 | + ], | ||
51 | + "source": [ | ||
52 | + "data[0]" | ||
53 | + ] | ||
54 | + }, | ||
55 | + { | ||
56 | + "cell_type": "code", | ||
57 | + "execution_count": 12, | ||
58 | + "metadata": {}, | ||
59 | + "outputs": [], | ||
60 | + "source": [ | ||
61 | + "def createsequence(data) :\n", | ||
62 | + " arr = []\n", | ||
63 | + " for i in range(0, len(data)-11): \n", | ||
64 | + " d = []\n", | ||
65 | + " t = []\n", | ||
66 | + " for x in range(i, i+11):\n", | ||
67 | + " t = list(map(float, data[x]))\n", | ||
68 | + " d.append(t)\n", | ||
69 | + " arr.append(d)\n", | ||
70 | + " return arr\n", | ||
71 | + "\n", | ||
72 | + "resdata = createsequence(data)" | ||
73 | + ] | ||
74 | + }, | ||
75 | + { | ||
76 | + "cell_type": "code", | ||
77 | + "execution_count": 13, | ||
78 | + "metadata": {}, | ||
79 | + "outputs": [], | ||
80 | + "source": [ | ||
81 | + "def check(data):\n", | ||
82 | + " check = []\n", | ||
83 | + " \n", | ||
84 | + " for e in data :\n", | ||
85 | + " flag = False\n", | ||
86 | + " for i in e :\n", | ||
87 | + " if i[-1] == 0 :\n", | ||
88 | + " check.append(0)\n", | ||
89 | + " flag = True\n", | ||
90 | + " break\n", | ||
91 | + " if flag == False :\n", | ||
92 | + " check.append(1)\n", | ||
93 | + " \n", | ||
94 | + " return check\n", | ||
95 | + "\n", | ||
96 | + "checkblock = check(resdata)" | ||
97 | + ] | ||
98 | + }, | ||
99 | + { | ||
100 | + "cell_type": "code", | ||
101 | + "execution_count": 24, | ||
102 | + "metadata": {}, | ||
103 | + "outputs": [ | ||
104 | + { | ||
105 | + "name": "stdout", | ||
106 | + "output_type": "stream", | ||
107 | + "text": [ | ||
108 | + "2580434\n", | ||
109 | + "1862697\n" | ||
110 | + ] | ||
111 | + } | ||
112 | + ], | ||
113 | + "source": [ | ||
114 | + "cnt = 0 # 1\n", | ||
115 | + "for i in checkblock :\n", | ||
116 | + " if i == 1 :\n", | ||
117 | + " cnt += 1\n", | ||
118 | + "print(cnt) # normal message\n", | ||
119 | + "print(len(checkblock)-cnt) #abnormal" | ||
120 | + ] | ||
121 | + }, | ||
122 | + { | ||
123 | + "cell_type": "code", | ||
124 | + "execution_count": 15, | ||
125 | + "metadata": {}, | ||
126 | + "outputs": [], | ||
127 | + "source": [ | ||
128 | + "from sklearn.model_selection import train_test_split\n", | ||
129 | + "import tensorflow as tf\n", | ||
130 | + "import pandas as pd\n", | ||
131 | + "import numpy as np" | ||
132 | + ] | ||
133 | + }, | ||
134 | + { | ||
135 | + "cell_type": "code", | ||
136 | + "execution_count": 16, | ||
137 | + "metadata": {}, | ||
138 | + "outputs": [], | ||
139 | + "source": [ | ||
140 | + "df = pd.DataFrame(resdata)\n", | ||
141 | + "n = len(df)\n", | ||
142 | + "\n", | ||
143 | + "X_train = df.iloc[0:n, 0:11].values.tolist()\n", | ||
144 | + "Y_train = checkblock\n", | ||
145 | + "\n", | ||
146 | + "X_train = np.asarray(X_train)\n", | ||
147 | + "Y_train = np.asarray(Y_train)\n", | ||
148 | + "\n", | ||
149 | + "x_train, x_test, y_train, y_test = train_test_split(X_train, Y_train, test_size=0.3, random_state=321)" | ||
150 | + ] | ||
151 | + }, | ||
152 | + { | ||
153 | + "cell_type": "code", | ||
154 | + "execution_count": 17, | ||
155 | + "metadata": {}, | ||
156 | + "outputs": [], | ||
157 | + "source": [ | ||
158 | + "for i in x_train:\n", | ||
159 | + " for j in i:\n", | ||
160 | + " if len(j) != 11:\n", | ||
161 | + " print(j)" | ||
162 | + ] | ||
163 | + }, | ||
164 | + { | ||
165 | + "cell_type": "code", | ||
166 | + "execution_count": 18, | ||
167 | + "metadata": {}, | ||
168 | + "outputs": [ | ||
169 | + { | ||
170 | + "name": "stdout", | ||
171 | + "output_type": "stream", | ||
172 | + "text": [ | ||
173 | + "(1332940, 11, 11)\n" | ||
174 | + ] | ||
175 | + } | ||
176 | + ], | ||
177 | + "source": [ | ||
178 | + "print(x_test.shape)" | ||
179 | + ] | ||
180 | + }, | ||
181 | + { | ||
182 | + "cell_type": "code", | ||
183 | + "execution_count": 19, | ||
184 | + "metadata": {}, | ||
185 | + "outputs": [], | ||
186 | + "source": [ | ||
187 | + "# Model\n", | ||
188 | + "from keras.models import Sequential\n", | ||
189 | + "from keras.layers import Dense, LSTM, Conv1D, Dropout, GlobalAveragePooling1D, MaxPooling1D\n", | ||
190 | + "from keras.utils import np_utils\n", | ||
191 | + "from keras.layers.normalization import BatchNormalization" | ||
192 | + ] | ||
193 | + }, | ||
194 | + { | ||
195 | + "cell_type": "code", | ||
196 | + "execution_count": 20, | ||
197 | + "metadata": {}, | ||
198 | + "outputs": [ | ||
199 | + { | ||
200 | + "name": "stdout", | ||
201 | + "output_type": "stream", | ||
202 | + "text": [ | ||
203 | + "Model: \"sequential\"\n", | ||
204 | + "_________________________________________________________________\n", | ||
205 | + "Layer (type) Output Shape Param # \n", | ||
206 | + "=================================================================\n", | ||
207 | + "conv1d (Conv1D) (None, 9, 64) 2176 \n", | ||
208 | + "_________________________________________________________________\n", | ||
209 | + "global_average_pooling1d (Gl (None, 64) 0 \n", | ||
210 | + "_________________________________________________________________\n", | ||
211 | + "dropout (Dropout) (None, 64) 0 \n", | ||
212 | + "_________________________________________________________________\n", | ||
213 | + "dense (Dense) (None, 1) 65 \n", | ||
214 | + "=================================================================\n", | ||
215 | + "Total params: 2,241\n", | ||
216 | + "Trainable params: 2,241\n", | ||
217 | + "Non-trainable params: 0\n", | ||
218 | + "_________________________________________________________________\n" | ||
219 | + ] | ||
220 | + } | ||
221 | + ], | ||
222 | + "source": [ | ||
223 | + "model = Sequential()\n", | ||
224 | + "model.add(Conv1D(64, 3, input_shape=(11, 11), activation='relu'))\n", | ||
225 | + "model.add(GlobalAveragePooling1D())\n", | ||
226 | + "model.add(Dropout(0.5))\n", | ||
227 | + "model.add(Dense(1, activation='sigmoid'))\n", | ||
228 | + "model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])\n", | ||
229 | + "model.summary()" | ||
230 | + ] | ||
231 | + }, | ||
232 | + { | ||
233 | + "cell_type": "code", | ||
234 | + "execution_count": 21, | ||
235 | + "metadata": {}, | ||
236 | + "outputs": [ | ||
237 | + { | ||
238 | + "name": "stdout", | ||
239 | + "output_type": "stream", | ||
240 | + "text": [ | ||
241 | + "Epoch 1/10\n", | ||
242 | + "31102/31102 [==============================] - 36s 1ms/step - loss: 0.0739 - accuracy: 0.9938 - val_loss: 6.8605e-04 - val_accuracy: 1.0000\n", | ||
243 | + "Epoch 2/10\n", | ||
244 | + "31102/31102 [==============================] - 36s 1ms/step - loss: 0.0029 - accuracy: 0.9995 - val_loss: 2.1258e-04 - val_accuracy: 1.0000\n", | ||
245 | + "Epoch 3/10\n", | ||
246 | + "31102/31102 [==============================] - 36s 1ms/step - loss: 0.0030 - accuracy: 0.9995 - val_loss: 2.5308e-04 - val_accuracy: 1.0000\n", | ||
247 | + "Epoch 4/10\n", | ||
248 | + "31102/31102 [==============================] - 36s 1ms/step - loss: 0.0025 - accuracy: 0.9996 - val_loss: 9.4737e-05 - val_accuracy: 1.0000\n", | ||
249 | + "Epoch 5/10\n", | ||
250 | + "31102/31102 [==============================] - 36s 1ms/step - loss: 0.0031 - accuracy: 0.9995 - val_loss: 4.3025e-04 - val_accuracy: 1.0000\n", | ||
251 | + "Epoch 6/10\n", | ||
252 | + "31102/31102 [==============================] - 36s 1ms/step - loss: 0.0022 - accuracy: 0.9997 - val_loss: 6.6521e-05 - val_accuracy: 1.0000\n", | ||
253 | + "Epoch 7/10\n", | ||
254 | + "31102/31102 [==============================] - 36s 1ms/step - loss: 0.0020 - accuracy: 0.9997 - val_loss: 7.7669e-05 - val_accuracy: 1.0000\n", | ||
255 | + "Epoch 8/10\n", | ||
256 | + "31102/31102 [==============================] - 36s 1ms/step - loss: 0.0019 - accuracy: 0.9997 - val_loss: 1.3602e-04 - val_accuracy: 1.0000\n", | ||
257 | + "Epoch 9/10\n", | ||
258 | + "31102/31102 [==============================] - 35s 1ms/step - loss: 0.0018 - accuracy: 0.9997 - val_loss: 3.1278e-05 - val_accuracy: 1.0000\n", | ||
259 | + "Epoch 10/10\n", | ||
260 | + "31102/31102 [==============================] - 35s 1ms/step - loss: 0.0017 - accuracy: 0.9998 - val_loss: 3.1277e-05 - val_accuracy: 1.0000\n" | ||
261 | + ] | ||
262 | + } | ||
263 | + ], | ||
264 | + "source": [ | ||
265 | + "history = model.fit(x_train, y_train, batch_size=100, epochs=10,validation_data=(x_test, y_test))" | ||
266 | + ] | ||
267 | + }, | ||
268 | + { | ||
269 | + "cell_type": "code", | ||
270 | + "execution_count": 22, | ||
271 | + "metadata": { | ||
272 | + "scrolled": true | ||
273 | + }, | ||
274 | + "outputs": [ | ||
275 | + { | ||
276 | + "name": "stdout", | ||
277 | + "output_type": "stream", | ||
278 | + "text": [ | ||
279 | + "41655/41655 [==============================] - 15s 352us/step - loss: 3.1277e-05 - accuracy: 1.0000\n", | ||
280 | + "\n", | ||
281 | + " Test accuracy : 1.0000\n" | ||
282 | + ] | ||
283 | + } | ||
284 | + ], | ||
285 | + "source": [ | ||
286 | + "print(\"\\n Test accuracy : %.4f\"%(model.evaluate(x_test, y_test)[1]))" | ||
287 | + ] | ||
288 | + }, | ||
289 | + { | ||
290 | + "cell_type": "code", | ||
291 | + "execution_count": null, | ||
292 | + "metadata": {}, | ||
293 | + "outputs": [], | ||
294 | + "source": [] | ||
295 | + } | ||
296 | + ], | ||
297 | + "metadata": { | ||
298 | + "kernelspec": { | ||
299 | + "display_name": "Python 3", | ||
300 | + "language": "python", | ||
301 | + "name": "python3" | ||
302 | + }, | ||
303 | + "language_info": { | ||
304 | + "codemirror_mode": { | ||
305 | + "name": "ipython", | ||
306 | + "version": 3 | ||
307 | + }, | ||
308 | + "file_extension": ".py", | ||
309 | + "mimetype": "text/x-python", | ||
310 | + "name": "python", | ||
311 | + "nbconvert_exporter": "python", | ||
312 | + "pygments_lexer": "ipython3", | ||
313 | + "version": "3.8.5" | ||
314 | + } | ||
315 | + }, | ||
316 | + "nbformat": 4, | ||
317 | + "nbformat_minor": 4 | ||
318 | +} |
-
Please register or login to post a comment