a b/Obesity_risk_detection.ipynb
1
{
2
  "nbformat": 4,
3
  "nbformat_minor": 0,
4
  "metadata": {
5
    "colab": {
6
      "provenance": []
7
    },
8
    "kernelspec": {
9
      "name": "python3",
10
      "display_name": "Python 3"
11
    },
12
    "language_info": {
13
      "name": "python"
14
    }
15
  },
16
  "cells": [
17
    {
18
      "cell_type": "markdown",
19
      "source": [
20
        "# **IMPORTING** **LIBRARIES**"
21
      ],
22
      "metadata": {
23
        "id": "SQmJcBR7rAAp"
24
      }
25
    },
26
    {
27
      "cell_type": "code",
28
      "execution_count": 1,
29
      "metadata": {
30
        "colab": {
31
          "base_uri": "https://localhost:8080/"
32
        },
33
        "id": "j-x0sLq3Z26i",
34
        "outputId": "64087c55-4a13-4324-bb15-bf8a3d4553d7"
35
      },
36
      "outputs": [
37
        {
38
          "output_type": "stream",
39
          "name": "stdout",
40
          "text": [
41
            "2.15.0\n"
42
          ]
43
        }
44
      ],
45
      "source": [
46
        "import tensorflow as tf\n",
47
        "print(tf.__version__)"
48
      ]
49
    },
50
    {
51
      "cell_type": "code",
52
      "source": [
53
        "import numpy as np\n",
54
        "import pandas as pd\n",
55
        "import matplotlib.pyplot as plt\n"
56
      ],
57
      "metadata": {
58
        "id": "XUAfgXejbQCu"
59
      },
60
      "execution_count": 2,
61
      "outputs": []
62
    },
63
    {
64
      "cell_type": "markdown",
65
      "source": [
66
        "# **DATASET** **IMPORTATION**"
67
      ],
68
      "metadata": {
69
        "id": "1qqD_LhGrgf8"
70
      }
71
    },
72
    {
73
      "cell_type": "code",
74
      "source": [
75
        "! mkdir -p ~/.kaggle"
76
      ],
77
      "metadata": {
78
        "id": "fZxb_L5AUiYC"
79
      },
80
      "execution_count": 3,
81
      "outputs": []
82
    },
83
    {
84
      "cell_type": "code",
85
      "source": [
86
        "from google.colab import files\n",
87
        "upload = files.upload()"
88
      ],
89
      "metadata": {
90
        "colab": {
91
          "base_uri": "https://localhost:8080/",
92
          "height": 73
93
        },
94
        "id": "ywSHkRFDV1MI",
95
        "outputId": "0075ce0f-aede-4c97-da7b-7841975f3f04"
96
      },
97
      "execution_count": 4,
98
      "outputs": [
99
        {
100
          "output_type": "display_data",
101
          "data": {
102
            "text/plain": [
103
              "<IPython.core.display.HTML object>"
104
            ],
105
            "text/html": [
106
              "\n",
107
              "     <input type=\"file\" id=\"files-4bb4f943-b662-4ca1-97d6-9710445a9eb3\" name=\"files[]\" multiple disabled\n",
108
              "        style=\"border:none\" />\n",
109
              "     <output id=\"result-4bb4f943-b662-4ca1-97d6-9710445a9eb3\">\n",
110
              "      Upload widget is only available when the cell has been executed in the\n",
111
              "      current browser session. Please rerun this cell to enable.\n",
112
              "      </output>\n",
113
              "      <script>// Copyright 2017 Google LLC\n",
114
              "//\n",
115
              "// Licensed under the Apache License, Version 2.0 (the \"License\");\n",
116
              "// you may not use this file except in compliance with the License.\n",
117
              "// You may obtain a copy of the License at\n",
118
              "//\n",
119
              "//      http://www.apache.org/licenses/LICENSE-2.0\n",
120
              "//\n",
121
              "// Unless required by applicable law or agreed to in writing, software\n",
122
              "// distributed under the License is distributed on an \"AS IS\" BASIS,\n",
123
              "// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
124
              "// See the License for the specific language governing permissions and\n",
125
              "// limitations under the License.\n",
126
              "\n",
127
              "/**\n",
128
              " * @fileoverview Helpers for google.colab Python module.\n",
129
              " */\n",
130
              "(function(scope) {\n",
131
              "function span(text, styleAttributes = {}) {\n",
132
              "  const element = document.createElement('span');\n",
133
              "  element.textContent = text;\n",
134
              "  for (const key of Object.keys(styleAttributes)) {\n",
135
              "    element.style[key] = styleAttributes[key];\n",
136
              "  }\n",
137
              "  return element;\n",
138
              "}\n",
139
              "\n",
140
              "// Max number of bytes which will be uploaded at a time.\n",
141
              "const MAX_PAYLOAD_SIZE = 100 * 1024;\n",
142
              "\n",
143
              "function _uploadFiles(inputId, outputId) {\n",
144
              "  const steps = uploadFilesStep(inputId, outputId);\n",
145
              "  const outputElement = document.getElementById(outputId);\n",
146
              "  // Cache steps on the outputElement to make it available for the next call\n",
147
              "  // to uploadFilesContinue from Python.\n",
148
              "  outputElement.steps = steps;\n",
149
              "\n",
150
              "  return _uploadFilesContinue(outputId);\n",
151
              "}\n",
152
              "\n",
153
              "// This is roughly an async generator (not supported in the browser yet),\n",
154
              "// where there are multiple asynchronous steps and the Python side is going\n",
155
              "// to poll for completion of each step.\n",
156
              "// This uses a Promise to block the python side on completion of each step,\n",
157
              "// then passes the result of the previous step as the input to the next step.\n",
158
              "function _uploadFilesContinue(outputId) {\n",
159
              "  const outputElement = document.getElementById(outputId);\n",
160
              "  const steps = outputElement.steps;\n",
161
              "\n",
162
              "  const next = steps.next(outputElement.lastPromiseValue);\n",
163
              "  return Promise.resolve(next.value.promise).then((value) => {\n",
164
              "    // Cache the last promise value to make it available to the next\n",
165
              "    // step of the generator.\n",
166
              "    outputElement.lastPromiseValue = value;\n",
167
              "    return next.value.response;\n",
168
              "  });\n",
169
              "}\n",
170
              "\n",
171
              "/**\n",
172
              " * Generator function which is called between each async step of the upload\n",
173
              " * process.\n",
174
              " * @param {string} inputId Element ID of the input file picker element.\n",
175
              " * @param {string} outputId Element ID of the output display.\n",
176
              " * @return {!Iterable<!Object>} Iterable of next steps.\n",
177
              " */\n",
178
              "function* uploadFilesStep(inputId, outputId) {\n",
179
              "  const inputElement = document.getElementById(inputId);\n",
180
              "  inputElement.disabled = false;\n",
181
              "\n",
182
              "  const outputElement = document.getElementById(outputId);\n",
183
              "  outputElement.innerHTML = '';\n",
184
              "\n",
185
              "  const pickedPromise = new Promise((resolve) => {\n",
186
              "    inputElement.addEventListener('change', (e) => {\n",
187
              "      resolve(e.target.files);\n",
188
              "    });\n",
189
              "  });\n",
190
              "\n",
191
              "  const cancel = document.createElement('button');\n",
192
              "  inputElement.parentElement.appendChild(cancel);\n",
193
              "  cancel.textContent = 'Cancel upload';\n",
194
              "  const cancelPromise = new Promise((resolve) => {\n",
195
              "    cancel.onclick = () => {\n",
196
              "      resolve(null);\n",
197
              "    };\n",
198
              "  });\n",
199
              "\n",
200
              "  // Wait for the user to pick the files.\n",
201
              "  const files = yield {\n",
202
              "    promise: Promise.race([pickedPromise, cancelPromise]),\n",
203
              "    response: {\n",
204
              "      action: 'starting',\n",
205
              "    }\n",
206
              "  };\n",
207
              "\n",
208
              "  cancel.remove();\n",
209
              "\n",
210
              "  // Disable the input element since further picks are not allowed.\n",
211
              "  inputElement.disabled = true;\n",
212
              "\n",
213
              "  if (!files) {\n",
214
              "    return {\n",
215
              "      response: {\n",
216
              "        action: 'complete',\n",
217
              "      }\n",
218
              "    };\n",
219
              "  }\n",
220
              "\n",
221
              "  for (const file of files) {\n",
222
              "    const li = document.createElement('li');\n",
223
              "    li.append(span(file.name, {fontWeight: 'bold'}));\n",
224
              "    li.append(span(\n",
225
              "        `(${file.type || 'n/a'}) - ${file.size} bytes, ` +\n",
226
              "        `last modified: ${\n",
227
              "            file.lastModifiedDate ? file.lastModifiedDate.toLocaleDateString() :\n",
228
              "                                    'n/a'} - `));\n",
229
              "    const percent = span('0% done');\n",
230
              "    li.appendChild(percent);\n",
231
              "\n",
232
              "    outputElement.appendChild(li);\n",
233
              "\n",
234
              "    const fileDataPromise = new Promise((resolve) => {\n",
235
              "      const reader = new FileReader();\n",
236
              "      reader.onload = (e) => {\n",
237
              "        resolve(e.target.result);\n",
238
              "      };\n",
239
              "      reader.readAsArrayBuffer(file);\n",
240
              "    });\n",
241
              "    // Wait for the data to be ready.\n",
242
              "    let fileData = yield {\n",
243
              "      promise: fileDataPromise,\n",
244
              "      response: {\n",
245
              "        action: 'continue',\n",
246
              "      }\n",
247
              "    };\n",
248
              "\n",
249
              "    // Use a chunked sending to avoid message size limits. See b/62115660.\n",
250
              "    let position = 0;\n",
251
              "    do {\n",
252
              "      const length = Math.min(fileData.byteLength - position, MAX_PAYLOAD_SIZE);\n",
253
              "      const chunk = new Uint8Array(fileData, position, length);\n",
254
              "      position += length;\n",
255
              "\n",
256
              "      const base64 = btoa(String.fromCharCode.apply(null, chunk));\n",
257
              "      yield {\n",
258
              "        response: {\n",
259
              "          action: 'append',\n",
260
              "          file: file.name,\n",
261
              "          data: base64,\n",
262
              "        },\n",
263
              "      };\n",
264
              "\n",
265
              "      let percentDone = fileData.byteLength === 0 ?\n",
266
              "          100 :\n",
267
              "          Math.round((position / fileData.byteLength) * 100);\n",
268
              "      percent.textContent = `${percentDone}% done`;\n",
269
              "\n",
270
              "    } while (position < fileData.byteLength);\n",
271
              "  }\n",
272
              "\n",
273
              "  // All done.\n",
274
              "  yield {\n",
275
              "    response: {\n",
276
              "      action: 'complete',\n",
277
              "    }\n",
278
              "  };\n",
279
              "}\n",
280
              "\n",
281
              "scope.google = scope.google || {};\n",
282
              "scope.google.colab = scope.google.colab || {};\n",
283
              "scope.google.colab._files = {\n",
284
              "  _uploadFiles,\n",
285
              "  _uploadFilesContinue,\n",
286
              "};\n",
287
              "})(self);\n",
288
              "</script> "
289
            ]
290
          },
291
          "metadata": {}
292
        },
293
        {
294
          "output_type": "stream",
295
          "name": "stdout",
296
          "text": [
297
            "Saving kaggle.json to kaggle.json\n"
298
          ]
299
        }
300
      ]
301
    },
302
    {
303
      "cell_type": "code",
304
      "source": [
305
        "! cp kaggle.json ~/.kaggle"
306
      ],
307
      "metadata": {
308
        "id": "v7Jcc3tJV9aI"
309
      },
310
      "execution_count": 5,
311
      "outputs": []
312
    },
313
    {
314
      "cell_type": "code",
315
      "source": [
316
        "! chmod 600 /root/.kaggle/kaggle.json"
317
      ],
318
      "metadata": {
319
        "id": "4VgFoXLfWJfU"
320
      },
321
      "execution_count": 6,
322
      "outputs": []
323
    },
324
    {
325
      "cell_type": "code",
326
      "source": [
327
        "! kaggle competitions download -c playground-series-s4e2"
328
      ],
329
      "metadata": {
330
        "colab": {
331
          "base_uri": "https://localhost:8080/"
332
        },
333
        "id": "5OSmwek8WQ7l",
334
        "outputId": "32afb11f-5339-42f0-e9a9-07b86a17a045"
335
      },
336
      "execution_count": 7,
337
      "outputs": [
338
        {
339
          "output_type": "stream",
340
          "name": "stdout",
341
          "text": [
342
            "Downloading playground-series-s4e2.zip to /content\n",
343
            "\r  0% 0.00/917k [00:00<?, ?B/s]\n",
344
            "\r100% 917k/917k [00:00<00:00, 17.2MB/s]\n"
345
          ]
346
        }
347
      ]
348
    },
349
    {
350
      "cell_type": "code",
351
      "source": [
352
        "! unzip /content/playground-series-s4e2.zip"
353
      ],
354
      "metadata": {
355
        "colab": {
356
          "base_uri": "https://localhost:8080/"
357
        },
358
        "id": "D7mNC0iWWZrb",
359
        "outputId": "a8341238-c0ad-44a6-c136-3fbf11a5b918"
360
      },
361
      "execution_count": 8,
362
      "outputs": [
363
        {
364
          "output_type": "stream",
365
          "name": "stdout",
366
          "text": [
367
            "Archive:  /content/playground-series-s4e2.zip\n",
368
            "  inflating: sample_submission.csv   \n",
369
            "  inflating: test.csv                \n",
370
            "  inflating: train.csv               \n"
371
          ]
372
        }
373
      ]
374
    },
375
    {
376
      "cell_type": "code",
377
      "source": [
378
        "obesity = pd.read_csv(\"train.csv\")\n",
379
        "obesity.head()"
380
      ],
381
      "metadata": {
382
        "colab": {
383
          "base_uri": "https://localhost:8080/",
384
          "height": 226
385
        },
386
        "id": "_8IuRB0GWokp",
387
        "outputId": "78f12a72-da77-4667-c2b3-f9774db80e73"
388
      },
389
      "execution_count": 9,
390
      "outputs": [
391
        {
392
          "output_type": "execute_result",
393
          "data": {
394
            "text/plain": [
395
              "   id  Gender        Age    Height      Weight family_history_with_overweight  \\\n",
396
              "0   0    Male  24.443011  1.699998   81.669950                            yes   \n",
397
              "1   1  Female  18.000000  1.560000   57.000000                            yes   \n",
398
              "2   2  Female  18.000000  1.711460   50.165754                            yes   \n",
399
              "3   3  Female  20.952737  1.710730  131.274851                            yes   \n",
400
              "4   4    Male  31.641081  1.914186   93.798055                            yes   \n",
401
              "\n",
402
              "  FAVC      FCVC       NCP        CAEC SMOKE      CH2O SCC       FAF  \\\n",
403
              "0  yes  2.000000  2.983297   Sometimes    no  2.763573  no  0.000000   \n",
404
              "1  yes  2.000000  3.000000  Frequently    no  2.000000  no  1.000000   \n",
405
              "2  yes  1.880534  1.411685   Sometimes    no  1.910378  no  0.866045   \n",
406
              "3  yes  3.000000  3.000000   Sometimes    no  1.674061  no  1.467863   \n",
407
              "4  yes  2.679664  1.971472   Sometimes    no  1.979848  no  1.967973   \n",
408
              "\n",
409
              "        TUE       CALC                 MTRANS           NObeyesdad  \n",
410
              "0  0.976473  Sometimes  Public_Transportation  Overweight_Level_II  \n",
411
              "1  1.000000         no             Automobile        Normal_Weight  \n",
412
              "2  1.673584         no  Public_Transportation  Insufficient_Weight  \n",
413
              "3  0.780199  Sometimes  Public_Transportation     Obesity_Type_III  \n",
414
              "4  0.931721  Sometimes  Public_Transportation  Overweight_Level_II  "
415
            ],
416
            "text/html": [
417
              "\n",
418
              "  <div id=\"df-7d0d80a3-508a-4d31-81b1-b74d0c8dc4e7\" class=\"colab-df-container\">\n",
419
              "    <div>\n",
420
              "<style scoped>\n",
421
              "    .dataframe tbody tr th:only-of-type {\n",
422
              "        vertical-align: middle;\n",
423
              "    }\n",
424
              "\n",
425
              "    .dataframe tbody tr th {\n",
426
              "        vertical-align: top;\n",
427
              "    }\n",
428
              "\n",
429
              "    .dataframe thead th {\n",
430
              "        text-align: right;\n",
431
              "    }\n",
432
              "</style>\n",
433
              "<table border=\"1\" class=\"dataframe\">\n",
434
              "  <thead>\n",
435
              "    <tr style=\"text-align: right;\">\n",
436
              "      <th></th>\n",
437
              "      <th>id</th>\n",
438
              "      <th>Gender</th>\n",
439
              "      <th>Age</th>\n",
440
              "      <th>Height</th>\n",
441
              "      <th>Weight</th>\n",
442
              "      <th>family_history_with_overweight</th>\n",
443
              "      <th>FAVC</th>\n",
444
              "      <th>FCVC</th>\n",
445
              "      <th>NCP</th>\n",
446
              "      <th>CAEC</th>\n",
447
              "      <th>SMOKE</th>\n",
448
              "      <th>CH2O</th>\n",
449
              "      <th>SCC</th>\n",
450
              "      <th>FAF</th>\n",
451
              "      <th>TUE</th>\n",
452
              "      <th>CALC</th>\n",
453
              "      <th>MTRANS</th>\n",
454
              "      <th>NObeyesdad</th>\n",
455
              "    </tr>\n",
456
              "  </thead>\n",
457
              "  <tbody>\n",
458
              "    <tr>\n",
459
              "      <th>0</th>\n",
460
              "      <td>0</td>\n",
461
              "      <td>Male</td>\n",
462
              "      <td>24.443011</td>\n",
463
              "      <td>1.699998</td>\n",
464
              "      <td>81.669950</td>\n",
465
              "      <td>yes</td>\n",
466
              "      <td>yes</td>\n",
467
              "      <td>2.000000</td>\n",
468
              "      <td>2.983297</td>\n",
469
              "      <td>Sometimes</td>\n",
470
              "      <td>no</td>\n",
471
              "      <td>2.763573</td>\n",
472
              "      <td>no</td>\n",
473
              "      <td>0.000000</td>\n",
474
              "      <td>0.976473</td>\n",
475
              "      <td>Sometimes</td>\n",
476
              "      <td>Public_Transportation</td>\n",
477
              "      <td>Overweight_Level_II</td>\n",
478
              "    </tr>\n",
479
              "    <tr>\n",
480
              "      <th>1</th>\n",
481
              "      <td>1</td>\n",
482
              "      <td>Female</td>\n",
483
              "      <td>18.000000</td>\n",
484
              "      <td>1.560000</td>\n",
485
              "      <td>57.000000</td>\n",
486
              "      <td>yes</td>\n",
487
              "      <td>yes</td>\n",
488
              "      <td>2.000000</td>\n",
489
              "      <td>3.000000</td>\n",
490
              "      <td>Frequently</td>\n",
491
              "      <td>no</td>\n",
492
              "      <td>2.000000</td>\n",
493
              "      <td>no</td>\n",
494
              "      <td>1.000000</td>\n",
495
              "      <td>1.000000</td>\n",
496
              "      <td>no</td>\n",
497
              "      <td>Automobile</td>\n",
498
              "      <td>Normal_Weight</td>\n",
499
              "    </tr>\n",
500
              "    <tr>\n",
501
              "      <th>2</th>\n",
502
              "      <td>2</td>\n",
503
              "      <td>Female</td>\n",
504
              "      <td>18.000000</td>\n",
505
              "      <td>1.711460</td>\n",
506
              "      <td>50.165754</td>\n",
507
              "      <td>yes</td>\n",
508
              "      <td>yes</td>\n",
509
              "      <td>1.880534</td>\n",
510
              "      <td>1.411685</td>\n",
511
              "      <td>Sometimes</td>\n",
512
              "      <td>no</td>\n",
513
              "      <td>1.910378</td>\n",
514
              "      <td>no</td>\n",
515
              "      <td>0.866045</td>\n",
516
              "      <td>1.673584</td>\n",
517
              "      <td>no</td>\n",
518
              "      <td>Public_Transportation</td>\n",
519
              "      <td>Insufficient_Weight</td>\n",
520
              "    </tr>\n",
521
              "    <tr>\n",
522
              "      <th>3</th>\n",
523
              "      <td>3</td>\n",
524
              "      <td>Female</td>\n",
525
              "      <td>20.952737</td>\n",
526
              "      <td>1.710730</td>\n",
527
              "      <td>131.274851</td>\n",
528
              "      <td>yes</td>\n",
529
              "      <td>yes</td>\n",
530
              "      <td>3.000000</td>\n",
531
              "      <td>3.000000</td>\n",
532
              "      <td>Sometimes</td>\n",
533
              "      <td>no</td>\n",
534
              "      <td>1.674061</td>\n",
535
              "      <td>no</td>\n",
536
              "      <td>1.467863</td>\n",
537
              "      <td>0.780199</td>\n",
538
              "      <td>Sometimes</td>\n",
539
              "      <td>Public_Transportation</td>\n",
540
              "      <td>Obesity_Type_III</td>\n",
541
              "    </tr>\n",
542
              "    <tr>\n",
543
              "      <th>4</th>\n",
544
              "      <td>4</td>\n",
545
              "      <td>Male</td>\n",
546
              "      <td>31.641081</td>\n",
547
              "      <td>1.914186</td>\n",
548
              "      <td>93.798055</td>\n",
549
              "      <td>yes</td>\n",
550
              "      <td>yes</td>\n",
551
              "      <td>2.679664</td>\n",
552
              "      <td>1.971472</td>\n",
553
              "      <td>Sometimes</td>\n",
554
              "      <td>no</td>\n",
555
              "      <td>1.979848</td>\n",
556
              "      <td>no</td>\n",
557
              "      <td>1.967973</td>\n",
558
              "      <td>0.931721</td>\n",
559
              "      <td>Sometimes</td>\n",
560
              "      <td>Public_Transportation</td>\n",
561
              "      <td>Overweight_Level_II</td>\n",
562
              "    </tr>\n",
563
              "  </tbody>\n",
564
              "</table>\n",
565
              "</div>\n",
566
              "    <div class=\"colab-df-buttons\">\n",
567
              "\n",
568
              "  <div class=\"colab-df-container\">\n",
569
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-7d0d80a3-508a-4d31-81b1-b74d0c8dc4e7')\"\n",
570
              "            title=\"Convert this dataframe to an interactive table.\"\n",
571
              "            style=\"display:none;\">\n",
572
              "\n",
573
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
574
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
575
              "  </svg>\n",
576
              "    </button>\n",
577
              "\n",
578
              "  <style>\n",
579
              "    .colab-df-container {\n",
580
              "      display:flex;\n",
581
              "      gap: 12px;\n",
582
              "    }\n",
583
              "\n",
584
              "    .colab-df-convert {\n",
585
              "      background-color: #E8F0FE;\n",
586
              "      border: none;\n",
587
              "      border-radius: 50%;\n",
588
              "      cursor: pointer;\n",
589
              "      display: none;\n",
590
              "      fill: #1967D2;\n",
591
              "      height: 32px;\n",
592
              "      padding: 0 0 0 0;\n",
593
              "      width: 32px;\n",
594
              "    }\n",
595
              "\n",
596
              "    .colab-df-convert:hover {\n",
597
              "      background-color: #E2EBFA;\n",
598
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
599
              "      fill: #174EA6;\n",
600
              "    }\n",
601
              "\n",
602
              "    .colab-df-buttons div {\n",
603
              "      margin-bottom: 4px;\n",
604
              "    }\n",
605
              "\n",
606
              "    [theme=dark] .colab-df-convert {\n",
607
              "      background-color: #3B4455;\n",
608
              "      fill: #D2E3FC;\n",
609
              "    }\n",
610
              "\n",
611
              "    [theme=dark] .colab-df-convert:hover {\n",
612
              "      background-color: #434B5C;\n",
613
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
614
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
615
              "      fill: #FFFFFF;\n",
616
              "    }\n",
617
              "  </style>\n",
618
              "\n",
619
              "    <script>\n",
620
              "      const buttonEl =\n",
621
              "        document.querySelector('#df-7d0d80a3-508a-4d31-81b1-b74d0c8dc4e7 button.colab-df-convert');\n",
622
              "      buttonEl.style.display =\n",
623
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
624
              "\n",
625
              "      async function convertToInteractive(key) {\n",
626
              "        const element = document.querySelector('#df-7d0d80a3-508a-4d31-81b1-b74d0c8dc4e7');\n",
627
              "        const dataTable =\n",
628
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
629
              "                                                    [key], {});\n",
630
              "        if (!dataTable) return;\n",
631
              "\n",
632
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
633
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
634
              "          + ' to learn more about interactive tables.';\n",
635
              "        element.innerHTML = '';\n",
636
              "        dataTable['output_type'] = 'display_data';\n",
637
              "        await google.colab.output.renderOutput(dataTable, element);\n",
638
              "        const docLink = document.createElement('div');\n",
639
              "        docLink.innerHTML = docLinkHtml;\n",
640
              "        element.appendChild(docLink);\n",
641
              "      }\n",
642
              "    </script>\n",
643
              "  </div>\n",
644
              "\n",
645
              "\n",
646
              "<div id=\"df-809ff325-3488-49b1-ba83-312cc0f4f8d4\">\n",
647
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-809ff325-3488-49b1-ba83-312cc0f4f8d4')\"\n",
648
              "            title=\"Suggest charts\"\n",
649
              "            style=\"display:none;\">\n",
650
              "\n",
651
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
652
              "     width=\"24px\">\n",
653
              "    <g>\n",
654
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
655
              "    </g>\n",
656
              "</svg>\n",
657
              "  </button>\n",
658
              "\n",
659
              "<style>\n",
660
              "  .colab-df-quickchart {\n",
661
              "      --bg-color: #E8F0FE;\n",
662
              "      --fill-color: #1967D2;\n",
663
              "      --hover-bg-color: #E2EBFA;\n",
664
              "      --hover-fill-color: #174EA6;\n",
665
              "      --disabled-fill-color: #AAA;\n",
666
              "      --disabled-bg-color: #DDD;\n",
667
              "  }\n",
668
              "\n",
669
              "  [theme=dark] .colab-df-quickchart {\n",
670
              "      --bg-color: #3B4455;\n",
671
              "      --fill-color: #D2E3FC;\n",
672
              "      --hover-bg-color: #434B5C;\n",
673
              "      --hover-fill-color: #FFFFFF;\n",
674
              "      --disabled-bg-color: #3B4455;\n",
675
              "      --disabled-fill-color: #666;\n",
676
              "  }\n",
677
              "\n",
678
              "  .colab-df-quickchart {\n",
679
              "    background-color: var(--bg-color);\n",
680
              "    border: none;\n",
681
              "    border-radius: 50%;\n",
682
              "    cursor: pointer;\n",
683
              "    display: none;\n",
684
              "    fill: var(--fill-color);\n",
685
              "    height: 32px;\n",
686
              "    padding: 0;\n",
687
              "    width: 32px;\n",
688
              "  }\n",
689
              "\n",
690
              "  .colab-df-quickchart:hover {\n",
691
              "    background-color: var(--hover-bg-color);\n",
692
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
693
              "    fill: var(--button-hover-fill-color);\n",
694
              "  }\n",
695
              "\n",
696
              "  .colab-df-quickchart-complete:disabled,\n",
697
              "  .colab-df-quickchart-complete:disabled:hover {\n",
698
              "    background-color: var(--disabled-bg-color);\n",
699
              "    fill: var(--disabled-fill-color);\n",
700
              "    box-shadow: none;\n",
701
              "  }\n",
702
              "\n",
703
              "  .colab-df-spinner {\n",
704
              "    border: 2px solid var(--fill-color);\n",
705
              "    border-color: transparent;\n",
706
              "    border-bottom-color: var(--fill-color);\n",
707
              "    animation:\n",
708
              "      spin 1s steps(1) infinite;\n",
709
              "  }\n",
710
              "\n",
711
              "  @keyframes spin {\n",
712
              "    0% {\n",
713
              "      border-color: transparent;\n",
714
              "      border-bottom-color: var(--fill-color);\n",
715
              "      border-left-color: var(--fill-color);\n",
716
              "    }\n",
717
              "    20% {\n",
718
              "      border-color: transparent;\n",
719
              "      border-left-color: var(--fill-color);\n",
720
              "      border-top-color: var(--fill-color);\n",
721
              "    }\n",
722
              "    30% {\n",
723
              "      border-color: transparent;\n",
724
              "      border-left-color: var(--fill-color);\n",
725
              "      border-top-color: var(--fill-color);\n",
726
              "      border-right-color: var(--fill-color);\n",
727
              "    }\n",
728
              "    40% {\n",
729
              "      border-color: transparent;\n",
730
              "      border-right-color: var(--fill-color);\n",
731
              "      border-top-color: var(--fill-color);\n",
732
              "    }\n",
733
              "    60% {\n",
734
              "      border-color: transparent;\n",
735
              "      border-right-color: var(--fill-color);\n",
736
              "    }\n",
737
              "    80% {\n",
738
              "      border-color: transparent;\n",
739
              "      border-right-color: var(--fill-color);\n",
740
              "      border-bottom-color: var(--fill-color);\n",
741
              "    }\n",
742
              "    90% {\n",
743
              "      border-color: transparent;\n",
744
              "      border-bottom-color: var(--fill-color);\n",
745
              "    }\n",
746
              "  }\n",
747
              "</style>\n",
748
              "\n",
749
              "  <script>\n",
750
              "    async function quickchart(key) {\n",
751
              "      const quickchartButtonEl =\n",
752
              "        document.querySelector('#' + key + ' button');\n",
753
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
754
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
755
              "      try {\n",
756
              "        const charts = await google.colab.kernel.invokeFunction(\n",
757
              "            'suggestCharts', [key], {});\n",
758
              "      } catch (error) {\n",
759
              "        console.error('Error during call to suggestCharts:', error);\n",
760
              "      }\n",
761
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
762
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
763
              "    }\n",
764
              "    (() => {\n",
765
              "      let quickchartButtonEl =\n",
766
              "        document.querySelector('#df-809ff325-3488-49b1-ba83-312cc0f4f8d4 button');\n",
767
              "      quickchartButtonEl.style.display =\n",
768
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
769
              "    })();\n",
770
              "  </script>\n",
771
              "</div>\n",
772
              "\n",
773
              "    </div>\n",
774
              "  </div>\n"
775
            ],
776
            "application/vnd.google.colaboratory.intrinsic+json": {
777
              "type": "dataframe",
778
              "variable_name": "obesity",
779
              "summary": "{\n  \"name\": \"obesity\",\n  \"rows\": 20758,\n  \"fields\": [\n    {\n      \"column\": \"id\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 5992,\n        \"min\": 0,\n        \"max\": 20757,\n        \"num_unique_values\": 20758,\n        \"samples\": [\n          10317,\n          4074,\n          9060\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Gender\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"Female\",\n          \"Male\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Age\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 5.688071958787075,\n        \"min\": 14.0,\n        \"max\": 61.0,\n        \"num_unique_values\": 1703,\n        \"samples\": [\n          25.902283,\n          17.412629\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Height\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.08731190569718149,\n        \"min\": 1.45,\n        \"max\": 1.975663,\n        \"num_unique_values\": 1833,\n        \"samples\": [\n          1.685127,\n          1.919241\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Weight\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 26.379443076406236,\n        \"min\": 39.0,\n        \"max\": 165.057269,\n        \"num_unique_values\": 1979,\n        \"samples\": [\n          110.804337,\n          96.875502\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"family_history_with_overweight\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"no\",\n          \"yes\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"FAVC\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"no\",\n          \"yes\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"FCVC\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.5332181544582983,\n        \"min\": 1.0,\n        \"max\": 3.0,\n        \"num_unique_values\": 934,\n        \"samples\": [\n          2.444599,\n          2.191429\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"NCP\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.7053745958837867,\n        \"min\": 1.0,\n        \"max\": 4.0,\n        \"num_unique_values\": 689,\n        \"samples\": [\n          1.193589,\n          2.814518\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CAEC\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"Frequently\",\n          \"Always\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"SMOKE\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"yes\",\n          \"no\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CH2O\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.6084670184548745,\n        \"min\": 1.0,\n        \"max\": 3.0,\n        \"num_unique_values\": 1506,\n        \"samples\": [\n          2.495851,\n          2.15157\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"SCC\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"yes\",\n          \"no\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"FAF\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.8383019759696896,\n        \"min\": 0.0,\n        \"max\": 3.0,\n        \"num_unique_values\": 1360,\n        \"samples\": [\n          1.079524,\n          1.456369\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"TUE\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.6021134769922342,\n        \"min\": 0.0,\n        \"max\": 2.0,\n        \"num_unique_values\": 1297,\n        \"samples\": [\n          0.076654,\n          0.586163\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CALC\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"Sometimes\",\n          \"no\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"MTRANS\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"Automobile\",\n          \"Bike\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"NObeyesdad\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 7,\n        \"samples\": [\n          \"Overweight_Level_II\",\n          \"Normal_Weight\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
780
            }
781
          },
782
          "metadata": {},
783
          "execution_count": 9
784
        }
785
      ]
786
    },
787
    {
788
      "cell_type": "markdown",
789
      "source": [
790
        "# **DATA** **PREPROCESSING**"
791
      ],
792
      "metadata": {
793
        "id": "G4Cb4mgPrp3H"
794
      }
795
    },
796
    {
797
      "cell_type": "code",
798
      "source": [
799
        "obesity = obesity.drop('id', axis=1)"
800
      ],
801
      "metadata": {
802
        "id": "aH0zcZzDduHW"
803
      },
804
      "execution_count": 10,
805
      "outputs": []
806
    },
807
    {
808
      "cell_type": "code",
809
      "source": [
810
        "obesity.describe(include='all')"
811
      ],
812
      "metadata": {
813
        "colab": {
814
          "base_uri": "https://localhost:8080/",
815
          "height": 414
816
        },
817
        "id": "0yxsCN3qjpcR",
818
        "outputId": "7cd9383e-0176-41be-e258-9e7d1f19159f"
819
      },
820
      "execution_count": 11,
821
      "outputs": [
822
        {
823
          "output_type": "execute_result",
824
          "data": {
825
            "text/plain": [
826
              "        Gender           Age        Height        Weight  \\\n",
827
              "count    20758  20758.000000  20758.000000  20758.000000   \n",
828
              "unique       2           NaN           NaN           NaN   \n",
829
              "top     Female           NaN           NaN           NaN   \n",
830
              "freq     10422           NaN           NaN           NaN   \n",
831
              "mean       NaN     23.841804      1.700245     87.887768   \n",
832
              "std        NaN      5.688072      0.087312     26.379443   \n",
833
              "min        NaN     14.000000      1.450000     39.000000   \n",
834
              "25%        NaN     20.000000      1.631856     66.000000   \n",
835
              "50%        NaN     22.815416      1.700000     84.064875   \n",
836
              "75%        NaN     26.000000      1.762887    111.600553   \n",
837
              "max        NaN     61.000000      1.975663    165.057269   \n",
838
              "\n",
839
              "       family_history_with_overweight   FAVC          FCVC           NCP  \\\n",
840
              "count                           20758  20758  20758.000000  20758.000000   \n",
841
              "unique                              2      2           NaN           NaN   \n",
842
              "top                               yes    yes           NaN           NaN   \n",
843
              "freq                            17014  18982           NaN           NaN   \n",
844
              "mean                              NaN    NaN      2.445908      2.761332   \n",
845
              "std                               NaN    NaN      0.533218      0.705375   \n",
846
              "min                               NaN    NaN      1.000000      1.000000   \n",
847
              "25%                               NaN    NaN      2.000000      3.000000   \n",
848
              "50%                               NaN    NaN      2.393837      3.000000   \n",
849
              "75%                               NaN    NaN      3.000000      3.000000   \n",
850
              "max                               NaN    NaN      3.000000      4.000000   \n",
851
              "\n",
852
              "             CAEC  SMOKE          CH2O    SCC           FAF           TUE  \\\n",
853
              "count       20758  20758  20758.000000  20758  20758.000000  20758.000000   \n",
854
              "unique          4      2           NaN      2           NaN           NaN   \n",
855
              "top     Sometimes     no           NaN     no           NaN           NaN   \n",
856
              "freq        17529  20513           NaN  20071           NaN           NaN   \n",
857
              "mean          NaN    NaN      2.029418    NaN      0.981747      0.616756   \n",
858
              "std           NaN    NaN      0.608467    NaN      0.838302      0.602113   \n",
859
              "min           NaN    NaN      1.000000    NaN      0.000000      0.000000   \n",
860
              "25%           NaN    NaN      1.792022    NaN      0.008013      0.000000   \n",
861
              "50%           NaN    NaN      2.000000    NaN      1.000000      0.573887   \n",
862
              "75%           NaN    NaN      2.549617    NaN      1.587406      1.000000   \n",
863
              "max           NaN    NaN      3.000000    NaN      3.000000      2.000000   \n",
864
              "\n",
865
              "             CALC                 MTRANS        NObeyesdad  \n",
866
              "count       20758                  20758             20758  \n",
867
              "unique          3                      5                 7  \n",
868
              "top     Sometimes  Public_Transportation  Obesity_Type_III  \n",
869
              "freq        15066                  16687              4046  \n",
870
              "mean          NaN                    NaN               NaN  \n",
871
              "std           NaN                    NaN               NaN  \n",
872
              "min           NaN                    NaN               NaN  \n",
873
              "25%           NaN                    NaN               NaN  \n",
874
              "50%           NaN                    NaN               NaN  \n",
875
              "75%           NaN                    NaN               NaN  \n",
876
              "max           NaN                    NaN               NaN  "
877
            ],
878
            "text/html": [
879
              "\n",
880
              "  <div id=\"df-208eb5bd-0abb-406e-ad14-8659b4b034e4\" class=\"colab-df-container\">\n",
881
              "    <div>\n",
882
              "<style scoped>\n",
883
              "    .dataframe tbody tr th:only-of-type {\n",
884
              "        vertical-align: middle;\n",
885
              "    }\n",
886
              "\n",
887
              "    .dataframe tbody tr th {\n",
888
              "        vertical-align: top;\n",
889
              "    }\n",
890
              "\n",
891
              "    .dataframe thead th {\n",
892
              "        text-align: right;\n",
893
              "    }\n",
894
              "</style>\n",
895
              "<table border=\"1\" class=\"dataframe\">\n",
896
              "  <thead>\n",
897
              "    <tr style=\"text-align: right;\">\n",
898
              "      <th></th>\n",
899
              "      <th>Gender</th>\n",
900
              "      <th>Age</th>\n",
901
              "      <th>Height</th>\n",
902
              "      <th>Weight</th>\n",
903
              "      <th>family_history_with_overweight</th>\n",
904
              "      <th>FAVC</th>\n",
905
              "      <th>FCVC</th>\n",
906
              "      <th>NCP</th>\n",
907
              "      <th>CAEC</th>\n",
908
              "      <th>SMOKE</th>\n",
909
              "      <th>CH2O</th>\n",
910
              "      <th>SCC</th>\n",
911
              "      <th>FAF</th>\n",
912
              "      <th>TUE</th>\n",
913
              "      <th>CALC</th>\n",
914
              "      <th>MTRANS</th>\n",
915
              "      <th>NObeyesdad</th>\n",
916
              "    </tr>\n",
917
              "  </thead>\n",
918
              "  <tbody>\n",
919
              "    <tr>\n",
920
              "      <th>count</th>\n",
921
              "      <td>20758</td>\n",
922
              "      <td>20758.000000</td>\n",
923
              "      <td>20758.000000</td>\n",
924
              "      <td>20758.000000</td>\n",
925
              "      <td>20758</td>\n",
926
              "      <td>20758</td>\n",
927
              "      <td>20758.000000</td>\n",
928
              "      <td>20758.000000</td>\n",
929
              "      <td>20758</td>\n",
930
              "      <td>20758</td>\n",
931
              "      <td>20758.000000</td>\n",
932
              "      <td>20758</td>\n",
933
              "      <td>20758.000000</td>\n",
934
              "      <td>20758.000000</td>\n",
935
              "      <td>20758</td>\n",
936
              "      <td>20758</td>\n",
937
              "      <td>20758</td>\n",
938
              "    </tr>\n",
939
              "    <tr>\n",
940
              "      <th>unique</th>\n",
941
              "      <td>2</td>\n",
942
              "      <td>NaN</td>\n",
943
              "      <td>NaN</td>\n",
944
              "      <td>NaN</td>\n",
945
              "      <td>2</td>\n",
946
              "      <td>2</td>\n",
947
              "      <td>NaN</td>\n",
948
              "      <td>NaN</td>\n",
949
              "      <td>4</td>\n",
950
              "      <td>2</td>\n",
951
              "      <td>NaN</td>\n",
952
              "      <td>2</td>\n",
953
              "      <td>NaN</td>\n",
954
              "      <td>NaN</td>\n",
955
              "      <td>3</td>\n",
956
              "      <td>5</td>\n",
957
              "      <td>7</td>\n",
958
              "    </tr>\n",
959
              "    <tr>\n",
960
              "      <th>top</th>\n",
961
              "      <td>Female</td>\n",
962
              "      <td>NaN</td>\n",
963
              "      <td>NaN</td>\n",
964
              "      <td>NaN</td>\n",
965
              "      <td>yes</td>\n",
966
              "      <td>yes</td>\n",
967
              "      <td>NaN</td>\n",
968
              "      <td>NaN</td>\n",
969
              "      <td>Sometimes</td>\n",
970
              "      <td>no</td>\n",
971
              "      <td>NaN</td>\n",
972
              "      <td>no</td>\n",
973
              "      <td>NaN</td>\n",
974
              "      <td>NaN</td>\n",
975
              "      <td>Sometimes</td>\n",
976
              "      <td>Public_Transportation</td>\n",
977
              "      <td>Obesity_Type_III</td>\n",
978
              "    </tr>\n",
979
              "    <tr>\n",
980
              "      <th>freq</th>\n",
981
              "      <td>10422</td>\n",
982
              "      <td>NaN</td>\n",
983
              "      <td>NaN</td>\n",
984
              "      <td>NaN</td>\n",
985
              "      <td>17014</td>\n",
986
              "      <td>18982</td>\n",
987
              "      <td>NaN</td>\n",
988
              "      <td>NaN</td>\n",
989
              "      <td>17529</td>\n",
990
              "      <td>20513</td>\n",
991
              "      <td>NaN</td>\n",
992
              "      <td>20071</td>\n",
993
              "      <td>NaN</td>\n",
994
              "      <td>NaN</td>\n",
995
              "      <td>15066</td>\n",
996
              "      <td>16687</td>\n",
997
              "      <td>4046</td>\n",
998
              "    </tr>\n",
999
              "    <tr>\n",
1000
              "      <th>mean</th>\n",
1001
              "      <td>NaN</td>\n",
1002
              "      <td>23.841804</td>\n",
1003
              "      <td>1.700245</td>\n",
1004
              "      <td>87.887768</td>\n",
1005
              "      <td>NaN</td>\n",
1006
              "      <td>NaN</td>\n",
1007
              "      <td>2.445908</td>\n",
1008
              "      <td>2.761332</td>\n",
1009
              "      <td>NaN</td>\n",
1010
              "      <td>NaN</td>\n",
1011
              "      <td>2.029418</td>\n",
1012
              "      <td>NaN</td>\n",
1013
              "      <td>0.981747</td>\n",
1014
              "      <td>0.616756</td>\n",
1015
              "      <td>NaN</td>\n",
1016
              "      <td>NaN</td>\n",
1017
              "      <td>NaN</td>\n",
1018
              "    </tr>\n",
1019
              "    <tr>\n",
1020
              "      <th>std</th>\n",
1021
              "      <td>NaN</td>\n",
1022
              "      <td>5.688072</td>\n",
1023
              "      <td>0.087312</td>\n",
1024
              "      <td>26.379443</td>\n",
1025
              "      <td>NaN</td>\n",
1026
              "      <td>NaN</td>\n",
1027
              "      <td>0.533218</td>\n",
1028
              "      <td>0.705375</td>\n",
1029
              "      <td>NaN</td>\n",
1030
              "      <td>NaN</td>\n",
1031
              "      <td>0.608467</td>\n",
1032
              "      <td>NaN</td>\n",
1033
              "      <td>0.838302</td>\n",
1034
              "      <td>0.602113</td>\n",
1035
              "      <td>NaN</td>\n",
1036
              "      <td>NaN</td>\n",
1037
              "      <td>NaN</td>\n",
1038
              "    </tr>\n",
1039
              "    <tr>\n",
1040
              "      <th>min</th>\n",
1041
              "      <td>NaN</td>\n",
1042
              "      <td>14.000000</td>\n",
1043
              "      <td>1.450000</td>\n",
1044
              "      <td>39.000000</td>\n",
1045
              "      <td>NaN</td>\n",
1046
              "      <td>NaN</td>\n",
1047
              "      <td>1.000000</td>\n",
1048
              "      <td>1.000000</td>\n",
1049
              "      <td>NaN</td>\n",
1050
              "      <td>NaN</td>\n",
1051
              "      <td>1.000000</td>\n",
1052
              "      <td>NaN</td>\n",
1053
              "      <td>0.000000</td>\n",
1054
              "      <td>0.000000</td>\n",
1055
              "      <td>NaN</td>\n",
1056
              "      <td>NaN</td>\n",
1057
              "      <td>NaN</td>\n",
1058
              "    </tr>\n",
1059
              "    <tr>\n",
1060
              "      <th>25%</th>\n",
1061
              "      <td>NaN</td>\n",
1062
              "      <td>20.000000</td>\n",
1063
              "      <td>1.631856</td>\n",
1064
              "      <td>66.000000</td>\n",
1065
              "      <td>NaN</td>\n",
1066
              "      <td>NaN</td>\n",
1067
              "      <td>2.000000</td>\n",
1068
              "      <td>3.000000</td>\n",
1069
              "      <td>NaN</td>\n",
1070
              "      <td>NaN</td>\n",
1071
              "      <td>1.792022</td>\n",
1072
              "      <td>NaN</td>\n",
1073
              "      <td>0.008013</td>\n",
1074
              "      <td>0.000000</td>\n",
1075
              "      <td>NaN</td>\n",
1076
              "      <td>NaN</td>\n",
1077
              "      <td>NaN</td>\n",
1078
              "    </tr>\n",
1079
              "    <tr>\n",
1080
              "      <th>50%</th>\n",
1081
              "      <td>NaN</td>\n",
1082
              "      <td>22.815416</td>\n",
1083
              "      <td>1.700000</td>\n",
1084
              "      <td>84.064875</td>\n",
1085
              "      <td>NaN</td>\n",
1086
              "      <td>NaN</td>\n",
1087
              "      <td>2.393837</td>\n",
1088
              "      <td>3.000000</td>\n",
1089
              "      <td>NaN</td>\n",
1090
              "      <td>NaN</td>\n",
1091
              "      <td>2.000000</td>\n",
1092
              "      <td>NaN</td>\n",
1093
              "      <td>1.000000</td>\n",
1094
              "      <td>0.573887</td>\n",
1095
              "      <td>NaN</td>\n",
1096
              "      <td>NaN</td>\n",
1097
              "      <td>NaN</td>\n",
1098
              "    </tr>\n",
1099
              "    <tr>\n",
1100
              "      <th>75%</th>\n",
1101
              "      <td>NaN</td>\n",
1102
              "      <td>26.000000</td>\n",
1103
              "      <td>1.762887</td>\n",
1104
              "      <td>111.600553</td>\n",
1105
              "      <td>NaN</td>\n",
1106
              "      <td>NaN</td>\n",
1107
              "      <td>3.000000</td>\n",
1108
              "      <td>3.000000</td>\n",
1109
              "      <td>NaN</td>\n",
1110
              "      <td>NaN</td>\n",
1111
              "      <td>2.549617</td>\n",
1112
              "      <td>NaN</td>\n",
1113
              "      <td>1.587406</td>\n",
1114
              "      <td>1.000000</td>\n",
1115
              "      <td>NaN</td>\n",
1116
              "      <td>NaN</td>\n",
1117
              "      <td>NaN</td>\n",
1118
              "    </tr>\n",
1119
              "    <tr>\n",
1120
              "      <th>max</th>\n",
1121
              "      <td>NaN</td>\n",
1122
              "      <td>61.000000</td>\n",
1123
              "      <td>1.975663</td>\n",
1124
              "      <td>165.057269</td>\n",
1125
              "      <td>NaN</td>\n",
1126
              "      <td>NaN</td>\n",
1127
              "      <td>3.000000</td>\n",
1128
              "      <td>4.000000</td>\n",
1129
              "      <td>NaN</td>\n",
1130
              "      <td>NaN</td>\n",
1131
              "      <td>3.000000</td>\n",
1132
              "      <td>NaN</td>\n",
1133
              "      <td>3.000000</td>\n",
1134
              "      <td>2.000000</td>\n",
1135
              "      <td>NaN</td>\n",
1136
              "      <td>NaN</td>\n",
1137
              "      <td>NaN</td>\n",
1138
              "    </tr>\n",
1139
              "  </tbody>\n",
1140
              "</table>\n",
1141
              "</div>\n",
1142
              "    <div class=\"colab-df-buttons\">\n",
1143
              "\n",
1144
              "  <div class=\"colab-df-container\">\n",
1145
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-208eb5bd-0abb-406e-ad14-8659b4b034e4')\"\n",
1146
              "            title=\"Convert this dataframe to an interactive table.\"\n",
1147
              "            style=\"display:none;\">\n",
1148
              "\n",
1149
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
1150
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
1151
              "  </svg>\n",
1152
              "    </button>\n",
1153
              "\n",
1154
              "  <style>\n",
1155
              "    .colab-df-container {\n",
1156
              "      display:flex;\n",
1157
              "      gap: 12px;\n",
1158
              "    }\n",
1159
              "\n",
1160
              "    .colab-df-convert {\n",
1161
              "      background-color: #E8F0FE;\n",
1162
              "      border: none;\n",
1163
              "      border-radius: 50%;\n",
1164
              "      cursor: pointer;\n",
1165
              "      display: none;\n",
1166
              "      fill: #1967D2;\n",
1167
              "      height: 32px;\n",
1168
              "      padding: 0 0 0 0;\n",
1169
              "      width: 32px;\n",
1170
              "    }\n",
1171
              "\n",
1172
              "    .colab-df-convert:hover {\n",
1173
              "      background-color: #E2EBFA;\n",
1174
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
1175
              "      fill: #174EA6;\n",
1176
              "    }\n",
1177
              "\n",
1178
              "    .colab-df-buttons div {\n",
1179
              "      margin-bottom: 4px;\n",
1180
              "    }\n",
1181
              "\n",
1182
              "    [theme=dark] .colab-df-convert {\n",
1183
              "      background-color: #3B4455;\n",
1184
              "      fill: #D2E3FC;\n",
1185
              "    }\n",
1186
              "\n",
1187
              "    [theme=dark] .colab-df-convert:hover {\n",
1188
              "      background-color: #434B5C;\n",
1189
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
1190
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
1191
              "      fill: #FFFFFF;\n",
1192
              "    }\n",
1193
              "  </style>\n",
1194
              "\n",
1195
              "    <script>\n",
1196
              "      const buttonEl =\n",
1197
              "        document.querySelector('#df-208eb5bd-0abb-406e-ad14-8659b4b034e4 button.colab-df-convert');\n",
1198
              "      buttonEl.style.display =\n",
1199
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
1200
              "\n",
1201
              "      async function convertToInteractive(key) {\n",
1202
              "        const element = document.querySelector('#df-208eb5bd-0abb-406e-ad14-8659b4b034e4');\n",
1203
              "        const dataTable =\n",
1204
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
1205
              "                                                    [key], {});\n",
1206
              "        if (!dataTable) return;\n",
1207
              "\n",
1208
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
1209
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
1210
              "          + ' to learn more about interactive tables.';\n",
1211
              "        element.innerHTML = '';\n",
1212
              "        dataTable['output_type'] = 'display_data';\n",
1213
              "        await google.colab.output.renderOutput(dataTable, element);\n",
1214
              "        const docLink = document.createElement('div');\n",
1215
              "        docLink.innerHTML = docLinkHtml;\n",
1216
              "        element.appendChild(docLink);\n",
1217
              "      }\n",
1218
              "    </script>\n",
1219
              "  </div>\n",
1220
              "\n",
1221
              "\n",
1222
              "<div id=\"df-08412c35-8bcd-46c8-9a14-943531227738\">\n",
1223
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-08412c35-8bcd-46c8-9a14-943531227738')\"\n",
1224
              "            title=\"Suggest charts\"\n",
1225
              "            style=\"display:none;\">\n",
1226
              "\n",
1227
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
1228
              "     width=\"24px\">\n",
1229
              "    <g>\n",
1230
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
1231
              "    </g>\n",
1232
              "</svg>\n",
1233
              "  </button>\n",
1234
              "\n",
1235
              "<style>\n",
1236
              "  .colab-df-quickchart {\n",
1237
              "      --bg-color: #E8F0FE;\n",
1238
              "      --fill-color: #1967D2;\n",
1239
              "      --hover-bg-color: #E2EBFA;\n",
1240
              "      --hover-fill-color: #174EA6;\n",
1241
              "      --disabled-fill-color: #AAA;\n",
1242
              "      --disabled-bg-color: #DDD;\n",
1243
              "  }\n",
1244
              "\n",
1245
              "  [theme=dark] .colab-df-quickchart {\n",
1246
              "      --bg-color: #3B4455;\n",
1247
              "      --fill-color: #D2E3FC;\n",
1248
              "      --hover-bg-color: #434B5C;\n",
1249
              "      --hover-fill-color: #FFFFFF;\n",
1250
              "      --disabled-bg-color: #3B4455;\n",
1251
              "      --disabled-fill-color: #666;\n",
1252
              "  }\n",
1253
              "\n",
1254
              "  .colab-df-quickchart {\n",
1255
              "    background-color: var(--bg-color);\n",
1256
              "    border: none;\n",
1257
              "    border-radius: 50%;\n",
1258
              "    cursor: pointer;\n",
1259
              "    display: none;\n",
1260
              "    fill: var(--fill-color);\n",
1261
              "    height: 32px;\n",
1262
              "    padding: 0;\n",
1263
              "    width: 32px;\n",
1264
              "  }\n",
1265
              "\n",
1266
              "  .colab-df-quickchart:hover {\n",
1267
              "    background-color: var(--hover-bg-color);\n",
1268
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
1269
              "    fill: var(--button-hover-fill-color);\n",
1270
              "  }\n",
1271
              "\n",
1272
              "  .colab-df-quickchart-complete:disabled,\n",
1273
              "  .colab-df-quickchart-complete:disabled:hover {\n",
1274
              "    background-color: var(--disabled-bg-color);\n",
1275
              "    fill: var(--disabled-fill-color);\n",
1276
              "    box-shadow: none;\n",
1277
              "  }\n",
1278
              "\n",
1279
              "  .colab-df-spinner {\n",
1280
              "    border: 2px solid var(--fill-color);\n",
1281
              "    border-color: transparent;\n",
1282
              "    border-bottom-color: var(--fill-color);\n",
1283
              "    animation:\n",
1284
              "      spin 1s steps(1) infinite;\n",
1285
              "  }\n",
1286
              "\n",
1287
              "  @keyframes spin {\n",
1288
              "    0% {\n",
1289
              "      border-color: transparent;\n",
1290
              "      border-bottom-color: var(--fill-color);\n",
1291
              "      border-left-color: var(--fill-color);\n",
1292
              "    }\n",
1293
              "    20% {\n",
1294
              "      border-color: transparent;\n",
1295
              "      border-left-color: var(--fill-color);\n",
1296
              "      border-top-color: var(--fill-color);\n",
1297
              "    }\n",
1298
              "    30% {\n",
1299
              "      border-color: transparent;\n",
1300
              "      border-left-color: var(--fill-color);\n",
1301
              "      border-top-color: var(--fill-color);\n",
1302
              "      border-right-color: var(--fill-color);\n",
1303
              "    }\n",
1304
              "    40% {\n",
1305
              "      border-color: transparent;\n",
1306
              "      border-right-color: var(--fill-color);\n",
1307
              "      border-top-color: var(--fill-color);\n",
1308
              "    }\n",
1309
              "    60% {\n",
1310
              "      border-color: transparent;\n",
1311
              "      border-right-color: var(--fill-color);\n",
1312
              "    }\n",
1313
              "    80% {\n",
1314
              "      border-color: transparent;\n",
1315
              "      border-right-color: var(--fill-color);\n",
1316
              "      border-bottom-color: var(--fill-color);\n",
1317
              "    }\n",
1318
              "    90% {\n",
1319
              "      border-color: transparent;\n",
1320
              "      border-bottom-color: var(--fill-color);\n",
1321
              "    }\n",
1322
              "  }\n",
1323
              "</style>\n",
1324
              "\n",
1325
              "  <script>\n",
1326
              "    async function quickchart(key) {\n",
1327
              "      const quickchartButtonEl =\n",
1328
              "        document.querySelector('#' + key + ' button');\n",
1329
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
1330
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
1331
              "      try {\n",
1332
              "        const charts = await google.colab.kernel.invokeFunction(\n",
1333
              "            'suggestCharts', [key], {});\n",
1334
              "      } catch (error) {\n",
1335
              "        console.error('Error during call to suggestCharts:', error);\n",
1336
              "      }\n",
1337
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
1338
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
1339
              "    }\n",
1340
              "    (() => {\n",
1341
              "      let quickchartButtonEl =\n",
1342
              "        document.querySelector('#df-08412c35-8bcd-46c8-9a14-943531227738 button');\n",
1343
              "      quickchartButtonEl.style.display =\n",
1344
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
1345
              "    })();\n",
1346
              "  </script>\n",
1347
              "</div>\n",
1348
              "\n",
1349
              "    </div>\n",
1350
              "  </div>\n"
1351
            ],
1352
            "application/vnd.google.colaboratory.intrinsic+json": {
1353
              "type": "dataframe",
1354
              "summary": "{\n  \"name\": \"obesity\",\n  \"rows\": 11,\n  \"fields\": [\n    {\n      \"column\": \"Gender\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          2,\n          \"10422\",\n          \"20758\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Age\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 7330.323773402961,\n        \"min\": 5.688071958787075,\n        \"max\": 20758.0,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          23.841804418681953,\n          22.815416,\n          20758.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Height\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 7338.540674412048,\n        \"min\": 0.08731190569718149,\n        \"max\": 20758.0,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          1.7002449351575297,\n          1.7,\n          20758.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Weight\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 7309.894468231261,\n        \"min\": 26.379443076406236,\n        \"max\": 20758.0,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          87.88776840264958,\n          84.064875,\n          20758.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"family_history_with_overweight\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          2,\n          \"17014\",\n          \"20758\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"FAVC\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          2,\n          \"18982\",\n          \"20758\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"FCVC\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 7338.335391044142,\n        \"min\": 0.5332181544582983,\n        \"max\": 20758.0,\n        \"num_unique_values\": 7,\n        \"samples\": [\n          20758.0,\n          2.44590839271847,\n          2.393837\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"NCP\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 7338.17916312941,\n        \"min\": 0.7053745958837867,\n        \"max\": 20758.0,\n        \"num_unique_values\": 6,\n        \"samples\": [\n          20758.0,\n          2.7613323068214664,\n          4.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CAEC\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          4,\n          \"17529\",\n          \"20758\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"SMOKE\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          2,\n          \"20513\",\n          \"20758\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CH2O\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 7338.4057571985695,\n        \"min\": 0.6084670184548745,\n        \"max\": 20758.0,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          2.029418243665093,\n          2.0,\n          20758.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"SCC\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          2,\n          \"20071\",\n          \"20758\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"FAF\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 7338.6868058850705,\n        \"min\": 0.0,\n        \"max\": 20758.0,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          0.9817465550756335,\n          1.0,\n          20758.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"TUE\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 7338.819238328878,\n        \"min\": 0.0,\n        \"max\": 20758.0,\n        \"num_unique_values\": 7,\n        \"samples\": [\n          20758.0,\n          0.6167562236968879,\n          1.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CALC\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          3,\n          \"15066\",\n          \"20758\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"MTRANS\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          5,\n          \"16687\",\n          \"20758\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"NObeyesdad\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          7,\n          \"4046\",\n          \"20758\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
1355
            }
1356
          },
1357
          "metadata": {},
1358
          "execution_count": 11
1359
        }
1360
      ]
1361
    },
1362
    {
1363
      "cell_type": "code",
1364
      "source": [
1365
        "obesity.isnull().sum()"
1366
      ],
1367
      "metadata": {
1368
        "colab": {
1369
          "base_uri": "https://localhost:8080/"
1370
        },
1371
        "id": "V6CJxZQmj9M4",
1372
        "outputId": "d484e398-e3c3-4205-852c-2e925ec14e6c"
1373
      },
1374
      "execution_count": 12,
1375
      "outputs": [
1376
        {
1377
          "output_type": "execute_result",
1378
          "data": {
1379
            "text/plain": [
1380
              "Gender                            0\n",
1381
              "Age                               0\n",
1382
              "Height                            0\n",
1383
              "Weight                            0\n",
1384
              "family_history_with_overweight    0\n",
1385
              "FAVC                              0\n",
1386
              "FCVC                              0\n",
1387
              "NCP                               0\n",
1388
              "CAEC                              0\n",
1389
              "SMOKE                             0\n",
1390
              "CH2O                              0\n",
1391
              "SCC                               0\n",
1392
              "FAF                               0\n",
1393
              "TUE                               0\n",
1394
              "CALC                              0\n",
1395
              "MTRANS                            0\n",
1396
              "NObeyesdad                        0\n",
1397
              "dtype: int64"
1398
            ]
1399
          },
1400
          "metadata": {},
1401
          "execution_count": 12
1402
        }
1403
      ]
1404
    },
1405
    {
1406
      "cell_type": "code",
1407
      "source": [
1408
        "obesity = obesity.replace({'no': 0, 'yes': 1})"
1409
      ],
1410
      "metadata": {
1411
        "id": "0J2d8SegwcRM"
1412
      },
1413
      "execution_count": 13,
1414
      "outputs": []
1415
    },
1416
    {
1417
      "cell_type": "code",
1418
      "source": [
1419
        "obesity = pd.get_dummies(obesity, columns=['CALC', 'MTRANS', 'CAEC'], drop_first=True, dtype=int)"
1420
      ],
1421
      "metadata": {
1422
        "id": "qOeru2jS1gDX"
1423
      },
1424
      "execution_count": 14,
1425
      "outputs": []
1426
    },
1427
    {
1428
      "cell_type": "code",
1429
      "source": [
1430
        "from sklearn.preprocessing import LabelEncoder"
1431
      ],
1432
      "metadata": {
1433
        "id": "jpHbeEM62rMX"
1434
      },
1435
      "execution_count": 15,
1436
      "outputs": []
1437
    },
1438
    {
1439
      "cell_type": "code",
1440
      "source": [
1441
        "le = LabelEncoder()\n",
1442
        "obesity['NObeyesdad'] = le.fit_transform(obesity['NObeyesdad'])"
1443
      ],
1444
      "metadata": {
1445
        "id": "V50FmFqV3ddb"
1446
      },
1447
      "execution_count": 16,
1448
      "outputs": []
1449
    },
1450
    {
1451
      "cell_type": "code",
1452
      "source": [
1453
        "obesity = obesity.replace({'Female': 0, 'Male': 1})"
1454
      ],
1455
      "metadata": {
1456
        "id": "fLYlMrit7TIw"
1457
      },
1458
      "execution_count": 17,
1459
      "outputs": []
1460
    },
1461
    {
1462
      "cell_type": "code",
1463
      "source": [
1464
        "obesity.head()"
1465
      ],
1466
      "metadata": {
1467
        "colab": {
1468
          "base_uri": "https://localhost:8080/",
1469
          "height": 255
1470
        },
1471
        "id": "CYNIFtQOf2Dp",
1472
        "outputId": "1c75515f-0b64-48d0-d6a6-9d715cc56a37"
1473
      },
1474
      "execution_count": 18,
1475
      "outputs": [
1476
        {
1477
          "output_type": "execute_result",
1478
          "data": {
1479
            "text/plain": [
1480
              "   Gender        Age    Height      Weight  family_history_with_overweight  \\\n",
1481
              "0       1  24.443011  1.699998   81.669950                               1   \n",
1482
              "1       0  18.000000  1.560000   57.000000                               1   \n",
1483
              "2       0  18.000000  1.711460   50.165754                               1   \n",
1484
              "3       0  20.952737  1.710730  131.274851                               1   \n",
1485
              "4       1  31.641081  1.914186   93.798055                               1   \n",
1486
              "\n",
1487
              "   FAVC      FCVC       NCP  SMOKE      CH2O  ...  NObeyesdad  \\\n",
1488
              "0     1  2.000000  2.983297      0  2.763573  ...           6   \n",
1489
              "1     1  2.000000  3.000000      0  2.000000  ...           1   \n",
1490
              "2     1  1.880534  1.411685      0  1.910378  ...           0   \n",
1491
              "3     1  3.000000  3.000000      0  1.674061  ...           4   \n",
1492
              "4     1  2.679664  1.971472      0  1.979848  ...           6   \n",
1493
              "\n",
1494
              "   CALC_Frequently  CALC_Sometimes  MTRANS_Bike  MTRANS_Motorbike  \\\n",
1495
              "0                0               1            0                 0   \n",
1496
              "1                0               0            0                 0   \n",
1497
              "2                0               0            0                 0   \n",
1498
              "3                0               1            0                 0   \n",
1499
              "4                0               1            0                 0   \n",
1500
              "\n",
1501
              "   MTRANS_Public_Transportation  MTRANS_Walking  CAEC_Always  CAEC_Frequently  \\\n",
1502
              "0                             1               0            0                0   \n",
1503
              "1                             0               0            0                1   \n",
1504
              "2                             1               0            0                0   \n",
1505
              "3                             1               0            0                0   \n",
1506
              "4                             1               0            0                0   \n",
1507
              "\n",
1508
              "   CAEC_Sometimes  \n",
1509
              "0               1  \n",
1510
              "1               0  \n",
1511
              "2               1  \n",
1512
              "3               1  \n",
1513
              "4               1  \n",
1514
              "\n",
1515
              "[5 rows x 23 columns]"
1516
            ],
1517
            "text/html": [
1518
              "\n",
1519
              "  <div id=\"df-165f6e7b-7305-4b08-bb13-b6845d849474\" class=\"colab-df-container\">\n",
1520
              "    <div>\n",
1521
              "<style scoped>\n",
1522
              "    .dataframe tbody tr th:only-of-type {\n",
1523
              "        vertical-align: middle;\n",
1524
              "    }\n",
1525
              "\n",
1526
              "    .dataframe tbody tr th {\n",
1527
              "        vertical-align: top;\n",
1528
              "    }\n",
1529
              "\n",
1530
              "    .dataframe thead th {\n",
1531
              "        text-align: right;\n",
1532
              "    }\n",
1533
              "</style>\n",
1534
              "<table border=\"1\" class=\"dataframe\">\n",
1535
              "  <thead>\n",
1536
              "    <tr style=\"text-align: right;\">\n",
1537
              "      <th></th>\n",
1538
              "      <th>Gender</th>\n",
1539
              "      <th>Age</th>\n",
1540
              "      <th>Height</th>\n",
1541
              "      <th>Weight</th>\n",
1542
              "      <th>family_history_with_overweight</th>\n",
1543
              "      <th>FAVC</th>\n",
1544
              "      <th>FCVC</th>\n",
1545
              "      <th>NCP</th>\n",
1546
              "      <th>SMOKE</th>\n",
1547
              "      <th>CH2O</th>\n",
1548
              "      <th>...</th>\n",
1549
              "      <th>NObeyesdad</th>\n",
1550
              "      <th>CALC_Frequently</th>\n",
1551
              "      <th>CALC_Sometimes</th>\n",
1552
              "      <th>MTRANS_Bike</th>\n",
1553
              "      <th>MTRANS_Motorbike</th>\n",
1554
              "      <th>MTRANS_Public_Transportation</th>\n",
1555
              "      <th>MTRANS_Walking</th>\n",
1556
              "      <th>CAEC_Always</th>\n",
1557
              "      <th>CAEC_Frequently</th>\n",
1558
              "      <th>CAEC_Sometimes</th>\n",
1559
              "    </tr>\n",
1560
              "  </thead>\n",
1561
              "  <tbody>\n",
1562
              "    <tr>\n",
1563
              "      <th>0</th>\n",
1564
              "      <td>1</td>\n",
1565
              "      <td>24.443011</td>\n",
1566
              "      <td>1.699998</td>\n",
1567
              "      <td>81.669950</td>\n",
1568
              "      <td>1</td>\n",
1569
              "      <td>1</td>\n",
1570
              "      <td>2.000000</td>\n",
1571
              "      <td>2.983297</td>\n",
1572
              "      <td>0</td>\n",
1573
              "      <td>2.763573</td>\n",
1574
              "      <td>...</td>\n",
1575
              "      <td>6</td>\n",
1576
              "      <td>0</td>\n",
1577
              "      <td>1</td>\n",
1578
              "      <td>0</td>\n",
1579
              "      <td>0</td>\n",
1580
              "      <td>1</td>\n",
1581
              "      <td>0</td>\n",
1582
              "      <td>0</td>\n",
1583
              "      <td>0</td>\n",
1584
              "      <td>1</td>\n",
1585
              "    </tr>\n",
1586
              "    <tr>\n",
1587
              "      <th>1</th>\n",
1588
              "      <td>0</td>\n",
1589
              "      <td>18.000000</td>\n",
1590
              "      <td>1.560000</td>\n",
1591
              "      <td>57.000000</td>\n",
1592
              "      <td>1</td>\n",
1593
              "      <td>1</td>\n",
1594
              "      <td>2.000000</td>\n",
1595
              "      <td>3.000000</td>\n",
1596
              "      <td>0</td>\n",
1597
              "      <td>2.000000</td>\n",
1598
              "      <td>...</td>\n",
1599
              "      <td>1</td>\n",
1600
              "      <td>0</td>\n",
1601
              "      <td>0</td>\n",
1602
              "      <td>0</td>\n",
1603
              "      <td>0</td>\n",
1604
              "      <td>0</td>\n",
1605
              "      <td>0</td>\n",
1606
              "      <td>0</td>\n",
1607
              "      <td>1</td>\n",
1608
              "      <td>0</td>\n",
1609
              "    </tr>\n",
1610
              "    <tr>\n",
1611
              "      <th>2</th>\n",
1612
              "      <td>0</td>\n",
1613
              "      <td>18.000000</td>\n",
1614
              "      <td>1.711460</td>\n",
1615
              "      <td>50.165754</td>\n",
1616
              "      <td>1</td>\n",
1617
              "      <td>1</td>\n",
1618
              "      <td>1.880534</td>\n",
1619
              "      <td>1.411685</td>\n",
1620
              "      <td>0</td>\n",
1621
              "      <td>1.910378</td>\n",
1622
              "      <td>...</td>\n",
1623
              "      <td>0</td>\n",
1624
              "      <td>0</td>\n",
1625
              "      <td>0</td>\n",
1626
              "      <td>0</td>\n",
1627
              "      <td>0</td>\n",
1628
              "      <td>1</td>\n",
1629
              "      <td>0</td>\n",
1630
              "      <td>0</td>\n",
1631
              "      <td>0</td>\n",
1632
              "      <td>1</td>\n",
1633
              "    </tr>\n",
1634
              "    <tr>\n",
1635
              "      <th>3</th>\n",
1636
              "      <td>0</td>\n",
1637
              "      <td>20.952737</td>\n",
1638
              "      <td>1.710730</td>\n",
1639
              "      <td>131.274851</td>\n",
1640
              "      <td>1</td>\n",
1641
              "      <td>1</td>\n",
1642
              "      <td>3.000000</td>\n",
1643
              "      <td>3.000000</td>\n",
1644
              "      <td>0</td>\n",
1645
              "      <td>1.674061</td>\n",
1646
              "      <td>...</td>\n",
1647
              "      <td>4</td>\n",
1648
              "      <td>0</td>\n",
1649
              "      <td>1</td>\n",
1650
              "      <td>0</td>\n",
1651
              "      <td>0</td>\n",
1652
              "      <td>1</td>\n",
1653
              "      <td>0</td>\n",
1654
              "      <td>0</td>\n",
1655
              "      <td>0</td>\n",
1656
              "      <td>1</td>\n",
1657
              "    </tr>\n",
1658
              "    <tr>\n",
1659
              "      <th>4</th>\n",
1660
              "      <td>1</td>\n",
1661
              "      <td>31.641081</td>\n",
1662
              "      <td>1.914186</td>\n",
1663
              "      <td>93.798055</td>\n",
1664
              "      <td>1</td>\n",
1665
              "      <td>1</td>\n",
1666
              "      <td>2.679664</td>\n",
1667
              "      <td>1.971472</td>\n",
1668
              "      <td>0</td>\n",
1669
              "      <td>1.979848</td>\n",
1670
              "      <td>...</td>\n",
1671
              "      <td>6</td>\n",
1672
              "      <td>0</td>\n",
1673
              "      <td>1</td>\n",
1674
              "      <td>0</td>\n",
1675
              "      <td>0</td>\n",
1676
              "      <td>1</td>\n",
1677
              "      <td>0</td>\n",
1678
              "      <td>0</td>\n",
1679
              "      <td>0</td>\n",
1680
              "      <td>1</td>\n",
1681
              "    </tr>\n",
1682
              "  </tbody>\n",
1683
              "</table>\n",
1684
              "<p>5 rows × 23 columns</p>\n",
1685
              "</div>\n",
1686
              "    <div class=\"colab-df-buttons\">\n",
1687
              "\n",
1688
              "  <div class=\"colab-df-container\">\n",
1689
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-165f6e7b-7305-4b08-bb13-b6845d849474')\"\n",
1690
              "            title=\"Convert this dataframe to an interactive table.\"\n",
1691
              "            style=\"display:none;\">\n",
1692
              "\n",
1693
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
1694
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
1695
              "  </svg>\n",
1696
              "    </button>\n",
1697
              "\n",
1698
              "  <style>\n",
1699
              "    .colab-df-container {\n",
1700
              "      display:flex;\n",
1701
              "      gap: 12px;\n",
1702
              "    }\n",
1703
              "\n",
1704
              "    .colab-df-convert {\n",
1705
              "      background-color: #E8F0FE;\n",
1706
              "      border: none;\n",
1707
              "      border-radius: 50%;\n",
1708
              "      cursor: pointer;\n",
1709
              "      display: none;\n",
1710
              "      fill: #1967D2;\n",
1711
              "      height: 32px;\n",
1712
              "      padding: 0 0 0 0;\n",
1713
              "      width: 32px;\n",
1714
              "    }\n",
1715
              "\n",
1716
              "    .colab-df-convert:hover {\n",
1717
              "      background-color: #E2EBFA;\n",
1718
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
1719
              "      fill: #174EA6;\n",
1720
              "    }\n",
1721
              "\n",
1722
              "    .colab-df-buttons div {\n",
1723
              "      margin-bottom: 4px;\n",
1724
              "    }\n",
1725
              "\n",
1726
              "    [theme=dark] .colab-df-convert {\n",
1727
              "      background-color: #3B4455;\n",
1728
              "      fill: #D2E3FC;\n",
1729
              "    }\n",
1730
              "\n",
1731
              "    [theme=dark] .colab-df-convert:hover {\n",
1732
              "      background-color: #434B5C;\n",
1733
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
1734
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
1735
              "      fill: #FFFFFF;\n",
1736
              "    }\n",
1737
              "  </style>\n",
1738
              "\n",
1739
              "    <script>\n",
1740
              "      const buttonEl =\n",
1741
              "        document.querySelector('#df-165f6e7b-7305-4b08-bb13-b6845d849474 button.colab-df-convert');\n",
1742
              "      buttonEl.style.display =\n",
1743
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
1744
              "\n",
1745
              "      async function convertToInteractive(key) {\n",
1746
              "        const element = document.querySelector('#df-165f6e7b-7305-4b08-bb13-b6845d849474');\n",
1747
              "        const dataTable =\n",
1748
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
1749
              "                                                    [key], {});\n",
1750
              "        if (!dataTable) return;\n",
1751
              "\n",
1752
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
1753
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
1754
              "          + ' to learn more about interactive tables.';\n",
1755
              "        element.innerHTML = '';\n",
1756
              "        dataTable['output_type'] = 'display_data';\n",
1757
              "        await google.colab.output.renderOutput(dataTable, element);\n",
1758
              "        const docLink = document.createElement('div');\n",
1759
              "        docLink.innerHTML = docLinkHtml;\n",
1760
              "        element.appendChild(docLink);\n",
1761
              "      }\n",
1762
              "    </script>\n",
1763
              "  </div>\n",
1764
              "\n",
1765
              "\n",
1766
              "<div id=\"df-95f9d3fd-9a90-47cf-a507-bc831027082f\">\n",
1767
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-95f9d3fd-9a90-47cf-a507-bc831027082f')\"\n",
1768
              "            title=\"Suggest charts\"\n",
1769
              "            style=\"display:none;\">\n",
1770
              "\n",
1771
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
1772
              "     width=\"24px\">\n",
1773
              "    <g>\n",
1774
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
1775
              "    </g>\n",
1776
              "</svg>\n",
1777
              "  </button>\n",
1778
              "\n",
1779
              "<style>\n",
1780
              "  .colab-df-quickchart {\n",
1781
              "      --bg-color: #E8F0FE;\n",
1782
              "      --fill-color: #1967D2;\n",
1783
              "      --hover-bg-color: #E2EBFA;\n",
1784
              "      --hover-fill-color: #174EA6;\n",
1785
              "      --disabled-fill-color: #AAA;\n",
1786
              "      --disabled-bg-color: #DDD;\n",
1787
              "  }\n",
1788
              "\n",
1789
              "  [theme=dark] .colab-df-quickchart {\n",
1790
              "      --bg-color: #3B4455;\n",
1791
              "      --fill-color: #D2E3FC;\n",
1792
              "      --hover-bg-color: #434B5C;\n",
1793
              "      --hover-fill-color: #FFFFFF;\n",
1794
              "      --disabled-bg-color: #3B4455;\n",
1795
              "      --disabled-fill-color: #666;\n",
1796
              "  }\n",
1797
              "\n",
1798
              "  .colab-df-quickchart {\n",
1799
              "    background-color: var(--bg-color);\n",
1800
              "    border: none;\n",
1801
              "    border-radius: 50%;\n",
1802
              "    cursor: pointer;\n",
1803
              "    display: none;\n",
1804
              "    fill: var(--fill-color);\n",
1805
              "    height: 32px;\n",
1806
              "    padding: 0;\n",
1807
              "    width: 32px;\n",
1808
              "  }\n",
1809
              "\n",
1810
              "  .colab-df-quickchart:hover {\n",
1811
              "    background-color: var(--hover-bg-color);\n",
1812
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
1813
              "    fill: var(--button-hover-fill-color);\n",
1814
              "  }\n",
1815
              "\n",
1816
              "  .colab-df-quickchart-complete:disabled,\n",
1817
              "  .colab-df-quickchart-complete:disabled:hover {\n",
1818
              "    background-color: var(--disabled-bg-color);\n",
1819
              "    fill: var(--disabled-fill-color);\n",
1820
              "    box-shadow: none;\n",
1821
              "  }\n",
1822
              "\n",
1823
              "  .colab-df-spinner {\n",
1824
              "    border: 2px solid var(--fill-color);\n",
1825
              "    border-color: transparent;\n",
1826
              "    border-bottom-color: var(--fill-color);\n",
1827
              "    animation:\n",
1828
              "      spin 1s steps(1) infinite;\n",
1829
              "  }\n",
1830
              "\n",
1831
              "  @keyframes spin {\n",
1832
              "    0% {\n",
1833
              "      border-color: transparent;\n",
1834
              "      border-bottom-color: var(--fill-color);\n",
1835
              "      border-left-color: var(--fill-color);\n",
1836
              "    }\n",
1837
              "    20% {\n",
1838
              "      border-color: transparent;\n",
1839
              "      border-left-color: var(--fill-color);\n",
1840
              "      border-top-color: var(--fill-color);\n",
1841
              "    }\n",
1842
              "    30% {\n",
1843
              "      border-color: transparent;\n",
1844
              "      border-left-color: var(--fill-color);\n",
1845
              "      border-top-color: var(--fill-color);\n",
1846
              "      border-right-color: var(--fill-color);\n",
1847
              "    }\n",
1848
              "    40% {\n",
1849
              "      border-color: transparent;\n",
1850
              "      border-right-color: var(--fill-color);\n",
1851
              "      border-top-color: var(--fill-color);\n",
1852
              "    }\n",
1853
              "    60% {\n",
1854
              "      border-color: transparent;\n",
1855
              "      border-right-color: var(--fill-color);\n",
1856
              "    }\n",
1857
              "    80% {\n",
1858
              "      border-color: transparent;\n",
1859
              "      border-right-color: var(--fill-color);\n",
1860
              "      border-bottom-color: var(--fill-color);\n",
1861
              "    }\n",
1862
              "    90% {\n",
1863
              "      border-color: transparent;\n",
1864
              "      border-bottom-color: var(--fill-color);\n",
1865
              "    }\n",
1866
              "  }\n",
1867
              "</style>\n",
1868
              "\n",
1869
              "  <script>\n",
1870
              "    async function quickchart(key) {\n",
1871
              "      const quickchartButtonEl =\n",
1872
              "        document.querySelector('#' + key + ' button');\n",
1873
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
1874
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
1875
              "      try {\n",
1876
              "        const charts = await google.colab.kernel.invokeFunction(\n",
1877
              "            'suggestCharts', [key], {});\n",
1878
              "      } catch (error) {\n",
1879
              "        console.error('Error during call to suggestCharts:', error);\n",
1880
              "      }\n",
1881
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
1882
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
1883
              "    }\n",
1884
              "    (() => {\n",
1885
              "      let quickchartButtonEl =\n",
1886
              "        document.querySelector('#df-95f9d3fd-9a90-47cf-a507-bc831027082f button');\n",
1887
              "      quickchartButtonEl.style.display =\n",
1888
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
1889
              "    })();\n",
1890
              "  </script>\n",
1891
              "</div>\n",
1892
              "\n",
1893
              "    </div>\n",
1894
              "  </div>\n"
1895
            ],
1896
            "application/vnd.google.colaboratory.intrinsic+json": {
1897
              "type": "dataframe",
1898
              "variable_name": "obesity"
1899
            }
1900
          },
1901
          "metadata": {},
1902
          "execution_count": 18
1903
        }
1904
      ]
1905
    },
1906
    {
1907
      "cell_type": "code",
1908
      "source": [
1909
        "x = obesity.drop('NObeyesdad', axis=1)\n",
1910
        "y = obesity['NObeyesdad']"
1911
      ],
1912
      "metadata": {
1913
        "id": "vuDx2r46g6QW"
1914
      },
1915
      "execution_count": 19,
1916
      "outputs": []
1917
    },
1918
    {
1919
      "cell_type": "code",
1920
      "source": [
1921
        "from sklearn.model_selection import train_test_split"
1922
      ],
1923
      "metadata": {
1924
        "id": "NkPkWt2Pf3VU"
1925
      },
1926
      "execution_count": 20,
1927
      "outputs": []
1928
    },
1929
    {
1930
      "cell_type": "code",
1931
      "source": [
1932
        "x_train, x_test, y_train, y_test = train_test_split(x,y, test_size=0.3, random_state=420)"
1933
      ],
1934
      "metadata": {
1935
        "id": "-VMmVgy7gG5b"
1936
      },
1937
      "execution_count": 21,
1938
      "outputs": []
1939
    },
1940
    {
1941
      "cell_type": "code",
1942
      "source": [
1943
        "from sklearn.preprocessing import StandardScaler"
1944
      ],
1945
      "metadata": {
1946
        "id": "_ISfTDRCkKSI"
1947
      },
1948
      "execution_count": 22,
1949
      "outputs": []
1950
    },
1951
    {
1952
      "cell_type": "code",
1953
      "source": [
1954
        "sc =  StandardScaler()\n",
1955
        "x_train = sc.fit_transform(x_train)\n",
1956
        "x_test = sc.transform(x_test)"
1957
      ],
1958
      "metadata": {
1959
        "id": "oPP2gxC0mKO7"
1960
      },
1961
      "execution_count": 23,
1962
      "outputs": []
1963
    },
1964
    {
1965
      "cell_type": "code",
1966
      "source": [
1967
        "x_train.shape, x_test.shape,"
1968
      ],
1969
      "metadata": {
1970
        "colab": {
1971
          "base_uri": "https://localhost:8080/"
1972
        },
1973
        "id": "dYU0eFSymd4M",
1974
        "outputId": "f3a4061b-a041-4296-cd93-e593e002e7ee"
1975
      },
1976
      "execution_count": 24,
1977
      "outputs": [
1978
        {
1979
          "output_type": "execute_result",
1980
          "data": {
1981
            "text/plain": [
1982
              "((14530, 22), (6228, 22))"
1983
            ]
1984
          },
1985
          "metadata": {},
1986
          "execution_count": 24
1987
        }
1988
      ]
1989
    },
1990
    {
1991
      "cell_type": "code",
1992
      "source": [
1993
        "x_train = x_train.reshape(-1, 22, 1)\n",
1994
        "x_test = x_test.reshape(-1, 22, 1)"
1995
      ],
1996
      "metadata": {
1997
        "id": "tO8P2qtenKgP"
1998
      },
1999
      "execution_count": 25,
2000
      "outputs": []
2001
    },
2002
    {
2003
      "cell_type": "code",
2004
      "source": [
2005
        "y_train = y_train.to_numpy()\n",
2006
        "y_test = np.array(y_test)"
2007
      ],
2008
      "metadata": {
2009
        "id": "DMoRT_etnhPn"
2010
      },
2011
      "execution_count": 26,
2012
      "outputs": []
2013
    },
2014
    {
2015
      "cell_type": "markdown",
2016
      "source": [
2017
        "# **MACHINE** **BUILDING**"
2018
      ],
2019
      "metadata": {
2020
        "id": "kr5nNyfxsdhM"
2021
      }
2022
    },
2023
    {
2024
      "cell_type": "code",
2025
      "source": [
2026
        "model = tf.keras.models.Sequential()"
2027
      ],
2028
      "metadata": {
2029
        "id": "YWt1Rjc0oJOS"
2030
      },
2031
      "execution_count": 54,
2032
      "outputs": []
2033
    },
2034
    {
2035
      "cell_type": "code",
2036
      "source": [
2037
        "model.add(tf.keras.layers.Conv1D(filters=32, kernel_size=2, padding='same', activation='relu', input_shape=(22, 1)))"
2038
      ],
2039
      "metadata": {
2040
        "id": "nDwX5JNkoUiP"
2041
      },
2042
      "execution_count": 55,
2043
      "outputs": []
2044
    },
2045
    {
2046
      "cell_type": "code",
2047
      "source": [
2048
        "model.add(tf.keras.layers.BatchNormalization())"
2049
      ],
2050
      "metadata": {
2051
        "id": "KCYQp3ohbZmS"
2052
      },
2053
      "execution_count": 56,
2054
      "outputs": []
2055
    },
2056
    {
2057
      "cell_type": "code",
2058
      "source": [
2059
        "model.add(tf.keras.layers.Dropout(0.2))"
2060
      ],
2061
      "metadata": {
2062
        "id": "5wXC47y-bk_7"
2063
      },
2064
      "execution_count": 57,
2065
      "outputs": []
2066
    },
2067
    {
2068
      "cell_type": "code",
2069
      "source": [
2070
        "model.add(tf.keras.layers.Conv1D(filters=64, kernel_size=2, padding='same', activation='relu'))"
2071
      ],
2072
      "metadata": {
2073
        "id": "0wuyVf2E2Gbx"
2074
      },
2075
      "execution_count": 58,
2076
      "outputs": []
2077
    },
2078
    {
2079
      "cell_type": "code",
2080
      "source": [
2081
        "model.add(tf.keras.layers.BatchNormalization())"
2082
      ],
2083
      "metadata": {
2084
        "id": "sDOp77wn2Lvv"
2085
      },
2086
      "execution_count": 59,
2087
      "outputs": []
2088
    },
2089
    {
2090
      "cell_type": "code",
2091
      "source": [
2092
        "model.add(tf.keras.layers.Dropout(0.25))"
2093
      ],
2094
      "metadata": {
2095
        "id": "A4MYvnac2O82"
2096
      },
2097
      "execution_count": 60,
2098
      "outputs": []
2099
    },
2100
    {
2101
      "cell_type": "code",
2102
      "source": [
2103
        "model.add(tf.keras.layers.Conv1D(filters=128, kernel_size=2, padding='same', activation='relu'))"
2104
      ],
2105
      "metadata": {
2106
        "id": "LVlKDkQ7bu4N"
2107
      },
2108
      "execution_count": 61,
2109
      "outputs": []
2110
    },
2111
    {
2112
      "cell_type": "code",
2113
      "source": [
2114
        "model.add(tf.keras.layers.BatchNormalization())"
2115
      ],
2116
      "metadata": {
2117
        "id": "Oo-KsBw5c12p"
2118
      },
2119
      "execution_count": 62,
2120
      "outputs": []
2121
    },
2122
    {
2123
      "cell_type": "code",
2124
      "source": [
2125
        "model.add(tf.keras.layers.Dropout(0.2))"
2126
      ],
2127
      "metadata": {
2128
        "id": "ZY79oD2MdD56"
2129
      },
2130
      "execution_count": 63,
2131
      "outputs": []
2132
    },
2133
    {
2134
      "cell_type": "code",
2135
      "source": [
2136
        "model.add(tf.keras.layers.Conv1D(filters=256, kernel_size=2, padding='same', activation='relu'))"
2137
      ],
2138
      "metadata": {
2139
        "id": "2pgl1DFt49nG"
2140
      },
2141
      "execution_count": 64,
2142
      "outputs": []
2143
    },
2144
    {
2145
      "cell_type": "code",
2146
      "source": [
2147
        "model.add(tf.keras.layers.BatchNormalization())"
2148
      ],
2149
      "metadata": {
2150
        "id": "4inCVZdH5EuI"
2151
      },
2152
      "execution_count": 65,
2153
      "outputs": []
2154
    },
2155
    {
2156
      "cell_type": "code",
2157
      "source": [
2158
        "model.add(tf.keras.layers.Dropout(0.2))"
2159
      ],
2160
      "metadata": {
2161
        "id": "aKDpmFaP5ZgS"
2162
      },
2163
      "execution_count": 66,
2164
      "outputs": []
2165
    },
2166
    {
2167
      "cell_type": "code",
2168
      "source": [
2169
        "model.add(tf.keras.layers.Flatten())"
2170
      ],
2171
      "metadata": {
2172
        "id": "rK6wGfd9dYmT"
2173
      },
2174
      "execution_count": 67,
2175
      "outputs": []
2176
    },
2177
    {
2178
      "cell_type": "code",
2179
      "source": [
2180
        "model.add(tf.keras.layers.Dense(units=128, activation='relu'))"
2181
      ],
2182
      "metadata": {
2183
        "id": "EW3WUbSedgY7"
2184
      },
2185
      "execution_count": 68,
2186
      "outputs": []
2187
    },
2188
    {
2189
      "cell_type": "code",
2190
      "source": [
2191
        "model.add(tf.keras.layers.Dense(units=7, activation='softmax'))"
2192
      ],
2193
      "metadata": {
2194
        "id": "4wus8P11dzPy"
2195
      },
2196
      "execution_count": 69,
2197
      "outputs": []
2198
    },
2199
    {
2200
      "cell_type": "code",
2201
      "source": [
2202
        "model.summary()"
2203
      ],
2204
      "metadata": {
2205
        "colab": {
2206
          "base_uri": "https://localhost:8080/"
2207
        },
2208
        "id": "6AR8bicJe66l",
2209
        "outputId": "b2b153da-12c5-473b-dd42-a7e52777869b"
2210
      },
2211
      "execution_count": 70,
2212
      "outputs": [
2213
        {
2214
          "output_type": "stream",
2215
          "name": "stdout",
2216
          "text": [
2217
            "Model: \"sequential_2\"\n",
2218
            "_________________________________________________________________\n",
2219
            " Layer (type)                Output Shape              Param #   \n",
2220
            "=================================================================\n",
2221
            " conv1d_4 (Conv1D)           (None, 22, 32)            96        \n",
2222
            "                                                                 \n",
2223
            " batch_normalization_4 (Bat  (None, 22, 32)            128       \n",
2224
            " chNormalization)                                                \n",
2225
            "                                                                 \n",
2226
            " dropout_4 (Dropout)         (None, 22, 32)            0         \n",
2227
            "                                                                 \n",
2228
            " conv1d_5 (Conv1D)           (None, 22, 64)            4160      \n",
2229
            "                                                                 \n",
2230
            " batch_normalization_5 (Bat  (None, 22, 64)            256       \n",
2231
            " chNormalization)                                                \n",
2232
            "                                                                 \n",
2233
            " dropout_5 (Dropout)         (None, 22, 64)            0         \n",
2234
            "                                                                 \n",
2235
            " conv1d_6 (Conv1D)           (None, 22, 128)           16512     \n",
2236
            "                                                                 \n",
2237
            " batch_normalization_6 (Bat  (None, 22, 128)           512       \n",
2238
            " chNormalization)                                                \n",
2239
            "                                                                 \n",
2240
            " dropout_6 (Dropout)         (None, 22, 128)           0         \n",
2241
            "                                                                 \n",
2242
            " conv1d_7 (Conv1D)           (None, 22, 256)           65792     \n",
2243
            "                                                                 \n",
2244
            " batch_normalization_7 (Bat  (None, 22, 256)           1024      \n",
2245
            " chNormalization)                                                \n",
2246
            "                                                                 \n",
2247
            " dropout_7 (Dropout)         (None, 22, 256)           0         \n",
2248
            "                                                                 \n",
2249
            " flatten_1 (Flatten)         (None, 5632)              0         \n",
2250
            "                                                                 \n",
2251
            " dense_2 (Dense)             (None, 128)               721024    \n",
2252
            "                                                                 \n",
2253
            " dense_3 (Dense)             (None, 7)                 903       \n",
2254
            "                                                                 \n",
2255
            "=================================================================\n",
2256
            "Total params: 810407 (3.09 MB)\n",
2257
            "Trainable params: 809447 (3.09 MB)\n",
2258
            "Non-trainable params: 960 (3.75 KB)\n",
2259
            "_________________________________________________________________\n"
2260
          ]
2261
        }
2262
      ]
2263
    },
2264
    {
2265
      "cell_type": "markdown",
2266
      "source": [
2267
        "# **MACHINE** **TRAINING**"
2268
      ],
2269
      "metadata": {
2270
        "id": "tZxiJdlNr2bM"
2271
      }
2272
    },
2273
    {
2274
      "cell_type": "code",
2275
      "source": [
2276
        "opt = tf.keras.optimizers.Adam(learning_rate=0.000050)\n",
2277
        "model.compile(optimizer=opt, loss='sparse_categorical_crossentropy', metrics=['sparse_categorical_accuracy'])"
2278
      ],
2279
      "metadata": {
2280
        "id": "yBOTK-Pke83C"
2281
      },
2282
      "execution_count": 71,
2283
      "outputs": []
2284
    },
2285
    {
2286
      "cell_type": "code",
2287
      "source": [
2288
        "epoch = 19\n",
2289
        "history = model.fit(x_train, y_train, batch_size=25, epochs=epoch, validation_data=(x_test, y_test))"
2290
      ],
2291
      "metadata": {
2292
        "colab": {
2293
          "base_uri": "https://localhost:8080/"
2294
        },
2295
        "id": "3NltZgSShXSy",
2296
        "outputId": "740a01dd-4c64-4fb9-f153-50f1d29dff4f"
2297
      },
2298
      "execution_count": 72,
2299
      "outputs": [
2300
        {
2301
          "output_type": "stream",
2302
          "name": "stdout",
2303
          "text": [
2304
            "Epoch 1/19\n",
2305
            "582/582 [==============================] - 23s 34ms/step - loss: 1.0794 - sparse_categorical_accuracy: 0.6048 - val_loss: 0.6232 - val_sparse_categorical_accuracy: 0.7662\n",
2306
            "Epoch 2/19\n",
2307
            "582/582 [==============================] - 20s 34ms/step - loss: 0.6903 - sparse_categorical_accuracy: 0.7352 - val_loss: 0.5123 - val_sparse_categorical_accuracy: 0.8056\n",
2308
            "Epoch 3/19\n",
2309
            "582/582 [==============================] - 20s 34ms/step - loss: 0.5885 - sparse_categorical_accuracy: 0.7725 - val_loss: 0.4840 - val_sparse_categorical_accuracy: 0.8211\n",
2310
            "Epoch 4/19\n",
2311
            "582/582 [==============================] - 19s 33ms/step - loss: 0.5389 - sparse_categorical_accuracy: 0.7919 - val_loss: 0.4336 - val_sparse_categorical_accuracy: 0.8426\n",
2312
            "Epoch 5/19\n",
2313
            "582/582 [==============================] - 20s 34ms/step - loss: 0.5009 - sparse_categorical_accuracy: 0.8098 - val_loss: 0.4327 - val_sparse_categorical_accuracy: 0.8410\n",
2314
            "Epoch 6/19\n",
2315
            "582/582 [==============================] - 20s 34ms/step - loss: 0.4891 - sparse_categorical_accuracy: 0.8131 - val_loss: 0.4251 - val_sparse_categorical_accuracy: 0.8463\n",
2316
            "Epoch 7/19\n",
2317
            "582/582 [==============================] - 20s 35ms/step - loss: 0.4644 - sparse_categorical_accuracy: 0.8228 - val_loss: 0.4056 - val_sparse_categorical_accuracy: 0.8590\n",
2318
            "Epoch 8/19\n",
2319
            "582/582 [==============================] - 20s 34ms/step - loss: 0.4439 - sparse_categorical_accuracy: 0.8329 - val_loss: 0.3961 - val_sparse_categorical_accuracy: 0.8614\n",
2320
            "Epoch 9/19\n",
2321
            "582/582 [==============================] - 20s 34ms/step - loss: 0.4402 - sparse_categorical_accuracy: 0.8352 - val_loss: 0.4004 - val_sparse_categorical_accuracy: 0.8600\n",
2322
            "Epoch 10/19\n",
2323
            "582/582 [==============================] - 20s 34ms/step - loss: 0.4263 - sparse_categorical_accuracy: 0.8420 - val_loss: 0.3974 - val_sparse_categorical_accuracy: 0.8587\n",
2324
            "Epoch 11/19\n",
2325
            "582/582 [==============================] - 21s 36ms/step - loss: 0.4143 - sparse_categorical_accuracy: 0.8474 - val_loss: 0.4026 - val_sparse_categorical_accuracy: 0.8608\n",
2326
            "Epoch 12/19\n",
2327
            "582/582 [==============================] - 20s 34ms/step - loss: 0.4130 - sparse_categorical_accuracy: 0.8472 - val_loss: 0.3883 - val_sparse_categorical_accuracy: 0.8667\n",
2328
            "Epoch 13/19\n",
2329
            "582/582 [==============================] - 19s 33ms/step - loss: 0.4018 - sparse_categorical_accuracy: 0.8478 - val_loss: 0.3817 - val_sparse_categorical_accuracy: 0.8656\n",
2330
            "Epoch 14/19\n",
2331
            "582/582 [==============================] - 20s 34ms/step - loss: 0.3949 - sparse_categorical_accuracy: 0.8525 - val_loss: 0.3867 - val_sparse_categorical_accuracy: 0.8656\n",
2332
            "Epoch 15/19\n",
2333
            "582/582 [==============================] - 20s 34ms/step - loss: 0.3943 - sparse_categorical_accuracy: 0.8530 - val_loss: 0.3826 - val_sparse_categorical_accuracy: 0.8656\n",
2334
            "Epoch 16/19\n",
2335
            "582/582 [==============================] - 20s 34ms/step - loss: 0.3777 - sparse_categorical_accuracy: 0.8587 - val_loss: 0.3850 - val_sparse_categorical_accuracy: 0.8701\n",
2336
            "Epoch 17/19\n",
2337
            "582/582 [==============================] - 20s 35ms/step - loss: 0.3833 - sparse_categorical_accuracy: 0.8570 - val_loss: 0.3850 - val_sparse_categorical_accuracy: 0.8659\n",
2338
            "Epoch 18/19\n",
2339
            "582/582 [==============================] - 19s 33ms/step - loss: 0.3725 - sparse_categorical_accuracy: 0.8637 - val_loss: 0.3794 - val_sparse_categorical_accuracy: 0.8687\n",
2340
            "Epoch 19/19\n",
2341
            "582/582 [==============================] - 21s 36ms/step - loss: 0.3679 - sparse_categorical_accuracy: 0.8622 - val_loss: 0.3783 - val_sparse_categorical_accuracy: 0.8701\n"
2342
          ]
2343
        }
2344
      ]
2345
    },
2346
    {
2347
      "cell_type": "markdown",
2348
      "source": [
2349
        "# **MACHINE** **EVALUATION**"
2350
      ],
2351
      "metadata": {
2352
        "id": "G3wyyLb9sv3o"
2353
      }
2354
    },
2355
    {
2356
      "cell_type": "code",
2357
      "source": [
2358
        "y_pred = np.argmax(model.predict(x_test), axis=-1)"
2359
      ],
2360
      "metadata": {
2361
        "colab": {
2362
          "base_uri": "https://localhost:8080/"
2363
        },
2364
        "id": "zvbW2GxNiGbv",
2365
        "outputId": "73ae7f61-5ac3-47bb-e5b0-9efa848a4fe6"
2366
      },
2367
      "execution_count": 73,
2368
      "outputs": [
2369
        {
2370
          "output_type": "stream",
2371
          "name": "stdout",
2372
          "text": [
2373
            "195/195 [==============================] - 2s 7ms/step\n"
2374
          ]
2375
        }
2376
      ]
2377
    },
2378
    {
2379
      "cell_type": "code",
2380
      "source": [
2381
        "from sklearn.metrics import accuracy_score"
2382
      ],
2383
      "metadata": {
2384
        "id": "pBhJ2I3Zmfb7"
2385
      },
2386
      "execution_count": 74,
2387
      "outputs": []
2388
    },
2389
    {
2390
      "cell_type": "code",
2391
      "source": [
2392
        "a_s = accuracy_score(y_pred, y_test)"
2393
      ],
2394
      "metadata": {
2395
        "id": "6u88A-kLmt6K"
2396
      },
2397
      "execution_count": 75,
2398
      "outputs": []
2399
    },
2400
    {
2401
      "cell_type": "code",
2402
      "source": [
2403
        "print(f\"Accuracy Score: {a_s * 100:.2f}\")"
2404
      ],
2405
      "metadata": {
2406
        "colab": {
2407
          "base_uri": "https://localhost:8080/"
2408
        },
2409
        "id": "BZNsAhISm75B",
2410
        "outputId": "ba473796-ebd3-48e4-8451-f22834d9a45b"
2411
      },
2412
      "execution_count": 76,
2413
      "outputs": [
2414
        {
2415
          "output_type": "stream",
2416
          "name": "stdout",
2417
          "text": [
2418
            "Accuracy Score: 87.01\n"
2419
          ]
2420
        }
2421
      ]
2422
    },
2423
    {
2424
      "cell_type": "code",
2425
      "source": [
2426
        "def learning_curve(history, epoch):\n",
2427
        "\n",
2428
        "  # training vs validation accuracy\n",
2429
        "  epoch_range = range(1, epoch+1)\n",
2430
        "  plt.plot(epoch_range, history.history['sparse_categorical_accuracy'])\n",
2431
        "  plt.plot(epoch_range, history.history['val_sparse_categorical_accuracy'])\n",
2432
        "  plt.title('Model Accuracy')\n",
2433
        "  plt.ylabel('Accuracy')\n",
2434
        "  plt.xlabel('Epoch')\n",
2435
        "  plt.legend(['Train', 'val'], loc='upper left')\n",
2436
        "  plt.show()\n",
2437
        "\n",
2438
        "  # training vs validation loss\n",
2439
        "  plt.plot(epoch_range, history.history['loss'])\n",
2440
        "  plt.plot(epoch_range, history.history['val_loss'])\n",
2441
        "  plt.title('Model Loss')\n",
2442
        "  plt.ylabel('Loss')\n",
2443
        "  plt.xlabel('Epoch')\n",
2444
        "  plt.legend(['Train', 'val'], loc='upper left')\n",
2445
        "  plt.show()"
2446
      ],
2447
      "metadata": {
2448
        "id": "L-_y2OTMorAM"
2449
      },
2450
      "execution_count": 77,
2451
      "outputs": []
2452
    },
2453
    {
2454
      "cell_type": "code",
2455
      "source": [
2456
        "learning_curve(history, epoch)"
2457
      ],
2458
      "metadata": {
2459
        "colab": {
2460
          "base_uri": "https://localhost:8080/",
2461
          "height": 927
2462
        },
2463
        "id": "P3A4cCSJpMTW",
2464
        "outputId": "b4f21cd4-6c30-4abc-996a-6eb03162b7f4"
2465
      },
2466
      "execution_count": 78,
2467
      "outputs": [
2468
        {
2469
          "output_type": "display_data",
2470
          "data": {
2471
            "text/plain": [
2472
              "<Figure size 640x480 with 1 Axes>"
2473
            ],
2474
            "image/png": "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6XUSkZFIvRorEdGDTJw4USgUCuHg4KD3eP/994UQQgAQL7/8st57wsLCxIwZM4QQQnz11VfC1dVV5OXl6V7fuXOnkMvlupXCfX19xdtvv11tDQDEO++8o3uel5cnAIhff/3VaNdJRKbDPkBEZBb69euHVatW6e1zc3PTbffo0UPvtR49euDs2bMAgMuXL6Njx45wcHDQvd6rVy9oNBrExMRAJpMhMTER/fv3r7GG0NBQ3baDgwOcnJyQmppa10siIgkxABGRWXBwcKh0S8pY7OzsanWctbW13nOZTAaNRlMfJRFRPWMfICJqFE6cOFHpedu2bQEAbdu2xblz55Cfn697/ejRo5DL5QgJCYGjoyMCAwMRFRVl0pqJSDpsASIis1BcXIzk5GS9fVZWVnB3dwcAbN26FV27dkXv3r2xYcMGREdHY82aNQCA8ePHY9GiRZg4cSIWL16MtLQ0vPrqq3jxxRfh5eUFAFi8eDFefvlleHp6YvDgwcjNzcXRo0fx6quvmvZCicgkGICIyCzs3r0bPj4+evtCQkJw5coVANoRWps3b8Yrr7wCHx8fbNq0CY888ggAwN7eHnv27MHs2bPRrVs32Nvb4/nnn8fy5ct155o4cSKKiorwySef4M0334S7uztGjBhhugskIpOSCSGE1EUQET0MmUyGHTt2YNiwYVKXQkRmgn2AiIiIyOIwABEREZHFYR8gIjJ7vJNPRIZiCxARERFZHAYgIiIisjgMQERERGRxGICIiIjI4jAAERERkcVhACIiIiKLwwBEREREFocBiIiIiCwOAxARERFZnP8HJ1qO2t3UXngAAAAASUVORK5CYII=\n"
2475
          },
2476
          "metadata": {}
2477
        },
2478
        {
2479
          "output_type": "display_data",
2480
          "data": {
2481
            "text/plain": [
2482
              "<Figure size 640x480 with 1 Axes>"
2483
            ],
2484
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABchUlEQVR4nO3dd3xT9f4/8NdJmibdk6aDDvam7FJwoZV5EVCUdQVRcYGK6L3KVRn69eK9KuJAEAVRrwNEQH+iKKAoS0CgKHu3BTpoS5vOpE0+vz9OGwjdJc1J0tfz8cgjyck5yfs01L78nM+QhBACRERERG5CpXQBRERERPbEcENERERuheGGiIiI3ArDDREREbkVhhsiIiJyKww3RERE5FYYboiIiMitMNwQERGRW2G4ISIiIrfCcENETkuSJMybN6/Bx507dw6SJGHlypV2r4mInB/DDRHVauXKlZAkCZIkYfv27VVeF0IgOjoakiThb3/7mwIVNt7WrVshSRLWrFmjdClEZEcMN0RULzqdDp9//nmV7b/++ivOnz8PrVarQFVERFUx3BBRvQwfPhxfffUVysvLbbZ//vnn6N27N8LDwxWqjIjIFsMNEdXLhAkTkJOTg02bNlm3mUwmrFmzBhMnTqz2mKKiIjz99NOIjo6GVqtFhw4d8Prrr0MIYbOf0WjEU089hRYtWsDPzw933HEHzp8/X+17XrhwAffffz/0ej20Wi26dOmCFStW2O9Eq3HmzBncfffdCA4Ohre3N/r3748NGzZU2e+dd95Bly5d4O3tjaCgIPTp08emtaugoAAzZ85EXFwctFotwsLCcPvtt2P//v1NWj9Rc8NwQ0T1EhcXh8TERHzxxRfWbT/88APy8/Mxfvz4KvsLIXDHHXfgzTffxNChQ7Fw4UJ06NAB//jHPzBr1iybfR988EEsWrQIgwcPxquvvgqNRoMRI0ZUec/MzEz0798fmzdvxowZM/DWW2+hbdu2eOCBB7Bo0SK7n3PlZw4YMAA//vgjHnvsMbzyyisoLS3FHXfcgXXr1ln3++CDD/DEE0+gc+fOWLRoEebPn48ePXpg9+7d1n0eeeQRLFmyBHfddRfee+89PPPMM/Dy8sLRo0ebpHaiZksQEdXio48+EgDE3r17xbvvviv8/PxEcXGxEEKIu+++WwwaNEgIIURsbKwYMWKE9bj169cLAOL//u//bN5v7NixQpIkcerUKSGEEMnJyQKAeOyxx2z2mzhxogAg5s6da932wAMPiIiICJGdnW2z7/jx40VAQIC1rrNnzwoA4qOPPqr13H755RcBQHz11Vc17jNz5kwBQGzbts26raCgQLRq1UrExcUJs9kshBBi1KhRokuXLrV+XkBAgJg+fXqt+xDR9WPLDRHV2z333IOSkhJ89913KCgowHfffVfjJanvv/8earUaTzzxhM32p59+GkII/PDDD9b9AFTZb+bMmTbPhRD4+uuvMXLkSAghkJ2dbb0NGTIE+fn5TXJ55/vvv0e/fv1www03WLf5+vrioYcewrlz53DkyBEAQGBgIM6fP4+9e/fW+F6BgYHYvXs3Ll68aPc6iegKhhsiqrcWLVogKSkJn3/+OdauXQuz2YyxY8dWu29KSgoiIyPh5+dns71Tp07W1yvvVSoV2rRpY7Nfhw4dbJ5funQJeXl5WLZsGVq0aGFzmzp1KgAgKyvLLud57XlcW0t15/Hss8/C19cX/fr1Q7t27TB9+nTs2LHD5pj//ve/OHToEKKjo9GvXz/MmzcPZ86csXvNRM2dh9IFEJFrmThxIqZNm4aMjAwMGzYMgYGBDvlci8UCAPj73/+OKVOmVLtP9+7dHVJLdTp16oTjx4/ju+++w8aNG/H111/jvffew5w5czB//nwAcsvXjTfeiHXr1uGnn37Ca6+9hv/85z9Yu3Ythg0bpljtRO6GLTdE1CBjxoyBSqXC77//XuMlKQCIjY3FxYsXUVBQYLP92LFj1tcr7y0WC06fPm2z3/Hjx22eV46kMpvNSEpKqvYWFhZmj1Osch7X1lLdeQCAj48Pxo0bh48++gipqakYMWKEtQNypYiICDz22GNYv349zp49i5CQELzyyit2r5uoOWO4IaIG8fX1xZIlSzBv3jyMHDmyxv2GDx8Os9mMd99912b7m2++CUmSrC0Vlfdvv/22zX7Xjn5Sq9W466678PXXX+PQoUNVPu/SpUuNOZ06DR8+HHv27MGuXbus24qKirBs2TLExcWhc+fOAICcnByb4zw9PdG5c2cIIVBWVgaz2Yz8/HybfcLCwhAZGQmj0dgktRM1V7wsRUQNVtNloauNHDkSgwYNwvPPP49z584hPj4eP/30E7755hvMnDnT2semR48emDBhAt577z3k5+djwIAB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maeHvGSCyWyx66reREREVD8MN3amUUuQJAlCCJSx3w0REZHDMdzYGYeDExERKYvhpglYh4O7UMtNXFwcFi1apHQZRERE143hpgm40gKaRERE7obhpgnwshQREZFyGG6agKPnulm2bBkiIyNhsdh+3qhRo3D//ffj9OnTGDVqFPR6PXx9fdG3b19s3rzZIbURERE5GsNNXYQATEUNunlaSiCVFaOspBDCWNjg4623eg4lv/vuu5GTk4NffvnFui03NxcbN27EpEmTUFhYiOHDh2PLli04cOAAhg4dipEjRyI1NbWpfmpERESK8VC6AKdXVgz8O7JBh+gAdLPHZ//rIuDpU+duQUFBGDZsGD7//HPcdtttAIA1a9YgNDQUgwYNgkqlQnx8vHX/l19+GevWrcO3336LGTNm2KNSIiIip8GWGzcxadIkfP311zAajQCAzz77DOPHj4dKpUJhYSGeeeYZdOrUCYGBgfD19cXRo0fZckNERG6JLTd10XjLLSgNdCa7CEXGckQHeSHQ27Pxn11PI0eOhBACGzZsQN++fbFt2za8+eabAIBnnnkGmzZtwuuvv462bdvCy8sLY8eOhclkalxdRERETozhpi6SVK9LQ9fS6CQIiwlGlQ7w1DVBYbZ0Oh3uvPNOfPbZZzh16hQ6dOiAXr16AQB27NiB++67D2PGjAEAFBYW4ty5c01eExERkRIYbpqIEquDT5o0CX/7299w+PBh/P3vf7dub9euHdauXYuRI0dCkiS8+OKLVUZWERERuQv2uWkiSkzkd+uttyI4OBjHjx/HxIkTrdsXLlyIoKAgDBgwACNHjsSQIUOsrTpERETuhi03TcQabhy4BINKpcLFi1X7B8XFxeHnn3+22TZ9+nSb57xMRURE7oItN02kcpbiMrMFFkv95qshIiKi68dw00TUKglqlQTAsa03REREzR3DTRORJIlrTBERESmA4aYJVfa7MTLcEBEROYyi4ea3337DyJEjERkZCUmSsH79+jqP2bp1K3r16gWtVou2bdti5cqVdq9L1HNNp7oo0anYmdjr50hERNQQioaboqIixMfHY/HixfXa/+zZsxgxYgQGDRqE5ORkzJw5Ew8++CB+/PFHu9Sj0WgAAMXFxXZ5PyXmunEmlT/Hyp8rERGRIyg6FHzYsGEYNmxYvfdfunQpWrVqhTfeeAMA0KlT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ro9m16GYiIiI3BtbboiIiMitMNwQERGRW2G4ISIiIrfCcENERERuheHGxS1YsAB9+/aFn58fwsLCMHr0aBw/frzWY1auXAlJkmxuOp3OQRXbx7x586qcQ8eOHWs95quvvkLHjh2h0+nQrVs3fP/99w6q1r7i4uKqnLskSZg+fXq1+7vy9/3bb79h5MiRiIyMhCRJWL9+vc3rQgjMmTMHERER8PLyQlJSEk6ePFnn+y5evBhxcXHQ6XRISEjAnj17mugMGqe28y4rK8Ozzz6Lbt26wcfHB5GRkZg8eTIuXrxY63s25ndGCXV95/fdd1+V8xg6dGid7+vK3zmAan/nJUnCa6+9VuN7usp33hQYblzcr7/+iunTp+P333/Hpk2bUFZWhsGDB6OoqKjW4/z9/ZGenm69paSkOKhi++nSpYvNOWzfvr3GfXfu3IkJEybggQcewIEDBzB69GiMHj0ahw4dcmDF9rF3716b8960aRMA4O67767xGFf9vouKihAfH4/FixdX+/p///tfvP3221i6dCl2794NHx8fDBkyBKWlpTW+56pVqzBr1izMnTsX+/fvR3x8PIYMGYKsrKymOo0Gq+28i4uLsX//frz44ovYv38/1q5di+PHj+OOO+6o830b8jujlLq+cwAYOnSozXl88cUXtb6nq3/nAGzONz09HStWrIAkSbjrrrtqfV9X+M6bhCC3kpWVJQCIX3/9tcZ9PvroIxEQEOC4oprA3LlzRXx8fL33v+eee8SIESNstiUkJIiHH37YzpU53pNPPinatGkjLBZLta+7w/cthBAAxLp166zPLRaLCA8PF6+99pp1W15entBqteKLL76o8X369esnpk+fbn1uNptFZGSkWLBgQZPUfb2uPe/q7NmzRwAQKSkpNe7T0N8ZZ1DduU+ZMkWMGjWqQe/jjt/5qFGjxK233lrrPq74ndsLW27cTH5+PgAgODi41v0KCwsRGxuL6OhojBo1CocPH3ZEeXZ18uRJREZGonXr1pg0aRJSU1Nr3HfXrl1ISkqy2TZkyBDs2rWrqctsUiaTCf/73/9w//3317oQrDt839c6e/YsMjIybL7XgIAAJCQk1Pi9mkwm7Nu3z+YYlUqFpKQkl/63kJ+fD0mSEBgYWOt+DfmdcWZbt25FWFgYOnTogEcffRQ5OTk17uuO33lmZiY2bNiABx54oM593eU7byiGGzdisVgwc+ZMDBw4EF27dq1xvw4dOmDFihX45ptv8L///Q8WiwUDBgzA+fPnHVjt9UlISMDKlSuxceNGLFmyBGfPnsWNN96IgoKCavfPyMiAXq+32abX65GRkeGIcpvM+vXrkZeXh/vuu6/Gfdzh+65O5XfXkO81OzsbZrPZrf4tlJaW4tlnn8WECRNqXTyxob8zzmro0KH45JNPsGXLFvznP//Br7/+imHDhsFsNle7vzt+5x9//DH8/Pxw55131rqfu3znjdHsVgV3Z9OnT8ehQ4fqvKaamJiIxMRE6/MBAwagU6dOeP/99/Hyyy83dZl2MWzYMOvj7t27IyEhAbGxsVi9enW9/m/GXSxfvhzDhg1DZGRkjfu4w/dN1SsrK8M999wDIQSWLFlS677u8jszfvx46+Nu3bqhe/fuaNOmDbZu3YrbbrtNwcocZ8WKFZg0aVKdAwPc5TtvDLbcuIkZM2bgu+++wy+//IKWLVs26FiNRoOePXvi1KlTTVRd0wsMDET79u1rPIfw8HBkZmbabMvMzER4eLgjymsSKSkp2Lx5Mx588MEGHecO3zcA63fXkO81NDQUarXaLf4tVAablJQUbNq0qdZWm+rU9TvjKlq3bo3Q0NAaz8OdvnMA2LZtG44fP97g33vAfb7z+mC4cXFCCMyYMQPr1q3Dzz//jFatWjX4PcxmM/766y9EREQ0QYWOUVhYiNOnT9d4DomJidiyZYvNtk2bNtm0aLiajz76CGFhYRgxYkSDjnOH7xsAWrVqhfDwcJvv1WAwYPfu3TV+r56enujdu7fNMRaLBVu2bHGpfwuVwebkyZPYvHkzQkJCGvwedf3OuIrz588jJyenxvNwl++80vLly9G7d2/Ex8c3+Fh3+c7rRekezXR9Hn30UREQECC2bt0q0tPTrbfi4mLrPvfee6947rnnrM/nz58vfvzxR3H69Gmxb98+MX78eKHT6cThw4eVOIVGefrpp8XWrVvF2bNnxY4dO0RSUpIIDQ0VWVlZQoiq57xjxw7h4eEhXn/9dXH06FExd+5codFoxF9//aXUKVwXs9ksYmJixLPPPlvlNXf6vgsKCsSBAwfEgQMHBACxcOFCceDAAeuooFdffVUEBgaKb775Rvz5559i1KhRolWrVqKkpMT6Hrfeeqt45513rM+//PJLodVqxcqVK8WRI0fEQw89JAIDA0VGRobDz68mtZ23yWQSd9xxh2jZsqVITk62+b03Go3W97j2vOv6nXEWtZ17QUGBeOaZZ8SuXbvE2bNnxebNm0WvXr1Eu3btRGlpqfU93O07r5Sfny+8vb3FkiVLqn0PV/3OmwLDjYsDUO3to48+su5z8803iylTplifz5w5U8TExAhPT0+h1+vF8OHDxf79+x1f/HUYN26ciIiIEJ6eniIqKkqMGzdOnDp1yvr6tecshBCrV68W7du3F56enqJLly5iw4YNDq7afn788UcBQBw/frzKa+70ff/yyy/V/vuuPD+LxSJefPFFodfrhVarFbfddluVn0lsbKyYO3euzbZ33nnH+jPp16+f+P333x10RvVT23mfPXu2xt/7X375xfoe1553Xb8zzqK2cy8uLhaDBw8WLVq0EBqNRsTGxopp06ZVCSnu9p1Xev/994WXl5fIy8ur9j1c9TtvCpIQQjRp0xARERGRA7HPDREREbkVhhsiIiJyKww3RERE5FYYboiIiMitMNwQERGRW2G4ISIiIrfCcENERERuheGGiAiAJElYv3690mUQkR0w3BCR4u677z5IklTlNnToUKVLIyIX5KF0AUREADB06FB89NFHNtu0Wq1C1RCRK2PLDRE5Ba1Wi/DwcJtbUFAQAPmS0ZIlSzBs2DB4eXmhdevWWLNmjc3xf/31F2699VZ4eXkhJCQEDz30EAoLC232WbFiBbp06QKtVouIiAjMmDHD5vXs7GyMGTMG3t7eaNeuHb799tumPWkiahIMN0TkEl588UXcddddOHjwICZNmoTx48fj6NGjAICioiIMGTIEQUFB2Lt3L7766its3rzZJrwsWbIE06dPx0MPPYS//voL3377Ldq2bWvzGfPnz8c999yDP//8E8OHD8ekSZOQm5vr0PMkIjtQeuVOIqIpU6YItVotfHx8bG6vvPKKEEIIAOKRRx6xOSYhIUE8+uijQgghli1bJoKCgkRhYaH19Q0bNgiVSmVdMToyMlI8//zzNdYAQLzwwgvW54WFhQKA+OGHH+x2nkTkGOxzQ0ROYdCgQViyZInNtuDgYOvjxMREm9cSExORnJwMADh69Cji4+Ph4+NjfX3gwIGwWCw4fvw4JEnCxYsXcdttt9VaQ/fu3a2PfXx84O/vj6ysrMaeEhEphOGGiJyCj49PlctE9uLl5VWv/TQajc1zSZJgsViaoiQiakLsc0NELuH333+v8rxTp04AgE6dOuHgwYMoKiqyvr5jxw6oVCp06NABfn5+iIuLw5YtWxxaMxEpgy03ROQUjEYjMjIybLZ5eHggNDQUAPDVV1+hT58+uOGGG/DZZ59hz549WL58OQBg0qRJmDt3LqZMmYJ58+bh0qVLePzxx3HvvfdCr9cDAObNm4dHHnkEYWFhGDZsGAoKCrBjxw48/vjjjj1RImpyDDdE5BQ2btyIiIgIm20dOnTAsWPHAMgjmb788ks89thjiIiIwBdffIHOnTsDALy9vfHjjz/iySefRN++feHt7Y277roLCxcutL7XlClTUFpaijfffBPPPPMMQkNDMXbsWMedIBE5jCSEEEoXQURUG0mSsG7dOowePVrpUojIBbDPDREREbkVhhsiIiJyK+xzQ0ROj1fPiagh2HJDREREboXhhoiIiNwKww0RERG5FYYbIiIicisMN0RERORWGG6IiIjIrTDcEBERkVthuCEiIiK3wnBDREREbuX/A5WUnULSRwHxAAAAAElFTkSuQmCC\n"
2485
          },
2486
          "metadata": {}
2487
        }
2488
      ]
2489
    },
2490
    {
2491
      "cell_type": "code",
2492
      "source": [
2493
        "data = {\"real values\" : y_test, \"predicted values\" : y_pred}\n",
2494
        "comparism = pd.DataFrame(data)\n",
2495
        "comparism.head(10)"
2496
      ],
2497
      "metadata": {
2498
        "colab": {
2499
          "base_uri": "https://localhost:8080/",
2500
          "height": 363
2501
        },
2502
        "id": "T8q2_7WMpR9Q",
2503
        "outputId": "d31164aa-9a87-4c5e-dbf8-a124352301f6"
2504
      },
2505
      "execution_count": 79,
2506
      "outputs": [
2507
        {
2508
          "output_type": "execute_result",
2509
          "data": {
2510
            "text/plain": [
2511
              "   real values  predicted values\n",
2512
              "0            5                 1\n",
2513
              "1            1                 1\n",
2514
              "2            6                 6\n",
2515
              "3            3                 3\n",
2516
              "4            5                 5\n",
2517
              "5            4                 4\n",
2518
              "6            1                 1\n",
2519
              "7            2                 5\n",
2520
              "8            4                 4\n",
2521
              "9            4                 4"
2522
            ],
2523
            "text/html": [
2524
              "\n",
2525
              "  <div id=\"df-7397f5c0-5828-4fe1-91e2-ae0b1b0934f8\" class=\"colab-df-container\">\n",
2526
              "    <div>\n",
2527
              "<style scoped>\n",
2528
              "    .dataframe tbody tr th:only-of-type {\n",
2529
              "        vertical-align: middle;\n",
2530
              "    }\n",
2531
              "\n",
2532
              "    .dataframe tbody tr th {\n",
2533
              "        vertical-align: top;\n",
2534
              "    }\n",
2535
              "\n",
2536
              "    .dataframe thead th {\n",
2537
              "        text-align: right;\n",
2538
              "    }\n",
2539
              "</style>\n",
2540
              "<table border=\"1\" class=\"dataframe\">\n",
2541
              "  <thead>\n",
2542
              "    <tr style=\"text-align: right;\">\n",
2543
              "      <th></th>\n",
2544
              "      <th>real values</th>\n",
2545
              "      <th>predicted values</th>\n",
2546
              "    </tr>\n",
2547
              "  </thead>\n",
2548
              "  <tbody>\n",
2549
              "    <tr>\n",
2550
              "      <th>0</th>\n",
2551
              "      <td>5</td>\n",
2552
              "      <td>1</td>\n",
2553
              "    </tr>\n",
2554
              "    <tr>\n",
2555
              "      <th>1</th>\n",
2556
              "      <td>1</td>\n",
2557
              "      <td>1</td>\n",
2558
              "    </tr>\n",
2559
              "    <tr>\n",
2560
              "      <th>2</th>\n",
2561
              "      <td>6</td>\n",
2562
              "      <td>6</td>\n",
2563
              "    </tr>\n",
2564
              "    <tr>\n",
2565
              "      <th>3</th>\n",
2566
              "      <td>3</td>\n",
2567
              "      <td>3</td>\n",
2568
              "    </tr>\n",
2569
              "    <tr>\n",
2570
              "      <th>4</th>\n",
2571
              "      <td>5</td>\n",
2572
              "      <td>5</td>\n",
2573
              "    </tr>\n",
2574
              "    <tr>\n",
2575
              "      <th>5</th>\n",
2576
              "      <td>4</td>\n",
2577
              "      <td>4</td>\n",
2578
              "    </tr>\n",
2579
              "    <tr>\n",
2580
              "      <th>6</th>\n",
2581
              "      <td>1</td>\n",
2582
              "      <td>1</td>\n",
2583
              "    </tr>\n",
2584
              "    <tr>\n",
2585
              "      <th>7</th>\n",
2586
              "      <td>2</td>\n",
2587
              "      <td>5</td>\n",
2588
              "    </tr>\n",
2589
              "    <tr>\n",
2590
              "      <th>8</th>\n",
2591
              "      <td>4</td>\n",
2592
              "      <td>4</td>\n",
2593
              "    </tr>\n",
2594
              "    <tr>\n",
2595
              "      <th>9</th>\n",
2596
              "      <td>4</td>\n",
2597
              "      <td>4</td>\n",
2598
              "    </tr>\n",
2599
              "  </tbody>\n",
2600
              "</table>\n",
2601
              "</div>\n",
2602
              "    <div class=\"colab-df-buttons\">\n",
2603
              "\n",
2604
              "  <div class=\"colab-df-container\">\n",
2605
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-7397f5c0-5828-4fe1-91e2-ae0b1b0934f8')\"\n",
2606
              "            title=\"Convert this dataframe to an interactive table.\"\n",
2607
              "            style=\"display:none;\">\n",
2608
              "\n",
2609
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
2610
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
2611
              "  </svg>\n",
2612
              "    </button>\n",
2613
              "\n",
2614
              "  <style>\n",
2615
              "    .colab-df-container {\n",
2616
              "      display:flex;\n",
2617
              "      gap: 12px;\n",
2618
              "    }\n",
2619
              "\n",
2620
              "    .colab-df-convert {\n",
2621
              "      background-color: #E8F0FE;\n",
2622
              "      border: none;\n",
2623
              "      border-radius: 50%;\n",
2624
              "      cursor: pointer;\n",
2625
              "      display: none;\n",
2626
              "      fill: #1967D2;\n",
2627
              "      height: 32px;\n",
2628
              "      padding: 0 0 0 0;\n",
2629
              "      width: 32px;\n",
2630
              "    }\n",
2631
              "\n",
2632
              "    .colab-df-convert:hover {\n",
2633
              "      background-color: #E2EBFA;\n",
2634
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
2635
              "      fill: #174EA6;\n",
2636
              "    }\n",
2637
              "\n",
2638
              "    .colab-df-buttons div {\n",
2639
              "      margin-bottom: 4px;\n",
2640
              "    }\n",
2641
              "\n",
2642
              "    [theme=dark] .colab-df-convert {\n",
2643
              "      background-color: #3B4455;\n",
2644
              "      fill: #D2E3FC;\n",
2645
              "    }\n",
2646
              "\n",
2647
              "    [theme=dark] .colab-df-convert:hover {\n",
2648
              "      background-color: #434B5C;\n",
2649
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
2650
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
2651
              "      fill: #FFFFFF;\n",
2652
              "    }\n",
2653
              "  </style>\n",
2654
              "\n",
2655
              "    <script>\n",
2656
              "      const buttonEl =\n",
2657
              "        document.querySelector('#df-7397f5c0-5828-4fe1-91e2-ae0b1b0934f8 button.colab-df-convert');\n",
2658
              "      buttonEl.style.display =\n",
2659
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
2660
              "\n",
2661
              "      async function convertToInteractive(key) {\n",
2662
              "        const element = document.querySelector('#df-7397f5c0-5828-4fe1-91e2-ae0b1b0934f8');\n",
2663
              "        const dataTable =\n",
2664
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
2665
              "                                                    [key], {});\n",
2666
              "        if (!dataTable) return;\n",
2667
              "\n",
2668
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
2669
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
2670
              "          + ' to learn more about interactive tables.';\n",
2671
              "        element.innerHTML = '';\n",
2672
              "        dataTable['output_type'] = 'display_data';\n",
2673
              "        await google.colab.output.renderOutput(dataTable, element);\n",
2674
              "        const docLink = document.createElement('div');\n",
2675
              "        docLink.innerHTML = docLinkHtml;\n",
2676
              "        element.appendChild(docLink);\n",
2677
              "      }\n",
2678
              "    </script>\n",
2679
              "  </div>\n",
2680
              "\n",
2681
              "\n",
2682
              "<div id=\"df-af6dcf37-0658-4284-9846-b481bd5c4b7d\">\n",
2683
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-af6dcf37-0658-4284-9846-b481bd5c4b7d')\"\n",
2684
              "            title=\"Suggest charts\"\n",
2685
              "            style=\"display:none;\">\n",
2686
              "\n",
2687
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
2688
              "     width=\"24px\">\n",
2689
              "    <g>\n",
2690
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
2691
              "    </g>\n",
2692
              "</svg>\n",
2693
              "  </button>\n",
2694
              "\n",
2695
              "<style>\n",
2696
              "  .colab-df-quickchart {\n",
2697
              "      --bg-color: #E8F0FE;\n",
2698
              "      --fill-color: #1967D2;\n",
2699
              "      --hover-bg-color: #E2EBFA;\n",
2700
              "      --hover-fill-color: #174EA6;\n",
2701
              "      --disabled-fill-color: #AAA;\n",
2702
              "      --disabled-bg-color: #DDD;\n",
2703
              "  }\n",
2704
              "\n",
2705
              "  [theme=dark] .colab-df-quickchart {\n",
2706
              "      --bg-color: #3B4455;\n",
2707
              "      --fill-color: #D2E3FC;\n",
2708
              "      --hover-bg-color: #434B5C;\n",
2709
              "      --hover-fill-color: #FFFFFF;\n",
2710
              "      --disabled-bg-color: #3B4455;\n",
2711
              "      --disabled-fill-color: #666;\n",
2712
              "  }\n",
2713
              "\n",
2714
              "  .colab-df-quickchart {\n",
2715
              "    background-color: var(--bg-color);\n",
2716
              "    border: none;\n",
2717
              "    border-radius: 50%;\n",
2718
              "    cursor: pointer;\n",
2719
              "    display: none;\n",
2720
              "    fill: var(--fill-color);\n",
2721
              "    height: 32px;\n",
2722
              "    padding: 0;\n",
2723
              "    width: 32px;\n",
2724
              "  }\n",
2725
              "\n",
2726
              "  .colab-df-quickchart:hover {\n",
2727
              "    background-color: var(--hover-bg-color);\n",
2728
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
2729
              "    fill: var(--button-hover-fill-color);\n",
2730
              "  }\n",
2731
              "\n",
2732
              "  .colab-df-quickchart-complete:disabled,\n",
2733
              "  .colab-df-quickchart-complete:disabled:hover {\n",
2734
              "    background-color: var(--disabled-bg-color);\n",
2735
              "    fill: var(--disabled-fill-color);\n",
2736
              "    box-shadow: none;\n",
2737
              "  }\n",
2738
              "\n",
2739
              "  .colab-df-spinner {\n",
2740
              "    border: 2px solid var(--fill-color);\n",
2741
              "    border-color: transparent;\n",
2742
              "    border-bottom-color: var(--fill-color);\n",
2743
              "    animation:\n",
2744
              "      spin 1s steps(1) infinite;\n",
2745
              "  }\n",
2746
              "\n",
2747
              "  @keyframes spin {\n",
2748
              "    0% {\n",
2749
              "      border-color: transparent;\n",
2750
              "      border-bottom-color: var(--fill-color);\n",
2751
              "      border-left-color: var(--fill-color);\n",
2752
              "    }\n",
2753
              "    20% {\n",
2754
              "      border-color: transparent;\n",
2755
              "      border-left-color: var(--fill-color);\n",
2756
              "      border-top-color: var(--fill-color);\n",
2757
              "    }\n",
2758
              "    30% {\n",
2759
              "      border-color: transparent;\n",
2760
              "      border-left-color: var(--fill-color);\n",
2761
              "      border-top-color: var(--fill-color);\n",
2762
              "      border-right-color: var(--fill-color);\n",
2763
              "    }\n",
2764
              "    40% {\n",
2765
              "      border-color: transparent;\n",
2766
              "      border-right-color: var(--fill-color);\n",
2767
              "      border-top-color: var(--fill-color);\n",
2768
              "    }\n",
2769
              "    60% {\n",
2770
              "      border-color: transparent;\n",
2771
              "      border-right-color: var(--fill-color);\n",
2772
              "    }\n",
2773
              "    80% {\n",
2774
              "      border-color: transparent;\n",
2775
              "      border-right-color: var(--fill-color);\n",
2776
              "      border-bottom-color: var(--fill-color);\n",
2777
              "    }\n",
2778
              "    90% {\n",
2779
              "      border-color: transparent;\n",
2780
              "      border-bottom-color: var(--fill-color);\n",
2781
              "    }\n",
2782
              "  }\n",
2783
              "</style>\n",
2784
              "\n",
2785
              "  <script>\n",
2786
              "    async function quickchart(key) {\n",
2787
              "      const quickchartButtonEl =\n",
2788
              "        document.querySelector('#' + key + ' button');\n",
2789
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
2790
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
2791
              "      try {\n",
2792
              "        const charts = await google.colab.kernel.invokeFunction(\n",
2793
              "            'suggestCharts', [key], {});\n",
2794
              "      } catch (error) {\n",
2795
              "        console.error('Error during call to suggestCharts:', error);\n",
2796
              "      }\n",
2797
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
2798
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
2799
              "    }\n",
2800
              "    (() => {\n",
2801
              "      let quickchartButtonEl =\n",
2802
              "        document.querySelector('#df-af6dcf37-0658-4284-9846-b481bd5c4b7d button');\n",
2803
              "      quickchartButtonEl.style.display =\n",
2804
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
2805
              "    })();\n",
2806
              "  </script>\n",
2807
              "</div>\n",
2808
              "\n",
2809
              "    </div>\n",
2810
              "  </div>\n"
2811
            ],
2812
            "application/vnd.google.colaboratory.intrinsic+json": {
2813
              "type": "dataframe",
2814
              "variable_name": "comparism",
2815
              "summary": "{\n  \"name\": \"comparism\",\n  \"rows\": 6228,\n  \"fields\": [\n    {\n      \"column\": \"real values\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1,\n        \"min\": 0,\n        \"max\": 6,\n        \"num_unique_values\": 7,\n        \"samples\": [\n          5,\n          1,\n          2\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"predicted values\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1,\n        \"min\": 0,\n        \"max\": 6,\n        \"num_unique_values\": 7,\n        \"samples\": [\n          1,\n          6,\n          2\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
2816
            }
2817
          },
2818
          "metadata": {},
2819
          "execution_count": 79
2820
        }
2821
      ]
2822
    }
2823
  ]
2824
}