BeyzaTopbas commited on
Commit
8392782
·
verified ·
1 Parent(s): 494b145

Upload project-heart-disease-prediction.ipynb

Browse files
src/project-heart-disease-prediction.ipynb ADDED
@@ -0,0 +1 @@
 
 
1
+ {"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.12.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"gpu","dataSources":[{"sourceType":"datasetVersion","sourceId":477177,"datasetId":216167,"databundleVersionId":493143}],"dockerImageVersionId":31260,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n for filename in filenames:\n print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"execution":{"iopub.status.busy":"2026-02-26T22:57:16.930646Z","iopub.execute_input":"2026-02-26T22:57:16.930850Z","iopub.status.idle":"2026-02-26T22:57:17.990003Z","shell.execute_reply.started":"2026-02-26T22:57:16.930829Z","shell.execute_reply":"2026-02-26T22:57:17.989212Z"}},"outputs":[{"name":"stdout","text":"/kaggle/input/heart-disease-dataset/heart.csv\n","output_type":"stream"}],"execution_count":1},{"cell_type":"markdown","source":"# Heart Disease Prediction – Exploratory Data Analysis (EDA)\n\n**Problem type:** Classification \n**Data type:** Tabular \n**Target variable:** target (0 = no disease, 1 = disease) \n**Evaluation metric:** Accuracy \n\nThe goal of this project is to explore the heart disease dataset and understand\nwhich features are related to the presence of heart disease.\n\nThis notebook focuses on Exploratory Data Analysis (EDA) only.","metadata":{}},{"cell_type":"markdown","source":"## Imports","metadata":{}},{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nimport joblib\n\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.pipeline import Pipeline\nfrom sklearn.compose import ColumnTransformer\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.impute import SimpleImputer\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import accuracy_score\n\nimport warnings\nwarnings.filterwarnings(\"ignore\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-02-26T22:57:19.715591Z","iopub.execute_input":"2026-02-26T22:57:19.715865Z","iopub.status.idle":"2026-02-26T22:57:20.948928Z","shell.execute_reply.started":"2026-02-26T22:57:19.715841Z","shell.execute_reply":"2026-02-26T22:57:20.948133Z"}},"outputs":[],"execution_count":2},{"cell_type":"markdown","source":"## Load Data","metadata":{}},{"cell_type":"code","source":"df = pd.read_csv(\"/kaggle/input/heart-disease-dataset/heart.csv\")\ndf.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-02-26T22:57:20.950245Z","iopub.execute_input":"2026-02-26T22:57:20.950700Z","iopub.status.idle":"2026-02-26T22:57:20.994730Z","shell.execute_reply.started":"2026-02-26T22:57:20.950671Z","shell.execute_reply":"2026-02-26T22:57:20.993979Z"}},"outputs":[{"execution_count":3,"output_type":"execute_result","data":{"text/plain":" age sex cp trestbps chol fbs restecg thalach exang oldpeak slope \\\n0 52 1 0 125 212 0 1 168 0 1.0 2 \n1 53 1 0 140 203 1 0 155 1 3.1 0 \n2 70 1 0 145 174 0 1 125 1 2.6 0 \n3 61 1 0 148 203 0 1 161 0 0.0 2 \n4 62 0 0 138 294 1 1 106 0 1.9 1 \n\n ca thal target \n0 2 3 0 \n1 0 3 0 \n2 0 3 0 \n3 1 3 0 \n4 3 2 0 ","text/html":"<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>age</th>\n <th>sex</th>\n <th>cp</th>\n <th>trestbps</th>\n <th>chol</th>\n <th>fbs</th>\n <th>restecg</th>\n <th>thalach</th>\n <th>exang</th>\n <th>oldpeak</th>\n <th>slope</th>\n <th>ca</th>\n <th>thal</th>\n <th>target</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>52</td>\n <td>1</td>\n <td>0</td>\n <td>125</td>\n <td>212</td>\n <td>0</td>\n <td>1</td>\n <td>168</td>\n <td>0</td>\n <td>1.0</td>\n <td>2</td>\n <td>2</td>\n <td>3</td>\n <td>0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>53</td>\n <td>1</td>\n <td>0</td>\n <td>140</td>\n <td>203</td>\n <td>1</td>\n <td>0</td>\n <td>155</td>\n <td>1</td>\n <td>3.1</td>\n <td>0</td>\n <td>0</td>\n <td>3</td>\n <td>0</td>\n </tr>\n <tr>\n <th>2</th>\n <td>70</td>\n <td>1</td>\n <td>0</td>\n <td>145</td>\n <td>174</td>\n <td>0</td>\n <td>1</td>\n <td>125</td>\n <td>1</td>\n <td>2.6</td>\n <td>0</td>\n <td>0</td>\n <td>3</td>\n <td>0</td>\n </tr>\n <tr>\n <th>3</th>\n <td>61</td>\n <td>1</td>\n <td>0</td>\n <td>148</td>\n <td>203</td>\n <td>0</td>\n <td>1</td>\n <td>161</td>\n <td>0</td>\n <td>0.0</td>\n <td>2</td>\n <td>1</td>\n <td>3</td>\n <td>0</td>\n </tr>\n <tr>\n <th>4</th>\n <td>62</td>\n <td>0</td>\n <td>0</td>\n <td>138</td>\n <td>294</td>\n <td>1</td>\n <td>1</td>\n <td>106</td>\n <td>0</td>\n <td>1.9</td>\n <td>1</td>\n <td>3</td>\n <td>2</td>\n <td>0</td>\n </tr>\n </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":3},{"cell_type":"markdown","source":"## Dataset Overview\nWe start by inspecting the size and structure of the datasets.","metadata":{}},{"cell_type":"code","source":"df.shape","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-02-26T22:57:23.667413Z","iopub.execute_input":"2026-02-26T22:57:23.667745Z","iopub.status.idle":"2026-02-26T22:57:23.672694Z","shell.execute_reply.started":"2026-02-26T22:57:23.667721Z","shell.execute_reply":"2026-02-26T22:57:23.672009Z"}},"outputs":[{"execution_count":4,"output_type":"execute_result","data":{"text/plain":"(1025, 14)"},"metadata":{}}],"execution_count":4},{"cell_type":"code","source":"df.info()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-02-26T22:57:23.811417Z","iopub.execute_input":"2026-02-26T22:57:23.812163Z","iopub.status.idle":"2026-02-26T22:57:23.828825Z","shell.execute_reply.started":"2026-02-26T22:57:23.812135Z","shell.execute_reply":"2026-02-26T22:57:23.828171Z"}},"outputs":[{"name":"stdout","text":"<class 'pandas.core.frame.DataFrame'>\nRangeIndex: 1025 entries, 0 to 1024\nData columns (total 14 columns):\n # Column Non-Null Count Dtype \n--- ------ -------------- ----- \n 0 age 1025 non-null int64 \n 1 sex 1025 non-null int64 \n 2 cp 1025 non-null int64 \n 3 trestbps 1025 non-null int64 \n 4 chol 1025 non-null int64 \n 5 fbs 1025 non-null int64 \n 6 restecg 1025 non-null int64 \n 7 thalach 1025 non-null int64 \n 8 exang 1025 non-null int64 \n 9 oldpeak 1025 non-null float64\n 10 slope 1025 non-null int64 \n 11 ca 1025 non-null int64 \n 12 thal 1025 non-null int64 \n 13 target 1025 non-null int64 \ndtypes: float64(1), int64(13)\nmemory usage: 112.2 KB\n","output_type":"stream"}],"execution_count":5},{"cell_type":"code","source":"df.describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-02-26T22:57:23.939111Z","iopub.execute_input":"2026-02-26T22:57:23.939374Z","iopub.status.idle":"2026-02-26T22:57:23.972120Z","shell.execute_reply.started":"2026-02-26T22:57:23.939350Z","shell.execute_reply":"2026-02-26T22:57:23.971418Z"}},"outputs":[{"execution_count":6,"output_type":"execute_result","data":{"text/plain":" age sex cp trestbps chol \\\ncount 1025.000000 1025.000000 1025.000000 1025.000000 1025.00000 \nmean 54.434146 0.695610 0.942439 131.611707 246.00000 \nstd 9.072290 0.460373 1.029641 17.516718 51.59251 \nmin 29.000000 0.000000 0.000000 94.000000 126.00000 \n25% 48.000000 0.000000 0.000000 120.000000 211.00000 \n50% 56.000000 1.000000 1.000000 130.000000 240.00000 \n75% 61.000000 1.000000 2.000000 140.000000 275.00000 \nmax 77.000000 1.000000 3.000000 200.000000 564.00000 \n\n fbs restecg thalach exang oldpeak \\\ncount 1025.000000 1025.000000 1025.000000 1025.000000 1025.000000 \nmean 0.149268 0.529756 149.114146 0.336585 1.071512 \nstd 0.356527 0.527878 23.005724 0.472772 1.175053 \nmin 0.000000 0.000000 71.000000 0.000000 0.000000 \n25% 0.000000 0.000000 132.000000 0.000000 0.000000 \n50% 0.000000 1.000000 152.000000 0.000000 0.800000 \n75% 0.000000 1.000000 166.000000 1.000000 1.800000 \nmax 1.000000 2.000000 202.000000 1.000000 6.200000 \n\n slope ca thal target \ncount 1025.000000 1025.000000 1025.000000 1025.000000 \nmean 1.385366 0.754146 2.323902 0.513171 \nstd 0.617755 1.030798 0.620660 0.500070 \nmin 0.000000 0.000000 0.000000 0.000000 \n25% 1.000000 0.000000 2.000000 0.000000 \n50% 1.000000 0.000000 2.000000 1.000000 \n75% 2.000000 1.000000 3.000000 1.000000 \nmax 2.000000 4.000000 3.000000 1.000000 ","text/html":"<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>age</th>\n <th>sex</th>\n <th>cp</th>\n <th>trestbps</th>\n <th>chol</th>\n <th>fbs</th>\n <th>restecg</th>\n <th>thalach</th>\n <th>exang</th>\n <th>oldpeak</th>\n <th>slope</th>\n <th>ca</th>\n <th>thal</th>\n <th>target</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>count</th>\n <td>1025.000000</td>\n <td>1025.000000</td>\n <td>1025.000000</td>\n <td>1025.000000</td>\n <td>1025.00000</td>\n <td>1025.000000</td>\n <td>1025.000000</td>\n <td>1025.000000</td>\n <td>1025.000000</td>\n <td>1025.000000</td>\n <td>1025.000000</td>\n <td>1025.000000</td>\n <td>1025.000000</td>\n <td>1025.000000</td>\n </tr>\n <tr>\n <th>mean</th>\n <td>54.434146</td>\n <td>0.695610</td>\n <td>0.942439</td>\n <td>131.611707</td>\n <td>246.00000</td>\n <td>0.149268</td>\n <td>0.529756</td>\n <td>149.114146</td>\n <td>0.336585</td>\n <td>1.071512</td>\n <td>1.385366</td>\n <td>0.754146</td>\n <td>2.323902</td>\n <td>0.513171</td>\n </tr>\n <tr>\n <th>std</th>\n <td>9.072290</td>\n <td>0.460373</td>\n <td>1.029641</td>\n <td>17.516718</td>\n <td>51.59251</td>\n <td>0.356527</td>\n <td>0.527878</td>\n <td>23.005724</td>\n <td>0.472772</td>\n <td>1.175053</td>\n <td>0.617755</td>\n <td>1.030798</td>\n <td>0.620660</td>\n <td>0.500070</td>\n </tr>\n <tr>\n <th>min</th>\n <td>29.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>94.000000</td>\n <td>126.00000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>71.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n </tr>\n <tr>\n <th>25%</th>\n <td>48.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>120.000000</td>\n <td>211.00000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>132.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>1.000000</td>\n <td>0.000000</td>\n <td>2.000000</td>\n <td>0.000000</td>\n </tr>\n <tr>\n <th>50%</th>\n <td>56.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>130.000000</td>\n <td>240.00000</td>\n <td>0.000000</td>\n <td>1.000000</td>\n <td>152.000000</td>\n <td>0.000000</td>\n <td>0.800000</td>\n <td>1.000000</td>\n <td>0.000000</td>\n <td>2.000000</td>\n <td>1.000000</td>\n </tr>\n <tr>\n <th>75%</th>\n <td>61.000000</td>\n <td>1.000000</td>\n <td>2.000000</td>\n <td>140.000000</td>\n <td>275.00000</td>\n <td>0.000000</td>\n <td>1.000000</td>\n <td>166.000000</td>\n <td>1.000000</td>\n <td>1.800000</td>\n <td>2.000000</td>\n <td>1.000000</td>\n <td>3.000000</td>\n <td>1.000000</td>\n </tr>\n <tr>\n <th>max</th>\n <td>77.000000</td>\n <td>1.000000</td>\n <td>3.000000</td>\n <td>200.000000</td>\n <td>564.00000</td>\n <td>1.000000</td>\n <td>2.000000</td>\n <td>202.000000</td>\n <td>1.000000</td>\n <td>6.200000</td>\n <td>2.000000</td>\n <td>4.000000</td>\n <td>3.000000</td>\n <td>1.000000</td>\n </tr>\n </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":6},{"cell_type":"markdown","source":"## Missing Values\nWe analyze missing values to understand data quality issues and decide on preprocessing steps.","metadata":{}},{"cell_type":"code","source":"df.isnull().sum().sort_values(ascending=False)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-02-26T22:57:27.975888Z","iopub.execute_input":"2026-02-26T22:57:27.976407Z","iopub.status.idle":"2026-02-26T22:57:27.982380Z","shell.execute_reply.started":"2026-02-26T22:57:27.976381Z","shell.execute_reply":"2026-02-26T22:57:27.981701Z"}},"outputs":[{"execution_count":7,"output_type":"execute_result","data":{"text/plain":"age 0\nsex 0\ncp 0\ntrestbps 0\nchol 0\nfbs 0\nrestecg 0\nthalach 0\nexang 0\noldpeak 0\nslope 0\nca 0\nthal 0\ntarget 0\ndtype: int64"},"metadata":{}}],"execution_count":7},{"cell_type":"markdown","source":"## Target distribution\nImportant for classification. Shows whether the classes are balanced.","metadata":{}},{"cell_type":"code","source":"sns.countplot(x=df[\"target\"])\nplt.title(\"Target Distribution\")\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-02-26T22:57:28.392713Z","iopub.execute_input":"2026-02-26T22:57:28.393164Z","iopub.status.idle":"2026-02-26T22:57:28.617549Z","shell.execute_reply.started":"2026-02-26T22:57:28.393141Z","shell.execute_reply":"2026-02-26T22:57:28.616869Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAjsAAAHHCAYAAABZbpmkAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAALNhJREFUeJzt3XtU1HX+x/HXIHIRHAjlIopgViqmsqups7VpRpKxWj8xzfwZuWatoaVsrnm2vJWraWU31LLU2nQt83TRXC+Rl47iJcoyLTIzsXQgK0BRQOH7+6PD/JpAUwRm+PR8nDPnON/vZ2beXzvk05nvd7RZlmUJAADAUD6eHgAAAKAuETsAAMBoxA4AADAasQMAAIxG7AAAAKMROwAAwGjEDgAAMBqxAwAAjEbsAAAAoxE7AIzRu3dv9e7du15ey2azaerUqa77U6dOlc1m07Fjx+rl9ePi4nTnnXfWy2sBDR2xAzQwNpvtvG6bNm3y9Khutm3bpqlTp6qgoOC81t95551uxxMcHKxLL71UgwYN0sqVK1VRUeGRueqTN88GNCS+nh4AwIX597//7Xb/lVde0YYNG6ps79ChQ32O9Zu2bdumadOm6c4771RoaOh5Pcbf318vvviiJOnUqVM6dOiQVq1apUGDBql37956++23ZbfbXevXr19fL3NVzuPrW7f/Cz3XbDk5OfLx4e+rwPkgdoAG5n//93/d7m/fvl0bNmyosr0mLMtSSUmJAgMDL/q5aoOvr2+V43r00Uc1a9YsTZo0SaNGjdJrr73m2ufn51en81RUVKisrEwBAQEKCAio09f6Lf7+/h59faAh4a8FgIEWL16sPn36KCIiQv7+/oqPj9f8+fOrrIuLi9Nf/vIXrVu3Tt26dVNgYKCef/55SdKhQ4c0YMAABQUFKSIiQuPHj9e6deuq/Yhsx44duvHGGxUSEqImTZqoV69e2rp1q2v/1KlTNWHCBElSmzZtXB9NffPNNzU6vgcffFB9+/bVihUr9OWXX7q2V3fOzrPPPquOHTuqSZMmuuSSS9StWzctW7bsvOay2WwaM2aMli5dqo4dO8rf319r16517fvlOTuVjh07psGDB8tut6tZs2a6//77VVJS4tr/zTffyGazacmSJVUe+8vn/K3Zqjtn5+uvv9att96qsLAwNWnSRD179tS7777rtmbTpk2y2Wx6/fXXNWPGDLVq1UoBAQG6/vrr9dVXX5319xxoyHhnBzDQ/Pnz1bFjRw0YMEC+vr5atWqV7r33XlVUVCgtLc1tbU5OjoYOHap77rlHo0aNUrt27VRcXKw+ffro6NGjuv/++xUVFaVly5Zp48aNVV7r/fffV79+/dS1a1dNmTJFPj4+rtj64IMP1L17dw0cOFBffvml/vOf/2ju3Llq3ry5JCk8PLzGxzh8+HCtX79eGzZs0BVXXFHtmoULF+q+++7ToEGDXNHx6aefaseOHbr99tvPa673339fr7/+usaMGaPmzZsrLi7unHMNHjxYcXFxmjlzprZv365nnnlGP/30k1555ZULOr4L/T3Ly8vTn/70J508eVL33XefmjVrppdfflkDBgzQG2+8of/5n/9xWz9r1iz5+PjogQceUGFhoWbPnq1hw4Zpx44dFzQn0CBYABq0tLQ069c/yidPnqyyLikpybr00kvdtsXGxlqSrLVr17ptf+KJJyxJ1ltvveXadurUKat9+/aWJGvjxo2WZVlWRUWFdfnll1tJSUlWRUWF2+u3adPGuuGGG1zb5syZY0myDh48eF7HlZqaagUFBZ11/8cff2xJssaPH+/a1qtXL6tXr16u+zfffLPVsWPHc77OueaSZPn4+Fh79+6tdt+UKVNc96dMmWJJsgYMGOC27t5777UkWZ988ollWZZ18OBBS5K1ePHi33zOc80WGxtrpaamuu6PGzfOkmR98MEHrm3Hjx+32rRpY8XFxVnl5eWWZVnWxo0bLUlWhw4drNLSUtfap59+2pJk7dmzp8prAQ0dH2MBBvrlOTeFhYU6duyYevXqpa+//lqFhYVua9u0aaOkpCS3bWvXrlXLli01YMAA17aAgACNGjXKbd3u3bu1f/9+3X777frhhx907NgxHTt2TMXFxbr++uu1ZcuWWrtq6teCg4MlScePHz/rmtDQUH377bfatWtXjV+nV69eio+PP+/1v37nbOzYsZKkNWvW1HiG87FmzRp1795d11xzjWtbcHCw7r77bn3zzTfat2+f2/oRI0a4neP05z//WdLPH4UBpuFjLMBAW7du1ZQpU5SVlaWTJ0+67SssLFRISIjrfps2bao8/tChQ2rbtq1sNpvb9ssuu8zt/v79+yVJqampZ52lsLBQl1xyyQUfw285ceKEJKlp06ZnXTNx4kS999576t69uy677DL17dtXt99+u66++urzfp3qfn/O5fLLL3e737ZtW/n4+NT4/KTzdejQIfXo0aPK9sqr8g4dOqQrr7zStb1169Zu6yr/G/300091OCXgGcQOYJgDBw7o+uuvV/v27fXkk08qJiZGfn5+WrNmjebOnVvlnZaLufKq8rnmzJmjhISEatdUvgNT2z777DNJVQPslzp06KCcnBytXr1aa9eu1cqVKzVv3jxNnjxZ06ZNO6/Xudgr034djL++X6m8vPyiXudCNWrUqNrtlmXV6xxAfSB2AMOsWrVKpaWleuedd9z+9l7dycVnExsbq3379smyLLc/nH99tU7btm0lSXa7XYmJied8zrP9IV9T//73v2Wz2XTDDTecc11QUJCGDBmiIUOGqKysTAMHDtSMGTM0adIkBQQE1Ppc+/fvd3s36KuvvlJFRYXrxObKd1B+/UWBhw4dqvJcFzJbbGyscnJyqmz/4osvXPuB3yvO2QEMU/k39l/+Db2wsFCLFy8+7+dISkrSd999p3feece1raSkRAsXLnRb17VrV7Vt21aPP/6462OlX/r+++9dvw4KCpJU9Q/5mpg1a5bWr1+vIUOGVPnY6Jd++OEHt/t+fn6Kj4+XZVk6ffp0rc8lSRkZGW73n332WUlSv379JP0chs2bN9eWLVvc1s2bN6/Kc13IbDfddJN27typrKws17bi4mK98MILiouLu6DzjgDT8M4OYJi+ffvKz89P/fv31z333KMTJ05o4cKFioiI0NGjR8/rOe655x4999xzGjp0qO6//361aNFCS5cudX2RXuU7Dj4+PnrxxRfVr18/dezYUSNGjFDLli313XffaePGjbLb7Vq1apWkn8NIkv75z3/qtttuU+PGjdW/f3/XH+jVOXPmjF599VVJP8fWoUOH9M477+jTTz/VddddpxdeeOE3fy+ioqJ09dVXKzIyUp9//rmee+45JScnu871qclc53Lw4EENGDBAN954o7KysvTqq6/q9ttvV5cuXVxr7rrrLs2aNUt33XWXunXrpi1btrh9X1ClC5ntwQcf1H/+8x/169dP9913n8LCwvTyyy/r4MGDWrlyJd+2jN83z14MBuBiVXfp+TvvvGN17tzZCggIsOLi4qzHHnvMWrRoUZXLmGNjY63k5ORqn/frr7+2kpOTrcDAQCs8PNz6+9//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XHKJWrVqpRUrVqhZs2batm2b7r77brVo0UKDBw92PTYzM1N2u10bNmyQJBUVFal///666aabtGzZMh06dKjKx1EFBQXq06eP7rrrLs2dO1enTp3SxIkTNXjwYL3//vvVzhMeHl4/vxkAagWxA8CrhISEyM/PT02aNFFUVJRr+7Rp01y/btOmjbKysvT666+7xU5QUJBefPFF+fn5SZIWLFggm82mhQsXKiAgQPHx8fruu+80atQo12Oee+45/eEPf9C//vUv17ZFixYpJiZGX375pa644opq5wHQcBA7ABqEjIwMLVq0SLm5uTp16pTKysqUkJDgtqZTp06u0JGknJwcde7cWQEBAa5t3bt3d3vMJ598oo0bNyo4OLjKax44cEBXXHFF7R4IgHpH7ADwesuXL9cDDzygJ554Qg6HQ02bNtWcOXO0Y8cOt3VBQUEX/NwnTpxQ//799dhjj1XZ16JFixrPDMB7EDsAvI6fn5/Ky8td97du3ao//elPuvfee13bDhw48JvP065dO7366qsqLS2Vv7+/JGnXrl1ua/74xz9q5cqViouLk69v9f9L/PU8ABoWrsYC4HXi4uK0Y8cOffPNNzp27Jguv/xyffjhh1q3bp2+/PJLPfzww1WipTq33367KioqdPfdd+vzzz/XunXr9Pjjj0uSbDabJCktLU0//vijhg4dql27dunAgQNat26dRowY4QqcX89TUVFRdwcPoNYROwC8zgMPPKBGjRopPj5e4eHhSkpK0sCBAzVkyBD16NFDP/zwg9u7PGdjt9u1atUq7d69WwkJCfrnP/+pyZMnS5LrPJ7o6Ght3bpV5eXl6tu3rzp16qRx48YpNDRUPj4+1c6Tm5tbdwcPoNbZLMuyPD0EANSXpUuXasSIESosLFRgYKCnxwFQDzhnB4DRXnnlFV166aVq2bKlPvnkE9d36BA6wO8HsQPAaE6nU5MnT5bT6VSLFi106623asaMGZ4eC0A94mMsAABgNE5QBgAARiN2AACA0YgdAABgNGIHAAAYjdgBAABGI3YAAIDRiB0AAGA0YgcAABiN2AEAAEb7PxBsIgoHF46IAAAAAElFTkSuQmCC\n"},"metadata":{}}],"execution_count":8},{"cell_type":"markdown","source":"The target variable is reasonably balanced, which makes accuracy an appropriate evaluation metric.","metadata":{}},{"cell_type":"markdown","source":"## Correlation with target","metadata":{}},{"cell_type":"code","source":"plt.figure(figsize=(10,6))\nsns.heatmap(df.corr(), cmap=\"coolwarm\", annot=False)\nplt.title(\"Feature Correlation Heatmap\")\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-02-26T22:57:32.926231Z","iopub.execute_input":"2026-02-26T22:57:32.926558Z","iopub.status.idle":"2026-02-26T22:57:33.162042Z","shell.execute_reply.started":"2026-02-26T22:57:32.926533Z","shell.execute_reply":"2026-02-26T22:57:33.161496Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 1000x600 with 2 Axes>","image/png":"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JycMGzYMubm56n0yMzPRvn17WFpawsvLCxs3boSnpyfmz5+vr8tARERERETFpLfKSmxsLL799lssW7YMvr6+OHDgAD755BO4uLhg3bp18Pf3x4IFCzBixAgMHToU5cqVU3dWVCoVypcvjx9++AFOTk44dOgQBg8eDA8PD3Tr1k39Gvv27YOHhwf27duHy5cvo3v37qhTpw5CQ0MBAH369MHt27exf/9+mJubIzw8HDdv3tTXJSAiIiKitxyXLhZHL50VpVKJ6dOnY8+ePQgMDAQAeHt74+DBg/j666+xceNGfP311+jTpw+ysrLw+++/4+TJkzAzexbP3NwcMTEx6uN5eXkhMTER33//vUZnxdHREYsWLYKpqSmqVauG9u3bIz4+HqGhoTh//jz27NmDo0ePIiAgAACwcuVK+Pr66uMSEBERERGRSHrprFy+fBmPHz9G69atNdpzcnJQt25dAEDXrl2xdetWzJgxA0uXLi3UiVi8eDFWr16NjIwMPHnyBDk5OahTp47GPjVq1ICpqan6ew8PD5w+fRoAcOHCBZiZmaFevXrqx318fODo6PjS7EqlEkql8oXcSlhYyIt38kRERERE/0/gBHtR9NJZyc7OBgBs374d5cqV03hMLn/2pv/x48c4fvw4TE1NcenSJY19Nm3ahDFjxmDOnDkIDAyEra0tZs2ahaSkJI39zM3NNb6XyWRQqVRvlD02NlajqgMAAz6bgEFhEW90XCIiIiIiejm9dFaqV68OuVyOjIwMtGjRQus+o0ePhomJCf744w+0a9cO7du3x3vvvQcASEhIQOPGjfHZZ5+p909LSxOVoWrVqsjLy8PJkydRv359AM8qPv/9999LnxcREYHw8HCNtpNXlUXsTURERERUNBVXAxNFL50VW1tbjBkzBqNGjYJKpULTpk1x//59JCQkwM7ODs7Ozli9ejUSExNRr149jB07Fn379sWpU6fg6OgIX19frF+/Hjt37oSXlxe++eYbHD16FF5eXsXOUK1aNbRq1QqDBw/G0qVLYW5ujtGjR8PS0hIyWdG/NHK5XF39KWBh8eC1rwURERERERWP3pYunjp1KiZNmoTY2Fj4+fkhJCQE27dvh6enJwYOHIjo6Gj1fJKYmBi4ublh6NChAIAhQ4agc+fO6N69Oxo1aoQ7d+5oVFmKa/369XBzc0Pz5s3RqVMn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\n"},"metadata":{}}],"execution_count":9},{"cell_type":"markdown","source":"## Data Preprocessing","metadata":{}},{"cell_type":"code","source":"features = [\n \"age\", \"sex\", \"cp\", \"trestbps\", \"chol\",\n \"fbs\", \"thalach\", \"exang\", \"oldpeak\"\n]\n\nX = df[features]\ny = df[\"target\"]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-02-26T22:58:19.523822Z","iopub.execute_input":"2026-02-26T22:58:19.524112Z","iopub.status.idle":"2026-02-26T22:58:19.529395Z","shell.execute_reply.started":"2026-02-26T22:58:19.524089Z","shell.execute_reply":"2026-02-26T22:58:19.528721Z"}},"outputs":[],"execution_count":10},{"cell_type":"markdown","source":"## Preprocessing pipelines","metadata":{}},{"cell_type":"code","source":"num_pipeline = Pipeline([\n (\"imputer\", SimpleImputer(strategy=\"median\")),\n (\"scaler\", StandardScaler())\n])\n\npreprocessor = ColumnTransformer([\n (\"num\", num_pipeline, features)\n])\n\nmodel = Pipeline([\n (\"preprocessing\", preprocessor),\n (\"classifier\", LogisticRegression())\n])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-02-26T22:58:40.823420Z","iopub.execute_input":"2026-02-26T22:58:40.823754Z","iopub.status.idle":"2026-02-26T22:58:40.828113Z","shell.execute_reply.started":"2026-02-26T22:58:40.823730Z","shell.execute_reply":"2026-02-26T22:58:40.827482Z"}},"outputs":[],"execution_count":11},{"cell_type":"markdown","source":"## Train","metadata":{}},{"cell_type":"code","source":"X_train, X_val, y_train, y_val = train_test_split(\n X, y, test_size=0.2, random_state=42\n)\n\nmodel.fit(X_train, y_train)\n\npreds = model.predict(X_val)\n\nprint(\"Accuracy:\", accuracy_score(y_val, preds))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-02-26T23:00:08.953583Z","iopub.execute_input":"2026-02-26T23:00:08.953855Z","iopub.status.idle":"2026-02-26T23:00:08.985040Z","shell.execute_reply.started":"2026-02-26T23:00:08.953834Z","shell.execute_reply":"2026-02-26T23:00:08.984341Z"}},"outputs":[{"name":"stdout","text":"Accuracy: 0.7463414634146341\n","output_type":"stream"}],"execution_count":13},{"cell_type":"markdown","source":"## Save Model","metadata":{}},{"cell_type":"code","source":"joblib.dump(model, \"heart_model.pkl\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-02-26T23:00:50.772775Z","iopub.execute_input":"2026-02-26T23:00:50.773471Z","iopub.status.idle":"2026-02-26T23:00:50.780108Z","shell.execute_reply.started":"2026-02-26T23:00:50.773443Z","shell.execute_reply":"2026-02-26T23:00:50.779392Z"}},"outputs":[{"execution_count":14,"output_type":"execute_result","data":{"text/plain":"['heart_model.pkl']"},"metadata":{}}],"execution_count":14},{"cell_type":"markdown","source":"## Conclusion\n\nA Logistic Regression pipeline was built to predict heart disease.\n\nAfter preprocessing and scaling, the model achieved an accuracy of **0.75**.\n\nThe model was exported and deployed in a Streamlit application for real-time risk prediction.","metadata":{}}]}