├── BigMartTrain.csv
├── OnlineRetail.csv.zip
├── README.md
├── Superstore.xls
├── Tutorial_1.ipynb
├── Tutorial_2.ipynb
├── Tutorial_3.ipynb
├── Tutorial_4.ipynb
├── Tutorial_5.ipynb
├── Tutorial_6.ipynb
├── Tutorial_7.ipynb
└── Tutorial_8.ipynb
/OnlineRetail.csv.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sauravsingla/Outlier_Detection_Tutorials/425ec7bb2ffb971c634b7bcc404ab3234ef0ff0c/OnlineRetail.csv.zip
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Outlier_Detection_Tutorials
--------------------------------------------------------------------------------
/Superstore.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sauravsingla/Outlier_Detection_Tutorials/425ec7bb2ffb971c634b7bcc404ab3234ef0ff0c/Superstore.xls
--------------------------------------------------------------------------------
/Tutorial_1.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "nbformat": 4,
3 | "nbformat_minor": 0,
4 | "metadata": {
5 | "colab": {
6 | "name": "Tutorial_1.ipynb",
7 | "provenance": [],
8 | "collapsed_sections": [],
9 | "authorship_tag": "ABX9TyP3r04a+D8qzfOtGm719dlZ",
10 | "include_colab_link": true
11 | },
12 | "kernelspec": {
13 | "name": "python3",
14 | "display_name": "Python 3"
15 | },
16 | "accelerator": "GPU"
17 | },
18 | "cells": [
19 | {
20 | "cell_type": "markdown",
21 | "metadata": {
22 | "id": "view-in-github",
23 | "colab_type": "text"
24 | },
25 | "source": [
26 | "
"
27 | ]
28 | },
29 | {
30 | "cell_type": "markdown",
31 | "metadata": {
32 | "id": "NC6mQFXKojRK",
33 | "colab_type": "text"
34 | },
35 | "source": [
36 | "Extreme Value Analysis:\n",
37 | "\n",
38 | "* Standard Deviation\n",
39 | "* Interquartile Range\n",
40 | "\n"
41 | ]
42 | },
43 | {
44 | "cell_type": "code",
45 | "metadata": {
46 | "id": "6tDMdu52EvYO",
47 | "colab_type": "code",
48 | "colab": {
49 | "base_uri": "https://localhost:8080/",
50 | "height": 52
51 | },
52 | "outputId": "f70106d1-575f-4def-aff4-a88e7a563e31"
53 | },
54 | "source": [
55 | "from numpy.random import seed\n",
56 | "from numpy.random import randn\n",
57 | "from numpy import mean\n",
58 | "from numpy import std\n",
59 | "\n",
60 | "seed(1)\n",
61 | "data = 5 * randn(10000) + 50\n",
62 | "data_mean, data_std = mean(data), std(data)\n",
63 | "# outliers\n",
64 | "cut_off = data_std * 3\n",
65 | "lower, upper = data_mean - cut_off, data_mean + cut_off\n",
66 | "# outliers\n",
67 | "outliers = [x for x in data if x < lower or x > upper]\n",
68 | "print('Identified outliers: %d' % len(outliers))\n",
69 | "# remove outliers\n",
70 | "outliers_removed = [x for x in data if x >= lower and x <= upper]\n",
71 | "print('Non-outlier observations: %d' % len(outliers_removed))"
72 | ],
73 | "execution_count": null,
74 | "outputs": [
75 | {
76 | "output_type": "stream",
77 | "text": [
78 | "Identified outliers: 29\n",
79 | "Non-outlier observations: 9971\n"
80 | ],
81 | "name": "stdout"
82 | }
83 | ]
84 | },
85 | {
86 | "cell_type": "markdown",
87 | "metadata": {
88 | "id": "U9cPE_BBGVDh",
89 | "colab_type": "text"
90 | },
91 | "source": [
92 | "Interquartile Range"
93 | ]
94 | },
95 | {
96 | "cell_type": "code",
97 | "metadata": {
98 | "id": "TZMKPowHFP11",
99 | "colab_type": "code",
100 | "colab": {
101 | "base_uri": "https://localhost:8080/",
102 | "height": 69
103 | },
104 | "outputId": "637bbf4a-6aef-4091-edba-d5c115565393"
105 | },
106 | "source": [
107 | "from numpy.random import seed\n",
108 | "from numpy.random import randn\n",
109 | "from numpy import percentile\n",
110 | "\n",
111 | "seed(1)\n",
112 | "data = 5 * randn(10000) + 50\n",
113 | "# interquartile range\n",
114 | "q25, q75 = percentile(data, 25), percentile(data, 75)\n",
115 | "iqr = q75 - q25\n",
116 | "print('Percentiles: 25th=%.3f, 75th=%.3f, IQR=%.3f' % (q25, q75, iqr))\n",
117 | "# outlier cutoff\n",
118 | "cut_off = iqr * 1.5\n",
119 | "lower, upper = q25 - cut_off, q75 + cut_off\n",
120 | "# outliers\n",
121 | "outliers = [x for x in data if x < lower or x > upper]\n",
122 | "print('Identified outliers: %d' % len(outliers))\n",
123 | "# remove outliers\n",
124 | "outliers_removed = [x for x in data if x >= lower and x <= upper]\n",
125 | "print('Non-outlier observations: %d' % len(outliers_removed))"
126 | ],
127 | "execution_count": null,
128 | "outputs": [
129 | {
130 | "output_type": "stream",
131 | "text": [
132 | "Percentiles: 25th=46.685, 75th=53.359, IQR=6.674\n",
133 | "Identified outliers: 81\n",
134 | "Non-outlier observations: 9919\n"
135 | ],
136 | "name": "stdout"
137 | }
138 | ]
139 | }
140 | ]
141 | }
--------------------------------------------------------------------------------
/Tutorial_2.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "nbformat": 4,
3 | "nbformat_minor": 0,
4 | "metadata": {
5 | "colab": {
6 | "name": "Tutorial_2.ipynb",
7 | "provenance": [],
8 | "collapsed_sections": [],
9 | "authorship_tag": "ABX9TyP51jOe19eCU0gsuWdRgtyR",
10 | "include_colab_link": true
11 | },
12 | "kernelspec": {
13 | "name": "python3",
14 | "display_name": "Python 3"
15 | },
16 | "accelerator": "GPU"
17 | },
18 | "cells": [
19 | {
20 | "cell_type": "markdown",
21 | "metadata": {
22 | "id": "view-in-github",
23 | "colab_type": "text"
24 | },
25 | "source": [
26 | "
"
27 | ]
28 | },
29 | {
30 | "cell_type": "markdown",
31 | "metadata": {
32 | "id": "NM85nagYo5Xa",
33 | "colab_type": "text"
34 | },
35 | "source": [
36 | "\n",
37 | "\n",
38 | "* Visualise Graph through Boxplot and Scatterplot\n",
39 | "* Z Score\n",
40 | "* Interquartile range (IQR)\n"
41 | ]
42 | },
43 | {
44 | "cell_type": "code",
45 | "metadata": {
46 | "id": "PQU5n-Wk2zxn",
47 | "colab_type": "code",
48 | "colab": {}
49 | },
50 | "source": [
51 | "#Import libraries\n",
52 | "import numpy as np\n",
53 | "import pandas as pd\n",
54 | "from sklearn.datasets import load_boston"
55 | ],
56 | "execution_count": null,
57 | "outputs": []
58 | },
59 | {
60 | "cell_type": "code",
61 | "metadata": {
62 | "id": "Wa2uSZA03Qz7",
63 | "colab_type": "code",
64 | "colab": {
65 | "base_uri": "https://localhost:8080/",
66 | "height": 202
67 | },
68 | "outputId": "15020468-9e0c-44fb-8a25-e062d2f8b336"
69 | },
70 | "source": [
71 | "#Get dataset\n",
72 | "boston = load_boston()\n",
73 | "x = boston.data\n",
74 | "y = boston.target\n",
75 | "columns = boston.feature_names\n",
76 | "\n",
77 | "#create the dataframe\n",
78 | "boston_df = pd.DataFrame(boston.data)\n",
79 | "boston_df.columns = columns\n",
80 | "boston_df.head()"
81 | ],
82 | "execution_count": null,
83 | "outputs": [
84 | {
85 | "output_type": "execute_result",
86 | "data": {
87 | "text/html": [
88 | "
\n",
89 | "\n",
102 | "
\n",
103 | " \n",
104 | " \n",
105 | " | \n",
106 | " CRIM | \n",
107 | " ZN | \n",
108 | " INDUS | \n",
109 | " CHAS | \n",
110 | " NOX | \n",
111 | " RM | \n",
112 | " AGE | \n",
113 | " DIS | \n",
114 | " RAD | \n",
115 | " TAX | \n",
116 | " PTRATIO | \n",
117 | " B | \n",
118 | " LSTAT | \n",
119 | "
\n",
120 | " \n",
121 | " \n",
122 | " \n",
123 | " 0 | \n",
124 | " 0.00632 | \n",
125 | " 18.0 | \n",
126 | " 2.31 | \n",
127 | " 0.0 | \n",
128 | " 0.538 | \n",
129 | " 6.575 | \n",
130 | " 65.2 | \n",
131 | " 4.0900 | \n",
132 | " 1.0 | \n",
133 | " 296.0 | \n",
134 | " 15.3 | \n",
135 | " 396.90 | \n",
136 | " 4.98 | \n",
137 | "
\n",
138 | " \n",
139 | " 1 | \n",
140 | " 0.02731 | \n",
141 | " 0.0 | \n",
142 | " 7.07 | \n",
143 | " 0.0 | \n",
144 | " 0.469 | \n",
145 | " 6.421 | \n",
146 | " 78.9 | \n",
147 | " 4.9671 | \n",
148 | " 2.0 | \n",
149 | " 242.0 | \n",
150 | " 17.8 | \n",
151 | " 396.90 | \n",
152 | " 9.14 | \n",
153 | "
\n",
154 | " \n",
155 | " 2 | \n",
156 | " 0.02729 | \n",
157 | " 0.0 | \n",
158 | " 7.07 | \n",
159 | " 0.0 | \n",
160 | " 0.469 | \n",
161 | " 7.185 | \n",
162 | " 61.1 | \n",
163 | " 4.9671 | \n",
164 | " 2.0 | \n",
165 | " 242.0 | \n",
166 | " 17.8 | \n",
167 | " 392.83 | \n",
168 | " 4.03 | \n",
169 | "
\n",
170 | " \n",
171 | " 3 | \n",
172 | " 0.03237 | \n",
173 | " 0.0 | \n",
174 | " 2.18 | \n",
175 | " 0.0 | \n",
176 | " 0.458 | \n",
177 | " 6.998 | \n",
178 | " 45.8 | \n",
179 | " 6.0622 | \n",
180 | " 3.0 | \n",
181 | " 222.0 | \n",
182 | " 18.7 | \n",
183 | " 394.63 | \n",
184 | " 2.94 | \n",
185 | "
\n",
186 | " \n",
187 | " 4 | \n",
188 | " 0.06905 | \n",
189 | " 0.0 | \n",
190 | " 2.18 | \n",
191 | " 0.0 | \n",
192 | " 0.458 | \n",
193 | " 7.147 | \n",
194 | " 54.2 | \n",
195 | " 6.0622 | \n",
196 | " 3.0 | \n",
197 | " 222.0 | \n",
198 | " 18.7 | \n",
199 | " 396.90 | \n",
200 | " 5.33 | \n",
201 | "
\n",
202 | " \n",
203 | "
\n",
204 | "
"
205 | ],
206 | "text/plain": [
207 | " CRIM ZN INDUS CHAS NOX ... RAD TAX PTRATIO B LSTAT\n",
208 | "0 0.00632 18.0 2.31 0.0 0.538 ... 1.0 296.0 15.3 396.90 4.98\n",
209 | "1 0.02731 0.0 7.07 0.0 0.469 ... 2.0 242.0 17.8 396.90 9.14\n",
210 | "2 0.02729 0.0 7.07 0.0 0.469 ... 2.0 242.0 17.8 392.83 4.03\n",
211 | "3 0.03237 0.0 2.18 0.0 0.458 ... 3.0 222.0 18.7 394.63 2.94\n",
212 | "4 0.06905 0.0 2.18 0.0 0.458 ... 3.0 222.0 18.7 396.90 5.33\n",
213 | "\n",
214 | "[5 rows x 13 columns]"
215 | ]
216 | },
217 | "metadata": {
218 | "tags": []
219 | },
220 | "execution_count": 3
221 | }
222 | ]
223 | },
224 | {
225 | "cell_type": "markdown",
226 | "metadata": {
227 | "id": "fBpH8BwuEEWL",
228 | "colab_type": "text"
229 | },
230 | "source": [
231 | "Boxplot"
232 | ]
233 | },
234 | {
235 | "cell_type": "code",
236 | "metadata": {
237 | "id": "kBu527LS3XDB",
238 | "colab_type": "code",
239 | "colab": {
240 | "base_uri": "https://localhost:8080/",
241 | "height": 351
242 | },
243 | "outputId": "042db6e6-b0d2-450f-d184-5df99ecb2973"
244 | },
245 | "source": [
246 | "import seaborn as sns\n",
247 | "sns.boxplot(x=boston_df['DIS'])"
248 | ],
249 | "execution_count": null,
250 | "outputs": [
251 | {
252 | "output_type": "stream",
253 | "text": [
254 | "/usr/local/lib/python3.6/dist-packages/statsmodels/tools/_testing.py:19: FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.\n",
255 | " import pandas.util.testing as tm\n"
256 | ],
257 | "name": "stderr"
258 | },
259 | {
260 | "output_type": "execute_result",
261 | "data": {
262 | "text/plain": [
263 | ""
264 | ]
265 | },
266 | "metadata": {
267 | "tags": []
268 | },
269 | "execution_count": 4
270 | },
271 | {
272 | "output_type": "display_data",
273 | "data": {
274 | "image/png": "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\n",
275 | "text/plain": [
276 | ""
277 | ]
278 | },
279 | "metadata": {
280 | "tags": [],
281 | "needs_background": "light"
282 | }
283 | }
284 | ]
285 | },
286 | {
287 | "cell_type": "markdown",
288 | "metadata": {
289 | "id": "OYy3PNL7ECMz",
290 | "colab_type": "text"
291 | },
292 | "source": [
293 | "Scatterplot"
294 | ]
295 | },
296 | {
297 | "cell_type": "code",
298 | "metadata": {
299 | "id": "Zb6xwAHs3Z5O",
300 | "colab_type": "code",
301 | "colab": {
302 | "base_uri": "https://localhost:8080/",
303 | "height": 497
304 | },
305 | "outputId": "90f5e1e4-b5be-44da-cfdb-dbde14c0e915"
306 | },
307 | "source": [
308 | "import matplotlib.pyplot as plt\n",
309 | "fig, ax = plt.subplots(figsize=(16,8))\n",
310 | "ax.scatter(boston_df['INDUS'], boston_df['TAX'])\n",
311 | "ax.set_xlabel('Proportion of non-retail business acres per town')\n",
312 | "ax.set_ylabel('Full-value property-tax rate per $10,000')\n",
313 | "plt.show()"
314 | ],
315 | "execution_count": null,
316 | "outputs": [
317 | {
318 | "output_type": "display_data",
319 | "data": {
320 | "image/png": "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\n",
321 | "text/plain": [
322 | ""
323 | ]
324 | },
325 | "metadata": {
326 | "tags": [],
327 | "needs_background": "light"
328 | }
329 | }
330 | ]
331 | },
332 | {
333 | "cell_type": "markdown",
334 | "metadata": {
335 | "id": "sl251VIDEAQm",
336 | "colab_type": "text"
337 | },
338 | "source": [
339 | "Z score"
340 | ]
341 | },
342 | {
343 | "cell_type": "code",
344 | "metadata": {
345 | "id": "LJYijwie32B-",
346 | "colab_type": "code",
347 | "colab": {
348 | "base_uri": "https://localhost:8080/",
349 | "height": 139
350 | },
351 | "outputId": "4db0b977-93c1-4347-9268-069e5f4c3d8f"
352 | },
353 | "source": [
354 | "from scipy import stats\n",
355 | "import numpy as np\n",
356 | "z = np.abs(stats.zscore(boston_df))\n",
357 | "print(z)"
358 | ],
359 | "execution_count": null,
360 | "outputs": [
361 | {
362 | "output_type": "stream",
363 | "text": [
364 | "[[0.41978194 0.28482986 1.2879095 ... 1.45900038 0.44105193 1.0755623 ]\n",
365 | " [0.41733926 0.48772236 0.59338101 ... 0.30309415 0.44105193 0.49243937]\n",
366 | " [0.41734159 0.48772236 0.59338101 ... 0.30309415 0.39642699 1.2087274 ]\n",
367 | " ...\n",
368 | " [0.41344658 0.48772236 0.11573841 ... 1.17646583 0.44105193 0.98304761]\n",
369 | " [0.40776407 0.48772236 0.11573841 ... 1.17646583 0.4032249 0.86530163]\n",
370 | " [0.41500016 0.48772236 0.11573841 ... 1.17646583 0.44105193 0.66905833]]\n"
371 | ],
372 | "name": "stdout"
373 | }
374 | ]
375 | },
376 | {
377 | "cell_type": "code",
378 | "metadata": {
379 | "id": "kNtOvRUG37GQ",
380 | "colab_type": "code",
381 | "colab": {
382 | "base_uri": "https://localhost:8080/",
383 | "height": 243
384 | },
385 | "outputId": "5eb110d8-3b14-4080-8762-7f4c6a89edd6"
386 | },
387 | "source": [
388 | "threshold = 3\n",
389 | "print(np.where(z > 3))"
390 | ],
391 | "execution_count": null,
392 | "outputs": [
393 | {
394 | "output_type": "stream",
395 | "text": [
396 | "(array([ 55, 56, 57, 102, 141, 142, 152, 154, 155, 160, 162, 163, 199,\n",
397 | " 200, 201, 202, 203, 204, 208, 209, 210, 211, 212, 216, 218, 219,\n",
398 | " 220, 221, 222, 225, 234, 236, 256, 257, 262, 269, 273, 274, 276,\n",
399 | " 277, 282, 283, 283, 284, 347, 351, 352, 353, 353, 354, 355, 356,\n",
400 | " 357, 358, 363, 364, 364, 365, 367, 369, 370, 372, 373, 374, 374,\n",
401 | " 380, 398, 404, 405, 406, 410, 410, 411, 412, 412, 414, 414, 415,\n",
402 | " 416, 418, 418, 419, 423, 424, 425, 426, 427, 427, 429, 431, 436,\n",
403 | " 437, 438, 445, 450, 454, 455, 456, 457, 466]), array([ 1, 1, 1, 11, 12, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1,\n",
404 | " 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 1, 5,\n",
405 | " 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 7, 7, 1, 7, 7, 7,\n",
406 | " 3, 3, 3, 3, 3, 5, 5, 5, 3, 3, 3, 12, 5, 12, 0, 0, 0,\n",
407 | " 0, 5, 0, 11, 11, 11, 12, 0, 12, 11, 11, 0, 11, 11, 11, 11, 11,\n",
408 | " 11, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11]))\n"
409 | ],
410 | "name": "stdout"
411 | }
412 | ]
413 | },
414 | {
415 | "cell_type": "code",
416 | "metadata": {
417 | "id": "DkAMWiEA3_8V",
418 | "colab_type": "code",
419 | "colab": {
420 | "base_uri": "https://localhost:8080/",
421 | "height": 35
422 | },
423 | "outputId": "dabd30bf-1b13-40b0-9465-cb4753104612"
424 | },
425 | "source": [
426 | "print(z[55][1])"
427 | ],
428 | "execution_count": null,
429 | "outputs": [
430 | {
431 | "output_type": "stream",
432 | "text": [
433 | "3.375038763517309\n"
434 | ],
435 | "name": "stdout"
436 | }
437 | ]
438 | },
439 | {
440 | "cell_type": "markdown",
441 | "metadata": {
442 | "id": "JTFQVAMLES-a",
443 | "colab_type": "text"
444 | },
445 | "source": [
446 | "interquartile range (IQR)"
447 | ]
448 | },
449 | {
450 | "cell_type": "code",
451 | "metadata": {
452 | "id": "aVdMHz8u4CyV",
453 | "colab_type": "code",
454 | "colab": {
455 | "base_uri": "https://localhost:8080/",
456 | "height": 260
457 | },
458 | "outputId": "4e619f06-76a2-44d7-f1d0-d6274d8f584e"
459 | },
460 | "source": [
461 | "boston_df_o1 = boston_df\n",
462 | "Q1 = boston_df_o1.quantile(0.25)\n",
463 | "Q3 = boston_df_o1.quantile(0.75)\n",
464 | "IQR = Q3 - Q1\n",
465 | "print(IQR)"
466 | ],
467 | "execution_count": null,
468 | "outputs": [
469 | {
470 | "output_type": "stream",
471 | "text": [
472 | "CRIM 3.595038\n",
473 | "ZN 12.500000\n",
474 | "INDUS 12.910000\n",
475 | "CHAS 0.000000\n",
476 | "NOX 0.175000\n",
477 | "RM 0.738000\n",
478 | "AGE 49.050000\n",
479 | "DIS 3.088250\n",
480 | "RAD 20.000000\n",
481 | "TAX 387.000000\n",
482 | "PTRATIO 2.800000\n",
483 | "B 20.847500\n",
484 | "LSTAT 10.005000\n",
485 | "dtype: float64\n"
486 | ],
487 | "name": "stdout"
488 | }
489 | ]
490 | },
491 | {
492 | "cell_type": "markdown",
493 | "metadata": {
494 | "id": "TngApIhvDYs9",
495 | "colab_type": "text"
496 | },
497 | "source": [
498 | "Remove Outliers"
499 | ]
500 | },
501 | {
502 | "cell_type": "code",
503 | "metadata": {
504 | "id": "k446ZEoQ4Ovq",
505 | "colab_type": "code",
506 | "colab": {}
507 | },
508 | "source": [
509 | "boston_df_o = boston_df\n",
510 | "boston_df_o = boston_df_o[(z < 3).all(axis=1)]"
511 | ],
512 | "execution_count": null,
513 | "outputs": []
514 | },
515 | {
516 | "cell_type": "code",
517 | "metadata": {
518 | "id": "6kekp8nVDfp9",
519 | "colab_type": "code",
520 | "colab": {
521 | "base_uri": "https://localhost:8080/",
522 | "height": 35
523 | },
524 | "outputId": "9d5fcdec-1679-46ee-c6bc-53cc1f5b9882"
525 | },
526 | "source": [
527 | "boston_df.shape"
528 | ],
529 | "execution_count": null,
530 | "outputs": [
531 | {
532 | "output_type": "execute_result",
533 | "data": {
534 | "text/plain": [
535 | "(506, 13)"
536 | ]
537 | },
538 | "metadata": {
539 | "tags": []
540 | },
541 | "execution_count": 12
542 | }
543 | ]
544 | },
545 | {
546 | "cell_type": "code",
547 | "metadata": {
548 | "id": "nTti644HDkpi",
549 | "colab_type": "code",
550 | "colab": {
551 | "base_uri": "https://localhost:8080/",
552 | "height": 35
553 | },
554 | "outputId": "93986b11-5be7-4a24-d3e3-109ed1cb03a0"
555 | },
556 | "source": [
557 | "boston_df_o.shape"
558 | ],
559 | "execution_count": null,
560 | "outputs": [
561 | {
562 | "output_type": "execute_result",
563 | "data": {
564 | "text/plain": [
565 | "(415, 13)"
566 | ]
567 | },
568 | "metadata": {
569 | "tags": []
570 | },
571 | "execution_count": 14
572 | }
573 | ]
574 | },
575 | {
576 | "cell_type": "markdown",
577 | "metadata": {
578 | "id": "wMm_ZyQJDyu2",
579 | "colab_type": "text"
580 | },
581 | "source": [
582 | "Another method to remove outlier"
583 | ]
584 | },
585 | {
586 | "cell_type": "code",
587 | "metadata": {
588 | "id": "yjR35vnN4oVC",
589 | "colab_type": "code",
590 | "colab": {
591 | "base_uri": "https://localhost:8080/",
592 | "height": 35
593 | },
594 | "outputId": "8a103665-02c0-40b7-dc3c-f787e3287fa6"
595 | },
596 | "source": [
597 | "boston_df_out = boston_df_o1[~((boston_df_o1 < (Q1 - 1.5 * IQR)) |(boston_df_o1 > (Q3 + 1.5 * IQR))).any(axis=1)]\n",
598 | "boston_df_out.shape"
599 | ],
600 | "execution_count": null,
601 | "outputs": [
602 | {
603 | "output_type": "execute_result",
604 | "data": {
605 | "text/plain": [
606 | "(274, 13)"
607 | ]
608 | },
609 | "metadata": {
610 | "tags": []
611 | },
612 | "execution_count": 11
613 | }
614 | ]
615 | }
616 | ]
617 | }
--------------------------------------------------------------------------------
/Tutorial_3.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "nbformat": 4,
3 | "nbformat_minor": 0,
4 | "metadata": {
5 | "colab": {
6 | "name": "Tutorial_3.ipynb",
7 | "provenance": [],
8 | "collapsed_sections": [],
9 | "authorship_tag": "ABX9TyOHfXMB3stfPHuGAycj3A3r",
10 | "include_colab_link": true
11 | },
12 | "kernelspec": {
13 | "name": "python3",
14 | "display_name": "Python 3"
15 | },
16 | "accelerator": "GPU"
17 | },
18 | "cells": [
19 | {
20 | "cell_type": "markdown",
21 | "metadata": {
22 | "id": "view-in-github",
23 | "colab_type": "text"
24 | },
25 | "source": [
26 | "
"
27 | ]
28 | },
29 | {
30 | "cell_type": "markdown",
31 | "metadata": {
32 | "id": "KwPXNeOjqPP0",
33 | "colab_type": "text"
34 | },
35 | "source": [
36 | "KNN\n",
37 | "\n"
38 | ]
39 | },
40 | {
41 | "cell_type": "code",
42 | "metadata": {
43 | "id": "iVGka0sYPZLh",
44 | "colab_type": "code",
45 | "colab": {
46 | "base_uri": "https://localhost:8080/",
47 | "height": 1000
48 | },
49 | "outputId": "ccb48f21-a275-4969-b9d5-92fbe2f543d4"
50 | },
51 | "source": [
52 | "!pip install pyod\n",
53 | "!pip install --upgrade pyod "
54 | ],
55 | "execution_count": null,
56 | "outputs": [
57 | {
58 | "output_type": "stream",
59 | "text": [
60 | "Collecting pyod\n",
61 | "\u001b[?25l Downloading https://files.pythonhosted.org/packages/b5/69/1dfc42299d9bed2fb78fc48819897c84aae19e22fb4d1d28cc43cec8c780/pyod-0.8.2.tar.gz (96kB)\n",
62 | "\r\u001b[K |███▍ | 10kB 27.5MB/s eta 0:00:01\r\u001b[K |██████▉ | 20kB 32.9MB/s eta 0:00:01\r\u001b[K |██████████▏ | 30kB 38.4MB/s eta 0:00:01\r\u001b[K |█████████████▋ | 40kB 19.9MB/s eta 0:00:01\r\u001b[K |█████████████████ | 51kB 14.4MB/s eta 0:00:01\r\u001b[K |████████████████████▍ | 61kB 14.5MB/s eta 0:00:01\r\u001b[K |███████████████████████▊ | 71kB 13.1MB/s eta 0:00:01\r\u001b[K |███████████████████████████▏ | 81kB 11.5MB/s eta 0:00:01\r\u001b[K |██████████████████████████████▋ | 92kB 11.7MB/s eta 0:00:01\r\u001b[K |████████████████████████████████| 102kB 7.4MB/s \n",
63 | "\u001b[?25hCollecting combo\n",
64 | " Downloading https://files.pythonhosted.org/packages/0a/2a/61b6ac584e75d8df16dc27962aa5fe99d76b09da5b6710e83d4862c84001/combo-0.1.1.tar.gz\n",
65 | "Requirement already satisfied: joblib in /usr/local/lib/python3.6/dist-packages (from pyod) (0.16.0)\n",
66 | "Requirement already satisfied: matplotlib in /usr/local/lib/python3.6/dist-packages (from pyod) (3.2.2)\n",
67 | "Requirement already satisfied: numpy>=1.13 in /usr/local/lib/python3.6/dist-packages (from pyod) (1.18.5)\n",
68 | "Requirement already satisfied: numba>=0.35 in /usr/local/lib/python3.6/dist-packages (from pyod) (0.48.0)\n",
69 | "Requirement already satisfied: pandas>=0.25 in /usr/local/lib/python3.6/dist-packages (from pyod) (1.0.5)\n",
70 | "Requirement already satisfied: scipy>=0.19.1 in /usr/local/lib/python3.6/dist-packages (from pyod) (1.4.1)\n",
71 | "Requirement already satisfied: scikit_learn>=0.19.1 in /usr/local/lib/python3.6/dist-packages (from pyod) (0.22.2.post1)\n",
72 | "Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from pyod) (1.15.0)\n",
73 | "Requirement already satisfied: statsmodels in /usr/local/lib/python3.6/dist-packages (from pyod) (0.10.2)\n",
74 | "Collecting suod\n",
75 | "\u001b[?25l Downloading https://files.pythonhosted.org/packages/a1/87/9170cabe1b5e10a7d095c0e28f2e30e7c1886a13f063de85d3cfacc06f4b/suod-0.0.4.tar.gz (2.1MB)\n",
76 | "\u001b[K |████████████████████████████████| 2.1MB 19.2MB/s \n",
77 | "\u001b[?25hRequirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->pyod) (2.4.7)\n",
78 | "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->pyod) (2.8.1)\n",
79 | "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.6/dist-packages (from matplotlib->pyod) (0.10.0)\n",
80 | "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->pyod) (1.2.0)\n",
81 | "Requirement already satisfied: llvmlite<0.32.0,>=0.31.0dev0 in /usr/local/lib/python3.6/dist-packages (from numba>=0.35->pyod) (0.31.0)\n",
82 | "Requirement already satisfied: setuptools in /usr/local/lib/python3.6/dist-packages (from numba>=0.35->pyod) (49.6.0)\n",
83 | "Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.6/dist-packages (from pandas>=0.25->pyod) (2018.9)\n",
84 | "Requirement already satisfied: patsy>=0.4.0 in /usr/local/lib/python3.6/dist-packages (from statsmodels->pyod) (0.5.1)\n",
85 | "Building wheels for collected packages: pyod, combo, suod\n",
86 | " Building wheel for pyod (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
87 | " Created wheel for pyod: filename=pyod-0.8.2-cp36-none-any.whl size=110198 sha256=9fbdee4f02e7fe7e8443258c74bcb20ddbcfb9200a8d877269635684cc22e1e5\n",
88 | " Stored in directory: /root/.cache/pip/wheels/3a/ea/04/dbd99df8826a3d22139f44404cd14641615cd47ec2171cfe60\n",
89 | " Building wheel for combo (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
90 | " Created wheel for combo: filename=combo-0.1.1-cp36-none-any.whl size=42113 sha256=773054177cd3a3b01f52975a8d8dad002d6763acd508b432ae12ffac9007a77a\n",
91 | " Stored in directory: /root/.cache/pip/wheels/55/ec/e5/a2331372c676c467e70c6646e646edf6997d5c4905b8c0f5e6\n",
92 | " Building wheel for suod (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
93 | " Created wheel for suod: filename=suod-0.0.4-cp36-none-any.whl size=2167158 sha256=8948f151d7cc26d9fb7476831d8a263e8093258b24913514d525e648a1be6a16\n",
94 | " Stored in directory: /root/.cache/pip/wheels/57/55/e5/a4fca65bba231f6d0115059b589148774b41faea25b3f2aa27\n",
95 | "Successfully built pyod combo suod\n",
96 | "Installing collected packages: combo, suod, pyod\n",
97 | "Successfully installed combo-0.1.1 pyod-0.8.2 suod-0.0.4\n",
98 | "Requirement already up-to-date: pyod in /usr/local/lib/python3.6/dist-packages (0.8.2)\n",
99 | "Requirement already satisfied, skipping upgrade: combo in /usr/local/lib/python3.6/dist-packages (from pyod) (0.1.1)\n",
100 | "Requirement already satisfied, skipping upgrade: six in /usr/local/lib/python3.6/dist-packages (from pyod) (1.15.0)\n",
101 | "Requirement already satisfied, skipping upgrade: suod in /usr/local/lib/python3.6/dist-packages (from pyod) (0.0.4)\n",
102 | "Requirement already satisfied, skipping upgrade: scipy>=0.19.1 in /usr/local/lib/python3.6/dist-packages (from pyod) (1.4.1)\n",
103 | "Requirement already satisfied, skipping upgrade: pandas>=0.25 in /usr/local/lib/python3.6/dist-packages (from pyod) (1.0.5)\n",
104 | "Requirement already satisfied, skipping upgrade: joblib in /usr/local/lib/python3.6/dist-packages (from pyod) (0.16.0)\n",
105 | "Requirement already satisfied, skipping upgrade: matplotlib in /usr/local/lib/python3.6/dist-packages (from pyod) (3.2.2)\n",
106 | "Requirement already satisfied, skipping upgrade: numba>=0.35 in /usr/local/lib/python3.6/dist-packages (from pyod) (0.48.0)\n",
107 | "Requirement already satisfied, skipping upgrade: numpy>=1.13 in /usr/local/lib/python3.6/dist-packages (from pyod) (1.18.5)\n",
108 | "Requirement already satisfied, skipping upgrade: statsmodels in /usr/local/lib/python3.6/dist-packages (from pyod) (0.10.2)\n",
109 | "Requirement already satisfied, skipping upgrade: scikit-learn>=0.19.1 in /usr/local/lib/python3.6/dist-packages (from pyod) (0.22.2.post1)\n",
110 | "Requirement already satisfied, skipping upgrade: pytz>=2017.2 in /usr/local/lib/python3.6/dist-packages (from pandas>=0.25->pyod) (2018.9)\n",
111 | "Requirement already satisfied, skipping upgrade: python-dateutil>=2.6.1 in /usr/local/lib/python3.6/dist-packages (from pandas>=0.25->pyod) (2.8.1)\n",
112 | "Requirement already satisfied, skipping upgrade: kiwisolver>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->pyod) (1.2.0)\n",
113 | "Requirement already satisfied, skipping upgrade: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->pyod) (2.4.7)\n",
114 | "Requirement already satisfied, skipping upgrade: cycler>=0.10 in /usr/local/lib/python3.6/dist-packages (from matplotlib->pyod) (0.10.0)\n",
115 | "Requirement already satisfied, skipping upgrade: setuptools in /usr/local/lib/python3.6/dist-packages (from numba>=0.35->pyod) (49.6.0)\n",
116 | "Requirement already satisfied, skipping upgrade: llvmlite<0.32.0,>=0.31.0dev0 in /usr/local/lib/python3.6/dist-packages (from numba>=0.35->pyod) (0.31.0)\n",
117 | "Requirement already satisfied, skipping upgrade: patsy>=0.4.0 in /usr/local/lib/python3.6/dist-packages (from statsmodels->pyod) (0.5.1)\n"
118 | ],
119 | "name": "stdout"
120 | }
121 | ]
122 | },
123 | {
124 | "cell_type": "markdown",
125 | "metadata": {
126 | "id": "NMo2RuHlQgY7",
127 | "colab_type": "text"
128 | },
129 | "source": [
130 | "PyOD embedded functions used to create a random dataset with a fraction of outliers"
131 | ]
132 | },
133 | {
134 | "cell_type": "code",
135 | "metadata": {
136 | "id": "PRgN7UtqO0Et",
137 | "colab_type": "code",
138 | "colab": {
139 | "base_uri": "https://localhost:8080/",
140 | "height": 352
141 | },
142 | "outputId": "1201f7b6-2292-4714-d1e3-863a6a3d27ec"
143 | },
144 | "source": [
145 | "import numpy as np\n",
146 | "from scipy import stats\n",
147 | "import matplotlib.pyplot as plt\n",
148 | "from pyod.models.knn import KNN\n",
149 | "from pyod.utils.data import generate_data\n",
150 | "outlier_fraction = 0.1 \n",
151 | "n_train = 200 \n",
152 | "n_test = 100\n",
153 | "X_train, y_train, X_test, y_test = generate_data(n_train=n_train, n_test=n_test, contamination=outlier_fraction)\n",
154 | "#plot train and test set\n",
155 | "feature_1_train = X_train[:,[0]].reshape(-1,1)\n",
156 | "feature_2_train = X_train[:,[1]].reshape(-1,1)\n",
157 | "feature_1_test = X_test[:,[0]].reshape(-1,1)\n",
158 | "feature_2_test = X_test[:,[1]].reshape(-1,1)\n",
159 | "#scatter plot \n",
160 | "plt.scatter(feature_1_train,feature_2_train)\n",
161 | "plt.scatter(feature_1_test,feature_2_test)\n",
162 | "plt.xlabel('feature_1')\n",
163 | "plt.ylabel('feature_2')"
164 | ],
165 | "execution_count": null,
166 | "outputs": [
167 | {
168 | "output_type": "stream",
169 | "text": [
170 | "/usr/local/lib/python3.6/dist-packages/pyod/utils/data.py:190: FutureWarning: behaviour=\"old\" is deprecated and will be removed in version 0.8.0. Please use behaviour=\"new\", which makes the returned datasets in the order of X_train, X_test, y_train, y_test.\n",
171 | " FutureWarning)\n"
172 | ],
173 | "name": "stderr"
174 | },
175 | {
176 | "output_type": "execute_result",
177 | "data": {
178 | "text/plain": [
179 | "Text(0, 0.5, 'feature_2')"
180 | ]
181 | },
182 | "metadata": {
183 | "tags": []
184 | },
185 | "execution_count": 7
186 | },
187 | {
188 | "output_type": "display_data",
189 | "data": {
190 | "image/png": "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\n",
191 | "text/plain": [
192 | ""
193 | ]
194 | },
195 | "metadata": {
196 | "tags": [],
197 | "needs_background": "light"
198 | }
199 | }
200 | ]
201 | },
202 | {
203 | "cell_type": "markdown",
204 | "metadata": {
205 | "id": "U_i4TUPZP2y_",
206 | "colab_type": "text"
207 | },
208 | "source": [
209 | "Train and make predictions with KNN model"
210 | ]
211 | },
212 | {
213 | "cell_type": "code",
214 | "metadata": {
215 | "id": "1PPSZ1xDPl0h",
216 | "colab_type": "code",
217 | "colab": {
218 | "base_uri": "https://localhost:8080/",
219 | "height": 52
220 | },
221 | "outputId": "a529b8d4-23d2-4246-cfdd-85ffbf56ea46"
222 | },
223 | "source": [
224 | "knn=KNN(contamination=outlier_fraction)\n",
225 | "knn.fit(X_train)\n",
226 | "# prediction labels and outlier scores of the training data\n",
227 | "y_train_pred = knn.labels_ \n",
228 | "y_train_scores = knn.decision_scores_ \n",
229 | "# prediction on the test data\n",
230 | "y_test_pred = knn.predict(X_test) \n",
231 | "y_test_scores = knn.decision_function(X_test)\n",
232 | "# errors in test set\n",
233 | "n_errors = (y_test_pred != y_test).sum()\n",
234 | "print('No of Errors in test set: {}'.format(n_errors))\n",
235 | "# accuracy in test set\n",
236 | "print('Accuracy in test set: {}'.format((n_test-n_errors)/n_test))"
237 | ],
238 | "execution_count": null,
239 | "outputs": [
240 | {
241 | "output_type": "stream",
242 | "text": [
243 | "No of Errors in test set: 0\n",
244 | "Accuracy in test set: 1.0\n"
245 | ],
246 | "name": "stdout"
247 | }
248 | ]
249 | },
250 | {
251 | "cell_type": "markdown",
252 | "metadata": {
253 | "id": "Z18WqKf5QMV7",
254 | "colab_type": "text"
255 | },
256 | "source": [
257 | "KNN algorithm was able to correctly classify almost all the outliers"
258 | ]
259 | },
260 | {
261 | "cell_type": "code",
262 | "metadata": {
263 | "id": "1zwrqVDRPtNO",
264 | "colab_type": "code",
265 | "colab": {
266 | "base_uri": "https://localhost:8080/",
267 | "height": 650
268 | },
269 | "outputId": "9eb5626f-7c8f-461e-8d88-f4cf1e9047e1"
270 | },
271 | "source": [
272 | "from pyod.utils import example\n",
273 | "example.visualize(knn, X_train, y_train, X_test, y_test, y_train_pred, y_test_pred, show_figure=True, save_figure=False)"
274 | ],
275 | "execution_count": null,
276 | "outputs": [
277 | {
278 | "output_type": "display_data",
279 | "data": {
280 | "image/png": "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\n",
281 | "text/plain": [
282 | ""
283 | ]
284 | },
285 | "metadata": {
286 | "tags": []
287 | }
288 | }
289 | ]
290 | }
291 | ]
292 | }
--------------------------------------------------------------------------------