2084 lines (2084 with data), 271.0 kB
{
"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": {
"id": "3iVF0I30BpWo"
},
"outputs": [],
"source": [
"# Import laibraries\n",
"\n",
"import numpy as np\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"\n",
"from sklearn.preprocessing import MinMaxScaler\n",
"from sklearn.model_selection import train_test_split, cross_val_score\n",
"from sklearn.metrics import accuracy_score, f1_score, precision_score, recall_score, classification_report, confusion_matrix\n",
"\n",
"# Models\n",
"from sklearn.linear_model import LogisticRegression, SGDClassifier\n",
"from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"id": "PF7bFhuEZ17x",
"outputId": "6cea97da-d6a9-4cbc-e0d7-a7d866003ee8"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" sr rr t lm bo rem sr.1 hr sl\n",
"0 93.80 25.680 91.840 16.600 89.840 99.60 1.840 74.20 3\n",
"1 91.64 25.104 91.552 15.880 89.552 98.88 1.552 72.76 3\n",
"2 60.00 20.000 96.000 10.000 95.000 85.00 7.000 60.00 1\n",
"3 85.76 23.536 90.768 13.920 88.768 96.92 0.768 68.84 3\n",
"4 48.12 17.248 97.872 6.496 96.248 72.48 8.248 53.12 0"
],
"text/html": [
"\n",
" <div id=\"df-c55d887d-6ba7-47ba-b1a5-39f354ff6be0\" 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>sr</th>\n",
" <th>rr</th>\n",
" <th>t</th>\n",
" <th>lm</th>\n",
" <th>bo</th>\n",
" <th>rem</th>\n",
" <th>sr.1</th>\n",
" <th>hr</th>\n",
" <th>sl</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>93.80</td>\n",
" <td>25.680</td>\n",
" <td>91.840</td>\n",
" <td>16.600</td>\n",
" <td>89.840</td>\n",
" <td>99.60</td>\n",
" <td>1.840</td>\n",
" <td>74.20</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>91.64</td>\n",
" <td>25.104</td>\n",
" <td>91.552</td>\n",
" <td>15.880</td>\n",
" <td>89.552</td>\n",
" <td>98.88</td>\n",
" <td>1.552</td>\n",
" <td>72.76</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>60.00</td>\n",
" <td>20.000</td>\n",
" <td>96.000</td>\n",
" <td>10.000</td>\n",
" <td>95.000</td>\n",
" <td>85.00</td>\n",
" <td>7.000</td>\n",
" <td>60.00</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>85.76</td>\n",
" <td>23.536</td>\n",
" <td>90.768</td>\n",
" <td>13.920</td>\n",
" <td>88.768</td>\n",
" <td>96.92</td>\n",
" <td>0.768</td>\n",
" <td>68.84</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>48.12</td>\n",
" <td>17.248</td>\n",
" <td>97.872</td>\n",
" <td>6.496</td>\n",
" <td>96.248</td>\n",
" <td>72.48</td>\n",
" <td>8.248</td>\n",
" <td>53.12</td>\n",
" <td>0</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-c55d887d-6ba7-47ba-b1a5-39f354ff6be0')\"\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-c55d887d-6ba7-47ba-b1a5-39f354ff6be0 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-c55d887d-6ba7-47ba-b1a5-39f354ff6be0');\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-6307fdda-7877-41e8-bf97-dcfae6eaf709\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-6307fdda-7877-41e8-bf97-dcfae6eaf709')\"\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-6307fdda-7877-41e8-bf97-dcfae6eaf709 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": "df",
"summary": "{\n \"name\": \"df\",\n \"rows\": 630,\n \"fields\": [\n {\n \"column\": \"sr\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 19.372832993333716,\n \"min\": 45.0,\n \"max\": 100.0,\n \"num_unique_values\": 627,\n \"samples\": [\n 59.76,\n 47.48,\n 49.04\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"rr\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 3.966110812389465,\n \"min\": 16.0,\n \"max\": 30.0,\n \"num_unique_values\": 626,\n \"samples\": [\n 18.496,\n 20.384,\n 21.776\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"t\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 3.5296896551967825,\n \"min\": 85.0,\n \"max\": 99.0,\n \"num_unique_values\": 626,\n \"samples\": [\n 94.496,\n 92.384,\n 97.44\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"lm\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.2996291480557725,\n \"min\": 4.0,\n \"max\": 19.0,\n \"num_unique_values\": 626,\n \"samples\": [\n 8.496,\n 10.384,\n 11.776\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"bo\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 3.9024830055879836,\n \"min\": 82.0,\n \"max\": 97.0,\n \"num_unique_values\": 626,\n \"samples\": [\n 92.744,\n 90.384,\n 95.96\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"rem\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 11.893746603450513,\n \"min\": 60.0,\n \"max\": 105.0,\n \"num_unique_values\": 626,\n \"samples\": [\n 81.24,\n 86.92,\n 93.88\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"sr.1\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 3.054572011735975,\n \"min\": 0.0,\n \"max\": 9.0,\n \"num_unique_values\": 501,\n \"samples\": [\n 4.832,\n 2.768,\n 7.368\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"hr\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 9.915277030973662,\n \"min\": 50.0,\n \"max\": 85.0,\n \"num_unique_values\": 626,\n \"samples\": [\n 56.24,\n 60.96,\n 64.44\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"sl\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1,\n \"min\": 0,\n \"max\": 4,\n \"num_unique_values\": 5,\n \"samples\": [\n 1,\n 4,\n 0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
}
},
"metadata": {},
"execution_count": 4
}
],
"source": [
"# Load the dataset\n",
"df = pd.read_csv(\"/content/SaYoPillow.csv\")\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "tIR0Z11gbdig",
"outputId": "61a45e4e-b121-4647-cebb-03f1e6cc9aef"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(630, 9)"
]
},
"metadata": {},
"execution_count": 5
}
],
"source": [
"df.describe()\n",
"df.shape"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "K4pXQyKBaVy1",
"outputId": "da33fc59-5cd4-4950-b671-93e18cf8785c"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"snoring_rate 0\n",
"respiration_rate 0\n",
"body_temperature 0\n",
"limb_movement 0\n",
"blood_oxygen 0\n",
"eye_movement 0\n",
"sleeping_hours 0\n",
"heart_rate 0\n",
"stress_level 0\n",
"dtype: int64"
]
},
"metadata": {},
"execution_count": 198
}
],
"source": [
"# Put names for the columns\n",
"df.columns = ['snoring_rate', 'respiration_rate', 'body_temperature',\n",
"'limb_movement', 'blood_oxygen','eye_movement', 'sleeping_hours', 'heart_rate',\n",
" 'stress_level']\n",
"\n",
"# Count the null values for each column\n",
"df.isnull().sum()"
]
},
{
"cell_type": "code",
"source": [
"df['stress_level'].value_counts()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "PJ5BqIRnQm1r",
"outputId": "31ee89c8-3ad2-4925-f0ff-4ced5036387e"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"stress_level\n",
"3 126\n",
"1 126\n",
"0 126\n",
"2 126\n",
"4 126\n",
"Name: count, dtype: int64"
]
},
"metadata": {},
"execution_count": 199
}
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "wNVTBr_LbH-G",
"outputId": "5b214ed0-c524-4164-ad89-45e0923ea675"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"snoring_rate 0.975322\n",
"respiration_rate 0.963516\n",
"body_temperature -0.962354\n",
"limb_movement 0.971071\n",
"blood_oxygen -0.961092\n",
"eye_movement 0.951988\n",
"sleeping_hours -0.973036\n",
"heart_rate 0.963516\n",
"stress_level 1.000000\n",
"Name: stress_level, dtype: float64"
]
},
"metadata": {},
"execution_count": 200
}
],
"source": [
"# Check the correlation between the features and the target value\n",
"corr = df.corr()\n",
"corr['stress_level']"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 487
},
"id": "qAEdueWga56Q",
"outputId": "9faa0e46-d5ec-45c8-c1ff-2f6f93b0160b"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
],
"image/png": "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u3evnn/+eXl5eelvf/ubvvrqq2K9h5R/P+d99ltvvTXfZ//yyy/tk09YrVbNmDFDq1evVlhYmLp166YXX3xRycnJ9vfq3r277rnnHk2ZMkXVqlXTgAEDtGDBAmVmZha7vsIUt05Juu++++Th4WEPsoZhaNmyZfbr/a59vxvd5wBQ2rjGCQBKyMfHR+3bt1f79u110003afjw4Vq2bJnD9TOFdYYMw7jh7f5vGLmesth+Ybp162afVe/OO+9UixYtNGTIEO3cudPeZXr++ec1adIkjRgxQlOnTlWVKlXk4eGh8ePHF6trkDfmpZdeKnSa8sDAwOu+xwMPPKDhw4crISFBrVu31tKlS9WrVy977Xmf5ZdfftHKlSv15Zdfav78+Zo1a5bmzJmjUaNGFeefQ56enmrRooVatGih6Oho9ezZUx999JF69+5drNcXFDqlK9cPhYeH5xvv5XX1/8rHjx+vO++8UytWrNDatWs1adIkxcXFacOGDWrTpo0sFouWL1+u7777Tp9//rnWrl2rESNGaObMmfruu++K/De8npLUWbNmTd1yyy1aunSpnnzySX333XdKSkrSjBkz8r3fH9nnAFCaCE4A8Ae0a9dOknTixIkSva569ery9/fXwYMH86378ccf5eHhoYiIiFKpsTB169bVoUOH8i0vaFlxBQYGavLkyRo+fLiWLl2qBx54QJK0fPly9ezZU++8847D+PPnzzsEF4vFUuD75p32GBQUVOwA8r8GDhyov//97/Yux08//aTY2Nh846pUqaLhw4dr+PDhSktLU7du3fTss88WOzhdq6Cfj8I+Y2HyPntoaGixPnv9+vX12GOP6bHHHtPPP/+s1q1ba+bMmfrwww/tYzp16qROnTpp+vTpWrRokYYMGaLFixff0Ge80ToHDRqkhx9+WAcPHtSSJUvk7++vO++8M9/7/ZF9DgCliVP1AKAYvv766wK7NV988YUkFXjK3fV4enrqtttu08qVKx2mik5JSdGiRYvUtWtX+ylLZSUmJkbx8fFKSEiwLzt79qw++uijP/S+Q4YMUe3atR26B56envn+/ZYtW6bjx487LMu7Z9H58+cdlrdt21b169fXv/71L6WlpeXb5qlTp4qsKyQkRDExMVq6dKkWL14sHx8fDRw40GHMmTNnHJ4HBgaqQYMGRZ7K9s033xR4zVBBPx8BAQH5Pt/1xMTEKCgoSM8//3yB28j77BkZGbp8+bLDuvr166tSpUr2+s+dO5dvP+R1c/7o6XrFrTPPPffcI09PT/373//WsmXLdMcddzjcs6o09jkAlCY6TgBQDGPHjlVGRobuuusuNW7cWFlZWdq6dauWLFmiyMhIDR8+vMTvOW3aNK1bt05du3bVww8/LC8vL82dO1eZmZl68cUXy+BTOJo4caI+/PBD9enTR2PHjrVPR16nTh2dPXu2xJ2RPN7e3ho3bpwef/xxrVmzRrfffrvuuOMOPffccxo+fLg6d+6sffv26aOPPnKYGEO6cqAfEhKiOXPmqFKlSgoICFDHjh0VFRWl+fPnq2/fvmrWrJmGDx+uWrVq6fjx4/r6668VFBSkzz//vMjaBg0apL/85S966623FBMTk+++XE2bNlWPHj3Utm1bValSRTt27NDy5cv1yCOPXPd9Z8yYoZ07d+ruu+9Wy5YtJUm7du3S+++/rypVqmj8+PH2sW3bttXs2bM1bdo0NWjQQKGhodedwjwoKEizZ8/WX//6V91888164IEHVL16dSUlJek///mPunTpojfeeEM//fSTevXqpfvvv19NmzaVl5eXPv30U6WkpNg7f++9957eeust3XXXXapfv74uXryoefPmKSgoSP369Svy3+/UqVOaNm1avuVRUVEaMmRIserMExoaqp49e+rll1/WxYsXHSbpkCQPD49S2ecAUGrMnNIPANzF6tWrjREjRhiNGzc2AgMDDR8fH6NBgwbG2LFjjZSUFIexkowxY8bke4+6desaw4YNc1i2a9cuIyYmxggMDDT8/f2Nnj17Glu3bnUYkzfVckFTSBc2HXlBU2p379493zTYu3fvNm655RbDarUatWvXNuLi4ozXXnvNkGQkJydf998kbzryU6dO5Vt34cIFIzg42L69y5cvG4899phRo0YNw8/Pz+jSpYsRHx9fYE0rV640mjZtanh5eeWbmnz37t3G3XffbVStWtWwWq1G3bp1jfvvv99Yv379dWvNk5qaap82/MMPP8y3ftq0aUaHDh2MkJAQw8/Pz2jcuLExffr0Aqedv9a3335rjBkzxmjevLkRHBxseHt7G3Xq1DEefPBBh+nmDePK9Nz9+/c3KlWqZEiyf/7r7WfDMIyvv/7aiImJMYKDgw1fX1+jfv36xoMPPmjs2LHD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sGGDVq9e7XCaYHGNHz9ed911lyZOnKgaNWqoatWqevvtt1WjRg0lJSXpiSeecBgfGhoqPz8/rVmzRrVr15avr6+Cg4M1ZcoU/eMf/1BwcLBuv/12ZWZmaseOHTp37pwmTJhQWh8dAFBCdJwAAKUiMDBQHTt21KxZs9StWzc1b95ckyZN0ujRo/XGG28U+31q1aqlL774Qtu2bVOrVq300EMPaeTIkXr66adLveYuXbpozpw5evnll9WqVSutWbNGjz76qHx9fUv8XrfffruioqI0ffp0eXh4aPHixdq5c6eaN2+uRx99VC+99JLDeC8vL7322muaO3euatasaQ+Xo0aN0vz587VgwQK1aNFC3bt318KFC+k4AYDJLMa150IAAFDBjR49Wj/++KO++eYbs0sBALgQTtUDAFRo//rXv9SnTx8FBARo9erVeu+997jhLAAgHzpOAIAK7f7779fGjRt18eJF1atXT2PHjtVDDz1kdlkAABdDcAIAAACAIjA5BAAAAAAUgeAEAAAAAEUgOAEAAABAEQhOAAAAAFAEghMAAAAAFIHgBAAAAABFIDgBAAAAQBEITgAAAABQhP8PvUg8uF6AA10AAAAASUVORK5CYII=\n"
},
"metadata": {}
}
],
"source": [
"# Exploring Data in visual graphs\n",
"plt.figure(figsize=(10,5))\n",
"sns.lineplot(x='snoring_rate',y='stress_level',data=df)\n",
"plt.xlabel(\"Snoring Rate\")\n",
"plt.ylabel('Stress Level')\n",
"plt.title('Snoring Rate vs Stress Level')\n",
"plt.xticks(rotation=0)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 487
},
"id": "0gGiEjw7a-fb",
"outputId": "2fb8efda-1345-4aa2-b40c-33cc5b061c3c"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
],
"image/png": "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f/9+Va9ePccSNdfSpv3797v/GRAQoHr16nmMi42NzfG+11xzjVq1aqW33npLAwYMkHRhmV6bNm1Uv379y/48e/bskTFGV111Va6PBwUFedyvWbOmbDabx7GIiAhFR0fnOCZd+MXyz/78XvXq1VNAQIB7L5GvNdWoUcNj6ZTLd999pyeeeEKffvqp0tPTPR5LS0vL9bWvRG517NmzRz/88IOqVKmS63OOHj16ydfs1auXJk+erPfff199+/ZVRkaGPvroIz344IPu89CuXTvdfffdGjt2rCZNmqT27dsrISFBffv2lcPhuOTrBwQEaPDgwRo8eLB+/fVXffnll5o+fbqWL1+u3r176/PPP/fqs9epUyfHsT179uibb77J97M//PDDevvtt9W5c2fVqFFDt956q3r27KnbbrvNPfbpp59W9+7ddfXVV+vaa6/VbbfdpnvvvVeNGzf2qr5L8bbOwMBA3X333Zo3b54yMzPlcDj07rvvKisryyM4Xek5B1D6EJwAlAoBAQG66aabNGXKFO3Zs0eNGjUqtPdKTEzU0KFDdejQIWVmZmrjxo165ZVXrug1nU6nbDabli9fLrvdnuPxP+/3yW3MpY6bPzXDyM2fg5ivNeXWve3EiRNq166dwsPD9fTTT6tevXoKCQnRli1b9O9//ztHcwJv6nL5Y3OJ/OpwOp267rrr9OKLL+b6nD8Hzj9r06aNateurbffflt9+/bVBx98oDNnznj8ou66TtHGjRv1wQcfaOXKlXrggQc0ceJEbdy40es9W5UqVVK3bt3UrVs3tW/fXuvWrdP+/fvde6EuJa/Pfsstt+jRRx/N9TlXX321JKlq1aratm2bVq5cqeXLl2v58uX673//q8TERL3xxhuSLuyz+vHHH7V06VJ9/PHHev311zVp0iRNnz5dAwcO9Orz5cXbOiWpd+/emjFjhpYvX66EhAS9/fbbuuaaa9SkSROP17uScw6g9CE4ASg1zp8/L0nu5VQxMTH65JNPdPLkSY9ZJ9fyMNcvojExMXI6nfrxxx89Zpl27dqV6/v07t1bw4cP1/z583XmzBkFBQV5/AJ9OerVqydjjOrUqePxC2Jh2rNnj8cMxd69e+V0Ot3d7AqiprVr1+rXX3/Vu+++q7Zt27qPJycn5xibV0CqUKGCpAsh7I9cM4beqFevnrZv364OHTrk+T756dmzp6ZMmaL09HQtXLhQtWvXdl9f6Y/atGmjNm3aaPz48Zo3b5769eunBQsWXFawaNmypdatW6eUlBTFxMRcVu316tVTRkaGOnbsmO/Y4OBgde3aVV27dpXT6dTDDz+sGTNm6Mknn3TPqLq62t1///3KyMhQ27ZtNWbMmCsOTr7U2bZtW1WrVk0LFy7UjTfeqE8//VSjRo3K8XpXes4BlC7scQJQKmRlZenjjz9WcHCweyne7bffruzs7ByzQZMmTZLNZlPnzp0lyf3Pl156yWOcq9vYn1WuXFmdO3fWm2++qbfeeku33Xabx0VsL8ddd90lu92usWPH5pgdMsbo119/vaLXz83UqVM97r/88suSLv48CqIm10zVH59/7tw5vfrqqznGhoWF5bp0z7WE0rXHRbow2/Tnax5dSs+ePXX48GHNnDkzx2NnzpzRqVOn8n2NXr16KTMzU2+88YZWrFihnj17ejx+/PjxHD+npk2bStIl21+npqbq+++/z3H83LlzWr16tQICAtyhJSwsTFLOEHkpPXv21IYNG7Ry5cocj504ccL9Fw5/Pp8BAQHuJXiu+v88pmzZsqpfv36BtPf2tk5Xbffcc48++OADzZ07V+fPn8/xlxcFcc4BlC7MOAEokZYvX+6eOTp69KjmzZunPXv26LHHHlN4eLgkqWvXrrrppps0atQo7du3T02aNNHHH3+spUuXatiwYe5fyJs2bao+ffro1VdfVVpamuLj47V69Wrt3bs3z/dPTEzUPffcI0kaN27cFX+eevXq6ZlnntHIkSO1b98+JSQkqFy5ckpOTtZ7772nv/3tbx7XpykIycnJ6tatm2677TZt2LDB3Y7dtdypIGqKj49XhQoV1L9/fz3yyCOy2WyaO3durksHW7RooYULF2r48OFq1aqVypYtq65du6pRo0Zq06aNRo4cqd9++00VK1bUggULPH6Rzs+9996rt99+Ww899JDWrFmjG264QdnZ2dq5c6fefvtt97WPLqV58+aqX7++Ro0apczMzBy/qL/xxht69dVXdeedd6pevXo6efKkZs6cqfDwcN1+++15vu6hQ4d0/fXX6+abb1aHDh0UFRWlo0ePav78+dq+fbuGDRvmDuZNmzaV3W7X888/r7S0NDkcDt18883uaz3lZsSIEXr//fd1xx136L777lOLFi106tQp7dix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Dw83hw4dMsYY89xzz5mIiAizZMkSs337dtOtWzdTp04dc+bMGYsrL7kudU5OnDhhOnbsaBYuXGh27txpNmzYYK6//nrTokULq8susfL7M+Ly7rvvmiZNmpjq1aubSZMmWVNsKZHfOeG7vejld074brcGwQle69Kli3nggQc8jt11112mX79+7vu9evUyf/3rX4u6tFLLm3PSqFEj8/TTT3uMad68uRk1alSR1FianD592tjtdrNs2TKP466ft9PpNFFRUWbChAnux06cOGEcDoeZP39+UZdbKuR3TnLz1VdfGUlm//79RVFiqeLt+Th06JCpUaOG+fbbb01MTAzBqRB5c074bi9a3pwTvtutwVI9eC0+Pl6rV6/W7t27JUnbt2/XF198oc6dO0uSnE6nPvzwQ1199dXq1KmTqlatqtatW2vJkiUWVl2y5XdOXGPef/99HT58WMYYrVmzRrt379att95qVdkl1vnz55Wdna2QkBCP46Ghofriiy+UnJys1NRUdezY0f1YRESEWrdurQ0bNhR1uaVCfuckN2lpabLZbCpfvnwRVFi6eHM+nE6n7r33Xo0YMUKNGjWyosxSJb9zwnd70fPmzwnf7RaxOrmh+MjOzjb//ve/jc1mM4GBgcZms5lnn33W/XhKSoqRZMqUKWNefPFFs3XrVpOUlGRsNptZu3athZWXXPmdE2OMOXv2rElMTDSSTGBgoAkODjZvvPGGRRWXfHFxcaZdu3bm8OHD5vz582bu3LkmICDAXH311ebLL780kszPP//s8ZwePXqYnj17WlRxyXepc/JnZ86cMc2bNzd9+/a1oNLSIb/z8eyzz5pbbrnFOJ1OY4xhxqkIXOqc8N1ujfz+nPDdbg2CE7w2f/58U7NmTTN//nzzzTffmDlz5piKFSua2bNnG2OMOXz4sJFk+vTp4/G8rl27mt69e1tRcomX3zkxxpgJEyaYq6++2rz//vtm+/bt5uWXXzZly5Y1q1atsrDykmvv3r2mbdu2RpKx2+2mVatWpl+/fuaaa64hOFnkUufkj86dO2e6du1qmjVrZtLS0iyqtuS71PnYvHmziYyMNIcPH3aPJzgVvkudE77brZHf/7f4brcGwQleq1mzpnnllVc8jo0bN87ExsYaY4zJzMw0gYGBZty4cR5jHn30URMfH19kdZYm+Z2T06dPm6CgoBzrpAcMGGA6depUZHWWRhkZGe6A1LNnT3P77bebH3/80UgyW7du9Rjbtm1b88gjj1hQZemS2zlxOXfunElISDCNGzc2v/zyi1Ulliq5nY9JkyYZm81m7Ha7+ybJBAQEmJiYGGsLLgVyOyd8t1srt3PCd7t12OMEr50+fVoBAZ7/ydjtdjmdTklScHCwWrVqpV27dnmM2b17t2JiYoqsztIkv3OSlZWlrKysS45B4QgLC1O1atV0/PhxrVy5Ut27d1edOnUUFRWl1atXu8elp6frf//7n+Li4iystnTI7ZxIF/6c9OzZU3v27NEnn3yiSpUqWVxp6ZDb+bj33nv1zTffaNu2be5b9erVNWLECK1cudLqkku83M4J3+3Wyu2c8N1unUCrC0Dx0bVrV40fP161atVSo0aNtHXrVr344ot64IEH3GNGjBihXr16qW3btrrpppu0YsUKffDBB1q7dq11hZdg+Z2T8PBwtWvXTiNGjFBoaKhiYmK0bt06zZkzRy+++KLF1ZdMK1eulDFGsbGx2rt3r0aMGKFrrrlG999/v2w2m4YNG6ZnnnlGV111lerUqaMnn3xS1atXV0JCgtWll1iXOidZWVm65557tGXLFi1btkzZ2dlKTU2VJFWsWFHBwcEWV1/yXOp8BAUF5QiuQUFBioqKUmxsrEUVl3yXOicS3+1WyO/PCd/tFrF0vgvFSnp6uhk6dKipVauWCQkJMXXr1jWjRo0ymZmZHuP+85//mPr165uQkBDTpEkTs2TJEosqLvm8OScpKSnmvvvuM9WrVzchISEmNjbWTJw40b3xGgVr4cKFpm7duiY4ONhERUWZwYMHmxMnTrgfdzqd5sknnzSRkZHG4XCYDh06mF27dllYccl3qXOSnJxsJOV6W7NmjbWFl1D5/Rn5M/Y4FT5vzgnf7UUrv3PCd7s1bMYYY2VwAwAAAAB/xx4nAAAAAMgHwQkAAAAA8kFwAgAAAIB8EJwAAAAAIB8EJwAAAADIB8EJAAAAAPJBcAIAAACAfBCcAAAAACAfBCcAQKG57777lJCQYHUZAABcMYITAJRy9913n2w2m/tWqVIl3Xbbbfrmm28srWv27NkedeV227dvn6U1FrS1a9fKZrPpxIkTVpcCAPgTghMAQLfddptSUlKUkpKi1atXKzAwUHfccYelNfXq1ctdU0pKiuLi4jRo0CCPY9HR0ZbW6K1z584V+XtmZWUV+XsCQElGcAIAyOFwKCoqSlFRUWratKkee+wxHTx4UMeOHXOP2bFjh26++WaFhoaqUqVK+tvf/qaMjAz349nZ2Ro+fLjKly+vSpUq6dFHH5Uxxv34nDlzVKlSJWVmZnq8d0JCgu69994cNYWGhrprioqKUnBwsMqUKeO+HxISogcffFBVqlRReHi4br75Zm3fvt39/DFjxqhp06aaNWuWatWqpbJly+rhhx9Wdna2/u///k9RUVGqWrWqxo8f7/G+NptN06ZNU+fOnRUaGqq6detq8eLFHmMOHjyonj17qnz58qpYsaK6d+/uMfvlWqI4fvx4Va9eXbGxsZKkuXPnqmXLlipXrpyioqLUt29fHT16VJK0b98+3XTTTZKkChUqyGaz6b777pMk1a5dW5MnT/aooWnTphozZkyOurt166awsDD351q6dKmaN2+ukJAQ1a1bV2PHjtX58+dz/LwBAJdGcAIAeMjIyNCbb76p+vXrq1KlSpKkU6dOqVOnTqpQoYI2bdqkRYsW6ZNPPtGQIUPcz5s4caJmz56tWbNm6YsvvtBvv/2m9957z/14jx49lJ2drffff9997OjRo/rwww/1wAMP+Fxnjx49dPToUS1fvlxff/21mjdvrg4dOui3335zj/nxxx+1fPlyrVixQvPnz9d//vMfdenSRYcOHdK6dev0/PPP64knntD//vc/j9d+8skndffdd2v79u3q16+fevfurR9++EHShZmcTp06qVy5cvr888/15ZdfqmzZsrrttts8ZpZWr16tXbt2adWqVVq2bJn7uePGjdP27du1ZMkS7du3zx2OoqOj9c4770iSdu3apZSUFE2ZMsWnn8mYMWN05513aseOHXrggQf0+eefKzExUUOHDtX333+vGTNmaPbs2TnCIgDACwYAUKr179/f2O12ExYWZsLCwowkU61aNfP111+7x7z22mumQoUKJiMjw33sww8/NAEBASY1NdUYY0y1atXM//3f/7kfz8rKMjVr1jTdu3d3H/v73/9uOnfu7L4/ceJEU7duXeN0OvOts127dmbo0KHGGGM+//xzEx4ebs6ePesxpl69embGjBnGGGNGjx5typQpY9LT092Pd+rUydSuXdtkZ2e7j8XGxpqkpCT3fUnmoYce8njd1q1bm7///e/GGGPmzp1rYmNjPWrOzMw0oaGhZuXKlcaYCz/TyMhIk5mZecnPtGnTJiPJnDx50hhjzJo1a4wkc/z4cY9xMTExZtKkSR7HmjRpYkaPHu1R97BhwzzGdOjQwTz77LMex+bOnWuqVat2yboAADkFWpraAAB+4aabbtK0adMkScePH9err76qzp0766uvvlJMTIx++OEHNWnSRGFhYe7n3HDDDXI6ndq1a5dCQkKUkpKi1q1bux8PDAxUy5YtPZbrDRo0SK1atdLhw4dVo0YNzZ49292cwhfbt29XRkaGe0bM5cyZM/rxxx/d92vXrq1y5cq570dGRsputysgIMDjmGu5nEtcXFyO+9u2bXO/9969ez1eV5LOnj3r8d7XXXedgoODPcZ8/fXXGjNmjLZv367jx4/L6XRKkg4cOKCGDRt6+/Hz1LJlS4/727dv15dffukxw5Sdna2zZ8/q9OnTKlOmzBW/JwCUFgQnAIDCwsJUv3599/3XX39dERERmjlzpp555pkCe59mzZqpSZMmmjNnjm699VZ99913+vDDD31+nYyMDFWrVk1r167N8Vj58uXd/x4UFOTxmM1my/WYK8B4+94tWrTQW2+9leOxKlWquP/9jyFTurjcsVOnTnrrrbdUpUoVHThwQJ06dcq3eURAQIBHAJVyb/7w5/fMyMjQ2LFjddddd+UYGxIScsn3BAB4IjgBAHKw2WwKCAjQmTNnJEkNGjTQ7NmzderUKfcv519++aUCAgIUGxuriIgIVatWTf/73//Utm1bSdL58+fde4/+aODAgZo8ebIOHz6sjh07XlZnvObNmys1NVWBgYGqXbv2lX3YXGzcuFGJiYke95s1a+Z+74ULF6pq1aoKDw/3+jV37typX3/9Vc8995z7M2/evNljjGuGKjs72+N4lSpVlJKS4r6fnp6u5OTkfN+zefPm2rVrl0coBgBcHppDAACUmZmp1NRUpaam6ocfftA//vEPZWRkqGvXrpKkfv36KSQkRP3799e3336rNWvW6B//+IfuvfdeRUZGSpKGDh2q5557TkuWLNHOnTv18MMP53o9or59++rQoUOaOXPmZTWFkKSOHTsqLi5OCQkJ+vjjj7Vv3z6tX79eo0aNyhFGLseiRYs0a9Ys7d69W6NHj9ZXX33lboTRr18/Va5cWd27d9fnn3+u5ORkrV27Vo888ogOHTqU52vWqlVLwcHBevnll/XTTz/p/fff17hx4zzGxMTEyGazadmyZTp27Ji7a+HNN9+suXPn6vPPP9eOHTvUv39/2e32fD/HU089pTlz5mjs2LH67rvv9MMPP2jBggV64oknruCnAwClE8EJAKAVK1aoWrVqqlatmlq3bu3unNe+fXtJUpkyZbRy5Ur99ttvatWqle655x516NBBr7zyivs1/vWvf+nee+9V//79FRcXp3LlyunOO+/M8V4RERG6++67VbZsWSUkJFxWvTabTR999JHatm2r+++/X1dffbV69+6t/fv3u4PclRg7dqwWLFigxo0ba86cOZo/f757D1KZMmX02WefqVatWrrrrrvUoEEDDRgwQGfPnr3kDFSVKlU0e/ZsLVq0SA0bNtRzzz2nF154wWNMjRo1NHbsWD322GOKjIx0h7WRI0eqXbt2uuOOO9SlSxclJCSoXr16+X6OTp06admyZfr444/VqlUrtWnTRpMmTVJMTMwV/HQAoHSymT8vmgYAoJB16NBBjRo10ksvvWR1KTnYbDa99957lx3qAAAlE3ucAABF5vjx41q7dq3Wrl2rV1991epyAADwGsEJAFBkmjVrpuPHj+v5559XbGys1eUAAOA1luoBAAAAQD5oDgEAAAAA+SA4AQAAAEA+CE4AAAAAkA+CEwAAAADkg+AEAAAAAPkgOAEAAABAPghOAAAAAJAPghMAAAAA5OP/A/578CpNUkNiAAAAAElFTkSuQmCC\n"
},
"metadata": {}
}
],
"source": [
"plt.figure(figsize=(10,5))\n",
"sns.lineplot(x='body_temperature',y='stress_level',data=df)\n",
"plt.xlabel(\"Body Temperature\")\n",
"plt.ylabel('Stress Level')\n",
"plt.title('Body Temperature vs Stress Level')\n",
"plt.xticks(rotation=0)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "M3hx-__0b9MV"
},
"outputs": [],
"source": [
"# Split the dataset into x (features) and y (target value)\n",
"x = df.copy();\n",
"x.drop('stress_level', axis = 1, inplace = True)\n",
"y = df['stress_level']"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"id": "XhqZWnkrcLFg",
"outputId": "0f7b67f6-e358-4ec5-a373-3439ba64c7f4"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" snoring_rate respiration_rate temperature limb_move blood_oxygen \\\n",
"0 0.887273 0.691429 0.488571 0.840000 0.522667 \n",
"1 0.848000 0.650286 0.468000 0.792000 0.503467 \n",
"2 0.272727 0.285714 0.785714 0.400000 0.866667 \n",
"3 0.741091 0.538286 0.412000 0.661333 0.451200 \n",
"4 0.056727 0.089143 0.919429 0.166400 0.949867 \n",
"\n",
" eye_move sleep_hour heart_rate stress_level \n",
"0 0.880000 0.204444 0.691429 3 \n",
"1 0.864000 0.172444 0.650286 3 \n",
"2 0.555556 0.777778 0.285714 1 \n",
"3 0.820444 0.085333 0.538286 3 \n",
"4 0.277333 0.916444 0.089143 0 "
],
"text/html": [
"\n",
" <div id=\"df-f954f77f-2bdd-4159-9f76-669ab0439bb0\" 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>snoring_rate</th>\n",
" <th>respiration_rate</th>\n",
" <th>temperature</th>\n",
" <th>limb_move</th>\n",
" <th>blood_oxygen</th>\n",
" <th>eye_move</th>\n",
" <th>sleep_hour</th>\n",
" <th>heart_rate</th>\n",
" <th>stress_level</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.887273</td>\n",
" <td>0.691429</td>\n",
" <td>0.488571</td>\n",
" <td>0.840000</td>\n",
" <td>0.522667</td>\n",
" <td>0.880000</td>\n",
" <td>0.204444</td>\n",
" <td>0.691429</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.848000</td>\n",
" <td>0.650286</td>\n",
" <td>0.468000</td>\n",
" <td>0.792000</td>\n",
" <td>0.503467</td>\n",
" <td>0.864000</td>\n",
" <td>0.172444</td>\n",
" <td>0.650286</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.272727</td>\n",
" <td>0.285714</td>\n",
" <td>0.785714</td>\n",
" <td>0.400000</td>\n",
" <td>0.866667</td>\n",
" <td>0.555556</td>\n",
" <td>0.777778</td>\n",
" <td>0.285714</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.741091</td>\n",
" <td>0.538286</td>\n",
" <td>0.412000</td>\n",
" <td>0.661333</td>\n",
" <td>0.451200</td>\n",
" <td>0.820444</td>\n",
" <td>0.085333</td>\n",
" <td>0.538286</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.056727</td>\n",
" <td>0.089143</td>\n",
" <td>0.919429</td>\n",
" <td>0.166400</td>\n",
" <td>0.949867</td>\n",
" <td>0.277333</td>\n",
" <td>0.916444</td>\n",
" <td>0.089143</td>\n",
" <td>0</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-f954f77f-2bdd-4159-9f76-669ab0439bb0')\"\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-f954f77f-2bdd-4159-9f76-669ab0439bb0 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-f954f77f-2bdd-4159-9f76-669ab0439bb0');\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-4bf8c04d-700f-433c-980e-455bc7d12907\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-4bf8c04d-700f-433c-980e-455bc7d12907')\"\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-4bf8c04d-700f-433c-980e-455bc7d12907 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": "data_preprocessed",
"summary": "{\n \"name\": \"data_preprocessed\",\n \"rows\": 630,\n \"fields\": [\n {\n \"column\": \"snoring_rate\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.3522333271515221,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 627,\n \"samples\": [\n 0.26836363636363636,\n 0.04509090909090907,\n 0.07345454545454544\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"respiration_rate\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.28329362945639036,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 626,\n \"samples\": [\n 0.17828571428571416,\n 0.31314285714285717,\n 0.4125714285714286\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"temperature\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.25212068965691303,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 626,\n \"samples\": [\n 0.6782857142857139,\n 0.5274285714285716,\n 0.8885714285714279\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"limb_move\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.2866419432037182,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 626,\n \"samples\": [\n 0.29973333333333335,\n 0.42560000000000003,\n 0.5184\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"blood_oxygen\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.26016553370586554,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 626,\n \"samples\": [\n 0.7162666666666668,\n 0.5589333333333331,\n 0.9306666666666663\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"eye_move\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.2643054800766781,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 626,\n \"samples\": [\n 0.47199999999999975,\n 0.5982222222222222,\n 0.7528888888888887\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"sleep_hour\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.3393968901928861,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 501,\n \"samples\": [\n 0.5368888888888889,\n 0.3075555555555555,\n 0.8186666666666667\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"heart_rate\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.28329362945639036,\n \"min\": 0.0,\n \"max\": 0.9999999999999998,\n \"num_unique_values\": 626,\n \"samples\": [\n 0.17828571428571416,\n 0.31314285714285717,\n 0.41257142857142837\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"stress_level\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1,\n \"min\": 0,\n \"max\": 4,\n \"num_unique_values\": 5,\n \"samples\": [\n 1,\n 4,\n 0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
}
},
"metadata": {},
"execution_count": 205
}
],
"source": [
"# Normalize data features using minmax\n",
"\n",
"scaler = MinMaxScaler(feature_range=(0,1))\n",
"X = scaler.fit_transform(x)\n",
"\n",
"# Split the data into taining set and testing set\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,random_state =42)\n",
"\n",
"data_preprocessed = pd.DataFrame(X, columns = ['snoring_rate', 'respiration_rate', 'temperature',\n",
" 'limb_move', 'blood_oxygen', 'eye_move', 'sleep_hour',\n",
" 'heart_rate'])\n",
"data_preprocessed['stress_level'] = y\n",
"data_preprocessed.head()"
]
},
{
"cell_type": "code",
"source": [
"# 1-Train the models\n",
"\n",
"# Initialize all the models\n",
"models = {\n",
" \"Logistic Regression\": LogisticRegression(random_state=42),\n",
" \"Random Forest Classifier\": RandomForestClassifier(random_state=42),\n",
" \"Gradient Boosting Classifier\": GradientBoostingClassifier(random_state=42),\n",
" \"Stochastic Gradient Descent Classifier\": SGDClassifier(random_state=42)\n",
"}\n",
"\n",
"# Training\n",
"trained_models = {}\n",
"\n",
"for name, model in models.items():\n",
" model.fit(X_train, y_train) # Train each model\n",
" trained_models[name] = model # Store the trained model"
],
"metadata": {
"id": "T5wxEjtGh_KF"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# 2-Vaidate the models on the training set using cross-validation\n",
"\n",
"def validate_models_with_cv(models, X, y, cv=5):\n",
"\n",
" model_cv_results = [] # List to store results for DataFrame\n",
"\n",
" for name, model in models.items():\n",
"\n",
" # Calculate cross-validation scores\n",
" cv_scores = cross_val_score(model, X_train, y_train, cv=cv, scoring='accuracy')\n",
"\n",
" # Store results in the list\n",
" model_cv_results.append({\n",
" \"Model\": name,\n",
" \"CV Mean Accuracy\": cv_scores.mean()\n",
" })\n",
"\n",
" # Create DataFrame from results\n",
" results_df = pd.DataFrame(model_cv_results)\n",
"\n",
" # Sort DataFrame by mean cross-validation accuracy in descending order\n",
" return results_df.sort_values(by=\"CV Mean Accuracy\", ascending=False).reset_index(drop=True)\n",
"\n",
"\n",
"# Validate all models using cross-validation and display the DataFrame\n",
"sorted_cv_accuracies = validate_models_with_cv(trained_models, X, y)\n",
"sorted_cv_accuracies"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 174
},
"id": "S7mTa-QCk54M",
"outputId": "93ca1b4b-f333-4dde-a3e1-2c9246de2735"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Model CV Mean Accuracy\n",
"0 Logistic Regression 1.000000\n",
"1 Random Forest Classifier 0.988059\n",
"2 Gradient Boosting Classifier 0.986079\n",
"3 Stochastic Gradient Descent Classifier 0.887050"
],
"text/html": [
"\n",
" <div id=\"df-2520714b-1d18-44c9-a14d-3622549db171\" 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>Model</th>\n",
" <th>CV Mean Accuracy</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Logistic Regression</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Random Forest Classifier</td>\n",
" <td>0.988059</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Gradient Boosting Classifier</td>\n",
" <td>0.986079</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Stochastic Gradient Descent Classifier</td>\n",
" <td>0.887050</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-2520714b-1d18-44c9-a14d-3622549db171')\"\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-2520714b-1d18-44c9-a14d-3622549db171 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-2520714b-1d18-44c9-a14d-3622549db171');\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-612698a8-a805-4a1f-bf90-dfa1c76e6977\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-612698a8-a805-4a1f-bf90-dfa1c76e6977')\"\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-612698a8-a805-4a1f-bf90-dfa1c76e6977 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" <div id=\"id_62c33886-3a5b-444d-9d47-2ae4c95e62f3\">\n",
" <style>\n",
" .colab-df-generate {\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-generate: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",
" [theme=dark] .colab-df-generate {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate: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",
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('sorted_cv_accuracies')\"\n",
" title=\"Generate code using this dataframe.\"\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",
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
" </svg>\n",
" </button>\n",
" <script>\n",
" (() => {\n",
" const buttonEl =\n",
" document.querySelector('#id_62c33886-3a5b-444d-9d47-2ae4c95e62f3 button.colab-df-generate');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" buttonEl.onclick = () => {\n",
" google.colab.notebook.generateWithVariable('sorted_cv_accuracies');\n",
" }\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "sorted_cv_accuracies",
"summary": "{\n \"name\": \"sorted_cv_accuracies\",\n \"rows\": 4,\n \"fields\": [\n {\n \"column\": \"Model\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"Random Forest Classifier\",\n \"Stochastic Gradient Descent Classifier\",\n \"Logistic Regression\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"CV Mean Accuracy\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.05252617119362567,\n \"min\": 0.887049504950495,\n \"max\": 1.0,\n \"num_unique_values\": 4,\n \"samples\": [\n 0.988059405940594,\n 0.887049504950495,\n 1.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
}
},
"metadata": {},
"execution_count": 207
}
]
},
{
"cell_type": "code",
"source": [
"# 3-Evaluate the models on the test set\n",
"\n",
"def evaluate_models(models, X_test, y_test):\n",
"\n",
" model_results = [] # List to store results for DataFrame\n",
"\n",
" for name, model in models.items():\n",
"\n",
" # Predict on testing set\n",
" y_pred = model.predict(X_test)\n",
"\n",
" # Evaluate the model\n",
" accuracy = accuracy_score(y_test, y_pred)\n",
" f1 = f1_score(y_test, y_pred, average='weighted')\n",
" precision = precision_score(y_test, y_pred, average='weighted')\n",
" recall = recall_score(y_test, y_pred, average='weighted')\n",
"\n",
" # Store results in the list\n",
" model_results.append({\n",
" \"Model\": name,\n",
" \"Accuracy\": accuracy,\n",
" \"F1 Score\": f1,\n",
" \"Precision\": precision,\n",
" \"Recall\": recall\n",
" })\n",
"\n",
" # Print the evaluation metrics\n",
" print(f\"Model: {name}\")\n",
" print(f\"Accuracy: {accuracy:.4f}\")\n",
" print(f\"F1 Score: {f1:.4f}\")\n",
" print(f\"Precision: {precision:.4f}\")\n",
" print(f\"Recall: {recall:.4f}\")\n",
" print(\"\\nClassification Report:\\n\", classification_report(y_test, y_pred))\n",
"\n",
" # Plotting confusion matrix\n",
" cm = confusion_matrix(y_test, y_pred)\n",
" plt.figure(figsize=(6,4))\n",
" sns.heatmap(cm, annot=True, fmt=\"d\", cmap='Blues')\n",
" plt.title(f\"Confusion Matrix for {name}\")\n",
" plt.xlabel('Predicted Label')\n",
" plt.ylabel('True Label')\n",
" plt.show()\n",
"\n",
" # Create DataFrame from results\n",
" results_df = pd.DataFrame(model_results)\n",
"\n",
" # Sort DataFrame by accuracy in descending order\n",
" return results_df.sort_values(by=\"Accuracy\", ascending=False).reset_index(drop=True)\n",
"\n",
"\n",
"# Evaluate all models and display the DataFrame\n",
"sorted_accuracies = evaluate_models(trained_models, X_test, y_test)\n",
"sorted_accuracies"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"id": "XqH4e4IcktDX",
"outputId": "a807bc9b-522c-4626-d19a-dbe5ed66d0ec"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Model: Logistic Regression\n",
"Accuracy: 1.0000\n",
"F1 Score: 1.0000\n",
"Precision: 1.0000\n",
"Recall: 1.0000\n",
"\n",
"Classification Report:\n",
" precision recall f1-score support\n",
"\n",
" 0 1.00 1.00 1.00 23\n",
" 1 1.00 1.00 1.00 24\n",
" 2 1.00 1.00 1.00 28\n",
" 3 1.00 1.00 1.00 26\n",
" 4 1.00 1.00 1.00 25\n",
"\n",
" accuracy 1.00 126\n",
" macro avg 1.00 1.00 1.00 126\n",
"weighted avg 1.00 1.00 1.00 126\n",
"\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 600x400 with 2 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Model: Random Forest Classifier\n",
"Accuracy: 0.9841\n",
"F1 Score: 0.9841\n",
"Precision: 0.9847\n",
"Recall: 0.9841\n",
"\n",
"Classification Report:\n",
" precision recall f1-score support\n",
"\n",
" 0 1.00 1.00 1.00 23\n",
" 1 1.00 0.96 0.98 24\n",
" 2 0.97 1.00 0.98 28\n",
" 3 1.00 0.96 0.98 26\n",
" 4 0.96 1.00 0.98 25\n",
"\n",
" accuracy 0.98 126\n",
" macro avg 0.99 0.98 0.98 126\n",
"weighted avg 0.98 0.98 0.98 126\n",
"\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 600x400 with 2 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Model: Gradient Boosting Classifier\n",
"Accuracy: 0.9762\n",
"F1 Score: 0.9761\n",
"Precision: 0.9776\n",
"Recall: 0.9762\n",
"\n",
"Classification Report:\n",
" precision recall f1-score support\n",
"\n",
" 0 0.96 1.00 0.98 23\n",
" 1 1.00 0.92 0.96 24\n",
" 2 0.93 1.00 0.97 28\n",
" 3 1.00 0.96 0.98 26\n",
" 4 1.00 1.00 1.00 25\n",
"\n",
" accuracy 0.98 126\n",
" macro avg 0.98 0.98 0.98 126\n",
"weighted avg 0.98 0.98 0.98 126\n",
"\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 600x400 with 2 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Model: Stochastic Gradient Descent Classifier\n",
"Accuracy: 0.9524\n",
"F1 Score: 0.9516\n",
"Precision: 0.9608\n",
"Recall: 0.9524\n",
"\n",
"Classification Report:\n",
" precision recall f1-score support\n",
"\n",
" 0 1.00 1.00 1.00 23\n",
" 1 1.00 1.00 1.00 24\n",
" 2 0.82 1.00 0.90 28\n",
" 3 1.00 0.77 0.87 26\n",
" 4 1.00 1.00 1.00 25\n",
"\n",
" accuracy 0.95 126\n",
" macro avg 0.96 0.95 0.95 126\n",
"weighted avg 0.96 0.95 0.95 126\n",
"\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 600x400 with 2 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Model Accuracy F1 Score Precision \\\n",
"0 Logistic Regression 1.000000 1.000000 1.000000 \n",
"1 Random Forest Classifier 0.984127 0.984112 0.984706 \n",
"2 Gradient Boosting Classifier 0.976190 0.976126 0.977579 \n",
"3 Stochastic Gradient Descent Classifier 0.952381 0.951580 0.960784 \n",
"\n",
" Recall \n",
"0 1.000000 \n",
"1 0.984127 \n",
"2 0.976190 \n",
"3 0.952381 "
],
"text/html": [
"\n",
" <div id=\"df-6d7e42e3-02d1-4777-b1a8-c1c630a6889e\" 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>Model</th>\n",
" <th>Accuracy</th>\n",
" <th>F1 Score</th>\n",
" <th>Precision</th>\n",
" <th>Recall</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Logistic Regression</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Random Forest Classifier</td>\n",
" <td>0.984127</td>\n",
" <td>0.984112</td>\n",
" <td>0.984706</td>\n",
" <td>0.984127</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Gradient Boosting Classifier</td>\n",
" <td>0.976190</td>\n",
" <td>0.976126</td>\n",
" <td>0.977579</td>\n",
" <td>0.976190</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Stochastic Gradient Descent Classifier</td>\n",
" <td>0.952381</td>\n",
" <td>0.951580</td>\n",
" <td>0.960784</td>\n",
" <td>0.952381</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-6d7e42e3-02d1-4777-b1a8-c1c630a6889e')\"\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-6d7e42e3-02d1-4777-b1a8-c1c630a6889e 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-6d7e42e3-02d1-4777-b1a8-c1c630a6889e');\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-29ad3796-8332-450c-b1bb-2fe363a41a74\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-29ad3796-8332-450c-b1bb-2fe363a41a74')\"\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-29ad3796-8332-450c-b1bb-2fe363a41a74 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" <div id=\"id_7a1cb611-b560-4c75-a6cf-9ffb6f2bc490\">\n",
" <style>\n",
" .colab-df-generate {\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-generate: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",
" [theme=dark] .colab-df-generate {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate: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",
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('sorted_accuracies')\"\n",
" title=\"Generate code using this dataframe.\"\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",
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
" </svg>\n",
" </button>\n",
" <script>\n",
" (() => {\n",
" const buttonEl =\n",
" document.querySelector('#id_7a1cb611-b560-4c75-a6cf-9ffb6f2bc490 button.colab-df-generate');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" buttonEl.onclick = () => {\n",
" google.colab.notebook.generateWithVariable('sorted_accuracies');\n",
" }\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "sorted_accuracies",
"summary": "{\n \"name\": \"sorted_accuracies\",\n \"rows\": 4,\n \"fields\": [\n {\n \"column\": \"Model\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"Random Forest Classifier\",\n \"Stochastic Gradient Descent Classifier\",\n \"Logistic Regression\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Accuracy\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.01984126984126986,\n \"min\": 0.9523809523809523,\n \"max\": 1.0,\n \"num_unique_values\": 4,\n \"samples\": [\n 0.9841269841269841,\n 0.9523809523809523,\n 1.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"F1 Score\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.020189977624668773,\n \"min\": 0.9515795097842783,\n \"max\": 1.0,\n \"num_unique_values\": 4,\n \"samples\": [\n 0.9841121716821605,\n 0.9515795097842783,\n 1.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Precision\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.01627771528605463,\n \"min\": 0.9607843137254902,\n \"max\": 1.0,\n \"num_unique_values\": 4,\n \"samples\": [\n 0.9847059071197004,\n 0.9607843137254902,\n 1.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Recall\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.01984126984126986,\n \"min\": 0.9523809523809523,\n \"max\": 1.0,\n \"num_unique_values\": 4,\n \"samples\": [\n 0.9841269841269841,\n 0.9523809523809523,\n 1.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
}
},
"metadata": {},
"execution_count": 208
}
]
},
{
"cell_type": "markdown",
"source": [
". snoring rate +\n",
"* 55%-80% adult men\n",
"* 40-50% adult women\n",
"* 20%-22% child\n",
"\n",
". Respiration rate +\n",
"* 12-20 breaths per min\n",
"* 15-25 breaths per min\n",
"\n",
". Body temperature -\n",
"* 97.9°F to 100.4°F for child\n",
"* 97.5°F to 98.2°F for adult\n",
"\n",
". Limb movement +\n",
"* 4-19 cm\n",
"\n",
". Blood oxygen levels -\n",
"* 95-100% for child, adult\n",
"\n",
". Eye movement +\n",
"* 50-60% for child,adult\n",
"\n",
". Number of hours slept -\n",
"* 9-11 hours child sleep per day\n",
"* 8-9 hours adults sleep per day\n",
"\n",
". Heart rate +\n",
"* 60-95 bpm for child\n",
"* 60-100 bpm for adult\n",
"\n",
"\n",
"\n",
"\n"
],
"metadata": {
"id": "MzHRTvn0U5Qq"
}
},
{
"cell_type": "markdown",
"source": [
"Stress Levels (0- low/normal, 1 – medium low, 2- medium, 3-medium high, 4 -high)"
],
"metadata": {
"id": "xNoX3kkfeJN4"
}
},
{
"cell_type": "code",
"source": [
"# Eample for predicating medium high stress\n",
"\n",
"# Train\n",
"log_reg = LogisticRegression(random_state=42)\n",
"log_reg.fit(X_train, y_train)\n",
"\n",
"# Create a new DataFrame for the prediction\n",
"new_data1 = pd.DataFrame({\n",
" 'snoring_rate': [60],\n",
" 'respiration_rate': [25],\n",
" 'body_temperature': [95],\n",
" 'limb_movement': [15],\n",
" 'blood_oxygen': [92],\n",
" 'eye_movement': [95],\n",
" 'sleeping_hours': [5],\n",
" 'heart_rate': [74]\n",
"})\n",
"\n",
"# Predict using the Logistic Regression model\n",
"predicted_stress_level1 = log_reg.predict(new_data1)\n",
"\n",
"# Print the predicted stress level\n",
"print(\"Predicted stress level using Logistic Regression: \",predicted_stress_level1)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "TYP3nvEFLusM",
"outputId": "581fa766-25dc-48a4-df03-23944eb27833"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Predicted stress level using Logistic Regression: [3]\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"/usr/local/lib/python3.10/dist-packages/sklearn/base.py:432: UserWarning: X has feature names, but LogisticRegression was fitted without feature names\n",
" warnings.warn(\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Eample for predicating low stress or normal\n",
"\n",
"# Create a new DataFrame for the prediction\n",
"new_data2 = pd.DataFrame({\n",
" 'snoring_rate': [20],\n",
" 'respiration_rate': [16],\n",
" 'body_temperature': [98],\n",
" 'limb_movement': [8],\n",
" 'blood_oxygen': [100],\n",
" 'eye_movement': [60],\n",
" 'sleeping_hours': [12],\n",
" 'heart_rate': [60]\n",
"})\n",
"\n",
"# Predict using the Logistic Regression model\n",
"predicted_stress_level2 = log_reg.predict(new_data2)\n",
"\n",
"# Print the predicted stress level\n",
"print(\"Predicted stress level using Logistic Regression: \",predicted_stress_level2)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "9dmqZVfIgQ_3",
"outputId": "2c1767cc-64aa-4fb5-d135-97a3d0e19cd8"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Predicted stress level using Logistic Regression: [0]\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"/usr/local/lib/python3.10/dist-packages/sklearn/base.py:432: UserWarning: X has feature names, but LogisticRegression was fitted without feature names\n",
" warnings.warn(\n"
]
}
]
}
]
}