2824 lines (2824 with data), 194.2 kB
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"source": [
"# **IMPORTING** **LIBRARIES**"
],
"metadata": {
"id": "SQmJcBR7rAAp"
}
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "j-x0sLq3Z26i",
"outputId": "64087c55-4a13-4324-bb15-bf8a3d4553d7"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"2.15.0\n"
]
}
],
"source": [
"import tensorflow as tf\n",
"print(tf.__version__)"
]
},
{
"cell_type": "code",
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n"
],
"metadata": {
"id": "XUAfgXejbQCu"
},
"execution_count": 2,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"# **DATASET** **IMPORTATION**"
],
"metadata": {
"id": "1qqD_LhGrgf8"
}
},
{
"cell_type": "code",
"source": [
"! mkdir -p ~/.kaggle"
],
"metadata": {
"id": "fZxb_L5AUiYC"
},
"execution_count": 3,
"outputs": []
},
{
"cell_type": "code",
"source": [
"from google.colab import files\n",
"upload = files.upload()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 73
},
"id": "ywSHkRFDV1MI",
"outputId": "0075ce0f-aede-4c97-da7b-7841975f3f04"
},
"execution_count": 4,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.HTML object>"
],
"text/html": [
"\n",
" <input type=\"file\" id=\"files-4bb4f943-b662-4ca1-97d6-9710445a9eb3\" name=\"files[]\" multiple disabled\n",
" style=\"border:none\" />\n",
" <output id=\"result-4bb4f943-b662-4ca1-97d6-9710445a9eb3\">\n",
" Upload widget is only available when the cell has been executed in the\n",
" current browser session. Please rerun this cell to enable.\n",
" </output>\n",
" <script>// Copyright 2017 Google LLC\n",
"//\n",
"// Licensed under the Apache License, Version 2.0 (the \"License\");\n",
"// you may not use this file except in compliance with the License.\n",
"// You may obtain a copy of the License at\n",
"//\n",
"// http://www.apache.org/licenses/LICENSE-2.0\n",
"//\n",
"// Unless required by applicable law or agreed to in writing, software\n",
"// distributed under the License is distributed on an \"AS IS\" BASIS,\n",
"// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
"// See the License for the specific language governing permissions and\n",
"// limitations under the License.\n",
"\n",
"/**\n",
" * @fileoverview Helpers for google.colab Python module.\n",
" */\n",
"(function(scope) {\n",
"function span(text, styleAttributes = {}) {\n",
" const element = document.createElement('span');\n",
" element.textContent = text;\n",
" for (const key of Object.keys(styleAttributes)) {\n",
" element.style[key] = styleAttributes[key];\n",
" }\n",
" return element;\n",
"}\n",
"\n",
"// Max number of bytes which will be uploaded at a time.\n",
"const MAX_PAYLOAD_SIZE = 100 * 1024;\n",
"\n",
"function _uploadFiles(inputId, outputId) {\n",
" const steps = uploadFilesStep(inputId, outputId);\n",
" const outputElement = document.getElementById(outputId);\n",
" // Cache steps on the outputElement to make it available for the next call\n",
" // to uploadFilesContinue from Python.\n",
" outputElement.steps = steps;\n",
"\n",
" return _uploadFilesContinue(outputId);\n",
"}\n",
"\n",
"// This is roughly an async generator (not supported in the browser yet),\n",
"// where there are multiple asynchronous steps and the Python side is going\n",
"// to poll for completion of each step.\n",
"// This uses a Promise to block the python side on completion of each step,\n",
"// then passes the result of the previous step as the input to the next step.\n",
"function _uploadFilesContinue(outputId) {\n",
" const outputElement = document.getElementById(outputId);\n",
" const steps = outputElement.steps;\n",
"\n",
" const next = steps.next(outputElement.lastPromiseValue);\n",
" return Promise.resolve(next.value.promise).then((value) => {\n",
" // Cache the last promise value to make it available to the next\n",
" // step of the generator.\n",
" outputElement.lastPromiseValue = value;\n",
" return next.value.response;\n",
" });\n",
"}\n",
"\n",
"/**\n",
" * Generator function which is called between each async step of the upload\n",
" * process.\n",
" * @param {string} inputId Element ID of the input file picker element.\n",
" * @param {string} outputId Element ID of the output display.\n",
" * @return {!Iterable<!Object>} Iterable of next steps.\n",
" */\n",
"function* uploadFilesStep(inputId, outputId) {\n",
" const inputElement = document.getElementById(inputId);\n",
" inputElement.disabled = false;\n",
"\n",
" const outputElement = document.getElementById(outputId);\n",
" outputElement.innerHTML = '';\n",
"\n",
" const pickedPromise = new Promise((resolve) => {\n",
" inputElement.addEventListener('change', (e) => {\n",
" resolve(e.target.files);\n",
" });\n",
" });\n",
"\n",
" const cancel = document.createElement('button');\n",
" inputElement.parentElement.appendChild(cancel);\n",
" cancel.textContent = 'Cancel upload';\n",
" const cancelPromise = new Promise((resolve) => {\n",
" cancel.onclick = () => {\n",
" resolve(null);\n",
" };\n",
" });\n",
"\n",
" // Wait for the user to pick the files.\n",
" const files = yield {\n",
" promise: Promise.race([pickedPromise, cancelPromise]),\n",
" response: {\n",
" action: 'starting',\n",
" }\n",
" };\n",
"\n",
" cancel.remove();\n",
"\n",
" // Disable the input element since further picks are not allowed.\n",
" inputElement.disabled = true;\n",
"\n",
" if (!files) {\n",
" return {\n",
" response: {\n",
" action: 'complete',\n",
" }\n",
" };\n",
" }\n",
"\n",
" for (const file of files) {\n",
" const li = document.createElement('li');\n",
" li.append(span(file.name, {fontWeight: 'bold'}));\n",
" li.append(span(\n",
" `(${file.type || 'n/a'}) - ${file.size} bytes, ` +\n",
" `last modified: ${\n",
" file.lastModifiedDate ? file.lastModifiedDate.toLocaleDateString() :\n",
" 'n/a'} - `));\n",
" const percent = span('0% done');\n",
" li.appendChild(percent);\n",
"\n",
" outputElement.appendChild(li);\n",
"\n",
" const fileDataPromise = new Promise((resolve) => {\n",
" const reader = new FileReader();\n",
" reader.onload = (e) => {\n",
" resolve(e.target.result);\n",
" };\n",
" reader.readAsArrayBuffer(file);\n",
" });\n",
" // Wait for the data to be ready.\n",
" let fileData = yield {\n",
" promise: fileDataPromise,\n",
" response: {\n",
" action: 'continue',\n",
" }\n",
" };\n",
"\n",
" // Use a chunked sending to avoid message size limits. See b/62115660.\n",
" let position = 0;\n",
" do {\n",
" const length = Math.min(fileData.byteLength - position, MAX_PAYLOAD_SIZE);\n",
" const chunk = new Uint8Array(fileData, position, length);\n",
" position += length;\n",
"\n",
" const base64 = btoa(String.fromCharCode.apply(null, chunk));\n",
" yield {\n",
" response: {\n",
" action: 'append',\n",
" file: file.name,\n",
" data: base64,\n",
" },\n",
" };\n",
"\n",
" let percentDone = fileData.byteLength === 0 ?\n",
" 100 :\n",
" Math.round((position / fileData.byteLength) * 100);\n",
" percent.textContent = `${percentDone}% done`;\n",
"\n",
" } while (position < fileData.byteLength);\n",
" }\n",
"\n",
" // All done.\n",
" yield {\n",
" response: {\n",
" action: 'complete',\n",
" }\n",
" };\n",
"}\n",
"\n",
"scope.google = scope.google || {};\n",
"scope.google.colab = scope.google.colab || {};\n",
"scope.google.colab._files = {\n",
" _uploadFiles,\n",
" _uploadFilesContinue,\n",
"};\n",
"})(self);\n",
"</script> "
]
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Saving kaggle.json to kaggle.json\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"! cp kaggle.json ~/.kaggle"
],
"metadata": {
"id": "v7Jcc3tJV9aI"
},
"execution_count": 5,
"outputs": []
},
{
"cell_type": "code",
"source": [
"! chmod 600 /root/.kaggle/kaggle.json"
],
"metadata": {
"id": "4VgFoXLfWJfU"
},
"execution_count": 6,
"outputs": []
},
{
"cell_type": "code",
"source": [
"! kaggle competitions download -c playground-series-s4e2"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "5OSmwek8WQ7l",
"outputId": "32afb11f-5339-42f0-e9a9-07b86a17a045"
},
"execution_count": 7,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Downloading playground-series-s4e2.zip to /content\n",
"\r 0% 0.00/917k [00:00<?, ?B/s]\n",
"\r100% 917k/917k [00:00<00:00, 17.2MB/s]\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"! unzip /content/playground-series-s4e2.zip"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "D7mNC0iWWZrb",
"outputId": "a8341238-c0ad-44a6-c136-3fbf11a5b918"
},
"execution_count": 8,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Archive: /content/playground-series-s4e2.zip\n",
" inflating: sample_submission.csv \n",
" inflating: test.csv \n",
" inflating: train.csv \n"
]
}
]
},
{
"cell_type": "code",
"source": [
"obesity = pd.read_csv(\"train.csv\")\n",
"obesity.head()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 226
},
"id": "_8IuRB0GWokp",
"outputId": "78f12a72-da77-4667-c2b3-f9774db80e73"
},
"execution_count": 9,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" id Gender Age Height Weight family_history_with_overweight \\\n",
"0 0 Male 24.443011 1.699998 81.669950 yes \n",
"1 1 Female 18.000000 1.560000 57.000000 yes \n",
"2 2 Female 18.000000 1.711460 50.165754 yes \n",
"3 3 Female 20.952737 1.710730 131.274851 yes \n",
"4 4 Male 31.641081 1.914186 93.798055 yes \n",
"\n",
" FAVC FCVC NCP CAEC SMOKE CH2O SCC FAF \\\n",
"0 yes 2.000000 2.983297 Sometimes no 2.763573 no 0.000000 \n",
"1 yes 2.000000 3.000000 Frequently no 2.000000 no 1.000000 \n",
"2 yes 1.880534 1.411685 Sometimes no 1.910378 no 0.866045 \n",
"3 yes 3.000000 3.000000 Sometimes no 1.674061 no 1.467863 \n",
"4 yes 2.679664 1.971472 Sometimes no 1.979848 no 1.967973 \n",
"\n",
" TUE CALC MTRANS NObeyesdad \n",
"0 0.976473 Sometimes Public_Transportation Overweight_Level_II \n",
"1 1.000000 no Automobile Normal_Weight \n",
"2 1.673584 no Public_Transportation Insufficient_Weight \n",
"3 0.780199 Sometimes Public_Transportation Obesity_Type_III \n",
"4 0.931721 Sometimes Public_Transportation Overweight_Level_II "
],
"text/html": [
"\n",
" <div id=\"df-7d0d80a3-508a-4d31-81b1-b74d0c8dc4e7\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>Gender</th>\n",
" <th>Age</th>\n",
" <th>Height</th>\n",
" <th>Weight</th>\n",
" <th>family_history_with_overweight</th>\n",
" <th>FAVC</th>\n",
" <th>FCVC</th>\n",
" <th>NCP</th>\n",
" <th>CAEC</th>\n",
" <th>SMOKE</th>\n",
" <th>CH2O</th>\n",
" <th>SCC</th>\n",
" <th>FAF</th>\n",
" <th>TUE</th>\n",
" <th>CALC</th>\n",
" <th>MTRANS</th>\n",
" <th>NObeyesdad</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>Male</td>\n",
" <td>24.443011</td>\n",
" <td>1.699998</td>\n",
" <td>81.669950</td>\n",
" <td>yes</td>\n",
" <td>yes</td>\n",
" <td>2.000000</td>\n",
" <td>2.983297</td>\n",
" <td>Sometimes</td>\n",
" <td>no</td>\n",
" <td>2.763573</td>\n",
" <td>no</td>\n",
" <td>0.000000</td>\n",
" <td>0.976473</td>\n",
" <td>Sometimes</td>\n",
" <td>Public_Transportation</td>\n",
" <td>Overweight_Level_II</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>Female</td>\n",
" <td>18.000000</td>\n",
" <td>1.560000</td>\n",
" <td>57.000000</td>\n",
" <td>yes</td>\n",
" <td>yes</td>\n",
" <td>2.000000</td>\n",
" <td>3.000000</td>\n",
" <td>Frequently</td>\n",
" <td>no</td>\n",
" <td>2.000000</td>\n",
" <td>no</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>no</td>\n",
" <td>Automobile</td>\n",
" <td>Normal_Weight</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>Female</td>\n",
" <td>18.000000</td>\n",
" <td>1.711460</td>\n",
" <td>50.165754</td>\n",
" <td>yes</td>\n",
" <td>yes</td>\n",
" <td>1.880534</td>\n",
" <td>1.411685</td>\n",
" <td>Sometimes</td>\n",
" <td>no</td>\n",
" <td>1.910378</td>\n",
" <td>no</td>\n",
" <td>0.866045</td>\n",
" <td>1.673584</td>\n",
" <td>no</td>\n",
" <td>Public_Transportation</td>\n",
" <td>Insufficient_Weight</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>Female</td>\n",
" <td>20.952737</td>\n",
" <td>1.710730</td>\n",
" <td>131.274851</td>\n",
" <td>yes</td>\n",
" <td>yes</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>Sometimes</td>\n",
" <td>no</td>\n",
" <td>1.674061</td>\n",
" <td>no</td>\n",
" <td>1.467863</td>\n",
" <td>0.780199</td>\n",
" <td>Sometimes</td>\n",
" <td>Public_Transportation</td>\n",
" <td>Obesity_Type_III</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>Male</td>\n",
" <td>31.641081</td>\n",
" <td>1.914186</td>\n",
" <td>93.798055</td>\n",
" <td>yes</td>\n",
" <td>yes</td>\n",
" <td>2.679664</td>\n",
" <td>1.971472</td>\n",
" <td>Sometimes</td>\n",
" <td>no</td>\n",
" <td>1.979848</td>\n",
" <td>no</td>\n",
" <td>1.967973</td>\n",
" <td>0.931721</td>\n",
" <td>Sometimes</td>\n",
" <td>Public_Transportation</td>\n",
" <td>Overweight_Level_II</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-7d0d80a3-508a-4d31-81b1-b74d0c8dc4e7')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-7d0d80a3-508a-4d31-81b1-b74d0c8dc4e7 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-7d0d80a3-508a-4d31-81b1-b74d0c8dc4e7');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-809ff325-3488-49b1-ba83-312cc0f4f8d4\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-809ff325-3488-49b1-ba83-312cc0f4f8d4')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <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",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-809ff325-3488-49b1-ba83-312cc0f4f8d4 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "obesity",
"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}"
}
},
"metadata": {},
"execution_count": 9
}
]
},
{
"cell_type": "markdown",
"source": [
"# **DATA** **PREPROCESSING**"
],
"metadata": {
"id": "G4Cb4mgPrp3H"
}
},
{
"cell_type": "code",
"source": [
"obesity = obesity.drop('id', axis=1)"
],
"metadata": {
"id": "aH0zcZzDduHW"
},
"execution_count": 10,
"outputs": []
},
{
"cell_type": "code",
"source": [
"obesity.describe(include='all')"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 414
},
"id": "0yxsCN3qjpcR",
"outputId": "7cd9383e-0176-41be-e258-9e7d1f19159f"
},
"execution_count": 11,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Gender Age Height Weight \\\n",
"count 20758 20758.000000 20758.000000 20758.000000 \n",
"unique 2 NaN NaN NaN \n",
"top Female NaN NaN NaN \n",
"freq 10422 NaN NaN NaN \n",
"mean NaN 23.841804 1.700245 87.887768 \n",
"std NaN 5.688072 0.087312 26.379443 \n",
"min NaN 14.000000 1.450000 39.000000 \n",
"25% NaN 20.000000 1.631856 66.000000 \n",
"50% NaN 22.815416 1.700000 84.064875 \n",
"75% NaN 26.000000 1.762887 111.600553 \n",
"max NaN 61.000000 1.975663 165.057269 \n",
"\n",
" family_history_with_overweight FAVC FCVC NCP \\\n",
"count 20758 20758 20758.000000 20758.000000 \n",
"unique 2 2 NaN NaN \n",
"top yes yes NaN NaN \n",
"freq 17014 18982 NaN NaN \n",
"mean NaN NaN 2.445908 2.761332 \n",
"std NaN NaN 0.533218 0.705375 \n",
"min NaN NaN 1.000000 1.000000 \n",
"25% NaN NaN 2.000000 3.000000 \n",
"50% NaN NaN 2.393837 3.000000 \n",
"75% NaN NaN 3.000000 3.000000 \n",
"max NaN NaN 3.000000 4.000000 \n",
"\n",
" CAEC SMOKE CH2O SCC FAF TUE \\\n",
"count 20758 20758 20758.000000 20758 20758.000000 20758.000000 \n",
"unique 4 2 NaN 2 NaN NaN \n",
"top Sometimes no NaN no NaN NaN \n",
"freq 17529 20513 NaN 20071 NaN NaN \n",
"mean NaN NaN 2.029418 NaN 0.981747 0.616756 \n",
"std NaN NaN 0.608467 NaN 0.838302 0.602113 \n",
"min NaN NaN 1.000000 NaN 0.000000 0.000000 \n",
"25% NaN NaN 1.792022 NaN 0.008013 0.000000 \n",
"50% NaN NaN 2.000000 NaN 1.000000 0.573887 \n",
"75% NaN NaN 2.549617 NaN 1.587406 1.000000 \n",
"max NaN NaN 3.000000 NaN 3.000000 2.000000 \n",
"\n",
" CALC MTRANS NObeyesdad \n",
"count 20758 20758 20758 \n",
"unique 3 5 7 \n",
"top Sometimes Public_Transportation Obesity_Type_III \n",
"freq 15066 16687 4046 \n",
"mean NaN NaN NaN \n",
"std NaN NaN NaN \n",
"min NaN NaN NaN \n",
"25% NaN NaN NaN \n",
"50% NaN NaN NaN \n",
"75% NaN NaN NaN \n",
"max NaN NaN NaN "
],
"text/html": [
"\n",
" <div id=\"df-208eb5bd-0abb-406e-ad14-8659b4b034e4\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Gender</th>\n",
" <th>Age</th>\n",
" <th>Height</th>\n",
" <th>Weight</th>\n",
" <th>family_history_with_overweight</th>\n",
" <th>FAVC</th>\n",
" <th>FCVC</th>\n",
" <th>NCP</th>\n",
" <th>CAEC</th>\n",
" <th>SMOKE</th>\n",
" <th>CH2O</th>\n",
" <th>SCC</th>\n",
" <th>FAF</th>\n",
" <th>TUE</th>\n",
" <th>CALC</th>\n",
" <th>MTRANS</th>\n",
" <th>NObeyesdad</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>20758</td>\n",
" <td>20758.000000</td>\n",
" <td>20758.000000</td>\n",
" <td>20758.000000</td>\n",
" <td>20758</td>\n",
" <td>20758</td>\n",
" <td>20758.000000</td>\n",
" <td>20758.000000</td>\n",
" <td>20758</td>\n",
" <td>20758</td>\n",
" <td>20758.000000</td>\n",
" <td>20758</td>\n",
" <td>20758.000000</td>\n",
" <td>20758.000000</td>\n",
" <td>20758</td>\n",
" <td>20758</td>\n",
" <td>20758</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>3</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>Female</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>yes</td>\n",
" <td>yes</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Sometimes</td>\n",
" <td>no</td>\n",
" <td>NaN</td>\n",
" <td>no</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Sometimes</td>\n",
" <td>Public_Transportation</td>\n",
" <td>Obesity_Type_III</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>10422</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>17014</td>\n",
" <td>18982</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>17529</td>\n",
" <td>20513</td>\n",
" <td>NaN</td>\n",
" <td>20071</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>15066</td>\n",
" <td>16687</td>\n",
" <td>4046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>NaN</td>\n",
" <td>23.841804</td>\n",
" <td>1.700245</td>\n",
" <td>87.887768</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2.445908</td>\n",
" <td>2.761332</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2.029418</td>\n",
" <td>NaN</td>\n",
" <td>0.981747</td>\n",
" <td>0.616756</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>NaN</td>\n",
" <td>5.688072</td>\n",
" <td>0.087312</td>\n",
" <td>26.379443</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.533218</td>\n",
" <td>0.705375</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.608467</td>\n",
" <td>NaN</td>\n",
" <td>0.838302</td>\n",
" <td>0.602113</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>NaN</td>\n",
" <td>14.000000</td>\n",
" <td>1.450000</td>\n",
" <td>39.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1.000000</td>\n",
" <td>NaN</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>NaN</td>\n",
" <td>20.000000</td>\n",
" <td>1.631856</td>\n",
" <td>66.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2.000000</td>\n",
" <td>3.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1.792022</td>\n",
" <td>NaN</td>\n",
" <td>0.008013</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>NaN</td>\n",
" <td>22.815416</td>\n",
" <td>1.700000</td>\n",
" <td>84.064875</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2.393837</td>\n",
" <td>3.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2.000000</td>\n",
" <td>NaN</td>\n",
" <td>1.000000</td>\n",
" <td>0.573887</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>NaN</td>\n",
" <td>26.000000</td>\n",
" <td>1.762887</td>\n",
" <td>111.600553</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2.549617</td>\n",
" <td>NaN</td>\n",
" <td>1.587406</td>\n",
" <td>1.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>NaN</td>\n",
" <td>61.000000</td>\n",
" <td>1.975663</td>\n",
" <td>165.057269</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>3.000000</td>\n",
" <td>4.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>3.000000</td>\n",
" <td>NaN</td>\n",
" <td>3.000000</td>\n",
" <td>2.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-208eb5bd-0abb-406e-ad14-8659b4b034e4')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-208eb5bd-0abb-406e-ad14-8659b4b034e4 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-208eb5bd-0abb-406e-ad14-8659b4b034e4');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-08412c35-8bcd-46c8-9a14-943531227738\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-08412c35-8bcd-46c8-9a14-943531227738')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <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",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-08412c35-8bcd-46c8-9a14-943531227738 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"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}"
}
},
"metadata": {},
"execution_count": 11
}
]
},
{
"cell_type": "code",
"source": [
"obesity.isnull().sum()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "V6CJxZQmj9M4",
"outputId": "d484e398-e3c3-4205-852c-2e925ec14e6c"
},
"execution_count": 12,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Gender 0\n",
"Age 0\n",
"Height 0\n",
"Weight 0\n",
"family_history_with_overweight 0\n",
"FAVC 0\n",
"FCVC 0\n",
"NCP 0\n",
"CAEC 0\n",
"SMOKE 0\n",
"CH2O 0\n",
"SCC 0\n",
"FAF 0\n",
"TUE 0\n",
"CALC 0\n",
"MTRANS 0\n",
"NObeyesdad 0\n",
"dtype: int64"
]
},
"metadata": {},
"execution_count": 12
}
]
},
{
"cell_type": "code",
"source": [
"obesity = obesity.replace({'no': 0, 'yes': 1})"
],
"metadata": {
"id": "0J2d8SegwcRM"
},
"execution_count": 13,
"outputs": []
},
{
"cell_type": "code",
"source": [
"obesity = pd.get_dummies(obesity, columns=['CALC', 'MTRANS', 'CAEC'], drop_first=True, dtype=int)"
],
"metadata": {
"id": "qOeru2jS1gDX"
},
"execution_count": 14,
"outputs": []
},
{
"cell_type": "code",
"source": [
"from sklearn.preprocessing import LabelEncoder"
],
"metadata": {
"id": "jpHbeEM62rMX"
},
"execution_count": 15,
"outputs": []
},
{
"cell_type": "code",
"source": [
"le = LabelEncoder()\n",
"obesity['NObeyesdad'] = le.fit_transform(obesity['NObeyesdad'])"
],
"metadata": {
"id": "V50FmFqV3ddb"
},
"execution_count": 16,
"outputs": []
},
{
"cell_type": "code",
"source": [
"obesity = obesity.replace({'Female': 0, 'Male': 1})"
],
"metadata": {
"id": "fLYlMrit7TIw"
},
"execution_count": 17,
"outputs": []
},
{
"cell_type": "code",
"source": [
"obesity.head()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 255
},
"id": "CYNIFtQOf2Dp",
"outputId": "1c75515f-0b64-48d0-d6a6-9d715cc56a37"
},
"execution_count": 18,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Gender Age Height Weight family_history_with_overweight \\\n",
"0 1 24.443011 1.699998 81.669950 1 \n",
"1 0 18.000000 1.560000 57.000000 1 \n",
"2 0 18.000000 1.711460 50.165754 1 \n",
"3 0 20.952737 1.710730 131.274851 1 \n",
"4 1 31.641081 1.914186 93.798055 1 \n",
"\n",
" FAVC FCVC NCP SMOKE CH2O ... NObeyesdad \\\n",
"0 1 2.000000 2.983297 0 2.763573 ... 6 \n",
"1 1 2.000000 3.000000 0 2.000000 ... 1 \n",
"2 1 1.880534 1.411685 0 1.910378 ... 0 \n",
"3 1 3.000000 3.000000 0 1.674061 ... 4 \n",
"4 1 2.679664 1.971472 0 1.979848 ... 6 \n",
"\n",
" CALC_Frequently CALC_Sometimes MTRANS_Bike MTRANS_Motorbike \\\n",
"0 0 1 0 0 \n",
"1 0 0 0 0 \n",
"2 0 0 0 0 \n",
"3 0 1 0 0 \n",
"4 0 1 0 0 \n",
"\n",
" MTRANS_Public_Transportation MTRANS_Walking CAEC_Always CAEC_Frequently \\\n",
"0 1 0 0 0 \n",
"1 0 0 0 1 \n",
"2 1 0 0 0 \n",
"3 1 0 0 0 \n",
"4 1 0 0 0 \n",
"\n",
" CAEC_Sometimes \n",
"0 1 \n",
"1 0 \n",
"2 1 \n",
"3 1 \n",
"4 1 \n",
"\n",
"[5 rows x 23 columns]"
],
"text/html": [
"\n",
" <div id=\"df-165f6e7b-7305-4b08-bb13-b6845d849474\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Gender</th>\n",
" <th>Age</th>\n",
" <th>Height</th>\n",
" <th>Weight</th>\n",
" <th>family_history_with_overweight</th>\n",
" <th>FAVC</th>\n",
" <th>FCVC</th>\n",
" <th>NCP</th>\n",
" <th>SMOKE</th>\n",
" <th>CH2O</th>\n",
" <th>...</th>\n",
" <th>NObeyesdad</th>\n",
" <th>CALC_Frequently</th>\n",
" <th>CALC_Sometimes</th>\n",
" <th>MTRANS_Bike</th>\n",
" <th>MTRANS_Motorbike</th>\n",
" <th>MTRANS_Public_Transportation</th>\n",
" <th>MTRANS_Walking</th>\n",
" <th>CAEC_Always</th>\n",
" <th>CAEC_Frequently</th>\n",
" <th>CAEC_Sometimes</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>24.443011</td>\n",
" <td>1.699998</td>\n",
" <td>81.669950</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2.000000</td>\n",
" <td>2.983297</td>\n",
" <td>0</td>\n",
" <td>2.763573</td>\n",
" <td>...</td>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0</td>\n",
" <td>18.000000</td>\n",
" <td>1.560000</td>\n",
" <td>57.000000</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2.000000</td>\n",
" <td>3.000000</td>\n",
" <td>0</td>\n",
" <td>2.000000</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0</td>\n",
" <td>18.000000</td>\n",
" <td>1.711460</td>\n",
" <td>50.165754</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1.880534</td>\n",
" <td>1.411685</td>\n",
" <td>0</td>\n",
" <td>1.910378</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0</td>\n",
" <td>20.952737</td>\n",
" <td>1.710730</td>\n",
" <td>131.274851</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>0</td>\n",
" <td>1.674061</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>31.641081</td>\n",
" <td>1.914186</td>\n",
" <td>93.798055</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2.679664</td>\n",
" <td>1.971472</td>\n",
" <td>0</td>\n",
" <td>1.979848</td>\n",
" <td>...</td>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 23 columns</p>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-165f6e7b-7305-4b08-bb13-b6845d849474')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-165f6e7b-7305-4b08-bb13-b6845d849474 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-165f6e7b-7305-4b08-bb13-b6845d849474');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-95f9d3fd-9a90-47cf-a507-bc831027082f\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-95f9d3fd-9a90-47cf-a507-bc831027082f')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <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",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-95f9d3fd-9a90-47cf-a507-bc831027082f button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "obesity"
}
},
"metadata": {},
"execution_count": 18
}
]
},
{
"cell_type": "code",
"source": [
"x = obesity.drop('NObeyesdad', axis=1)\n",
"y = obesity['NObeyesdad']"
],
"metadata": {
"id": "vuDx2r46g6QW"
},
"execution_count": 19,
"outputs": []
},
{
"cell_type": "code",
"source": [
"from sklearn.model_selection import train_test_split"
],
"metadata": {
"id": "NkPkWt2Pf3VU"
},
"execution_count": 20,
"outputs": []
},
{
"cell_type": "code",
"source": [
"x_train, x_test, y_train, y_test = train_test_split(x,y, test_size=0.3, random_state=420)"
],
"metadata": {
"id": "-VMmVgy7gG5b"
},
"execution_count": 21,
"outputs": []
},
{
"cell_type": "code",
"source": [
"from sklearn.preprocessing import StandardScaler"
],
"metadata": {
"id": "_ISfTDRCkKSI"
},
"execution_count": 22,
"outputs": []
},
{
"cell_type": "code",
"source": [
"sc = StandardScaler()\n",
"x_train = sc.fit_transform(x_train)\n",
"x_test = sc.transform(x_test)"
],
"metadata": {
"id": "oPP2gxC0mKO7"
},
"execution_count": 23,
"outputs": []
},
{
"cell_type": "code",
"source": [
"x_train.shape, x_test.shape,"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "dYU0eFSymd4M",
"outputId": "f3a4061b-a041-4296-cd93-e593e002e7ee"
},
"execution_count": 24,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"((14530, 22), (6228, 22))"
]
},
"metadata": {},
"execution_count": 24
}
]
},
{
"cell_type": "code",
"source": [
"x_train = x_train.reshape(-1, 22, 1)\n",
"x_test = x_test.reshape(-1, 22, 1)"
],
"metadata": {
"id": "tO8P2qtenKgP"
},
"execution_count": 25,
"outputs": []
},
{
"cell_type": "code",
"source": [
"y_train = y_train.to_numpy()\n",
"y_test = np.array(y_test)"
],
"metadata": {
"id": "DMoRT_etnhPn"
},
"execution_count": 26,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"# **MACHINE** **BUILDING**"
],
"metadata": {
"id": "kr5nNyfxsdhM"
}
},
{
"cell_type": "code",
"source": [
"model = tf.keras.models.Sequential()"
],
"metadata": {
"id": "YWt1Rjc0oJOS"
},
"execution_count": 54,
"outputs": []
},
{
"cell_type": "code",
"source": [
"model.add(tf.keras.layers.Conv1D(filters=32, kernel_size=2, padding='same', activation='relu', input_shape=(22, 1)))"
],
"metadata": {
"id": "nDwX5JNkoUiP"
},
"execution_count": 55,
"outputs": []
},
{
"cell_type": "code",
"source": [
"model.add(tf.keras.layers.BatchNormalization())"
],
"metadata": {
"id": "KCYQp3ohbZmS"
},
"execution_count": 56,
"outputs": []
},
{
"cell_type": "code",
"source": [
"model.add(tf.keras.layers.Dropout(0.2))"
],
"metadata": {
"id": "5wXC47y-bk_7"
},
"execution_count": 57,
"outputs": []
},
{
"cell_type": "code",
"source": [
"model.add(tf.keras.layers.Conv1D(filters=64, kernel_size=2, padding='same', activation='relu'))"
],
"metadata": {
"id": "0wuyVf2E2Gbx"
},
"execution_count": 58,
"outputs": []
},
{
"cell_type": "code",
"source": [
"model.add(tf.keras.layers.BatchNormalization())"
],
"metadata": {
"id": "sDOp77wn2Lvv"
},
"execution_count": 59,
"outputs": []
},
{
"cell_type": "code",
"source": [
"model.add(tf.keras.layers.Dropout(0.25))"
],
"metadata": {
"id": "A4MYvnac2O82"
},
"execution_count": 60,
"outputs": []
},
{
"cell_type": "code",
"source": [
"model.add(tf.keras.layers.Conv1D(filters=128, kernel_size=2, padding='same', activation='relu'))"
],
"metadata": {
"id": "LVlKDkQ7bu4N"
},
"execution_count": 61,
"outputs": []
},
{
"cell_type": "code",
"source": [
"model.add(tf.keras.layers.BatchNormalization())"
],
"metadata": {
"id": "Oo-KsBw5c12p"
},
"execution_count": 62,
"outputs": []
},
{
"cell_type": "code",
"source": [
"model.add(tf.keras.layers.Dropout(0.2))"
],
"metadata": {
"id": "ZY79oD2MdD56"
},
"execution_count": 63,
"outputs": []
},
{
"cell_type": "code",
"source": [
"model.add(tf.keras.layers.Conv1D(filters=256, kernel_size=2, padding='same', activation='relu'))"
],
"metadata": {
"id": "2pgl1DFt49nG"
},
"execution_count": 64,
"outputs": []
},
{
"cell_type": "code",
"source": [
"model.add(tf.keras.layers.BatchNormalization())"
],
"metadata": {
"id": "4inCVZdH5EuI"
},
"execution_count": 65,
"outputs": []
},
{
"cell_type": "code",
"source": [
"model.add(tf.keras.layers.Dropout(0.2))"
],
"metadata": {
"id": "aKDpmFaP5ZgS"
},
"execution_count": 66,
"outputs": []
},
{
"cell_type": "code",
"source": [
"model.add(tf.keras.layers.Flatten())"
],
"metadata": {
"id": "rK6wGfd9dYmT"
},
"execution_count": 67,
"outputs": []
},
{
"cell_type": "code",
"source": [
"model.add(tf.keras.layers.Dense(units=128, activation='relu'))"
],
"metadata": {
"id": "EW3WUbSedgY7"
},
"execution_count": 68,
"outputs": []
},
{
"cell_type": "code",
"source": [
"model.add(tf.keras.layers.Dense(units=7, activation='softmax'))"
],
"metadata": {
"id": "4wus8P11dzPy"
},
"execution_count": 69,
"outputs": []
},
{
"cell_type": "code",
"source": [
"model.summary()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "6AR8bicJe66l",
"outputId": "b2b153da-12c5-473b-dd42-a7e52777869b"
},
"execution_count": 70,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Model: \"sequential_2\"\n",
"_________________________________________________________________\n",
" Layer (type) Output Shape Param # \n",
"=================================================================\n",
" conv1d_4 (Conv1D) (None, 22, 32) 96 \n",
" \n",
" batch_normalization_4 (Bat (None, 22, 32) 128 \n",
" chNormalization) \n",
" \n",
" dropout_4 (Dropout) (None, 22, 32) 0 \n",
" \n",
" conv1d_5 (Conv1D) (None, 22, 64) 4160 \n",
" \n",
" batch_normalization_5 (Bat (None, 22, 64) 256 \n",
" chNormalization) \n",
" \n",
" dropout_5 (Dropout) (None, 22, 64) 0 \n",
" \n",
" conv1d_6 (Conv1D) (None, 22, 128) 16512 \n",
" \n",
" batch_normalization_6 (Bat (None, 22, 128) 512 \n",
" chNormalization) \n",
" \n",
" dropout_6 (Dropout) (None, 22, 128) 0 \n",
" \n",
" conv1d_7 (Conv1D) (None, 22, 256) 65792 \n",
" \n",
" batch_normalization_7 (Bat (None, 22, 256) 1024 \n",
" chNormalization) \n",
" \n",
" dropout_7 (Dropout) (None, 22, 256) 0 \n",
" \n",
" flatten_1 (Flatten) (None, 5632) 0 \n",
" \n",
" dense_2 (Dense) (None, 128) 721024 \n",
" \n",
" dense_3 (Dense) (None, 7) 903 \n",
" \n",
"=================================================================\n",
"Total params: 810407 (3.09 MB)\n",
"Trainable params: 809447 (3.09 MB)\n",
"Non-trainable params: 960 (3.75 KB)\n",
"_________________________________________________________________\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"# **MACHINE** **TRAINING**"
],
"metadata": {
"id": "tZxiJdlNr2bM"
}
},
{
"cell_type": "code",
"source": [
"opt = tf.keras.optimizers.Adam(learning_rate=0.000050)\n",
"model.compile(optimizer=opt, loss='sparse_categorical_crossentropy', metrics=['sparse_categorical_accuracy'])"
],
"metadata": {
"id": "yBOTK-Pke83C"
},
"execution_count": 71,
"outputs": []
},
{
"cell_type": "code",
"source": [
"epoch = 19\n",
"history = model.fit(x_train, y_train, batch_size=25, epochs=epoch, validation_data=(x_test, y_test))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "3NltZgSShXSy",
"outputId": "740a01dd-4c64-4fb9-f153-50f1d29dff4f"
},
"execution_count": 72,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Epoch 1/19\n",
"582/582 [==============================] - 23s 34ms/step - loss: 1.0794 - sparse_categorical_accuracy: 0.6048 - val_loss: 0.6232 - val_sparse_categorical_accuracy: 0.7662\n",
"Epoch 2/19\n",
"582/582 [==============================] - 20s 34ms/step - loss: 0.6903 - sparse_categorical_accuracy: 0.7352 - val_loss: 0.5123 - val_sparse_categorical_accuracy: 0.8056\n",
"Epoch 3/19\n",
"582/582 [==============================] - 20s 34ms/step - loss: 0.5885 - sparse_categorical_accuracy: 0.7725 - val_loss: 0.4840 - val_sparse_categorical_accuracy: 0.8211\n",
"Epoch 4/19\n",
"582/582 [==============================] - 19s 33ms/step - loss: 0.5389 - sparse_categorical_accuracy: 0.7919 - val_loss: 0.4336 - val_sparse_categorical_accuracy: 0.8426\n",
"Epoch 5/19\n",
"582/582 [==============================] - 20s 34ms/step - loss: 0.5009 - sparse_categorical_accuracy: 0.8098 - val_loss: 0.4327 - val_sparse_categorical_accuracy: 0.8410\n",
"Epoch 6/19\n",
"582/582 [==============================] - 20s 34ms/step - loss: 0.4891 - sparse_categorical_accuracy: 0.8131 - val_loss: 0.4251 - val_sparse_categorical_accuracy: 0.8463\n",
"Epoch 7/19\n",
"582/582 [==============================] - 20s 35ms/step - loss: 0.4644 - sparse_categorical_accuracy: 0.8228 - val_loss: 0.4056 - val_sparse_categorical_accuracy: 0.8590\n",
"Epoch 8/19\n",
"582/582 [==============================] - 20s 34ms/step - loss: 0.4439 - sparse_categorical_accuracy: 0.8329 - val_loss: 0.3961 - val_sparse_categorical_accuracy: 0.8614\n",
"Epoch 9/19\n",
"582/582 [==============================] - 20s 34ms/step - loss: 0.4402 - sparse_categorical_accuracy: 0.8352 - val_loss: 0.4004 - val_sparse_categorical_accuracy: 0.8600\n",
"Epoch 10/19\n",
"582/582 [==============================] - 20s 34ms/step - loss: 0.4263 - sparse_categorical_accuracy: 0.8420 - val_loss: 0.3974 - val_sparse_categorical_accuracy: 0.8587\n",
"Epoch 11/19\n",
"582/582 [==============================] - 21s 36ms/step - loss: 0.4143 - sparse_categorical_accuracy: 0.8474 - val_loss: 0.4026 - val_sparse_categorical_accuracy: 0.8608\n",
"Epoch 12/19\n",
"582/582 [==============================] - 20s 34ms/step - loss: 0.4130 - sparse_categorical_accuracy: 0.8472 - val_loss: 0.3883 - val_sparse_categorical_accuracy: 0.8667\n",
"Epoch 13/19\n",
"582/582 [==============================] - 19s 33ms/step - loss: 0.4018 - sparse_categorical_accuracy: 0.8478 - val_loss: 0.3817 - val_sparse_categorical_accuracy: 0.8656\n",
"Epoch 14/19\n",
"582/582 [==============================] - 20s 34ms/step - loss: 0.3949 - sparse_categorical_accuracy: 0.8525 - val_loss: 0.3867 - val_sparse_categorical_accuracy: 0.8656\n",
"Epoch 15/19\n",
"582/582 [==============================] - 20s 34ms/step - loss: 0.3943 - sparse_categorical_accuracy: 0.8530 - val_loss: 0.3826 - val_sparse_categorical_accuracy: 0.8656\n",
"Epoch 16/19\n",
"582/582 [==============================] - 20s 34ms/step - loss: 0.3777 - sparse_categorical_accuracy: 0.8587 - val_loss: 0.3850 - val_sparse_categorical_accuracy: 0.8701\n",
"Epoch 17/19\n",
"582/582 [==============================] - 20s 35ms/step - loss: 0.3833 - sparse_categorical_accuracy: 0.8570 - val_loss: 0.3850 - val_sparse_categorical_accuracy: 0.8659\n",
"Epoch 18/19\n",
"582/582 [==============================] - 19s 33ms/step - loss: 0.3725 - sparse_categorical_accuracy: 0.8637 - val_loss: 0.3794 - val_sparse_categorical_accuracy: 0.8687\n",
"Epoch 19/19\n",
"582/582 [==============================] - 21s 36ms/step - loss: 0.3679 - sparse_categorical_accuracy: 0.8622 - val_loss: 0.3783 - val_sparse_categorical_accuracy: 0.8701\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"# **MACHINE** **EVALUATION**"
],
"metadata": {
"id": "G3wyyLb9sv3o"
}
},
{
"cell_type": "code",
"source": [
"y_pred = np.argmax(model.predict(x_test), axis=-1)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "zvbW2GxNiGbv",
"outputId": "73ae7f61-5ac3-47bb-e5b0-9efa848a4fe6"
},
"execution_count": 73,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"195/195 [==============================] - 2s 7ms/step\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"from sklearn.metrics import accuracy_score"
],
"metadata": {
"id": "pBhJ2I3Zmfb7"
},
"execution_count": 74,
"outputs": []
},
{
"cell_type": "code",
"source": [
"a_s = accuracy_score(y_pred, y_test)"
],
"metadata": {
"id": "6u88A-kLmt6K"
},
"execution_count": 75,
"outputs": []
},
{
"cell_type": "code",
"source": [
"print(f\"Accuracy Score: {a_s * 100:.2f}\")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "BZNsAhISm75B",
"outputId": "ba473796-ebd3-48e4-8451-f22834d9a45b"
},
"execution_count": 76,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Accuracy Score: 87.01\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"def learning_curve(history, epoch):\n",
"\n",
" # training vs validation accuracy\n",
" epoch_range = range(1, epoch+1)\n",
" plt.plot(epoch_range, history.history['sparse_categorical_accuracy'])\n",
" plt.plot(epoch_range, history.history['val_sparse_categorical_accuracy'])\n",
" plt.title('Model Accuracy')\n",
" plt.ylabel('Accuracy')\n",
" plt.xlabel('Epoch')\n",
" plt.legend(['Train', 'val'], loc='upper left')\n",
" plt.show()\n",
"\n",
" # training vs validation loss\n",
" plt.plot(epoch_range, history.history['loss'])\n",
" plt.plot(epoch_range, history.history['val_loss'])\n",
" plt.title('Model Loss')\n",
" plt.ylabel('Loss')\n",
" plt.xlabel('Epoch')\n",
" plt.legend(['Train', 'val'], loc='upper left')\n",
" plt.show()"
],
"metadata": {
"id": "L-_y2OTMorAM"
},
"execution_count": 77,
"outputs": []
},
{
"cell_type": "code",
"source": [
"learning_curve(history, epoch)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 927
},
"id": "P3A4cCSJpMTW",
"outputId": "b4f21cd4-6c30-4abc-996a-6eb03162b7f4"
},
"execution_count": 78,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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6XUSkZFIvRorEdGDTJw4USgUCuHg4KD3eP/994UQQgAQL7/8st57wsLCxIwZM4QQQnz11VfC1dVV5OXl6V7fuXOnkMvlupXCfX19xdtvv11tDQDEO++8o3uel5cnAIhff/3VaNdJRKbDPkBEZBb69euHVatW6e1zc3PTbffo0UPvtR49euDs2bMAgMuXL6Njx45wcHDQvd6rVy9oNBrExMRAJpMhMTER/fv3r7GG0NBQ3baDgwOcnJyQmppa10siIgkxABGRWXBwcKh0S8pY7OzsanWctbW13nOZTAaNRlMfJRFRPWMfICJqFE6cOFHpedu2bQEAbdu2xblz55Cfn697/ejRo5DL5QgJCYGjoyMCAwMRFRVl0pqJSDpsASIis1BcXIzk5GS9fVZWVnB3dwcAbN26FV27dkXv3r2xYcMGREdHY82aNQCA8ePHY9GiRZg4cSIWL16MtLQ0vPrqq3jxxRfh5eUFAFi8eDFefvlleHp6YvDgwcjNzcXRo0fx6quvmvZCicgkGICIyCzs3r0bPj4+evtCQkJw5coVANoRWps3b8Yrr7wCHx8fbNq0CY888ggAwN7eHnv27MHs2bPRrVs32Nvb4/nnn8fy5ct155o4cSKKiorwySef4M0334S7uztGjBhhugskIpOSCSGE1EUQET0MmUyGHTt2YNiwYVKXQkRmgn2AiIiIyOIwABEREZHFYR8gIjJ7vJNPRIZiCxARERFZHAYgIiIisjgMQERERGRxGICIiIjI4jAAERERkcVhACIiIiKLwwBEREREFocBiIiIiCwOAxARERFZnP8HJ1qO2t3UXngAAAAASUVORK5CYII=\n"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"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"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"data = {\"real values\" : y_test, \"predicted values\" : y_pred}\n",
"comparism = pd.DataFrame(data)\n",
"comparism.head(10)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 363
},
"id": "T8q2_7WMpR9Q",
"outputId": "d31164aa-9a87-4c5e-dbf8-a124352301f6"
},
"execution_count": 79,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" real values predicted values\n",
"0 5 1\n",
"1 1 1\n",
"2 6 6\n",
"3 3 3\n",
"4 5 5\n",
"5 4 4\n",
"6 1 1\n",
"7 2 5\n",
"8 4 4\n",
"9 4 4"
],
"text/html": [
"\n",
" <div id=\"df-7397f5c0-5828-4fe1-91e2-ae0b1b0934f8\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>real values</th>\n",
" <th>predicted values</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>6</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-7397f5c0-5828-4fe1-91e2-ae0b1b0934f8')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-7397f5c0-5828-4fe1-91e2-ae0b1b0934f8 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-7397f5c0-5828-4fe1-91e2-ae0b1b0934f8');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-af6dcf37-0658-4284-9846-b481bd5c4b7d\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-af6dcf37-0658-4284-9846-b481bd5c4b7d')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <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",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-af6dcf37-0658-4284-9846-b481bd5c4b7d button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "comparism",
"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}"
}
},
"metadata": {},
"execution_count": 79
}
]
}
]
}