1294 lines
143 KiB
Plaintext
1294 lines
143 KiB
Plaintext
{
|
|
"nbformat": 4,
|
|
"nbformat_minor": 0,
|
|
"metadata": {
|
|
"colab": {
|
|
"provenance": []
|
|
},
|
|
"kernelspec": {
|
|
"name": "python3",
|
|
"display_name": "Python 3"
|
|
},
|
|
"language_info": {
|
|
"name": "python"
|
|
}
|
|
},
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "uVOmD_9-6VWm",
|
|
"outputId": "212bad23-fe21-439d-b32d-77a9b9a7e66d"
|
|
},
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
"diabetes.csv sample_data\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"!ls"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"import pandas as pd\n",
|
|
"df = pd.read_csv('/content/diabetes.csv', sep=';')\n",
|
|
"df.head()"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 243
|
|
},
|
|
"id": "TfqKQoQy9k3h",
|
|
"outputId": "cf231f69-70fa-453c-b10b-86cd66bc9a1c"
|
|
},
|
|
"execution_count": 7,
|
|
"outputs": [
|
|
{
|
|
"output_type": "execute_result",
|
|
"data": {
|
|
"text/plain": [
|
|
" Pregnancies Glucose BloodPressure SkinThickness Insulin BMI \\\n",
|
|
"0 2 138 62 35 0 33.6 \n",
|
|
"1 0 84 82 31 125 38.2 \n",
|
|
"2 0 145 0 0 0 44.2 \n",
|
|
"3 0 135 68 42 250 42.3 \n",
|
|
"4 1 139 62 41 480 40.7 \n",
|
|
"\n",
|
|
" Diabetes PedigreeFunction Age Outcome Unnamed: 9 Unnamed: 10 \n",
|
|
"0 0.127 47 1 NaN NaN \n",
|
|
"1 0.233 23 0 NaN NaN \n",
|
|
"2 0.630 31 1 NaN NaN \n",
|
|
"3 0.365 24 1 NaN NaN \n",
|
|
"4 0.536 21 0 NaN NaN "
|
|
],
|
|
"text/html": [
|
|
"\n",
|
|
" <div id=\"df-36ae2f18-cfc7-4904-bba5-afc4a490fc40\" 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>Pregnancies</th>\n",
|
|
" <th>Glucose</th>\n",
|
|
" <th>BloodPressure</th>\n",
|
|
" <th>SkinThickness</th>\n",
|
|
" <th>Insulin</th>\n",
|
|
" <th>BMI</th>\n",
|
|
" <th>Diabetes PedigreeFunction</th>\n",
|
|
" <th>Age</th>\n",
|
|
" <th>Outcome</th>\n",
|
|
" <th>Unnamed: 9</th>\n",
|
|
" <th>Unnamed: 10</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>2</td>\n",
|
|
" <td>138</td>\n",
|
|
" <td>62</td>\n",
|
|
" <td>35</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>33.6</td>\n",
|
|
" <td>0.127</td>\n",
|
|
" <td>47</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>0</td>\n",
|
|
" <td>84</td>\n",
|
|
" <td>82</td>\n",
|
|
" <td>31</td>\n",
|
|
" <td>125</td>\n",
|
|
" <td>38.2</td>\n",
|
|
" <td>0.233</td>\n",
|
|
" <td>23</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>0</td>\n",
|
|
" <td>145</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>44.2</td>\n",
|
|
" <td>0.630</td>\n",
|
|
" <td>31</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>0</td>\n",
|
|
" <td>135</td>\n",
|
|
" <td>68</td>\n",
|
|
" <td>42</td>\n",
|
|
" <td>250</td>\n",
|
|
" <td>42.3</td>\n",
|
|
" <td>0.365</td>\n",
|
|
" <td>24</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>139</td>\n",
|
|
" <td>62</td>\n",
|
|
" <td>41</td>\n",
|
|
" <td>480</td>\n",
|
|
" <td>40.7</td>\n",
|
|
" <td>0.536</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>0</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-36ae2f18-cfc7-4904-bba5-afc4a490fc40')\"\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-36ae2f18-cfc7-4904-bba5-afc4a490fc40 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-36ae2f18-cfc7-4904-bba5-afc4a490fc40');\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>\n",
|
|
" </div>\n"
|
|
],
|
|
"application/vnd.google.colaboratory.intrinsic+json": {
|
|
"type": "dataframe",
|
|
"variable_name": "df",
|
|
"summary": "{\n \"name\": \"df\",\n \"rows\": 2000,\n \"fields\": [\n {\n \"column\": \"Pregnancies\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 3,\n \"min\": 0,\n \"max\": 17,\n \"num_unique_values\": 17,\n \"samples\": [\n 2,\n 0,\n 3\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Glucose\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 32,\n \"min\": 0,\n \"max\": 199,\n \"num_unique_values\": 136,\n \"samples\": [\n 124,\n 100,\n 136\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"BloodPressure\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 19,\n \"min\": 0,\n \"max\": 122,\n \"num_unique_values\": 47,\n \"samples\": [\n 44,\n 100,\n 48\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"SkinThickness\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 16,\n \"min\": 0,\n \"max\": 110,\n \"num_unique_values\": 53,\n \"samples\": [\n 47,\n 16,\n 8\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Insulin\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 111,\n \"min\": 0,\n \"max\": 744,\n \"num_unique_values\": 182,\n \"samples\": [\n 70,\n 135,\n 330\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"BMI\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 8.149900701279764,\n \"min\": 0.0,\n \"max\": 80.6,\n \"num_unique_values\": 247,\n \"samples\": [\n 24.0,\n 25.6,\n 21.8\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Diabetes PedigreeFunction\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.3235525586811428,\n \"min\": 0.078,\n \"max\": 2.42,\n \"num_unique_values\": 505,\n \"samples\": [\n 0.142,\n 1.476,\n 0.488\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Age\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 11,\n \"min\": 21,\n \"max\": 81,\n \"num_unique_values\": 52,\n \"samples\": [\n 38,\n 52,\n 81\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Outcome\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 1,\n \"num_unique_values\": 2,\n \"samples\": [\n 0,\n 1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Unnamed: 9\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": null,\n \"min\": null,\n \"max\": null,\n \"num_unique_values\": 0,\n \"samples\": [],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Unnamed: 10\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1,\n \"samples\": [],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
|
|
}
|
|
},
|
|
"metadata": {},
|
|
"execution_count": 7
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"df.shape\n",
|
|
"df.info()"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "q-EJfxT_-XtN",
|
|
"outputId": "fa050bbd-adb4-4926-c46d-35b843d13088"
|
|
},
|
|
"execution_count": 8,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
"<class 'pandas.core.frame.DataFrame'>\n",
|
|
"RangeIndex: 2000 entries, 0 to 1999\n",
|
|
"Data columns (total 11 columns):\n",
|
|
" # Column Non-Null Count Dtype \n",
|
|
"--- ------ -------------- ----- \n",
|
|
" 0 Pregnancies 2000 non-null int64 \n",
|
|
" 1 Glucose 2000 non-null int64 \n",
|
|
" 2 BloodPressure 2000 non-null int64 \n",
|
|
" 3 SkinThickness 2000 non-null int64 \n",
|
|
" 4 Insulin 2000 non-null int64 \n",
|
|
" 5 BMI 2000 non-null float64\n",
|
|
" 6 Diabetes PedigreeFunction 2000 non-null float64\n",
|
|
" 7 Age 2000 non-null int64 \n",
|
|
" 8 Outcome 2000 non-null int64 \n",
|
|
" 9 Unnamed: 9 0 non-null float64\n",
|
|
" 10 Unnamed: 10 1 non-null object \n",
|
|
"dtypes: float64(3), int64(7), object(1)\n",
|
|
"memory usage: 172.0+ KB\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"df = df.drop(columns=['Unnamed: 9', 'Unnamed: 10'])\n",
|
|
"df.info()\n"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "Sc2nNway-_qE",
|
|
"outputId": "d0f50d74-f13b-4e51-f263-46f31226ee1c"
|
|
},
|
|
"execution_count": 9,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
"<class 'pandas.core.frame.DataFrame'>\n",
|
|
"RangeIndex: 2000 entries, 0 to 1999\n",
|
|
"Data columns (total 9 columns):\n",
|
|
" # Column Non-Null Count Dtype \n",
|
|
"--- ------ -------------- ----- \n",
|
|
" 0 Pregnancies 2000 non-null int64 \n",
|
|
" 1 Glucose 2000 non-null int64 \n",
|
|
" 2 BloodPressure 2000 non-null int64 \n",
|
|
" 3 SkinThickness 2000 non-null int64 \n",
|
|
" 4 Insulin 2000 non-null int64 \n",
|
|
" 5 BMI 2000 non-null float64\n",
|
|
" 6 Diabetes PedigreeFunction 2000 non-null float64\n",
|
|
" 7 Age 2000 non-null int64 \n",
|
|
" 8 Outcome 2000 non-null int64 \n",
|
|
"dtypes: float64(2), int64(7)\n",
|
|
"memory usage: 140.8 KB\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"df.isnull().sum()\n",
|
|
"(df[['Glucose','BloodPressure','SkinThickness','Insulin','BMI']] == 0).sum()\n"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 241
|
|
},
|
|
"id": "mU2TRvFWATia",
|
|
"outputId": "d6bcbae5-51c1-4221-c1ce-f6c3716b11bd"
|
|
},
|
|
"execution_count": 10,
|
|
"outputs": [
|
|
{
|
|
"output_type": "execute_result",
|
|
"data": {
|
|
"text/plain": [
|
|
"Glucose 13\n",
|
|
"BloodPressure 90\n",
|
|
"SkinThickness 573\n",
|
|
"Insulin 956\n",
|
|
"BMI 28\n",
|
|
"dtype: int64"
|
|
],
|
|
"text/html": [
|
|
"<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>0</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>Glucose</th>\n",
|
|
" <td>13</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>BloodPressure</th>\n",
|
|
" <td>90</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>SkinThickness</th>\n",
|
|
" <td>573</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Insulin</th>\n",
|
|
" <td>956</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>BMI</th>\n",
|
|
" <td>28</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div><br><label><b>dtype:</b> int64</label>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"execution_count": 10
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"\n",
|
|
"cols = ['Glucose','BloodPressure','SkinThickness','Insulin','BMI']\n",
|
|
"df[cols] = df[cols].replace(0, np.nan)\n",
|
|
"\n",
|
|
"df[cols] = df[cols].fillna(df[cols].median())\n",
|
|
"df.isnull().sum()\n"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 366
|
|
},
|
|
"id": "-wKpE4AWA8Fj",
|
|
"outputId": "cfd0a15e-437f-4845-a874-9a022473511e"
|
|
},
|
|
"execution_count": 11,
|
|
"outputs": [
|
|
{
|
|
"output_type": "execute_result",
|
|
"data": {
|
|
"text/plain": [
|
|
"Pregnancies 0\n",
|
|
"Glucose 0\n",
|
|
"BloodPressure 0\n",
|
|
"SkinThickness 0\n",
|
|
"Insulin 0\n",
|
|
"BMI 0\n",
|
|
"Diabetes PedigreeFunction 0\n",
|
|
"Age 0\n",
|
|
"Outcome 0\n",
|
|
"dtype: int64"
|
|
],
|
|
"text/html": [
|
|
"<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>0</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>Pregnancies</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Glucose</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>BloodPressure</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>SkinThickness</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Insulin</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>BMI</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Diabetes PedigreeFunction</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Age</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Outcome</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div><br><label><b>dtype:</b> int64</label>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"execution_count": 11
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"cols = ['Glucose','BloodPressure','SkinThickness','Insulin','BMI']\n",
|
|
"df[cols] = df[cols].replace(0, np.nan)\n",
|
|
"\n",
|
|
"df.isnull().sum()"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 366
|
|
},
|
|
"id": "8EhVeZzyBayA",
|
|
"outputId": "f764938c-a32a-4076-f4e5-04709b326f9b"
|
|
},
|
|
"execution_count": 12,
|
|
"outputs": [
|
|
{
|
|
"output_type": "execute_result",
|
|
"data": {
|
|
"text/plain": [
|
|
"Pregnancies 0\n",
|
|
"Glucose 0\n",
|
|
"BloodPressure 0\n",
|
|
"SkinThickness 0\n",
|
|
"Insulin 0\n",
|
|
"BMI 0\n",
|
|
"Diabetes PedigreeFunction 0\n",
|
|
"Age 0\n",
|
|
"Outcome 0\n",
|
|
"dtype: int64"
|
|
],
|
|
"text/html": [
|
|
"<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>0</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>Pregnancies</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Glucose</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>BloodPressure</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>SkinThickness</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Insulin</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>BMI</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Diabetes PedigreeFunction</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Age</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Outcome</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div><br><label><b>dtype:</b> int64</label>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"execution_count": 12
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"import pandas as pd\n",
|
|
"\n",
|
|
"num_cols = [\n",
|
|
" 'Pregnancies','Glucose','BloodPressure',\n",
|
|
" 'SkinThickness','Insulin','BMI',\n",
|
|
" 'Diabetes PedigreeFunction','Age'\n",
|
|
"]\n",
|
|
"\n",
|
|
"outlier_count = {}\n",
|
|
"\n",
|
|
"for col in num_cols:\n",
|
|
" Q1 = df[col].quantile(0.25)\n",
|
|
" Q3 = df[col].quantile(0.75)\n",
|
|
" IQR = Q3 - Q1\n",
|
|
"\n",
|
|
" lower = Q1 - 1.5 * IQR\n",
|
|
" upper = Q3 + 1.5 * IQR\n",
|
|
"\n",
|
|
" outliers = df[(df[col] < lower) | (df[col] > upper)]\n",
|
|
" outlier_count[col] = outliers.shape[0]\n",
|
|
"\n",
|
|
"pd.Series(outlier_count)\n"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 335
|
|
},
|
|
"id": "WP5eOsdHCUK8",
|
|
"outputId": "f5775d99-c42c-4b3d-ed47-e2c33b6117aa"
|
|
},
|
|
"execution_count": 13,
|
|
"outputs": [
|
|
{
|
|
"output_type": "execute_result",
|
|
"data": {
|
|
"text/plain": [
|
|
"Pregnancies 12\n",
|
|
"Glucose 0\n",
|
|
"BloodPressure 35\n",
|
|
"SkinThickness 229\n",
|
|
"Insulin 817\n",
|
|
"BMI 30\n",
|
|
"Diabetes PedigreeFunction 68\n",
|
|
"Age 48\n",
|
|
"dtype: int64"
|
|
],
|
|
"text/html": [
|
|
"<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>0</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>Pregnancies</th>\n",
|
|
" <td>12</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Glucose</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>BloodPressure</th>\n",
|
|
" <td>35</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>SkinThickness</th>\n",
|
|
" <td>229</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Insulin</th>\n",
|
|
" <td>817</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>BMI</th>\n",
|
|
" <td>30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Diabetes PedigreeFunction</th>\n",
|
|
" <td>68</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Age</th>\n",
|
|
" <td>48</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div><br><label><b>dtype:</b> int64</label>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"execution_count": 13
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"num_cols = [\n",
|
|
" 'Pregnancies','BloodPressure','SkinThickness',\n",
|
|
" 'Insulin','BMI','Diabetes PedigreeFunction','Age'\n",
|
|
"]\n",
|
|
"\n",
|
|
"for col in num_cols:\n",
|
|
" Q1 = df[col].quantile(0.25)\n",
|
|
" Q3 = df[col].quantile(0.75)\n",
|
|
" IQR = Q3 - Q1\n",
|
|
"\n",
|
|
" lower = Q1 - 1.5 * IQR\n",
|
|
" upper = Q3 + 1.5 * IQR\n",
|
|
"\n",
|
|
" df[col] = df[col].clip(lower, upper)\n",
|
|
"\n",
|
|
" df.describe()\n",
|
|
"\n"
|
|
],
|
|
"metadata": {
|
|
"id": "XLm0YHRXC2uT"
|
|
},
|
|
"execution_count": 14,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"outlier_after = {}\n",
|
|
"\n",
|
|
"for col in num_cols:\n",
|
|
" Q1 = df[col].quantile(0.25)\n",
|
|
" Q3 = df[col].quantile(0.75)\n",
|
|
" IQR = Q3 - Q1\n",
|
|
"\n",
|
|
" lower = Q1 - 1.5 * IQR\n",
|
|
" upper = Q3 + 1.5 * IQR\n",
|
|
"\n",
|
|
" outlier_after[col] = df[(df[col] < lower) | (df[col] > upper)].shape[0]\n",
|
|
"\n",
|
|
"pd.Series(outlier_after)\n"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 303
|
|
},
|
|
"id": "R75cTfkADHhz",
|
|
"outputId": "3525ce41-2750-4931-9a60-b972738b0e08"
|
|
},
|
|
"execution_count": 15,
|
|
"outputs": [
|
|
{
|
|
"output_type": "execute_result",
|
|
"data": {
|
|
"text/plain": [
|
|
"Pregnancies 0\n",
|
|
"BloodPressure 0\n",
|
|
"SkinThickness 0\n",
|
|
"Insulin 0\n",
|
|
"BMI 0\n",
|
|
"Diabetes PedigreeFunction 0\n",
|
|
"Age 0\n",
|
|
"dtype: int64"
|
|
],
|
|
"text/html": [
|
|
"<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>0</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>Pregnancies</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>BloodPressure</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>SkinThickness</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Insulin</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>BMI</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Diabetes PedigreeFunction</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>Age</th>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div><br><label><b>dtype:</b> int64</label>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"execution_count": 15
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"X = df.drop('Outcome', axis=1)\n",
|
|
"y = df['Outcome']"
|
|
],
|
|
"metadata": {
|
|
"id": "rkGwhdo5Ebpf"
|
|
},
|
|
"execution_count": 16,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"from sklearn.model_selection import train_test_split\n",
|
|
"\n",
|
|
"X_train, X_test, y_train, y_test = train_test_split(\n",
|
|
" X, y,\n",
|
|
" test_size=0.2,\n",
|
|
" random_state=42,\n",
|
|
" stratify=y\n",
|
|
")\n"
|
|
],
|
|
"metadata": {
|
|
"id": "-y7FrCV0EpkP"
|
|
},
|
|
"execution_count": 17,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"from sklearn.preprocessing import StandardScaler\n",
|
|
"\n",
|
|
"scaler = StandardScaler()\n",
|
|
"X_train = scaler.fit_transform(X_train)\n",
|
|
"X_test = scaler.transform(X_test)\n"
|
|
],
|
|
"metadata": {
|
|
"id": "GWIDp3MhE0u9"
|
|
},
|
|
"execution_count": 18,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"from sklearn.neighbors import KNeighborsClassifier\n",
|
|
"from sklearn.naive_bayes import GaussianNB\n",
|
|
"from sklearn.tree import DecisionTreeClassifier\n",
|
|
"\n",
|
|
"knn = KNeighborsClassifier(n_neighbors=5)\n",
|
|
"nb = GaussianNB()\n",
|
|
"dt = DecisionTreeClassifier(random_state=42)"
|
|
],
|
|
"metadata": {
|
|
"id": "mb-fDCdYLigo"
|
|
},
|
|
"execution_count": 19,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"from sklearn.model_selection import cross_val_score\n",
|
|
"\n",
|
|
"cv_knn = cross_val_score(knn, X_train, y_train, cv=5, scoring='accuracy')\n",
|
|
"cv_nb = cross_val_score(nb, X_train, y_train, cv=5, scoring='accuracy')\n",
|
|
"cv_dt = cross_val_score(dt, X_train, y_train, cv=5, scoring='accuracy')\n",
|
|
"\n",
|
|
"print(\"KNN Mean CV Accuracy :\", cv_knn.mean())\n",
|
|
"print(\"Naive Bayes Mean CV Accuracy:\", cv_nb.mean())\n",
|
|
"print(\"Decision Tree Mean CV Acc. :\", cv_dt.mean())"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "2asRjILuOmcF",
|
|
"outputId": "76e4843b-8c2d-4b7c-e489-817e97965b4b"
|
|
},
|
|
"execution_count": 20,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
"KNN Mean CV Accuracy : 0.79125\n",
|
|
"Naive Bayes Mean CV Accuracy: 0.7481249999999999\n",
|
|
"Decision Tree Mean CV Acc. : 0.9525\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"from sklearn.naive_bayes import GaussianNB\n",
|
|
"from sklearn.metrics import accuracy_score\n",
|
|
"\n",
|
|
"nb = GaussianNB()\n",
|
|
"nb.fit(X_train, y_train)\n",
|
|
"\n",
|
|
"y_pred_nb = nb.predict(X_test)\n",
|
|
"accuracy_nb = accuracy_score(y_test, y_pred_nb)\n",
|
|
"\n",
|
|
"accuracy_nb\n",
|
|
"\n",
|
|
"from sklearn.metrics import classification_report\n",
|
|
"\n",
|
|
"report = classification_report(y_test, y_pred_nb)\n",
|
|
"print(report)"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "FMVMBxksE-36",
|
|
"outputId": "b205a343-3813-4765-c71a-0f330ea26b05"
|
|
},
|
|
"execution_count": 21,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
" precision recall f1-score support\n",
|
|
"\n",
|
|
" 0 0.85 0.86 0.85 263\n",
|
|
" 1 0.72 0.70 0.71 137\n",
|
|
"\n",
|
|
" accuracy 0.81 400\n",
|
|
" macro avg 0.78 0.78 0.78 400\n",
|
|
"weighted avg 0.80 0.81 0.80 400\n",
|
|
"\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"\n",
|
|
"# Confusion Matrix\n",
|
|
"cm = confusion_matrix(y_test, y_pred_nb)\n",
|
|
"\n",
|
|
"disp = ConfusionMatrixDisplay(\n",
|
|
" confusion_matrix=cm,\n",
|
|
" display_labels=['Non-Diabetes', 'Diabetes']\n",
|
|
")\n",
|
|
"\n",
|
|
"disp.plot(cmap='Reds')\n",
|
|
"plt.title('Confusion Matrix - Naive Bayes')\n",
|
|
"plt.show()\n"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 472
|
|
},
|
|
"id": "BXcbeyteMEN9",
|
|
"outputId": "1fcc5050-f3c9-48c4-f41f-3bb0f873799d"
|
|
},
|
|
"execution_count": 22,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 2 Axes>"
|
|
],
|
|
"image/png": "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/1O8sIh87Nixonz58sLGxkb06tVLzJkzR6hUKnl/zmd64cKFwtnZWVhYWIiePXuK+/fva50/IiJCNGjQQJibm4ty5cqJli1bis2bN8v7ly5dKlxcXIRCoRCtWrXSadySJUtEgwYNhLW1tbCzsxNt27YV586dK9w3jugFkhD/W91KRERERDrhXXhEREREemICRURERKQnJlBEREREemICRURERKQnJlBEREREemICRURERKQnJlBEREREemICRUQlUlBQELp16ya/bt26NT755JNXHsehQ4cgSRIePHiQbx9JkrB161adjxkSEoIGDRoYFdf169chSRKioqKMOg4RGYYJFBHpLCgoCJIkQZIkmJubo3r16ggNDUVWVlaRn3vz5s2YNm2aTn11SXqIiIzB78IjIr34+fkhPDwc6enp+OWXXzBs2DCULVsW48ePz9U3IyND/oJYY/FLYYmoJGEFioj0olQqoVar4erqio8//hg+Pj7Yvn07gP+fdvvqq6/g7OwMT09PAEBCQgL8/f1hb28PBwcHdO3aFdevX5ePmZ2djdGjR8Pe3h7ly5fHZ599hhe/ZerFKbz09HSMGzcOLi4uUCqVqF69OpYvX47r16+jTZs2AIBy5cpBkiQEBQUBADQaDcLCwuDu7g5LS0vUr18fmzZt0jrPL7/8gpo1a8LS0hJt2rTRilNX48aNQ82aNWFlZQUPDw9MmjQJmZmZufr98MMPcHFxgZWVFfz9/fHw4UOt/cuWLYOXlxcsLCxQq1atQvvCayIyHhMoIjKKpaUlMjIy5Nf79+9HTEwM9u7di507dyIzMxO+vr6wtbXF0aNHcfz4cdjY2MDPz08eN2vWLKxYsQI//vgjjh07hvv372PLli0vPW+/fv3w008/Yd68eYiOjsYPP/wAGxsbuLi44OeffwYAxMTEIDExEXPnzgUAhIWFYdWqVVi8eDH++OMPBAcHo2/fvjh8+DCAZ4le9+7d0aVLF0RFRWHQoEH4/PPP9X5PbG1tsWLFCly5cgVz587F0qVLMWfOHK0+cXFx2LBhA3bs2IE9e/bg/PnzGDp0qLw/IiICkydPxldffYXo6GhMnz4dkyZNwsqVK/WOh4iKQDF/mTERmZDAwEDRtWtXIYQQGo1G7N27VyiVSjFmzBh5f6VKlUR6ero8ZvXq1cLT01NoNBq5LT09XVhaWopff/1VCCGEk5OT+Oabb+T9mZmZokqVKvK5hBCiVatWYtSoUUIIIWJiYgQAsXfv3jzjPHjwoAAg/v33X7ktLS1NWFlZiRMnTmj1HThwoOjTp48QQojx48eL2rVra+0fN25crmO9CIDYsmVLvvtnzpwpGjduLL+eMmWKMDMzE7du3ZLbdu/eLRQKhUhMTBRCCFGtWjWxdu1areNMmzZNeHt7CyGEiI+PFwDE+fPn8z0vERUdroEiIr3s3LkTNjY2yMzMhEajwfvvv4+QkBB5f926dbXWPV24cAFxcXGwtbXVOk5aWhquXr2Khw8fIjExEc2aNZP3lSlTBk2aNMk1jZcjKioKZmZmaNWqlc5xx8XF4cmTJ2jXrp1We0ZGBho2bAgAiI6O1ooDALy9vXU+R47169dj3rx5uHr1KlJTU5GVlQU7OzutPlWrVkXlypW1zqPRaBATEwNbW1tcvXoVAwcOxODBg+U+WVlZUKlUesdDRIWPCRQR6aVNmzZYtGgRzM3N4ezsjDJltP8asba21nqdmpqKxo0bIyIiItexKlasaFAMlpaWeo9JTU0FAOzatUsrcQGeresqLJGRkQgICMDUqVPh6+sLlUqFdevWYdasWXrHunTp0lwJnZmZWaHFSkSGYwJFRHqxtrZG9erVde7fqFEjrF+/Ho6OjrmqMDmcnJxw6tQptGzZEsCzSsvZs2fRqFGjPPvXrVsXGo0Ghw8fho+PT679ORWw7Oxsua127dpQKpW4efNmvpUrLy8veUF8jpMnTxZ8kc85ceIEXF1dMWHCBLntxo0bufrdvHkTt2/fhrOzs3wehUIBT09PVKpUCc7Ozrh27RoCAgL0Oj8RvRpcRE5ERSogIAAVKlRA165dcfToUcTHx+PQoUMYOXIkbt26BQAYNWoUZsyYga1bt+LPP//E0KFDX/oMJzc3NwQGBmLAgAHYunWrfMwNGzYAAFxdXSFJEnbu3Il//vkHqampsLW1xZgxYxAcHIyVK1fi6tWrOHfuHObPny8vzP7oo48QGxuLsWPHIiYmBmvXrsWKFSv0ut4aNWrg5s2bWLduHa5evYp58+bluSDewsICgYGBuHDhAo4ePYqRI0fC398farUaADB16lSEhYVh3rx5+Ouvv3Dp0iWEh4dj9uzZesVDREWDCRQRFSkrKyscOXIEVatWRffu3eHl5YWBAwciLS1Nrkh9+umn+OCDDxAYGAhvb2/Y2tri3XfffelxFy1ahJ49e2Lo0KGoVasWBg8ejMePHwMAKleujKlTp+Lzzz9HpUqVMHz4cADAtGnTMGnSJISFhcHLywt+fn7YtWsX3N3dATxbl/Tzzz9j69atqF+/PhYvXozp06frdb3vvPMOgoODMXz4cDRo0AAnTpzApEmTcvWrXr06unfvjo4dO6J9+/aoV6+e1mMKBg0ahGXLliE8PBx169ZFq1atsGLFCjlWIipekshvlSYRERER5YkVKCIiIiI9MYEiIiIi0hMTKCIiIiI9MYEiIiIi0hMTKCIiIiI9MYEiIiIi0hMTKCIiIiI9MYEiIiIi0hMTKCIiIiI9MYEiIiIi0hMTKCIiIiI9MYEiIiIi0tP/AQ6hWLzwoiYnAAAAAElFTkSuQmCC\n"
|
|
},
|
|
"metadata": {}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"from sklearn.neighbors import KNeighborsClassifier\n",
|
|
"from sklearn.metrics import accuracy_score\n",
|
|
"\n",
|
|
"knn = KNeighborsClassifier(n_neighbors=5)\n",
|
|
"knn.fit(X_train, y_train)\n",
|
|
"\n",
|
|
"y_pred_knn = knn.predict(X_test)\n",
|
|
"accuracy_knn = accuracy_score(y_test, y_pred_knn)\n",
|
|
"\n",
|
|
"accuracy_knn\n",
|
|
"\n",
|
|
"from sklearn.metrics import classification_report\n",
|
|
"\n",
|
|
"report = classification_report(y_test, y_pred_knn)\n",
|
|
"print(report)\n",
|
|
"\n"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "frRBf9SAFO1Y",
|
|
"outputId": "3277dfa5-d0cd-42f4-d2f9-b52af1752aaa"
|
|
},
|
|
"execution_count": 23,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
" precision recall f1-score support\n",
|
|
"\n",
|
|
" 0 0.85 0.89 0.87 263\n",
|
|
" 1 0.76 0.70 0.73 137\n",
|
|
"\n",
|
|
" accuracy 0.82 400\n",
|
|
" macro avg 0.81 0.79 0.80 400\n",
|
|
"weighted avg 0.82 0.82 0.82 400\n",
|
|
"\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"\n",
|
|
"# Confusion Matrix\n",
|
|
"cm = confusion_matrix(y_test, y_pred_knn)\n",
|
|
"\n",
|
|
"disp = ConfusionMatrixDisplay(\n",
|
|
" confusion_matrix=cm,\n",
|
|
" display_labels=['Non-Diabetes', 'Diabetes']\n",
|
|
")\n",
|
|
"\n",
|
|
"disp.plot(cmap='Blues')\n",
|
|
"plt.title('Confusion Matrix - KNN')\n",
|
|
"plt.show()"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 472
|
|
},
|
|
"id": "BgEP_T6_Now4",
|
|
"outputId": "7288209d-016f-454b-b06a-07ede17b7ab4"
|
|
},
|
|
"execution_count": 24,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 2 Axes>"
|
|
],
|
|
"image/png": "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w184prCwEB999BE6duyI1157DQCQkpICY2NjWFlZafS1s7NDSkqKus/TyVNRe1GbtngVHhEREelEEKDnVXhP/u/27dsaU3hyufyFQ4ODg3H9+nWcOnVK9/PrgQkUERER6USAnrcx+F8GpVAoJK2BGjt2LPbv348TJ06gTp066v0qlQq5ubl48OCBRhUqNTUVKpVK3ee3337TOF7RVXpFfbTBKTwiIiIyCKIoYuzYsdizZw+OHj2KevXqabS3adMG1atXxy+//KLeFxsbi6SkJLi7uwMA3N3dce3aNdy9e1fd5/Dhw1AoFGjSpInWsbACRURERDp52TfSDA4OxpYtW7B3715YWlqq1ywplUqYmppCqVQiKCgIEydOhLW1NRQKBT788EO4u7ujQ4cOAICePXuiSZMmePvttzFv3jykpKRg+vTpCA4O1mrqsAgTKCIiItKNAPU6Jp3HS7By5UoAgKenp8b+9evXIzAwEACwePFiyGQyDBo0CDk5OfD29saKFSvUfY2MjLB//3588MEHcHd3h7m5OQICAhAWFiYpFiZQREREZBC0uXWliYkJli9fjuXLl5fax8nJCT/++KNesTCBIiIiIt3oOYUnGvCz8JhAERERkU70XQOl3xV8FYsJFBEREemkKidQvI0BERERkUSsQBEREZFuXvJVeJUJEygiIiLSCafwiIiIiEhrrEARERGRTqpyBYoJFBEREemkKidQnMIjIiIikogVKCIiItJJVa5AMYEiIiIi3VTh2xhwCo+IiIhIIlagiIiISCecwiMiIiKSiAkUERERkURVOYHiGigiIiIiiViBIiIiIt1U4avwmEARERGRTjiFR0RERERaYwVKCyEhIYiMjER0dLTWYwRBwJ49ezBgwIByi4sqrwmBPdGnaws0dLJDdk4efrt6AyFf70X8rbvqPounDYXH665Q1VQi63EOfruaiJBlexF3KxUAUENpjtWzA9C0QW1YK83w7/1M/Hj8Kmav2IeHWdkV9daISrR250ms23USt5PTAACNXVSYHOSLHh2bAgCyc/Iw/avd2H34InJz89GtgxsWTB0CWxtFRYZNemIFqoIEBgZCEATMnTtXY39kZGS5f6g3b95U/8ULggBLS0s0bdoUwcHBiIuL0+g7adIk/PLLL+UaT0kCAwOZgBmoN1o3wJodJ9BzxAIMHPs1qlczwu5l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\n"
|
|
},
|
|
"metadata": {}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"from sklearn.tree import DecisionTreeClassifier\n",
|
|
"from sklearn.metrics import classification_report\n",
|
|
"\n",
|
|
"dt = DecisionTreeClassifier(\n",
|
|
" criterion='gini',\n",
|
|
" max_depth=5,\n",
|
|
" random_state=42\n",
|
|
")\n",
|
|
"\n",
|
|
"dt.fit(X_train, y_train)\n",
|
|
"\n",
|
|
"y_pred_dt = dt.predict(X_test)\n",
|
|
"\n",
|
|
"report_dt = classification_report(y_test, y_pred_dt)\n",
|
|
"print(report_dt)\n"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "dZywj5unG41U",
|
|
"outputId": "abc6a4c0-9031-47db-9ab8-106a01835009"
|
|
},
|
|
"execution_count": 25,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
" precision recall f1-score support\n",
|
|
"\n",
|
|
" 0 0.85 0.91 0.88 263\n",
|
|
" 1 0.80 0.70 0.75 137\n",
|
|
"\n",
|
|
" accuracy 0.84 400\n",
|
|
" macro avg 0.83 0.80 0.81 400\n",
|
|
"weighted avg 0.84 0.84 0.83 400\n",
|
|
"\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"\n",
|
|
"# Confusion Matrix\n",
|
|
"cm = confusion_matrix(y_test, y_pred_dt)\n",
|
|
"\n",
|
|
"disp = ConfusionMatrixDisplay(\n",
|
|
" confusion_matrix=cm,\n",
|
|
" display_labels=['Non-Diabetes', 'Diabetes']\n",
|
|
")\n",
|
|
"\n",
|
|
"disp.plot(cmap='Greens')\n",
|
|
"plt.title('Confusion Matrix - DecisionTreeClassifier')\n",
|
|
"plt.show()"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 472
|
|
},
|
|
"id": "miDRYUHHN7MF",
|
|
"outputId": "d56e2e04-4715-4643-fe20-dcd1fee10262"
|
|
},
|
|
"execution_count": 26,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 2 Axes>"
|
|
],
|
|
"image/png": "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cPv2bQDA2bNnkZ2djTZt2mjq1qpVC1WqVEF0dHTRvm0wgSIiIiIDFU36BDg7O0OpVGq2yMjIAs/XtGlTREVFYc+ePfjuu++QkJCA9957D48ePUJSUhLMzMxgY2Oj1aZixYpISkoq2jcODuERERGRgYpqHag7d+5AoVBoymUyWYH127dvr/m6fv36aNq0KVxcXLBhwwZYWFgYHIch2ANFREREJUqhUGhthSVQL7KxsUHNmjVx7do1qFQqZGVl4eHDh1p1kpOTC5wzZSwmUERERGSgohrEM0x6ejquX78OR0dHNGrUCKampjhw4IBmf1xcHG7fvg1vb2+jzlMQDuERERGRQYxNgfRtO3bsWHTu3BkuLi64d+8ewsLCYGJigj59+kCpVGLw4MEYPXo0bG1toVAo8Mknn8Db27vIn8ADmEARERFRKXH37l306dMHDx48gL29PZo3b45Tp07B3t4eADB37lxIpVL06NEDmZmZ8PPzw6JFi4olFiZQREREZKDX2we1bt26l+43NzfHwoULsXDhQiNi0g0TKCIiIjJIUT2FVxpxEjkRERGRnphAEREREemJQ3hERERkEEM/EPj59qUVe6CIiIiI9MQeKCIiIjIIe6CIiIiISGfsgSIiIiKDcBkDIiIiItIZEygiIiIiPXEIj4iIiAxk3CRy4z4GpmSxB4qIiIhIT+yBIiIiIgO93g8TfpMwgSIiIiKDlN30iUN4RERERHpjDxQREREZpCyvA8UEioiIiAxUdgfxOIRHREREpCf2QBEREZFBym7/ExMoIiIiMkppToMMxwSKiIiIDFKWJ5FzDhQRERGRnphAEREREemJQ3hERERkEImRHyZs3AcRlyz2QBERERHpiT1QREREZKCyu5ABEygiIiIySNlNnziER0RERKQ39kARERGRQcryOlBMoIiIiMhAZXcQj0N4RERERHpiDxQREREZpOz2P7EHioiIiAwmKYJNd5GRkWjSpAnkcjkcHBzQrVs3xMXFadXx9fXVzM3K2z766CNj3mSBmEARERGRQV5MVAzZ9HHkyBGMGDECp06dwr59+5CdnY127dohIyNDq15wcDASExM121dffVWUbxsAh/CIiIiolNizZ4/W66ioKDg4OODs2bNo0aKFptzS0hIqlapYY2EPFBEREZWotLQ0rS0zM1OndqmpqQAAW1tbrfI1a9ag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\n"
|
|
},
|
|
"metadata": {}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"import pandas as pd\n",
|
|
"from sklearn.metrics import classification_report\n",
|
|
"\n",
|
|
"def report_to_df(y_test, y_pred):\n",
|
|
" return pd.DataFrame(\n",
|
|
" classification_report(y_test, y_pred, output_dict=True)\n",
|
|
" ).transpose()\n",
|
|
"\n",
|
|
"df_nb = report_to_df(y_test, y_pred_nb)\n",
|
|
"df_knn = report_to_df(y_test, y_pred_knn)\n",
|
|
"df_dt = report_to_df(y_test, y_pred_dt)\n",
|
|
"\n",
|
|
"df_nb, df_knn, df_dt\n"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "f7HvKujFIaJ2",
|
|
"outputId": "acf60e36-b5ff-492f-e06a-6637d666301a"
|
|
},
|
|
"execution_count": 27,
|
|
"outputs": [
|
|
{
|
|
"output_type": "execute_result",
|
|
"data": {
|
|
"text/plain": [
|
|
"( precision recall f1-score support\n",
|
|
" 0 0.846442 0.859316 0.852830 263.000\n",
|
|
" 1 0.721805 0.700730 0.711111 137.000\n",
|
|
" accuracy 0.805000 0.805000 0.805000 0.805\n",
|
|
" macro avg 0.784123 0.780023 0.781971 400.000\n",
|
|
" weighted avg 0.803754 0.805000 0.804291 400.000,\n",
|
|
" precision recall f1-score support\n",
|
|
" 0 0.850365 0.885932 0.867784 263.0000\n",
|
|
" 1 0.761905 0.700730 0.730038 137.0000\n",
|
|
" accuracy 0.822500 0.822500 0.822500 0.8225\n",
|
|
" macro avg 0.806135 0.793331 0.798911 400.0000\n",
|
|
" weighted avg 0.820067 0.822500 0.820606 400.0000,\n",
|
|
" precision recall f1-score support\n",
|
|
" 0 0.853571 0.908745 0.880295 263.0000\n",
|
|
" 1 0.800000 0.700730 0.747082 137.0000\n",
|
|
" accuracy 0.837500 0.837500 0.837500 0.8375\n",
|
|
" macro avg 0.826786 0.804738 0.813688 400.0000\n",
|
|
" weighted avg 0.835223 0.837500 0.834669 400.0000)"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"execution_count": 27
|
|
}
|
|
]
|
|
}
|
|
]
|
|
} |