{ "cells": [ { "cell_type": "markdown", "id": "hrPMSSu2taoh", "metadata": { "id": "hrPMSSu2taoh" }, "source": [ "# **Introduction to Machine Learning with Jupyter Notebooks**\n", "Welcome to the world of Machine Learning. This instructional materials will guide you to learn machine learning using Jupyter Notebook." ] }, { "cell_type": "markdown", "id": "hmsg3MWmvNjq", "metadata": { "id": "hmsg3MWmvNjq", "jp-MarkdownHeadingCollapsed": true }, "source": [ "## **Getting Started**\n", "### **1. Setting Up Your Environment**\n", "Before we go deep into machine learning, you'll need to set up your environment.\n", "follow these steps to set up your environment.\n", "\n", "**Install Jupyter Notebook**:\n", "\n", "Install the classic Jupyter Notebook by writting the below command in your terminal:\n", "\n", "`pip install notebook`\n", "\n", "### **2. Launching Jupyter Notebook**\n", "\n", "To run the notebook:\n", "\n", "`jupyter notebook`\n", "\n", "or if this doesnt work, write this insteade.\n", "\n", "`python -m notebook`" ] }, { "cell_type": "markdown", "id": "1z9COW_-v4_2", "metadata": { "id": "1z9COW_-v4_2", "jp-MarkdownHeadingCollapsed": true }, "source": [ "## **Basics of Machain Learning (ML)**\n", "### **What is Machine Learning?**\n", "It is a subset of Artificial Inteligence (AI). It focuses on making a model capable of learning from data to make predictions or decisions.\n", "\n", "### **Types of Machaine Learning:**\n", "1. *Supervised Learning*: Learning from labeled data (e.g., classification, regression).\n", "2. *Unsupervised Learning*: Finding patterns in unlabeled data (e.g., clustering, dimensionality reduction).\n", "3. *Reinforcement Learning*: Learning through rewards and punishments." ] }, { "cell_type": "markdown", "id": "07hppMV2tpwd", "metadata": { "id": "07hppMV2tpwd" }, "source": [ "## **Building your first ML Model**" ] }, { "cell_type": "markdown", "id": "wUZ2m_AbAsvg", "metadata": { "id": "wUZ2m_AbAsvg" }, "source": [ "**Task**: Predicting Patient Health using TensorFlow and Jupyter Notebook." ] }, { "cell_type": "markdown", "id": "Vm2gWCn5C-0l", "metadata": { "id": "Vm2gWCn5C-0l" }, "source": [ "**Objective**:\n", "Develop instructional materials for students to learn machine learning using Jupyter Notebook and other ML tools.The aim is to accurately predict patient health conditions(normal,serious,dischargeable) based on temperature, pulse, and blood cell counts.\n" ] }, { "cell_type": "markdown", "id": "IBzg9QTEDEeI", "metadata": { "id": "IBzg9QTEDEeI" }, "source": [ "**Tools and Technologies**:\n", "\n", "**1**.\tJupyter Notebook: For data preprocessing, model development, and training.\n", "\n", "**2**.\tProgramming Language: Python - Widely used for its simplicity, extensive libraries, and ecosystem support.\n", "\n" ] }, { "cell_type": "markdown", "id": "lVtdjpVNDQdj", "metadata": { "id": "lVtdjpVNDQdj" }, "source": [ "## **Task Steps:**" ] }, { "cell_type": "markdown", "id": "GmqCkoG9Juf5", "metadata": { "id": "GmqCkoG9Juf5" }, "source": [ "### **1. Import libraries:**\n", "We will import the necessary libraries first" ] }, { "cell_type": "code", "source": [ "!pip install tensorflow" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Q7RqE9YyhCHG", "outputId": "d56d3890-6196-4d84-8d9a-354d4541b409" }, "id": "Q7RqE9YyhCHG", "execution_count": 1, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: tensorflow in /usr/local/lib/python3.10/dist-packages (2.15.0)\n", "Requirement already satisfied: absl-py>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.4.0)\n", "Requirement already satisfied: astunparse>=1.6.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.6.3)\n", "Requirement already satisfied: flatbuffers>=23.5.26 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (24.3.25)\n", "Requirement already satisfied: gast!=0.5.0,!=0.5.1,!=0.5.2,>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.6.0)\n", "Requirement already satisfied: google-pasta>=0.1.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.2.0)\n", "Requirement already satisfied: h5py>=2.9.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (3.9.0)\n", "Requirement already satisfied: libclang>=13.0.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (18.1.1)\n", "Requirement already satisfied: ml-dtypes~=0.2.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.2.0)\n", "Requirement already satisfied: numpy<2.0.0,>=1.23.5 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.25.2)\n", "Requirement already satisfied: opt-einsum>=2.3.2 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (3.3.0)\n", "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from tensorflow) (24.1)\n", "Requirement already satisfied: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (3.20.3)\n", "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from tensorflow) (67.7.2)\n", "Requirement already satisfied: six>=1.12.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.16.0)\n", "Requirement already satisfied: termcolor>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.4.0)\n", "Requirement already satisfied: typing-extensions>=3.6.6 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (4.12.2)\n", "Requirement already satisfied: wrapt<1.15,>=1.11.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.14.1)\n", "Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.37.1)\n", "Requirement already satisfied: grpcio<2.0,>=1.24.3 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.64.1)\n", "Requirement already satisfied: tensorboard<2.16,>=2.15 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.15.2)\n", "Requirement already satisfied: tensorflow-estimator<2.16,>=2.15.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.15.0)\n", "Requirement already satisfied: keras<2.16,>=2.15.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.15.0)\n", "Requirement already satisfied: wheel<1.0,>=0.23.0 in /usr/local/lib/python3.10/dist-packages (from astunparse>=1.6.0->tensorflow) (0.43.0)\n", "Requirement already satisfied: google-auth<3,>=1.6.3 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (2.27.0)\n", "Requirement already satisfied: google-auth-oauthlib<2,>=0.5 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (1.2.1)\n", "Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (3.6)\n", "Requirement already satisfied: requests<3,>=2.21.0 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (2.31.0)\n", "Requirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (0.7.2)\n", "Requirement already satisfied: werkzeug>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (3.0.3)\n", "Requirement already satisfied: cachetools<6.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (5.4.0)\n", "Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (0.4.0)\n", "Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (4.9)\n", "Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from google-auth-oauthlib<2,>=0.5->tensorboard<2.16,>=2.15->tensorflow) (1.3.1)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow) (3.3.2)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow) (3.7)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow) (2.0.7)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow) (2024.7.4)\n", "Requirement already satisfied: MarkupSafe>=2.1.1 in /usr/local/lib/python3.10/dist-packages (from werkzeug>=1.0.1->tensorboard<2.16,>=2.15->tensorflow) (2.1.5)\n", "Requirement already satisfied: pyasn1<0.7.0,>=0.4.6 in /usr/local/lib/python3.10/dist-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (0.6.0)\n", "Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.10/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<2,>=0.5->tensorboard<2.16,>=2.15->tensorflow) (3.2.2)\n" ] } ] }, { "cell_type": "code", "execution_count": 2, "id": "cxf2RSmXJhoG", "metadata": { "id": "cxf2RSmXJhoG" }, "outputs": [], "source": [ "import pandas as pd # for data acquisition\n", "import numpy as np # for data processing\n", "import tensorflow as tf # for making the model" ] }, { "cell_type": "code", "source": [ "!pip install micromlgen" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "H-aQmCZePpJ2", "outputId": "683cc68e-a0a8-421b-9e6e-8025ec97bad5" }, "id": "H-aQmCZePpJ2", "execution_count": 3, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Collecting micromlgen\n", " Downloading micromlgen-1.1.28.tar.gz (12 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from micromlgen) (3.1.4)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->micromlgen) (2.1.5)\n", "Building wheels for collected packages: micromlgen\n", " Building wheel for micromlgen (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for micromlgen: filename=micromlgen-1.1.28-py3-none-any.whl size=32152 sha256=9ce3a2a097a57d2f0f38c24cf9877cca0def9b1a05c4c5c810a454ee76abfce9\n", " Stored in directory: /root/.cache/pip/wheels/97/54/64/5d82c310920abe1be0d120313ceb9e12c88f5701f53f6ed248\n", "Successfully built micromlgen\n", "Installing collected packages: micromlgen\n", "Successfully installed micromlgen-1.1.28\n" ] } ] }, { "cell_type": "code", "source": [ "!pip install scikit-learn" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "t3SeRL0zhJip", "outputId": "086dcab5-49be-4a9a-ce8f-fee19df396fe" }, "id": "t3SeRL0zhJip", "execution_count": 4, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\u001b[31mERROR: Could not find a version that satisfies the requirement skicit-learn (from versions: none)\u001b[0m\u001b[31m\n", "\u001b[0m\u001b[31mERROR: No matching distribution found for skicit-learn\u001b[0m\u001b[31m\n", "\u001b[0m" ] } ] }, { "cell_type": "code", "source": [ "!pip install seaborn" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "OmG7VbdyhFku", "outputId": "20ab456f-fa95-4b62-a0f7-4bb3db1d61d8" }, "id": "OmG7VbdyhFku", "execution_count": 5, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: seaborn in /usr/local/lib/python3.10/dist-packages (0.13.1)\n", "Requirement already satisfied: numpy!=1.24.0,>=1.20 in /usr/local/lib/python3.10/dist-packages (from seaborn) (1.25.2)\n", "Requirement already satisfied: pandas>=1.2 in /usr/local/lib/python3.10/dist-packages (from seaborn) (2.0.3)\n", "Requirement already satisfied: matplotlib!=3.6.1,>=3.4 in /usr/local/lib/python3.10/dist-packages (from seaborn) (3.7.1)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (1.2.1)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (0.12.1)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (4.53.1)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (1.4.5)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (24.1)\n", "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (9.4.0)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (3.1.2)\n", "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=1.2->seaborn) (2023.4)\n", "Requirement already satisfied: tzdata>=2022.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=1.2->seaborn) (2024.1)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib!=3.6.1,>=3.4->seaborn) (1.16.0)\n" ] } ] }, { "cell_type": "code", "execution_count": 6, "id": "966398fd-64a6-4e87-a59f-7f7efe754613", "metadata": { "id": "966398fd-64a6-4e87-a59f-7f7efe754613" }, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", "from sklearn.tree import DecisionTreeClassifier\n", "from micromlgen import port\n", "from sklearn import metrics\n", "import seaborn as sns\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "markdown", "id": "da6EwHUXBLr2", "metadata": { "id": "da6EwHUXBLr2" }, "source": [ "### **2. Dataset Acquisition:**\n", "We will use the provided medical dataset for this project.\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "26760d37-0b57-41dc-888b-4f96562a4296", "metadata": { "id": "26760d37-0b57-41dc-888b-4f96562a4296" }, "outputs": [], "source": [ "data = pd.read_csv('dataset.csv') # Load the dataset" ] }, { "cell_type": "code", "execution_count": 8, "id": "b2mNI5xxLvSF", "metadata": { "id": "b2mNI5xxLvSF", "outputId": "c944a617-f7f0-445f-ff5f-2bd2eb6352c6", "colab": { "base_uri": "https://localhost:8080/", "height": 206 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " id gender age heart_rate temperature SpO2_saturation bpm \\\n", "0 1.0 male 66.0 70.0 38.6 88.0 75.0 \n", "1 2.0 female 56.0 74.0 39.6 88.0 70.0 \n", "2 3.0 male 46.0 82.0 37.2 98.0 83.0 \n", "3 4.0 female 60.0 90.0 38.6 98.0 75.0 \n", "4 5.0 male 58.0 72.0 39.6 93.0 78.0 \n", "\n", " Health_status \n", "0 Infected \n", "1 Infected \n", "2 Non Infected \n", "3 Non Infected \n", "4 Infected " ], "text/html": [ "\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idgenderageheart_ratetemperatureSpO2_saturationbpmHealth_status
01.0male66.070.038.688.075.0Infected
12.0female56.074.039.688.070.0Infected
23.0male46.082.037.298.083.0Non Infected
34.0female60.090.038.698.075.0Non Infected
45.0male58.072.039.693.078.0Infected
\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "\n", "
\n", "
\n" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "dataframe", "variable_name": "data", "summary": "{\n \"name\": \"data\",\n \"rows\": 1059,\n \"fields\": [\n {\n \"column\": \"id\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 236.50357695673262,\n \"min\": 1.0,\n \"max\": 826.0,\n \"num_unique_values\": 800,\n \"samples\": [\n 708.0,\n 679.0,\n 64.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"gender\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"female\",\n \"male\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"age\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 18.02863036758322,\n \"min\": 0.25,\n \"max\": 89.0,\n \"num_unique_values\": 83,\n \"samples\": [\n 49.0,\n 66.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"heart_rate\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 16.95579354102182,\n \"min\": 48.0,\n \"max\": 119.0,\n \"num_unique_values\": 67,\n \"samples\": [\n 93.0,\n 88.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"temperature\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.7077547282209767,\n \"min\": 36.0,\n \"max\": 40.0,\n \"num_unique_values\": 28,\n \"samples\": [\n 36.9,\n 37.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"SpO2_saturation\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 21.514817129891338,\n \"min\": 20.0,\n \"max\": 99.0,\n \"num_unique_values\": 33,\n \"samples\": [\n 99.0,\n 90.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"bpm\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 13.193723381625013,\n \"min\": 46.0,\n \"max\": 106.0,\n \"num_unique_values\": 60,\n \"samples\": [\n 75.0,\n 73.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Health_status\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"Non Infected\",\n \"Non infected\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" } }, "metadata": {}, "execution_count": 8 } ], "source": [ "data.head(5) # Display the first few rows of the dataset" ] }, { "cell_type": "markdown", "id": "e3d9a693-bdcd-42f0-8b99-3691ce96af7f", "metadata": { "id": "e3d9a693-bdcd-42f0-8b99-3691ce96af7f" }, "source": [ "## Determine Medical Condition" ] }, { "cell_type": "code", "execution_count": 9, "id": "ff7a52c2-7d93-4a21-bab4-bb3c230f67ab", "metadata": { "id": "ff7a52c2-7d93-4a21-bab4-bb3c230f67ab" }, "outputs": [], "source": [ "def determine_medical_condition(row):\n", " heart_rate = row['heart_rate']\n", " temperature = row['temperature']\n", " spo2 = row['SpO2_saturation']\n", "\n", " if 60 <= heart_rate <= 100 and 36.1 <= temperature <= 37.2 and 95 <= spo2 <= 100:\n", " return 0 #\"Normal\"\n", " elif heart_rate > 100 or heart_rate < 60 or temperature > 37.2 or temperature < 36.1 or spo2 < 95:\n", " return 1 #\"Serious\"\n", " else:\n", " return 2 #\"Dischargeable\"\n", "# refer data website" ] }, { "cell_type": "code", "execution_count": 10, "id": "7acdb25d-d6fa-43f5-9293-aba2a66d3fde", "metadata": { "id": "7acdb25d-d6fa-43f5-9293-aba2a66d3fde" }, "outputs": [], "source": [ "# Apply the function to the DataFrame to create the 'health_condition' column\n", "data['health_condition'] = data.apply(determine_medical_condition, axis=1)" ] }, { "cell_type": "code", "execution_count": 11, "id": "bfe276d7-0ea8-41e8-962d-94075819d91a", "metadata": { "id": "bfe276d7-0ea8-41e8-962d-94075819d91a", "outputId": "23f60c49-714d-48d9-b6fe-a1870bea98fc", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ " id gender age heart_rate temperature SpO2_saturation bpm \\\n", "0 1.0 male 66.0 70.0 38.6 88.0 75.0 \n", "1 2.0 female 56.0 74.0 39.6 88.0 70.0 \n", "2 3.0 male 46.0 82.0 37.2 98.0 83.0 \n", "3 4.0 female 60.0 90.0 38.6 98.0 75.0 \n", "4 5.0 male 58.0 72.0 39.6 93.0 78.0 \n", "5 6.0 female 44.0 72.0 37.2 93.0 69.0 \n", "6 7.0 male 34.0 67.0 38.6 98.0 73.0 \n", "7 8.0 male 37.0 72.0 39.6 97.0 73.0 \n", "8 9.0 male 39.0 65.0 37.2 96.0 84.0 \n", "9 10.0 male 56.0 76.0 38.0 92.0 68.0 \n", "10 11.0 female 18.0 73.0 38.6 50.0 73.0 \n", "11 12.0 female 32.0 64.0 39.6 97.0 79.0 \n", "12 13.0 male 37.0 63.0 37.2 70.0 81.0 \n", "13 14.0 male 51.0 94.0 38.6 70.0 69.0 \n", "14 15.0 male 57.0 73.0 39.6 70.0 72.0 \n", "15 16.0 male 56.0 75.0 37.2 70.0 74.0 \n", "16 17.0 male 50.0 78.0 38.6 70.0 66.0 \n", "17 18.0 female 52.0 68.0 39.6 95.0 74.0 \n", "18 19.0 male 33.0 71.0 37.2 95.0 82.0 \n", "19 20.0 male 40.0 70.0 38.6 95.0 90.0 \n", "\n", " Health_status health_condition \n", "0 Infected 1 \n", "1 Infected 1 \n", "2 Non Infected 0 \n", "3 Non Infected 1 \n", "4 Infected 1 \n", "5 Infected 1 \n", "6 Non Infected 1 \n", "7 Non Infected 1 \n", "8 Non Infected 0 \n", "9 Infected 1 \n", "10 Infected 1 \n", "11 Non Infected 1 \n", "12 Infected 1 \n", "13 Infected 1 \n", "14 Infected 1 \n", "15 Infected 1 \n", "16 Infected 1 \n", "17 Non Infected 1 \n", "18 Non Infected 0 \n", "19 Non Infected 1 \n" ] } ], "source": [ "# Display the updated DataFrame\n", "print(data.head(20))" ] }, { "cell_type": "markdown", "id": "4jcYMC2SERMm", "metadata": { "id": "4jcYMC2SERMm" }, "source": [ "### **Data Preprocessing & Visualization**:\n", "\n", "Handle missing values and encode categorical variables." ] }, { "cell_type": "code", "execution_count": 12, "id": "wbtz2oV9KY5_", "metadata": { "id": "wbtz2oV9KY5_" }, "outputs": [], "source": [ "# Dataset Preprocessing\n", "X = data[['heart_rate', 'temperature', 'SpO2_saturation']] #features\n", "y = data['health_condition'] #target\n" ] }, { "cell_type": "code", "execution_count": 13, "id": "e2bddac5-4d2c-4199-b63c-011ae9bce559", "metadata": { "id": "e2bddac5-4d2c-4199-b63c-011ae9bce559", "outputId": "6eede5bb-c96d-4c22-b6b9-6b6d5652f879", "colab": { "base_uri": "https://localhost:8080/", "height": 447 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 13 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ], "source": [ "X[['heart_rate']].plot() # plot of heart_rate" ] }, { "cell_type": "code", "execution_count": 14, "id": "a2b2272a-b25c-4954-8d34-5797f053a0fa", "metadata": { "id": "a2b2272a-b25c-4954-8d34-5797f053a0fa", "outputId": "5cccd010-a921-4aa4-ce04-9199b67bdbde", "colab": { "base_uri": "https://localhost:8080/", "height": 447 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 14 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ], "source": [ "X[['temperature']].plot() # plot of temperature" ] }, { "cell_type": "code", "execution_count": 15, "id": "a92df9c2-60f8-43f8-9c41-f81772755b63", "metadata": { "id": "a92df9c2-60f8-43f8-9c41-f81772755b63", "outputId": "ed0758b0-0c23-42af-ceac-fac1484fb605", "colab": { "base_uri": "https://localhost:8080/", "height": 447 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 15 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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qVNx5ZVXYtOmTQAibpXKykpce+212L9/P/bv34+ysjJL+wWAL774Av/4xz/w0ksviS6bY8eOYebMmdiyZQvWrl0Lv9+Pn/70pwiHI2mgwr7//e9/Y//+/bpC7LbbbsM//vEPPPXUU/jggw9wwgknYMyYMTh06JBsud///vf405/+hC1btiAjIwNTpkyx3H4iftRZPOZyQ5lp40QlWb1tEwQRP467eObPn4+XXnoJn3/+OXJycnDWWWfhgQcewEknnSQu09TUhFtuuQXPP/88mpubMWbMGDz22GMoLi52ujkAgMbWEAbeuToh2zZixz1jVEO865GRkYFly5bh2muvxeOPP47TTz8d55xzDiZOnIghQ4aIy1122WW45pprAAD33nsv1qxZg0cffRSPPfYYdu3ahYKCAnTv3l21/WAwiD59+mDXrl2a+3///ffx97//Ha+//rql9u7duxe33nor+vfvDwDo16+fOK9Hjx4ykXTjjTdi9erVeOGFF3DmmWeioKAAwWAQubm5KCkpsbQ/KS0tLXj66afRtWtXcdqECRNky/z1r39F165dsWPHDgwaNEhctqioSHefx44dw+LFi7Fs2TKMHTsWAPDkk09izZo1WLJkCW699VZx2Xnz5uGcc84BAMyaNQvjxo1DU1OTaNEhEoudKrDqIFnr6yrfNVRBsiRQCMJxHL+r1q1bh2nTpmHDhg1Ys2YNWltbccEFF+DYsWPiMjNmzMCrr76K5cuXY926daiursall17qdFNcx4QJE1BdXY1XXnkFF154Id5++22cfvrpsiDOyspK2TqVlZWiBcUu27dvx/jx4zF37lxccMEFltaZOXMmrrnmGlRVVeH++++XuVNCoRDuvfdeDB48GJ07d0ZeXh5Wr16NvXv3xtVOgV69esnECQDs3r0bl19+Ofr06YP8/Hz07t0bAGLa55dffonW1laMHDlSnJaZmYkzzzxTdY6lolEQhAcOHIj1UAi7qErdmxNPJVlVlrEySJZcPAThOI5bUFatWiX7vmzZMnTr1g1bt27Fj370I9TX12PJkiV47rnncN555wEAli5digEDBmDDhg0YMWKE001CTmYAO+4Z4/h2rew3VrKzs3H++efj/PPPx5w5c3DNNddg7ty5uOqqq0zXPfHEE1FfX4/q6mqUlpbK5rW0tODLL7/EueeeK5u+Y8cOjB49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BUo4HGYlJSXsj3/8ozitrq6OZWVlsb/97W+MMcZ27NjBALDNmzeLy7zxxhvM5/Ox7777Lmltt8qBAwcYALZu3TrGWOR4MjMz2fLly8VlPvvsMwaArV+/njEWEXF+v5/V1NSIyyxevJjl5+ez5ubm5B6ARTp16sT+8pe/eOr4jhw5wvr168fWrFnDzjnnHFGgeOEY586dy0455RTNeV44vt/97nds1KhRuvO92NfcfPPNrG/fviwcDnviNxw3bhybMmWKbNqll17KJk2axBjj7zckFw+AlpYWbN26FVVVVeI0v9+PqqoqrF+/PoUti589e/agpqZGdmwFBQUYPny4eGzr169HYWEhhg0bJi5TVVUFv9+PjRs3Jr3NZtTX1wMAOnfuDADYunUrWltbZcfYv39/lJeXy45x8ODBKC4uFpcZM2YMGhoa8Omnnyax9eaEQiE8//zzOHbsGCorKz11fNOmTcO4ceNkxwJ45zfcvXs3SktL0adPH0yaNAl79+4F4I3je+WVVzBs2DBcdtll6NatG0477TQ8+eST4nyv9TUtLS145plnMGXKFPh8Pk/8hmeddRbWrl2LXbt2AQA++ugjvPvuuxg7diwA/n5DVw4W6DQ//PADQqGQ7KICgOLiYnz++ecpapUz1NTUAIDmsQnzampq0K1bN9n8jIwMdO7cWVyGF8LhMKZPn46RI0di0KBBACLtDwaDKCwslC2rPEatcyDM44FPPvkElZWVaGpqQl5eHlasWIGBAwdi27Ztnji+559/Hh988AE2b96smueF33D48OFYtmwZTjrpJOzfvx933303zj77bGzfvt0Tx/fVV19h8eLFmDlzJm6//XZs3rwZN910E4LBICZPnuy5vmblypWoq6vDVVddBcAb1+isWbPQ0NCA/v37IxAIIBQKYd68eZg0aRIA/p4XJFAIVzFt2jRs374d7777bqqb4jgnnXQStm3bhvr6erz44ouYPHky1q1bl+pmOcK+fftw8803Y82aNcjOzk51cxKC8BYKAEOGDMHw4cPRq1cvvPDCC8jJyUlhy5whHA5j2LBh+MMf/gAAOO2007B9+3Y8/vjjmDx5copb5zxLlizB2LFjUVpamuqmOMYLL7yAZ599Fs899xxOPvlkbNu2DdOnT0dpaSmXvyG5eAB06dIFgUBAFY1dW1uLkpKSFLXKGYT2Gx1bSUkJDhw4IJvf1taGQ4cOcXX8N9xwA1577TW89dZb6Nmzpzi9pKQELS0tqKurky2vPEatcyDM44FgMIgTTjgBQ4cOxfz583HKKadg4cKFnji+rVu34sCBAzj99NORkZGBjIwMrFu3Do888ggyMjJQXFzs+mNUUlhYiBNPPBFffPGFJ37D7t27Y+DAgbJpAwYMEN1YXuprvvnmG/z73//GNddcI07zwm946623YtasWZg4cSIGDx6MK6+8EjNmzMD8+fMB8PcbkkBB5MEwdOhQrF27VpwWDoexdu1aVFZWprBl8VNRUYGSkhLZsTU0NGDjxo3isVVWVqKurg5bt24Vl3nzzTcRDocxfPjwpLdZCWMMN9xwA1asWIE333wTFRUVsvlDhw5FZmam7Bh37tyJvXv3yo7xk08+kd1Ya9asQX5+vqrT5YVwOIzm5mZPHN/o0aPxySefYNu2beK/YcOGYdKkSeJntx+jkqNHj+LLL79E9+7dPfEbjhw5UpXev2vXLvTq1QuAN/oagaVLl6Jbt24YN26cOM0Lv+Hx48fh98sf+4FAAOFwGACHv6GjIbcu5vnnn2dZWVls2bJlbMeOHWzq1KmssLBQFo3NK0eOHGEffvgh+/DDDxkA9uCDD7IPP/yQffPNN4yxSNpYYWEhe/nll9nHH3/Mxo8fr5k2dtppp7GNGzeyd999l/Xr14+b1L/rr7+eFRQUsLfffluWAnj8+HFxmeuuu46Vl5ezN998k23ZsoVVVlayyspKcb6Q/nfBBRewbdu2sVWrVrGuXbtyk/43a9Ystm7dOrZnzx728ccfs1mzZjGfz8f+9a9/Mcbcf3xaSLN4GHP/Md5yyy3s7bffZnv27GHvvfceq6qqYl26dGEHDhxgjLn/+DZt2sQyMjLYvHnz2O7du9mzzz7LcnNz2TPPPCMu4/a+hrFIBmd5eTn73e9+p5rn9t9w8uTJrEePHmKa8UsvvcS6dOnCbrvtNnEZnn5DEigSHn30UVZeXs6CwSA788wz2YYNG1LdJEu89dZbDIDq3+TJkxljkdSxOXPmsOLiYpaVlcVGjx7Ndu7cKdvGwYMH2eWXX87y8vJYfn4++9WvfsWOHDmSgqNRo3VsANjSpUvFZRobG9lvfvMb1qlTJ5abm8t++tOfsv3798u28/XXX7OxY8eynJwc1qVLF3bLLbew1tbWJB+NNlOmTGG9evViwWCQde3alY0ePVoUJ4y5//i0UAoUtx/jL37xC9a9e3cWDAZZjx492C9+8QtZjRC3Hx9jjL366qts0KBBLCsri/Xv35898cQTsvlu72sYY2z16tUMgKrdjLn/N2xoaGA333wzKy8vZ9nZ2axPnz7s97//vSwFmqff0MeYpIQcQRAEQRAEB1AMCkEQBEEQ3EEChSAIgiAI7iCBQhAEQRAEd5BAIQiCIAiCO0igEARBEATBHSRQCIIgCILgDhIoBEEQBEFwBwkUgiAIgiC4gwQKQRAEQRDcQQKFIAiCIAjuIIFCEARBEAR3kEAhCIIgCII7/h9ohVwFumPN/AAAAABJRU5ErkJggg==\n" }, "metadata": {} } ], "source": [ "X[['SpO2_saturation']].plot() # plot of SpO2_saturation" ] }, { "cell_type": "code", "execution_count": 16, "id": "7d1bd566-ef1c-4ddb-9d46-9863d413ac9a", "metadata": { "id": "7d1bd566-ef1c-4ddb-9d46-9863d413ac9a", "outputId": "03f8e583-3ffa-404e-b8a0-af0ef7461cda", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "id 800\n", "gender 2\n", "age 83\n", "heart_rate 67\n", "temperature 28\n", "SpO2_saturation 33\n", "bpm 60\n", "Health_status 4\n", "health_condition 3\n", "dtype: int64" ] }, "metadata": {}, "execution_count": 16 } ], "source": [ "data.nunique() # finding for the count of unique values" ] }, { "cell_type": "code", "execution_count": 17, "id": "5e5828fb-19f6-407d-9b77-790da197a092", "metadata": { "id": "5e5828fb-19f6-407d-9b77-790da197a092", "outputId": "e86f0c49-7cb9-4ea9-90d5-692ec7207121", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(1059, 9)" ] }, "metadata": {}, "execution_count": 17 } ], "source": [ "data.shape # gives the shape of data" ] }, { "cell_type": "code", "execution_count": 18, "id": "5f27f2c0-c9ef-4a15-afe9-749a52866eb8", "metadata": { "id": "5f27f2c0-c9ef-4a15-afe9-749a52866eb8", "outputId": "eb0069b4-dbb6-4e64-88e3-6d15f45691af", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Index(['id', 'gender', 'age', 'heart_rate', 'temperature', 'SpO2_saturation',\n", " 'bpm', 'Health_status', 'health_condition'],\n", " dtype='object')" ] }, "metadata": {}, "execution_count": 18 } ], "source": [ "data.columns # gives the columns of data" ] }, { "cell_type": "code", "execution_count": 19, "id": "9e77009e-deaf-4457-a240-13d5813950b0", "metadata": { "id": "9e77009e-deaf-4457-a240-13d5813950b0", "outputId": "2f905e63-f84b-4f2a-d5e1-04f9e4266565", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n", "RangeIndex: 1059 entries, 0 to 1058\n", "Data columns (total 9 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 id 800 non-null float64\n", " 1 gender 705 non-null object \n", " 2 age 690 non-null float64\n", " 3 heart_rate 800 non-null float64\n", " 4 temperature 800 non-null float64\n", " 5 SpO2_saturation 800 non-null float64\n", " 6 bpm 800 non-null float64\n", " 7 Health_status 800 non-null object \n", " 8 health_condition 1059 non-null int64 \n", "dtypes: float64(6), int64(1), object(2)\n", "memory usage: 74.6+ KB\n" ] } ], "source": [ "data.info() # All information about data" ] }, { "cell_type": "code", "execution_count": 20, "id": "27265752-7453-4e5d-b26b-3012eb44e0c2", "metadata": { "id": "27265752-7453-4e5d-b26b-3012eb44e0c2" }, "outputs": [], "source": [ "data= data[[\"heart_rate\",\"temperature\",\"SpO2_saturation\",\"health_condition\"]] # taking only the required data" ] }, { "cell_type": "code", "execution_count": 21, "id": "9fc570ff-263a-40b4-a651-b0e94a2d3e9a", "metadata": { "id": "9fc570ff-263a-40b4-a651-b0e94a2d3e9a", "outputId": "134af0d2-c728-4802-9f62-b527ad01cd03", "colab": { "base_uri": "https://localhost:8080/", "height": 206 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " heart_rate temperature SpO2_saturation health_condition\n", "0 70.0 38.6 88.0 1\n", "1 74.0 39.6 88.0 1\n", "2 82.0 37.2 98.0 0\n", "3 90.0 38.6 98.0 1\n", "4 72.0 39.6 93.0 1" ], "text/html": [ "\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
heart_ratetemperatureSpO2_saturationhealth_condition
070.038.688.01
174.039.688.01
282.037.298.00
390.038.698.01
472.039.693.01
\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "\n", "
\n", "
\n" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "dataframe", "variable_name": "data", "summary": "{\n \"name\": \"data\",\n \"rows\": 1059,\n \"fields\": [\n {\n \"column\": \"heart_rate\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 16.95579354102182,\n \"min\": 48.0,\n \"max\": 119.0,\n \"num_unique_values\": 67,\n \"samples\": [\n 93.0,\n 88.0,\n 72.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"temperature\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.7077547282209767,\n \"min\": 36.0,\n \"max\": 40.0,\n \"num_unique_values\": 28,\n \"samples\": [\n 36.9,\n 37.0,\n 39.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"SpO2_saturation\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 21.514817129891338,\n \"min\": 20.0,\n \"max\": 99.0,\n \"num_unique_values\": 33,\n \"samples\": [\n 99.0,\n 90.0,\n 30.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"health_condition\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 2,\n \"num_unique_values\": 3,\n \"samples\": [\n 1,\n 0,\n 2\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" } }, "metadata": {}, "execution_count": 21 } ], "source": [ "data.head() # shows some data from starting" ] }, { "cell_type": "code", "execution_count": 22, "id": "757db057-87e1-4b0d-b6db-8d1314fea1ff", "metadata": { "id": "757db057-87e1-4b0d-b6db-8d1314fea1ff", "outputId": "b07826ca-4c9e-40a5-d59b-cb414324f318", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n", "RangeIndex: 1059 entries, 0 to 1058\n", "Data columns (total 4 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 heart_rate 800 non-null float64\n", " 1 temperature 800 non-null float64\n", " 2 SpO2_saturation 800 non-null float64\n", " 3 health_condition 1059 non-null int64 \n", "dtypes: float64(3), int64(1)\n", "memory usage: 33.2 KB\n" ] } ], "source": [ "data.info() # again checking the data info" ] }, { "cell_type": "code", "execution_count": 23, "id": "2615bc26-feb7-49cb-ab9b-b91ba60289af", "metadata": { "id": "2615bc26-feb7-49cb-ab9b-b91ba60289af", "outputId": "e3e561cf-9e7a-4bb7-bb96-b5d6ddb977a5", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "heart_rate 259\n", "temperature 259\n", "SpO2_saturation 259\n", "health_condition 0\n", "dtype: int64" ] }, "metadata": {}, "execution_count": 23 } ], "source": [ "data.isna().sum() # searching for null values" ] }, { "cell_type": "code", "execution_count": 24, "id": "e5ea2699-6047-4202-91b0-0b8c48aa49a1", "metadata": { "id": "e5ea2699-6047-4202-91b0-0b8c48aa49a1", "outputId": "02c60367-ebf6-4bad-b396-3f612f2fbbbe", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "533" ] }, "metadata": {}, "execution_count": 24 } ], "source": [ "data.duplicated().sum() # searching for the duplicate values" ] }, { "cell_type": "code", "execution_count": 25, "id": "00502630-e742-4528-b743-90ddd7820823", "metadata": { "id": "00502630-e742-4528-b743-90ddd7820823", "outputId": "835dea5f-c1c9-42d6-9307-3add9c6bd88b", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(526, 4)" ] }, "metadata": {}, "execution_count": 25 } ], "source": [ "data.drop_duplicates(inplace=True) # deleting the duplicate values\n", "data.shape" ] }, { "cell_type": "code", "execution_count": 26, "id": "2a4d0a7c-f8da-46e6-be1b-c92802f045c1", "metadata": { "id": "2a4d0a7c-f8da-46e6-be1b-c92802f045c1", "outputId": "6f6df043-df7c-4448-e33b-23c324a13ee4", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([1, 0, 2])" ] }, "metadata": {}, "execution_count": 26 } ], "source": [ "data[\"health_condition\"].unique() # gives the unique values of health_condition" ] }, { "cell_type": "code", "execution_count": 27, "id": "36b10ad8-e3e2-40fa-880a-5afce71c6acf", "metadata": { "id": "36b10ad8-e3e2-40fa-880a-5afce71c6acf", "outputId": "9802c8ab-b0d8-4916-a438-494bc42ebebb", "colab": { "base_uri": "https://localhost:8080/", "height": 461 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 27 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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HR0tm80WwMmaPo/Ho/j4eJWUlMhutwd6HIDfSRiH38nGY1mWTp06pbi4uIuuDUigdOjQQa1atVJpaanP9tLSUjmdznPWh4WFKSwszGdbZGTk1RyxxbHb7fyHB6PwOwnT8DvZOC525qReQN4kGxoaquTkZBUUFHi31dXVqaCgQC6XKxAjAQAAgwTsJZ6srCxlZGSob9++uv322/Xiiy+qqqpKDz/8cKBGAgAAhghYoIwZM0ZfffWV5s6dK7fbrd69e2vDhg3nvHEWV1dYWJjmzZt3zktoQKDwOwnT8DsZGDbrUv7WBwAA4Briu3gAAIBxCBQAAGAcAgUAABiHQAEAAMYhUAAAgHGaxEfdA2i+vv76a7355psqLCyU2+2WJDmdTt1xxx2aMGGCOnbsGOAJAQQCZ1DgVVJSokceeSTQY6AF2b17t2688UYtWbJEDodDgwYN0qBBg+RwOLRkyRIlJiZqz549gR4TLcw333yjv/71rzp48OA5+06fPq233norAFO1PHwOCrz27dunPn366OzZs4EeBS1E//791atXLy1fvvycL/60LEuPP/64/va3v6mwsDBAE6Kl+fvf/66hQ4equLhYNptNAwcO1Ntvv61OnTpJ+u93xsXFxfG/k9cAL/G0IH/5y18uuP8f//jHNZoE+K99+/YpNze3wW8lt9lsmj59um699dYATIaWavbs2brlllu0Z88elZeXa9q0aRowYIC2bNmizp07B3q8FoVAaUFGjhwpm82mC500a+iJArhanE6ndu3apcTExAb379q1i6+/wDW1fft2bdq0SR06dFCHDh20du1aPfHEE7rzzju1efNmRUREBHrEFoNAaUE6deqkpUuXasSIEQ3u37t3r5KTk6/xVGjJZsyYoUmTJqmoqEhDhgzxxkhpaakKCgr0+uuv67nnngvwlGhJvvnmGwUH/++p0WazadmyZZoyZYruuusurV69OoDTtSwESguSnJysoqKi8wbKxc6uAI0tMzNTHTp00OLFi7V06VLv6/qtWrVScnKycnNz9aMf/SjAU6IlqX9jdvfu3X22v/LKK5KkH/7wh4EYq0XiTbItyMcff6yqqirdc889De6vqqrSnj17dNddd13jyQCptrZWX3/9tSSpQ4cOCgkJCfBEaIlycnL08ccf6/33329w/xNPPKHly5errq7uGk/W8hAoAADAOHwOCgAAMA6BAgAAjEOgAAAA4xAoAADAOAQK0ATdfffdmjZt2lV9jISEBL344osXXDN//nz17t37qs5xNXz32Gw2m957770L3mbChAkaOXLkVZ0LwP8QKAAuyaU8iTdVJ06c0LBhwyRJx44dk81m0969e33WvPTSS8rNzb32wwEtFB/UBqDFczqdF13jcDiuwSQA6nEGBWii6urqNGvWLEVFRcnpdGr+/PnefeXl5Xr00UfVsWNH2e12DR48WPv27fPuP3LkiEaMGKHY2Fi1bdtWt912mzZt2nTex0pISJAk3X///bLZbN7r9X77298qISFBDodDY8eO1alTpy75GBYtWqRu3bopLCxMnTt31i9/+Uvv/v3792vw4MEKDw9XdHS0Jk2apMrKSu/++pddnnvuOXXq1EnR0dHKzMxUbW2td01ZWZmGDx+u8PBwde3aVatWrTpnjm+fHeratask6dZbb5XNZtPdd9/t81j1qqur9dOf/lQxMTFq3bq1Bg4cqN27d3v3b9myRTabTQUFBerbt6/atGmjO+64Q4cPH76knw3Q0hEoQBO1cuVKRUREaOfOnVq0aJEWLFig/Px8SdIDDzygsrIyrV+/XkVFRerTp4+GDBmikydPSpIqKyt17733qqCgQJ9++qnuueceDR8+XMXFxQ0+Vv0T74oVK3TixAmfJ+IjR47ovffeU15envLy8rR161YtXLjwko4hOztbCxcu1NNPP62DBw9q9erV3u/jqaqqUmpqqtq3b6/du3drzZo12rRpk6ZMmeJzH5s3b9aRI0e0efNmrVy5Urm5uT4vxUyYMEElJSXavHmz/vjHP2rp0qUqKys770y7du2SJG3atEknTpzQO++80+C6WbNm6U9/+pNWrlypTz75RN26dVNqaqr3Z1zvqaee0vPPP689e/YoODhYjzzyyCX9bIAWzwLQ5Nx1113WwIEDfbbddttt1uzZs62PP/7Ystvt1unTp332X3/99dZrr7123vu8+eabrZdfftl7vUuXLtbixYu91yVZ7777rs9t5s2bZ7Vp08byeDzebTNnzrT69et30WPweDxWWFiY9frrrze4/ze/+Y3Vvn17q7Ky0rtt3bp1VlBQkOV2uy3LsqyMjAyrS5cu1pkzZ7xrHnjgAWvMmDGWZVnW4cOHLUnWrl27vPsPHTpkSTrvsR09etSSZH366ac+82RkZFgjRoywLMuyKisrrZCQEGvVqlXe/TU1NVZcXJy1aNEiy7Isa/PmzZYka9OmTT7zS7K++eabi/58gJaOMyhAE9WzZ0+f6506dVJZWZn27dunyspKRUdHq23btt7L0aNHdeTIEUn/PYMyY8YMde/eXZGRkWrbtq0OHTp03jMoF5KQkKB27dqdM8fFHDp0SNXV1RoyZMh59/fq1cvn6+0HDBiguro6n5dJbr75ZrVq1arBxz906JCCg4N9vqU7MTFRkZGRl3x8DTly5Ihqa2s1YMAA77aQkBDdfvvtOnTokM/ab/976tSpkyRd0s8HaOl4kyzQRH33y/RsNpvq6upUWVmpTp06acuWLefcpv6JecaMGcrPz9dzzz2nbt26KTw8XKNHj1ZNTU2jzXEx4eHhfj9WYz7+tfLt+Ww2myQZNR9gKs6gAM1Mnz595Ha7FRwcrG7duvlcOnToIEnatm2bJkyYoPvvv189evSQ0+nUsWPHLni/ISEhOnv2bKPNecMNNyg8PFwFBQUN7u/evbv27dunqqoq77Zt27YpKChIN9100yU9RmJios6cOaOioiLvtsOHD6u8vPy8twkNDZWkCx7r9ddfr9DQUG3bts27rba2Vrt371ZSUtIlzQbgwggUoJlJSUmRy+XSyJEj9cEHH+jYsWPavn27nnrqKe3Zs0fSf+PgnXfe0d69e7Vv3z79+Mc/vuj/q09ISFBBQYHcbrf+7//+74rnbN26tWbPnq1Zs2bprbfe0pEjR7Rjxw698cYbkqRx48apdevWysjI0GeffabNmzdr6tSpGj9+vPeNtBdz00036Z577tFPfvIT7dy5U0VFRXr00UcvePYmJiZG4eHh2rBhg0pLS1VRUXHOmoiICE2ePFkzZ87Uhg0bdPDgQT322GP6z3/+o4kTJ17eDwSADwIFaGZsNpvef/99DRo0SA8//LBuvPFGjR07Vv/85z+9T+wvvPCC2rdvrzvuuEPDhw9Xamqq+vTpc8H7ff7555Wfn6/4+HjdeuutjTLr008/rZ///OeaO3euunfvrjFjxnjfn9GmTRtt3LhRJ0+e1G233abRo0dryJAheuWVV/x6jBUrViguLk533XWXRo0apUmTJikmJua864ODg7VkyRK99tpriouL04gRIxpct3DhQqWnp2v8+PHq06ePvvzyS23cuFHt27f3az4ADbNZlmUFeggAAIBv4wwKAAAwDoEC4KooLi72+TPn714u50+aAbQcvMQD4Ko4c+bMBf8yKCEhQcHBfNIBgIYRKAAAwDi8xAMAAIxDoAAAAOMQKAAAwDgECgAAMA6BAgAAjEOgAAAA4xAoAADAOP8PI1xBCj5sNp8AAAAASUVORK5CYII=\n" }, "metadata": {} } ], "source": [ "data[\"health_condition\"].value_counts().plot.bar() # plot of health_condition" ] }, { "cell_type": "code", "execution_count": 28, "id": "0917a262-f412-448c-a85f-8b29e7163370", "metadata": { "id": "0917a262-f412-448c-a85f-8b29e7163370", "outputId": "40c3a0ee-5e95-4ae8-e7f0-20b1b43190a7", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "health_condition\n", "1 499\n", "0 26\n", "2 1\n", "Name: count, dtype: int64" ] }, "metadata": {}, "execution_count": 28 } ], "source": [ "data[\"health_condition\"].value_counts() # gives the value count of every unique health conditions" ] }, { "cell_type": "markdown", "id": "-s6FjDfTiWXC", "metadata": { "id": "-s6FjDfTiWXC" }, "source": [ "### A Seaborn heatmap is a data visualization tool that displays a matrix of values as a grid of colors, making it easy to identify patterns, correlations, and variations in the data. It is particularly useful for visualizing correlation matrices, confusion matrices, and other types of matrix data." ] }, { "cell_type": "code", "execution_count": 29, "id": "b0639500-5651-454e-8326-80e0b38c325d", "metadata": { "id": "b0639500-5651-454e-8326-80e0b38c325d", "outputId": "8620b5d7-2752-44e8-865c-b0fa484693e8", "colab": { "base_uri": "https://localhost:8080/", "height": 554 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 29 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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nT17Vl27dlWFChVUtGhR1alTR5999pnts7169dLGjRs1Y8YMWSwWWSwWJSQkaO7cuSpRooTdfb788ktZLP9L+ceNG6f69evro48+UkhIiLy9vSVJq1at0n333acSJUqodOnSeuihhxQfH2/7XEhIiCSpQYMGslgsatmypS2WG1uu6enpevnllxUYGChvb2/dd9992rFjh+34hg0bZLFYFBsbq/DwcBUtWlTNmzfX4cOHb+nnBgAAzOW2EjpfX1/5+vrqyy+/VHp6usPzRo8erc6dO2vv3r3q1q2bnnrqKR08eFCStGTJEmVmZmrIkCE5Pvf888/L19fXLrH6swsXLqhUqVK3FG+3bt101113aceOHYqLi9OIESPk4eEhSbpy5YoaNmyoFStWaP/+/erXr5+6d++u7du3S7rW5mzWrJn69u2rpKQkJSUlqWLFird0X0k6evSoli5dqmXLltlaqKmpqYqKitLOnTsVGxsrNzc3Pfroo8rOvvZ3juv3Xrt2rZKSkhwmrsOGDdPSpUs1b9487dq1S1WrVlVkZKTOnTtnd97IkSM1depU7dy5U0WKFNGzzz57y/EDAFDYZOfRyxndVsu1SJEimjt3rvr27atZs2YpLCxMLVq00FNPPaW6devaznviiSfUp08fSdLEiRO1Zs0avf3223rvvfd05MgR+fv7q1y5cjmu7+npqdDQUB05ciTX+2/ZskWLFy/WihUrbinexMREDR06VPfcc48kqVq1arZjFSpUsEsqBwwYoNWrV+vzzz9X48aN5e/vL09PTxUtWlRly5a9pfvdKCMjQ/Pnz1dAQIBtrHPnznbnzJkzRwEBATpw4IBq165tO7d06dIO75mamqr3339fc+fOVbt27SRJs2fP1po1a/Txxx9r6NChtnNff/11tWjRQpI0YsQIdejQQVeuXLFVDG+Unp6eI0nPtGbJw+J+298dAID8YHXS+W954bYXRXTu3FknTpzQV199pbZt22rDhg0KCwuzm7TfrFkzu880a9bMVqG7U/v379cjjzyisWPH6sEHH7ylz0RFRalPnz6KiIjQpEmT7NqbWVlZmjhxourUqaNSpUrJ19dXq1evVmJi4t+K87rKlSvbJXOS9NNPP6lr164KDQ2Vn5+fgoODJem27hkfH6/MzEzde++9tjEPDw81btw4x8/4xiT7egJ96tSpXK8b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WNVayBw4cCDXZxw//PDDBkUEIC+Q0MFlbd68WeHh4Tw3ES7h2LFjevTRR/XDDz/Y7Q94fZ4ji1Ty11dffaV27drJw8NDX3311U3PJbnGnSChg8vy8/PTnj17FBoaanQoTikrK0tvvfWWPv/881wrQufOnTMoMtfUsWNHubu766OPPlJISIi2b9+us2fPavDgwZoyZYruv/9+o0N0ajeubHVzc3N4nsViIbnGHXH8vyrAyfF3mfw1fvx4TZs2TV26dNGFCxcUFRWlxx57TG5ubho3bpzR4bmcrVu3asKECSpTpozc3Nzk5uam++67TzExMXr55ZeNDs/pZWdn27Ypyc7OdvgimcOdIqEDkC8WLFig2bNna/DgwSpSpIi6du2qjz76SGPGjNH3339vdHguJysrS8WLF5cklSlTRidOnJB0bdHE4cOHjQwNQB5glSuAfJGcnKw6depIknx9fXXhwgVJ0kMPPaTRo0cbGZpLql27tvbu3auQkBA1adJEkydPlqenpz788EOmHRSAmTNn3vK5VExxJ0joAOSLu+66S0lJSapUqZKqVKmib7/9VmFhYdqxYwcLUQwwatQopaamSpImTJighx56SPfff79Kly6txYsXGxyd83vrrbfs3p8+fVppaWm2x3+dP39eRYsWVWBgIAkd7ggJHVxWbk8xQN559NFHFRsbqyZNmmjAgAF65pln9PHHHysxMVGDBg0yOjyXExkZaftz1apVdejQIZ07d04lS5bk/wsF4Pjx47Y/L1y4UO+9954+/vhj3X333ZKkw4cPq2/fvnr++eeNChEmxypXuKzixYtr7969tJsKyPfff68tW7aoWrVq6tixo9HhuJTMzEz5+Phoz549ql27ttHhuLwqVapoyZIlatCggd14XFycHn/8cbvkD7hVLIqA02ndurXOnz+fY/zixYt2j9u5dOkSyVw+yczM1LPPPmv3H6amTZsqKiqKZM4AHh4eqlSpEisoC4mkpCRdvXo1x3hWVpZOnjxpQERwBiR0cDobNmzIseeZJF25ckXfffedARG5Hg8PDy1dutToMHCDkSNH6tVXX2X/v0KgTZs2ev7557Vr1y7bWFxcnF588UVFREQYGBnMjDl0cBr79u2z/fnAgQNKTk62vc/KytKqVatUoUIFI0JzSZ06ddKXX37JfLlC4p133tHRo0dVvnx5Va5c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\n" }, "metadata": {} } ], "source": [ "sns.heatmap(data.corr()) # plot the heat map of the data" ] }, { "cell_type": "code", "execution_count": 30, "id": "_YsaJoHziqPC", "metadata": { "id": "_YsaJoHziqPC" }, "outputs": [], "source": [ "# Fill missing values\n", "data.fillna(method='ffill', inplace=True)" ] }, { "cell_type": "code", "execution_count": 31, "id": "6NpNPZOiivE4", "metadata": { "id": "6NpNPZOiivE4" }, "outputs": [], "source": [ "# Convert all feature columns to numeric\n", "for col in data.columns:\n", " data[col] = pd.to_numeric(data[col], errors='coerce')" ] }, { "cell_type": "code", "execution_count": 32, "id": "fthKrROZiu33", "metadata": { "id": "fthKrROZiu33" }, "outputs": [], "source": [ "# Fill any remaining NaNs that might have been introduced\n", "data.fillna(0, inplace=True)" ] }, { "cell_type": "code", "execution_count": 33, "id": "scg8GT-siukT", "metadata": { "id": "scg8GT-siukT" }, "outputs": [], "source": [ "# Encode the target variable\n", "from sklearn.preprocessing import LabelEncoder\n", "label_encoder = LabelEncoder()\n", "data['health_condition'] = label_encoder.fit_transform(data['health_condition'])" ] }, { "cell_type": "code", "execution_count": 34, "id": "6ff31ff3-13bc-419a-aa3b-b68b4866299c", "metadata": { "id": "6ff31ff3-13bc-419a-aa3b-b68b4866299c" }, "outputs": [], "source": [ "# Define features and target\n", "X = data.drop('health_condition', axis=1)\n", "y = data['health_condition']" ] }, { "cell_type": "markdown", "id": "JXHwmjcQFEug", "metadata": { "id": "JXHwmjcQFEug" }, "source": [ "### **3. Model Development:**\n", "Split the dataset into training and testing sets, and implement a Decision Tree Classifier using TensorFlow." ] }, { "cell_type": "code", "execution_count": 35, "id": "6oaWSvJtjMjX", "metadata": { "id": "6oaWSvJtjMjX" }, "outputs": [], "source": [ "# Split the dataset into training and testing sets\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)" ] }, { "cell_type": "code", "execution_count": 36, "id": "S-4Y0tTHjN36", "metadata": { "id": "S-4Y0tTHjN36" }, "outputs": [], "source": [ "# Build the Decision Tree Classifier model\n", "model = tf.keras.Sequential([\n", " tf.keras.layers.Input(shape=(X_train.shape[1],)),\n", " tf.keras.layers.Dense(128, activation='relu'),\n", " tf.keras.layers.Dense(64, activation='relu'),\n", " tf.keras.layers.Dense(len(label_encoder.classes_), activation='softmax')\n", "])" ] }, { "cell_type": "code", "execution_count": 37, "id": "XFWm3eccKkzK", "metadata": { "id": "XFWm3eccKkzK" }, "outputs": [], "source": [ "# Compile the model\n", "model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])" ] }, { "cell_type": "markdown", "id": "XAEHkelZFhfZ", "metadata": { "id": "XAEHkelZFhfZ" }, "source": [ "### **4. Model Training**\n", "Train the model using the training data and monitor its performance." ] }, { "cell_type": "code", "execution_count": 38, "id": "3a198884-0e31-4304-b56c-56a2cdb9de92", "metadata": { "id": "3a198884-0e31-4304-b56c-56a2cdb9de92" }, "outputs": [], "source": [ "X = data.loc[:,[\"heart_rate\",\"temperature\",\"SpO2_saturation\"]]" ] }, { "cell_type": "code", "execution_count": 39, "id": "686e0661-2ed9-4ba8-80a0-ee1389fa098b", "metadata": { "id": "686e0661-2ed9-4ba8-80a0-ee1389fa098b", "outputId": "0392b6fe-7bca-460f-d79e-3fa30e7366ca", "colab": { "base_uri": "https://localhost:8080/", "height": 423 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " heart_rate temperature SpO2_saturation\n", "0 70.0 38.6 88.0\n", "1 74.0 39.6 88.0\n", "2 82.0 37.2 98.0\n", "3 90.0 38.6 98.0\n", "4 72.0 39.6 93.0\n", ".. ... ... ...\n", "742 113.0 38.5 87.3\n", "743 114.0 38.5 87.3\n", "763 108.0 38.5 87.3\n", "796 115.0 38.5 87.3\n", "800 115.0 38.5 87.3\n", "\n", "[526 rows x 3 columns]" ], "text/html": [ "\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
heart_ratetemperatureSpO2_saturation
070.038.688.0
174.039.688.0
282.037.298.0
390.038.698.0
472.039.693.0
............
742113.038.587.3
743114.038.587.3
763108.038.587.3
796115.038.587.3
800115.038.587.3
\n", "

526 rows × 3 columns

\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "\n", "
\n", " \n", " \n", " \n", "
\n", "\n", "
\n", "
\n" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "dataframe", "variable_name": "X", "summary": "{\n \"name\": \"X\",\n \"rows\": 526,\n \"fields\": [\n {\n \"column\": \"heart_rate\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 15.291015137769923,\n \"min\": 48.0,\n \"max\": 119.0,\n \"num_unique_values\": 67,\n \"samples\": [\n 93.0,\n 88.0,\n 72.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"temperature\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.7693388316692308,\n \"min\": 36.0,\n \"max\": 40.0,\n \"num_unique_values\": 28,\n \"samples\": [\n 36.9,\n 37.0,\n 39.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"SpO2_saturation\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 20.36121188820549,\n \"min\": 20.0,\n \"max\": 99.0,\n \"num_unique_values\": 33,\n \"samples\": [\n 99.0,\n 90.0,\n 30.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" } }, "metadata": {}, "execution_count": 39 } ], "source": [ "X" ] }, { "cell_type": "code", "execution_count": 40, "id": "1c574e38-29a7-44fc-8983-e24a3f264f6b", "metadata": { "id": "1c574e38-29a7-44fc-8983-e24a3f264f6b" }, "outputs": [], "source": [ "y = data.iloc[:,3].astype(int)" ] }, { "cell_type": "code", "execution_count": 41, "id": "51060de4-0256-4e3e-915f-488cc6f28cb7", "metadata": { "id": "51060de4-0256-4e3e-915f-488cc6f28cb7", "outputId": "4328f83f-0a1b-4896-de21-1ffe01f99ec8", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0 1\n", "1 1\n", "2 0\n", "3 1\n", "4 1\n", " ..\n", "742 1\n", "743 1\n", "763 1\n", "796 1\n", "800 2\n", "Name: health_condition, Length: 526, dtype: int64" ] }, "metadata": {}, "execution_count": 41 } ], "source": [ "y" ] }, { "cell_type": "code", "execution_count": 42, "id": "fbe2290c-0f0d-4331-ad3a-ecb9242f3c9e", "metadata": { "id": "fbe2290c-0f0d-4331-ad3a-ecb9242f3c9e" }, "outputs": [], "source": [ "X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.7, random_state=42)" ] }, { "cell_type": "code", "execution_count": 43, "id": "dd998b57-56c1-4e20-ab77-b565e45693f6", "metadata": { "id": "dd998b57-56c1-4e20-ab77-b565e45693f6", "outputId": "4b3adf3c-188b-445b-9ccf-ae08c804dc5a", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[[83.0, 38.0, 89.0],\n", " [90.0, 40.0, 88.0],\n", " [71.0, 38.0, 97.0],\n", " [56.0, 38.1, 20.0],\n", " [59.0, 38.1, 65.0],\n", " [88.0, 39.6, 96.0],\n", " [79.0, 37.9, 89.0],\n", " [89.0, 38.3, 88.0],\n", " [82.0, 38.9, 75.0],\n", " [72.0, 37.2, 93.0],\n", " [85.0, 38.0, 97.0],\n", " [68.0, 38.0, 91.0],\n", " [98.0, 38.5, 85.0],\n", " [80.0, 37.1, 96.0],\n", " [78.0, 38.6, 70.0],\n", " [101.0, 38.5, 85.0],\n", " [58.0, 38.1, 30.0],\n", " [90.0, 38.6, 98.0],\n", " [92.0, 38.0, 89.0],\n", " [62.0, 38.5, 79.0],\n", " [80.0, 37.5, 91.0],\n", " [80.0, 38.0, 97.0],\n", " [61.0, 38.1, 55.0],\n", " [72.0, 39.0, 85.0],\n", " [101.0, 39.6, 96.0],\n", " [102.0, 38.5, 79.0],\n", " [66.0, 37.8, 85.0],\n", " [78.0, 39.6, 96.0],\n", " [72.0, 39.6, 97.0],\n", " [64.0, 36.4, 85.0],\n", " [97.0, 36.8, 95.0],\n", " [78.0, 38.0, 97.0],\n", " [76.0, 37.2, 96.0],\n", " [61.0, 36.4, 82.0],\n", " [93.0, 38.5, 85.0],\n", " [91.0, 38.0, 97.0],\n", " [79.0, 38.0, 97.0],\n", " [93.0, 39.0, 85.0],\n", " [58.0, 37.5, 85.0],\n", " [76.0, 36.9, 98.0],\n", " [87.0, 36.9, 70.0],\n", " [103.0, 37.2, 82.0],\n", " [59.0, 37.8, 85.0],\n", " [89.0, 37.7, 95.0],\n", " [62.0, 38.1, 98.0],\n", " [88.0, 38.9, 75.0],\n", " [62.0, 38.1, 70.0],\n", " [96.0, 38.2, 92.0],\n", " [91.0, 36.7, 88.0],\n", " [94.0, 39.6, 82.0],\n", " [108.0, 38.5, 99.0],\n", " [65.0, 36.5, 91.0],\n", " [60.0, 38.1, 45.0],\n", " [62.0, 39.6, 85.0],\n", " [66.0, 36.5, 85.0],\n", " [81.0, 39.0, 30.0],\n", " [70.0, 39.0, 30.0],\n", " [91.0, 38.0, 89.0],\n", " [62.0, 36.5, 85.0],\n", " [69.0, 36.5, 61.3],\n", " [83.0, 38.0, 97.0],\n", " [91.0, 38.9, 85.0],\n", " [117.0, 37.2, 82.0],\n", " [72.0, 37.8, 92.0],\n", " [62.0, 37.2, 82.0],\n", " [96.0, 38.0, 89.0],\n", " [70.0, 37.6, 30.0],\n", " [99.0, 39.0, 85.0],\n", " [65.0, 38.1, 40.0],\n", " [76.0, 37.5, 88.0],\n", " [92.0, 36.9, 92.0],\n", " [65.0, 37.8, 85.0],\n", " [65.0, 38.0, 85.0],\n", " [63.0, 39.0, 70.0],\n", " [86.0, 38.9, 75.0],\n", " [77.0, 37.8, 91.0],\n", " [86.0, 38.5, 75.0],\n", " [76.0, 39.0, 85.0],\n", " [90.0, 38.5, 85.0],\n", " [86.0, 38.0, 97.0],\n", " [71.0, 38.3, 70.0],\n", " [92.0, 38.5, 85.0],\n", " [93.0, 38.9, 75.0],\n", " [63.0, 38.1, 20.0],\n", " [72.0, 37.3, 97.0],\n", " [105.0, 39.0, 85.0],\n", " [94.0, 38.9, 85.0],\n", " [70.0, 37.9, 85.0],\n", " [95.0, 38.9, 75.0],\n", " [75.0, 39.0, 30.0],\n", " [67.0, 38.1, 55.0],\n", " [82.0, 37.6, 84.0],\n", " [87.0, 37.2, 96.0],\n", " [63.0, 37.8, 70.0],\n", " [85.0, 37.2, 82.0],\n", " [76.0, 37.9, 89.0],\n", " [62.0, 38.1, 55.0],\n", " [87.0, 38.5, 79.0],\n", " [90.0, 38.9, 75.0],\n", " [86.0, 37.5, 91.0],\n", " [82.0, 38.0, 97.0],\n", " [89.0, 38.5, 85.0],\n", " [69.0, 38.1, 70.0],\n", " [56.0, 38.1, 40.0],\n", " [65.0, 37.2, 82.0],\n", " [64.0, 39.0, 30.0],\n", " [97.0, 37.2, 96.0],\n", " [67.0, 38.1, 75.0],\n", " [67.0, 36.5, 70.0],\n", " [67.0, 38.1, 70.0],\n", " [87.0, 39.6, 82.0],\n", " [73.0, 37.6, 30.0],\n", " [82.0, 37.2, 82.0],\n", " [93.0, 38.5, 75.0],\n", " [76.0, 37.6, 30.0],\n", " [80.0, 38.0, 82.0],\n", " [78.0, 38.1, 30.0],\n", " [72.0, 37.8, 70.0],\n", " [105.0, 39.6, 82.0],\n", " [86.0, 38.0, 89.0],\n", " [93.0, 37.6, 84.0],\n", " [68.0, 36.5, 70.0],\n", " [66.0, 37.6, 30.0],\n", " [67.0, 38.1, 35.0],\n", " [90.0, 38.0, 82.0],\n", " [64.0, 37.8, 85.0],\n", " [62.0, 36.9, 70.0],\n", " [90.0, 38.0, 89.0],\n", " [104.0, 38.9, 75.0],\n", " [79.0, 38.9, 75.0],\n", " [66.0, 38.1, 35.0],\n", " [94.0, 38.9, 75.0],\n", " [72.0, 37.6, 30.0],\n", " [87.0, 38.9, 75.0],\n", " [86.0, 39.6, 82.0],\n", " [100.0, 38.5, 85.0],\n", " [80.0, 38.0, 90.0],\n", " [82.0, 37.7, 95.0],\n", " [86.0, 38.0, 98.0],\n", " [81.0, 37.2, 82.0],\n", " [90.0, 38.0, 79.0],\n", " [80.0, 38.9, 75.0],\n", " [66.0, 38.1, 80.0],\n", " [68.0, 39.0, 30.0],\n", " [76.0, 38.9, 75.0],\n", " [62.0, 38.1, 40.0],\n", " [110.0, 38.5, 85.0],\n", " [77.0, 38.9, 75.0],\n", " [57.0, 38.1, 30.0],\n", " [61.0, 38.1, 25.0],\n", " [84.0, 38.0, 97.0],\n", " [61.0, 38.0, 85.0],\n", " [77.0, 38.5, 75.0],\n", " [60.0, 38.1, 30.0],\n", " [56.0, 38.1, 55.0],\n", " [109.0, 38.5, 40.0],\n", " [75.0, 37.6, 30.0],\n", " [94.0, 38.0, 90.0],\n", " [93.0, 38.5, 88.0],\n", " [72.0, 38.0, 95.0],\n", " [64.0, 38.0, 85.0],\n", " [99.0, 38.9, 75.0],\n", " [98.0, 39.6, 82.0],\n", " [63.0, 36.5, 70.0],\n", " [80.0, 37.9, 85.0],\n", " [82.0, 38.0, 90.0],\n", " [87.0, 38.0, 97.0],\n", " [77.0, 38.0, 84.0],\n", " [64.0, 38.1, 80.0],\n", " [75.0, 38.0, 90.0],\n", " [67.0, 38.3, 70.0],\n", " [58.0, 38.1, 45.0],\n", " [65.0, 38.6, 82.0],\n", " [109.0, 38.5, 99.0],\n", " [104.0, 37.6, 84.0],\n", " [60.0, 38.1, 98.0],\n", " [77.0, 38.0, 97.0],\n", " [78.0, 39.0, 30.0],\n", " [54.0, 38.1, 70.0],\n", " [113.0, 38.0, 82.0],\n", " [63.0, 38.1, 55.0],\n", " [77.0, 38.0, 91.0],\n", " [96.0, 38.5, 85.0],\n", " [67.0, 38.0, 91.0],\n", " [112.0, 39.0, 85.0],\n", " [77.0, 37.8, 98.0],\n", " [94.0, 38.0, 89.0],\n", " [63.0, 36.5, 85.0],\n", " [65.0, 39.0, 30.0],\n", " [63.0, 37.5, 89.0],\n", " [63.0, 37.2, 70.0],\n", " [75.0, 39.6, 96.0],\n", " [75.0, 37.2, 96.0],\n", " [62.0, 37.2, 85.0],\n", " [78.0, 37.2, 82.0],\n", " [64.0, 37.3, 97.0],\n", " [74.0, 39.0, 30.0],\n", " [86.0, 38.0, 90.0],\n", " [73.0, 38.0, 70.0],\n", " [100.0, 37.2, 91.0],\n", " [97.0, 38.0, 89.0],\n", " [61.0, 39.0, 30.0],\n", " [59.0, 38.1, 25.0],\n", " [77.0, 39.0, 30.0],\n", " [61.0, 37.8, 85.0],\n", " [95.0, 37.5, 91.0],\n", " [93.0, 36.1, 66.0],\n", " [80.0, 37.6, 30.0],\n", " [81.0, 36.9, 98.0],\n", " [119.0, 39.0, 85.0],\n", " [60.0, 38.1, 20.0],\n", " [81.0, 37.9, 89.0],\n", " [115.0, 38.5, 87.3],\n", " [72.0, 39.6, 93.0],\n", " [84.0, 37.9, 67.0],\n", " [92.0, 38.5, 88.0],\n", " [90.0, 39.0, 95.0],\n", " [110.0, 38.0, 90.0],\n", " [77.0, 38.5, 79.0],\n", " [79.0, 38.0, 98.0],\n", " [101.0, 36.8, 95.0],\n", " [61.0, 39.6, 85.0],\n", " [71.0, 36.5, 70.0],\n", " [109.0, 38.9, 75.0],\n", " [77.0, 38.0, 98.0],\n", " [89.0, 37.8, 91.0],\n", " [85.0, 37.8, 91.0],\n", " [80.0, 39.6, 96.0],\n", " [88.0, 38.9, 85.0],\n", " [87.0, 38.5, 75.0],\n", " [61.0, 39.0, 70.0],\n", " [92.0, 36.8, 88.0],\n", " [89.0, 37.2, 96.0],\n", " [68.0, 37.6, 30.0],\n", " [72.0, 38.0, 90.0],\n", " [78.0, 37.9, 85.0],\n", " [55.0, 38.1, 40.0],\n", " [81.0, 37.6, 84.0],\n", " [59.0, 38.0, 85.0],\n", " [72.0, 39.0, 30.0],\n", " [108.0, 38.5, 79.0],\n", " [85.0, 38.6, 82.0],\n", " [72.0, 37.8, 91.0],\n", " [95.0, 38.6, 82.0],\n", " [77.0, 39.6, 82.0],\n", " [109.0, 38.5, 85.0],\n", " [65.0, 37.2, 96.0],\n", " [83.0, 38.5, 75.0],\n", " [107.0, 38.5, 85.0],\n", " [66.0, 38.0, 91.0],\n", " [92.0, 38.9, 75.0],\n", " [73.0, 39.6, 70.0],\n", " [61.0, 37.2, 82.0],\n", " [79.0, 37.5, 91.0],\n", " [57.0, 38.1, 20.0],\n", " [97.0, 38.2, 92.0],\n", " [69.0, 38.3, 70.0],\n", " [105.0, 38.0, 98.0],\n", " [74.0, 37.6, 30.0],\n", " [85.0, 39.0, 85.0],\n", " [91.0, 38.5, 85.0],\n", " [90.0, 38.2, 87.0],\n", " [59.0, 38.1, 40.0],\n", " [88.0, 38.0, 89.0],\n", " [78.0, 36.9, 98.0],\n", " [80.0, 38.0, 98.0],\n", " [84.0, 38.9, 75.0],\n", " [97.0, 39.0, 85.0],\n", " [75.0, 37.9, 89.0],\n", " [110.0, 38.5, 87.3],\n", " [96.0, 39.0, 85.0],\n", " [67.0, 38.9, 75.0],\n", " [56.0, 38.1, 25.0],\n", " [90.0, 38.9, 85.0],\n", " [59.0, 39.0, 70.0],\n", " [64.0, 37.8, 89.0],\n", " [95.0, 37.8, 91.0],\n", " [89.0, 38.0, 98.0],\n", " [67.0, 39.0, 30.0],\n", " [63.0, 38.0, 85.0],\n", " [73.0, 38.9, 75.0],\n", " [84.0, 37.9, 85.0],\n", " [72.0, 38.0, 97.0],\n", " [68.0, 39.6, 91.0],\n", " [83.0, 39.0, 30.0],\n", " [74.0, 39.6, 88.0],\n", " [111.0, 38.5, 87.3],\n", " [109.0, 38.5, 65.0],\n", " [87.0, 37.2, 91.0],\n", " [68.0, 37.3, 97.0],\n", " [70.0, 36.5, 61.3],\n", " [57.0, 36.9, 96.0],\n", " [80.0, 37.2, 96.0],\n", " [74.0, 38.1, 70.0],\n", " [91.0, 38.1, 85.0],\n", " [73.0, 38.1, 70.0],\n", " [88.0, 38.5, 85.0],\n", " [61.0, 38.1, 80.0],\n", " [68.0, 36.5, 96.0],\n", " [58.0, 38.1, 20.0],\n", " [102.0, 38.5, 85.0],\n", " [78.0, 37.2, 91.0],\n", " [56.0, 38.1, 60.0],\n", " [80.0, 38.1, 85.0],\n", " [115.0, 38.0, 89.0],\n", " [94.0, 38.6, 70.0],\n", " [91.0, 38.9, 75.0],\n", " [87.0, 38.0, 93.0],\n", " [95.0, 38.1, 30.0],\n", " [68.0, 39.0, 85.0],\n", " [60.0, 36.5, 85.0],\n", " [90.0, 38.5, 75.0],\n", " [109.0, 38.5, 87.3],\n", " [91.0, 37.2, 82.0],\n", " [69.0, 38.9, 75.0],\n", " [107.0, 38.5, 35.0],\n", " [107.0, 38.9, 75.0],\n", " [80.0, 38.0, 89.0],\n", " [89.0, 37.2, 91.0],\n", " [63.0, 38.1, 80.0],\n", " [77.0, 39.6, 91.0],\n", " [96.0, 39.0, 95.0],\n", " [60.0, 36.4, 85.0],\n", " [66.0, 39.6, 80.0],\n", " [61.0, 37.5, 85.0],\n", " [108.0, 38.5, 87.3],\n", " [92.0, 37.5, 66.0],\n", " [58.0, 36.5, 85.0],\n", " [96.0, 39.4, 88.0],\n", " [60.0, 37.2, 85.0],\n", " [92.0, 36.4, 91.0],\n", " [95.0, 38.5, 88.0],\n", " [67.0, 36.5, 91.0],\n", " [55.0, 38.1, 45.0],\n", " [89.0, 38.0, 89.0],\n", " [84.0, 37.9, 89.0],\n", " [72.0, 37.2, 97.0],\n", " [83.0, 38.9, 75.0],\n", " [94.0, 36.1, 66.0],\n", " [65.0, 37.8, 89.0],\n", " [78.0, 39.0, 85.0],\n", " [69.0, 38.0, 90.0],\n", " [62.0, 38.0, 85.0],\n", " [61.0, 38.1, 30.0],\n", " [85.0, 38.9, 75.0],\n", " [77.0, 37.6, 30.0],\n", " [99.0, 38.5, 85.0],\n", " [55.0, 38.1, 80.0],\n", " [82.0, 37.9, 67.0],\n", " [71.0, 38.9, 75.0],\n", " [63.0, 37.2, 82.0],\n", " [72.0, 38.6, 82.0],\n", " [63.0, 39.6, 82.0],\n", " [62.0, 38.1, 20.0],\n", " [64.0, 36.5, 70.0],\n", " [64.0, 38.1, 35.0],\n", " [74.0, 38.0, 93.0],\n", " [93.0, 38.2, 66.0],\n", " [68.0, 38.1, 75.0],\n", " [99.0, 38.0, 98.0],\n", " [93.0, 36.8, 97.0],\n", " [83.0, 38.0, 84.0],\n", " [70.0, 39.6, 97.0],\n", " [68.0, 37.5, 91.0],\n", " [68.0, 38.0, 97.0],\n", " [94.0, 39.0, 85.0],\n", " [64.0, 38.1, 98.0],\n", " [92.0, 39.0, 95.0]]" ] }, "metadata": {}, "execution_count": 43 } ], "source": [ "X_train.values.tolist()" ] }, { "cell_type": "code", "execution_count": 44, "id": "Sc6NkbVfjYJt", "metadata": { "id": "Sc6NkbVfjYJt" }, "outputs": [], "source": [ "# Convert to Pandas Series if y_train is a NumPy array\n", "if isinstance(y_train, np.ndarray):\n", " y_train = pd.Series(y_train)" ] }, { "cell_type": "code", "execution_count": 45, "id": "437734ae-7a8b-4634-9679-1c440212bd7f", "metadata": { "id": "437734ae-7a8b-4634-9679-1c440212bd7f", "outputId": "d34d1dfd-bcec-450d-abfe-cf589244ae38", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1]\n" ] } ], "source": [ "# Now you can use y_train.values.tolist() if necessary\n", "y_train_list = y_train.values.tolist()\n", "print(y_train_list)" ] }, { "cell_type": "code", "execution_count": 46, "id": "01aa50dd-9ffe-430a-9325-78fb8a3dec0e", "metadata": { "id": "01aa50dd-9ffe-430a-9325-78fb8a3dec0e", "outputId": "90638d27-4f8f-4f7a-87ca-1f40ff673966", "colab": { "base_uri": "https://localhost:8080/", "height": 74 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "DecisionTreeClassifier(random_state=0)" ], "text/html": [ "
DecisionTreeClassifier(random_state=0)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ] }, "metadata": {}, "execution_count": 46 } ], "source": [ "health_classifier = DecisionTreeClassifier(random_state = 0)\n", "health_classifier.fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": 47, "id": "82c869a1-bb28-48ee-996f-52ab26ec0cbc", "metadata": { "id": "82c869a1-bb28-48ee-996f-52ab26ec0cbc", "outputId": "30346b0e-a1c0-4a8b-e59d-f1e1054de08d", "colab": { "base_uri": "https://localhost:8080/", "height": 221 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "sklearn.tree._classes.DecisionTreeClassifier" ], "text/html": [ "
\n", "
sklearn.tree._classes.DecisionTreeClassifier
def __init__(*, criterion='gini', splitter='best', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, class_weight=None, ccp_alpha=0.0)
/usr/local/lib/python3.10/dist-packages/sklearn/tree/_classes.pyA decision tree classifier.\n",
              "\n",
              "Read more in the :ref:`User Guide <tree>`.\n",
              "\n",
              "Parameters\n",
              "----------\n",
              "criterion : {"gini", "entropy", "log_loss"}, default="gini"\n",
              "    The function to measure the quality of a split. Supported criteria are\n",
              "    "gini" for the Gini impurity and "log_loss" and "entropy" both for the\n",
              "    Shannon information gain, see :ref:`tree_mathematical_formulation`.\n",
              "\n",
              "splitter : {"best", "random"}, default="best"\n",
              "    The strategy used to choose the split at each node. Supported\n",
              "    strategies are "best" to choose the best split and "random" to choose\n",
              "    the best random split.\n",
              "\n",
              "max_depth : int, default=None\n",
              "    The maximum depth of the tree. If None, then nodes are expanded until\n",
              "    all leaves are pure or until all leaves contain less than\n",
              "    min_samples_split samples.\n",
              "\n",
              "min_samples_split : int or float, default=2\n",
              "    The minimum number of samples required to split an internal node:\n",
              "\n",
              "    - If int, then consider `min_samples_split` as the minimum number.\n",
              "    - If float, then `min_samples_split` is a fraction and\n",
              "      `ceil(min_samples_split * n_samples)` are the minimum\n",
              "      number of samples for each split.\n",
              "\n",
              "    .. versionchanged:: 0.18\n",
              "       Added float values for fractions.\n",
              "\n",
              "min_samples_leaf : int or float, default=1\n",
              "    The minimum number of samples required to be at a leaf node.\n",
              "    A split point at any depth will only be considered if it leaves at\n",
              "    least ``min_samples_leaf`` training samples in each of the left and\n",
              "    right branches.  This may have the effect of smoothing the model,\n",
              "    especially in regression.\n",
              "\n",
              "    - If int, then consider `min_samples_leaf` as the minimum number.\n",
              "    - If float, then `min_samples_leaf` is a fraction and\n",
              "      `ceil(min_samples_leaf * n_samples)` are the minimum\n",
              "      number of samples for each node.\n",
              "\n",
              "    .. versionchanged:: 0.18\n",
              "       Added float values for fractions.\n",
              "\n",
              "min_weight_fraction_leaf : float, default=0.0\n",
              "    The minimum weighted fraction of the sum total of weights (of all\n",
              "    the input samples) required to be at a leaf node. Samples have\n",
              "    equal weight when sample_weight is not provided.\n",
              "\n",
              "max_features : int, float or {"auto", "sqrt", "log2"}, default=None\n",
              "    The number of features to consider when looking for the best split:\n",
              "\n",
              "        - If int, then consider `max_features` features at each split.\n",
              "        - If float, then `max_features` is a fraction and\n",
              "          `max(1, int(max_features * n_features_in_))` features are considered at\n",
              "          each split.\n",
              "        - If "auto", then `max_features=sqrt(n_features)`.\n",
              "        - If "sqrt", then `max_features=sqrt(n_features)`.\n",
              "        - If "log2", then `max_features=log2(n_features)`.\n",
              "        - If None, then `max_features=n_features`.\n",
              "\n",
              "        .. deprecated:: 1.1\n",
              "            The `"auto"` option was deprecated in 1.1 and will be removed\n",
              "            in 1.3.\n",
              "\n",
              "    Note: the search for a split does not stop until at least one\n",
              "    valid partition of the node samples is found, even if it requires to\n",
              "    effectively inspect more than ``max_features`` features.\n",
              "\n",
              "random_state : int, RandomState instance or None, default=None\n",
              "    Controls the randomness of the estimator. The features are always\n",
              "    randomly permuted at each split, even if ``splitter`` is set to\n",
              "    ``"best"``. When ``max_features < n_features``, the algorithm will\n",
              "    select ``max_features`` at random at each split before finding the best\n",
              "    split among them. But the best found split may vary across different\n",
              "    runs, even if ``max_features=n_features``. That is the case, if the\n",
              "    improvement of the criterion is identical for several splits and one\n",
              "    split has to be selected at random. To obtain a deterministic behaviour\n",
              "    during fitting, ``random_state`` has to be fixed to an integer.\n",
              "    See :term:`Glossary <random_state>` for details.\n",
              "\n",
              "max_leaf_nodes : int, default=None\n",
              "    Grow a tree with ``max_leaf_nodes`` in best-first fashion.\n",
              "    Best nodes are defined as relative reduction in impurity.\n",
              "    If None then unlimited number of leaf nodes.\n",
              "\n",
              "min_impurity_decrease : float, default=0.0\n",
              "    A node will be split if this split induces a decrease of the impurity\n",
              "    greater than or equal to this value.\n",
              "\n",
              "    The weighted impurity decrease equation is the following::\n",
              "\n",
              "        N_t / N * (impurity - N_t_R / N_t * right_impurity\n",
              "                            - N_t_L / N_t * left_impurity)\n",
              "\n",
              "    where ``N`` is the total number of samples, ``N_t`` is the number of\n",
              "    samples at the current node, ``N_t_L`` is the number of samples in the\n",
              "    left child, and ``N_t_R`` is the number of samples in the right child.\n",
              "\n",
              "    ``N``, ``N_t``, ``N_t_R`` and ``N_t_L`` all refer to the weighted sum,\n",
              "    if ``sample_weight`` is passed.\n",
              "\n",
              "    .. versionadded:: 0.19\n",
              "\n",
              "class_weight : dict, list of dict or "balanced", default=None\n",
              "    Weights associated with classes in the form ``{class_label: weight}``.\n",
              "    If None, all classes are supposed to have weight one. For\n",
              "    multi-output problems, a list of dicts can be provided in the same\n",
              "    order as the columns of y.\n",
              "\n",
              "    Note that for multioutput (including multilabel) weights should be\n",
              "    defined for each class of every column in its own dict. For example,\n",
              "    for four-class multilabel classification weights should be\n",
              "    [{0: 1, 1: 1}, {0: 1, 1: 5}, {0: 1, 1: 1}, {0: 1, 1: 1}] instead of\n",
              "    [{1:1}, {2:5}, {3:1}, {4:1}].\n",
              "\n",
              "    The "balanced" mode uses the values of y to automatically adjust\n",
              "    weights inversely proportional to class frequencies in the input data\n",
              "    as ``n_samples / (n_classes * np.bincount(y))``\n",
              "\n",
              "    For multi-output, the weights of each column of y will be multiplied.\n",
              "\n",
              "    Note that these weights will be multiplied with sample_weight (passed\n",
              "    through the fit method) if sample_weight is specified.\n",
              "\n",
              "ccp_alpha : non-negative float, default=0.0\n",
              "    Complexity parameter used for Minimal Cost-Complexity Pruning. The\n",
              "    subtree with the largest cost complexity that is smaller than\n",
              "    ``ccp_alpha`` will be chosen. By default, no pruning is performed. See\n",
              "    :ref:`minimal_cost_complexity_pruning` for details.\n",
              "\n",
              "    .. versionadded:: 0.22\n",
              "\n",
              "Attributes\n",
              "----------\n",
              "classes_ : ndarray of shape (n_classes,) or list of ndarray\n",
              "    The classes labels (single output problem),\n",
              "    or a list of arrays of class labels (multi-output problem).\n",
              "\n",
              "feature_importances_ : ndarray of shape (n_features,)\n",
              "    The impurity-based feature importances.\n",
              "    The higher, the more important the feature.\n",
              "    The importance of a feature is computed as the (normalized)\n",
              "    total reduction of the criterion brought by that feature.  It is also\n",
              "    known as the Gini importance [4]_.\n",
              "\n",
              "    Warning: impurity-based feature importances can be misleading for\n",
              "    high cardinality features (many unique values). See\n",
              "    :func:`sklearn.inspection.permutation_importance` as an alternative.\n",
              "\n",
              "max_features_ : int\n",
              "    The inferred value of max_features.\n",
              "\n",
              "n_classes_ : int or list of int\n",
              "    The number of classes (for single output problems),\n",
              "    or a list containing the number of classes for each\n",
              "    output (for multi-output problems).\n",
              "\n",
              "n_features_in_ : int\n",
              "    Number of features seen during :term:`fit`.\n",
              "\n",
              "    .. versionadded:: 0.24\n",
              "\n",
              "feature_names_in_ : ndarray of shape (`n_features_in_`,)\n",
              "    Names of features seen during :term:`fit`. Defined only when `X`\n",
              "    has feature names that are all strings.\n",
              "\n",
              "    .. versionadded:: 1.0\n",
              "\n",
              "n_outputs_ : int\n",
              "    The number of outputs when ``fit`` is performed.\n",
              "\n",
              "tree_ : Tree instance\n",
              "    The underlying Tree object. Please refer to\n",
              "    ``help(sklearn.tree._tree.Tree)`` for attributes of Tree object and\n",
              "    :ref:`sphx_glr_auto_examples_tree_plot_unveil_tree_structure.py`\n",
              "    for basic usage of these attributes.\n",
              "\n",
              "See Also\n",
              "--------\n",
              "DecisionTreeRegressor : A decision tree regressor.\n",
              "\n",
              "Notes\n",
              "-----\n",
              "The default values for the parameters controlling the size of the trees\n",
              "(e.g. ``max_depth``, ``min_samples_leaf``, etc.) lead to fully grown and\n",
              "unpruned trees which can potentially be very large on some data sets. To\n",
              "reduce memory consumption, the complexity and size of the trees should be\n",
              "controlled by setting those parameter values.\n",
              "\n",
              "The :meth:`predict` method operates using the :func:`numpy.argmax`\n",
              "function on the outputs of :meth:`predict_proba`. This means that in\n",
              "case the highest predicted probabilities are tied, the classifier will\n",
              "predict the tied class with the lowest index in :term:`classes_`.\n",
              "\n",
              "References\n",
              "----------\n",
              "\n",
              ".. [1] https://en.wikipedia.org/wiki/Decision_tree_learning\n",
              "\n",
              ".. [2] L. Breiman, J. Friedman, R. Olshen, and C. Stone, "Classification\n",
              "       and Regression Trees", Wadsworth, Belmont, CA, 1984.\n",
              "\n",
              ".. [3] T. Hastie, R. Tibshirani and J. Friedman. "Elements of Statistical\n",
              "       Learning", Springer, 2009.\n",
              "\n",
              ".. [4] L. Breiman, and A. Cutler, "Random Forests",\n",
              "       https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm\n",
              "\n",
              "Examples\n",
              "--------\n",
              ">>> from sklearn.datasets import load_iris\n",
              ">>> from sklearn.model_selection import cross_val_score\n",
              ">>> from sklearn.tree import DecisionTreeClassifier\n",
              ">>> clf = DecisionTreeClassifier(random_state=0)\n",
              ">>> iris = load_iris()\n",
              ">>> cross_val_score(clf, iris.data, iris.target, cv=10)\n",
              "...                             # doctest: +SKIP\n",
              "...\n",
              "array([ 1.     ,  0.93...,  0.86...,  0.93...,  0.93...,\n",
              "        0.93...,  0.93...,  1.     ,  0.93...,  1.      ])
\n", " \n", "
" ] }, "metadata": {}, "execution_count": 47 } ], "source": [ "type(health_classifier)" ] }, { "cell_type": "markdown", "id": "vULqmNvVF4q4", "metadata": { "id": "vULqmNvVF4q4" }, "source": [ "### **5. Model Evaluation**\n", "Evaluate the model's performance using metrics such as accuracy, precision, recall, and F1-score." ] }, { "cell_type": "code", "execution_count": 48, "id": "lYjAaucHjeij", "metadata": { "id": "lYjAaucHjeij" }, "outputs": [], "source": [ "# Make predictions\n", "y_pred_array = health_classifier.predict(X_test)" ] }, { "cell_type": "code", "execution_count": 49, "id": "68E1R0hGjee_", "metadata": { "id": "68E1R0hGjee_" }, "outputs": [], "source": [ "# Ensure y_test is a Pandas Series to access its index\n", "if isinstance(y_test, np.ndarray):\n", " y_test = pd.Series(y_test)" ] }, { "cell_type": "code", "execution_count": 50, "id": "UL0yIOXcjeYi", "metadata": { "id": "UL0yIOXcjeYi" }, "outputs": [], "source": [ "# Create DataFrame from the predictions\n", "y_pred = pd.DataFrame(y_pred_array, columns=[\"health_condition\"])" ] }, { "cell_type": "code", "execution_count": 51, "id": "chg9gMVRjkH9", "metadata": { "id": "chg9gMVRjkH9" }, "outputs": [], "source": [ "# Set the index of the DataFrame to match y_test index\n", "y_pred.index = y_test.index" ] }, { "cell_type": "code", "execution_count": 52, "id": "acb6ff0f-e48c-4184-9cd7-75281b5a5c9b", "metadata": { "id": "acb6ff0f-e48c-4184-9cd7-75281b5a5c9b" }, "outputs": [], "source": [ "# Ensure the data type is int\n", "y_pred = y_pred.astype(int)" ] }, { "cell_type": "code", "execution_count": 53, "id": "rHo5wG80jpeR", "metadata": { "id": "rHo5wG80jpeR", "outputId": "f9357de8-38d1-4d00-9460-7c0f89e8cb95", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ " health_condition\n", "373 1\n", "498 1\n", "6 1\n", "209 1\n", "79 1\n", ".. ...\n", "480 1\n", "24 0\n", "17 1\n", "318 1\n", "67 1\n", "\n", "[158 rows x 1 columns]\n" ] } ], "source": [ "print(y_pred)" ] }, { "cell_type": "code", "execution_count": 54, "id": "65aab513-c6cf-4489-96f9-7d750754233e", "metadata": { "id": "65aab513-c6cf-4489-96f9-7d750754233e" }, "outputs": [], "source": [ "y_test = np.array(y_test,dtype = int)" ] }, { "cell_type": "code", "execution_count": 55, "id": "05ca175a-a41b-42c3-92bc-97375c6aab73", "metadata": { "id": "05ca175a-a41b-42c3-92bc-97375c6aab73", "outputId": "9ec9c30a-2956-4099-cb7f-e69721f2a94d", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "numpy.ndarray" ] }, "metadata": {}, "execution_count": 55 } ], "source": [ "type(y_test)" ] }, { "cell_type": "code", "execution_count": 56, "id": "c1e80c44-e162-4ca1-83a5-13f64b036b19", "metadata": { "id": "c1e80c44-e162-4ca1-83a5-13f64b036b19", "outputId": "cdf1abd0-ee66-44da-a91d-9b2d43a38dbf", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1,\n", " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", " 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1,\n", " 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", " 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,\n", " 0, 1, 1, 1])" ] }, "metadata": {}, "execution_count": 56 } ], "source": [ "y_test" ] }, { "cell_type": "code", "execution_count": 57, "id": "42c4582e-1a9e-4ca5-9133-d4ff0bc7ca92", "metadata": { "id": "42c4582e-1a9e-4ca5-9133-d4ff0bc7ca92", "outputId": "1279fbd3-5452-43f5-bc2d-55fa7ecd3a04", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0.9810126582278481" ] }, "metadata": {}, "execution_count": 57 } ], "source": [ "# Measure Accuracy\n", "metrics.accuracy_score(y_test,y_pred)" ] }, { "cell_type": "code", "execution_count": 58, "id": "181bd3c2-6026-4092-ac0b-4a51c928d6b6", "metadata": { "id": "181bd3c2-6026-4092-ac0b-4a51c928d6b6", "outputId": "db27ae82-4770-42b1-e00c-6ddd393295f3", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ " precision recall f1-score support\n", "\n", " 0 0.91 0.91 0.91 11\n", " 1 0.99 0.99 0.99 146\n", " 2 0.00 0.00 0.00 1\n", "\n", " accuracy 0.98 158\n", " macro avg 0.63 0.63 0.63 158\n", "weighted avg 0.97 0.98 0.98 158\n", "\n" ] } ], "source": [ "print(metrics.classification_report(y_test, y_pred))" ] }, { "cell_type": "markdown", "id": "566afdb7-c26f-46b0-9ae2-0e0ca73ef037", "metadata": { "id": "566afdb7-c26f-46b0-9ae2-0e0ca73ef037" }, "source": [ "### **6. Model Deployment**\n", "Save the trained model for future use and deploying it in real-world applications." ] }, { "cell_type": "code", "execution_count": 59, "id": "2f755dff-26ee-407e-8c0b-2a3056d0c1cb", "metadata": { "id": "2f755dff-26ee-407e-8c0b-2a3056d0c1cb", "outputId": "d176d3b0-b690-44ca-ba8c-73b6a2a3461b", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "#pragma once\n", "#include \n", "namespace Eloquent {\n", " namespace ML {\n", " namespace Port {\n", " class DecisionTree {\n", " public:\n", " /**\n", " * Predict class for features vector\n", " */\n", " int predict(float *x) {\n", " if (x[2] <= 95.5) {\n", " if (x[2] <= 94.0) {\n", " return 1;\n", " }\n", "\n", " else {\n", " if (x[0] <= 96.5) {\n", " return 1;\n", " }\n", "\n", " else {\n", " if (x[0] <= 99.0) {\n", " return 0;\n", " }\n", "\n", " else {\n", " return 1;\n", " }\n", " }\n", " }\n", " }\n", "\n", " else {\n", " if (x[1] <= 37.25) {\n", " if (x[0] <= 61.0) {\n", " return 1;\n", " }\n", "\n", " else {\n", " return 0;\n", " }\n", " }\n", "\n", " else {\n", " return 1;\n", " }\n", " }\n", " }\n", "\n", " protected:\n", " };\n", " }\n", " }\n", " }\n" ] } ], "source": [ "print(port(health_classifier))" ] }, { "cell_type": "markdown", "id": "ScKF5VgskBQq", "metadata": { "id": "ScKF5VgskBQq" }, "source": [ "Now copy the above Decision Tree classifier code and save in any text file with name\n", "\n", "```\n", "DecisionTree.h\n", "```\n", "\n", "Then copy the below arduino code and save it named as\n", "\n", "```\n", "health_determining_model.ino\n", "```\n" ] }, { "cell_type": "markdown", "id": "q_eDDNaljuW6", "metadata": { "id": "q_eDDNaljuW6" }, "source": [ "\n", "\n", "```\n", "#include \n", "#include \"MAX30100_PulseOximeter.h\"\n", "#include \"DecisionTree.h\"\n", "\n", "Eloquent::ML::Port::DecisionTree health_Classifier;\n", "\n", "#define TEMPERATURE_SENSOR_PIN 32 // Analog pin for the temperature sensor (replace with the actual pin number)\n", "#define HEART_RATE_SENSOR_PIN 35 // Analog pin for the heart rate sensor (replace with the actual pin number)\n", "\n", "// Initialize the PulseOximeter library\n", "PulseOximeter pox;\n", "\n", "// Variable Declaration\n", "float t;\n", "int h;\n", "int s;\n", "int prediction;\n", "\n", "void setup() {\n", " Serial.begin(9600);\n", " Serial.println(\"Welcome!\");\n", "\n", " pinMode(TEMPERATURE_SENSOR_PIN, INPUT); \n", " pinMode(HEART_RATE_SENSOR_PIN, INPUT); \n", "\n", " // Initialize the Pulse Oximeter\n", " if (!pox.begin()) {\n", " Serial.println(\"Failed to initialize pulse oximeter!\");\n", " while (1);\n", " } else {\n", " Serial.println(\"Pulse oximeter initialized successfully!\");\n", " }\n", "}\n", "\n", "void loop() {\n", " delay(2000);\n", "\n", " // Sensor data Collection part\n", "\n", " // Read temperature value\n", " int temperatureValue = analogRead(TEMPERATURE_SENSOR_PIN);\n", " t = convertToCelsius(temperatureValue);\n", " Serial.print(\"Temperature (°C): \");\n", " Serial.println(t);\n", "\n", " // Read heart rate value\n", " h = analogRead(HEART_RATE_SENSOR_PIN);\n", " Serial.print(\"Heart Rate (bpm): \");\n", " Serial.println(h);\n", "\n", " // Read SpO2 value\n", " int s = pox.getSpO2();\n", " Serial.print(\"SpO2 (%): \");\n", " Serial.println(s);\n", "\n", " // Print values of heart_rate, temperature, and SpO2_saturation to serial monitor\n", " Serial.print(F(\"Heart_rate: \"));\n", " Serial.print(h);\n", " Serial.print(F(\" Temperature: \"));\n", " Serial.print(t);\n", " Serial.print(F(\" SpO2: \"));\n", " Serial.println(s);\n", "\n", " float input[3] = {h, t, s};\n", " // Giving input values to predict Function\n", " int prediction = health_Classifier.predict(input);\n", "\n", " // Checking Condition\n", " Serial.print(\"Prediction: \");\n", " switch (prediction) {\n", " case 0:\n", " Serial.println(\"Normal\");\n", " break;\n", " case 1:\n", " Serial.println(\"Serious\");\n", " break;\n", " case 2:\n", " Serial.println(\"Dischargeable\");\n", " break;\n", " default:\n", " Serial.println(\"Unknown\");\n", " break;\n", " }\n", "\n", " Serial.println();\n", " delay(1000);\n", "}\n", "\n", "float convertToCelsius(int adcValue) {\n", " float voltage = adcValue * 3.3 / 4095.0; // Convert ADC value to voltage for ESP32\n", " float temperatureCelsius = (voltage - 0.5) * 100; // Convert voltage to temperature in Celsius\n", " return temperatureCelsius;\n", "}\n", "\n", "\n", "```\n", "\n" ] }, { "cell_type": "code", "execution_count": 59, "id": "3ab7a75f-a119-40b0-a116-4c8e8a7d9d44", "metadata": { "id": "3ab7a75f-a119-40b0-a116-4c8e8a7d9d44" }, "outputs": [], "source": [ "import serial\n", "import time\n", "\n", "# Replace 'COM10' with the appropriate serial port for your system\n", "SERIAL_PORT = 'COM13'\n", "BAUD_RATE = 9600 # the baud rate set on your ESP32\n", "\n", "def read_from_esp32():\n", " # Open the serial connection\n", " with serial.Serial(SERIAL_PORT, BAUD_RATE, timeout=1) as ser:\n", " # Give some time for the serial connection to establish\n", " time.sleep(2)\n", "\n", " # Clear any existing input in the buffer\n", " ser.flushInput()\n", "\n", " try:\n", " while True:\n", " # Read data from the ESP32\n", " if ser.in_waiting > 0:\n", " line = ser.readline().decode('utf-8').rstrip()\n", " print(f\"{line}\")\n", " time.sleep(0.1)\n", "\n", " except KeyboardInterrupt:\n", " print(\"Serial read stopped.\")\n", "\n", "if __name__ == \"__main__\":\n", " read_from_esp32()" ] }, { "cell_type": "markdown", "id": "ecTNmC1xmal_", "metadata": { "id": "ecTNmC1xmal_" }, "source": [ "Now move these both files in same folder then open the \"health_determining_model.ino\" file in your arduino IDE and upload the code to your Esp32 microcontroller.\n", "\n", "Before uploading the code to the board, do verify that the \"DecisionTree.h\" file is also opened in the same arduino IDE beside the .ino file.\n", "\n", "If any error occurs then open the \"DecisionTree.h\" file and comment the line containing this code\n", "\n", "```\n", "#include // comment this line\n", "```\n", "\n", "\n" ] }, { "cell_type": "markdown", "source": [ "## About Author" ], "metadata": { "id": "k9_XiOApk7JK" }, "id": "k9_XiOApk7JK" }, { "cell_type": "markdown", "source": [ "### Developed by Harsh Raj\n", "Contacts :\n", "- [Email](mailto:developerharshraj@gmail.com)\n", "- [LinkedIn](https://in.linkedin.com/in/harsh-raj-416a0b27b)\n", "- [GitHub](https://github.com/HarshRajTiwary)\n", "\n", "### Happy Learning" ], "metadata": { "id": "5VZAKh1Uk_mF" }, "id": "5VZAKh1Uk_mF" } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.11" } }, "nbformat": 4, "nbformat_minor": 5 }