{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "d5e4ed94", "metadata": { "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19", "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5", "execution": { "iopub.execute_input": "2023-07-27T15:24:06.378520Z", "iopub.status.busy": "2023-07-27T15:24:06.377989Z", "iopub.status.idle": "2023-07-27T15:24:06.392565Z", "shell.execute_reply": "2023-07-27T15:24:06.391269Z" }, "papermill": { "duration": 0.025044, "end_time": "2023-07-27T15:24:06.394924", "exception": false, "start_time": "2023-07-27T15:24:06.369880", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/kaggle/input/icr-identify-age-related-conditions/sample_submission.csv\n", "/kaggle/input/icr-identify-age-related-conditions/greeks.csv\n", "/kaggle/input/icr-identify-age-related-conditions/train.csv\n", "/kaggle/input/icr-identify-age-related-conditions/test.csv\n" ] } ], "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", "\n", "import numpy as np # linear algebra\n", "import 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", "\n", "import os\n", "for 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" ] }, { "cell_type": "code", "execution_count": 2, "id": "d78f65af", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:06.408842Z", "iopub.status.busy": "2023-07-27T15:24:06.408058Z", "iopub.status.idle": "2023-07-27T15:24:08.282838Z", "shell.execute_reply": "2023-07-27T15:24:08.281621Z" }, "papermill": { "duration": 1.884925, "end_time": "2023-07-27T15:24:08.285788", "exception": false, "start_time": "2023-07-27T15:24:06.400863", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.10/site-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.16.5 and <1.23.0 is required for this version of SciPy (detected version 1.23.5\n", " warnings.warn(f\"A NumPy version >={np_minversion} and <{np_maxversion}\"\n" ] } ], "source": [ "pd.set_option('display.max_columns', None)\n", "pd.set_option('display.max_rows', None)\n", "\n", "import seaborn as sns\n", "from sklearn.model_selection import GridSearchCV, KFold\n", "from xgboost import XGBClassifier\n", "from sklearn.preprocessing import LabelEncoder\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.metrics import classification_report, confusion_matrix\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.metrics import make_scorer, balanced_accuracy_score\n", "from sklearn.metrics import accuracy_score" ] }, { "cell_type": "code", "execution_count": 3, "id": "007568a4", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:08.299977Z", "iopub.status.busy": "2023-07-27T15:24:08.298874Z", "iopub.status.idle": "2023-07-27T15:24:08.355640Z", "shell.execute_reply": "2023-07-27T15:24:08.354510Z" }, "papermill": { "duration": 0.066352, "end_time": "2023-07-27T15:24:08.358157", "exception": false, "start_time": "2023-07-27T15:24:08.291805", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "train = pd.read_csv(\"/kaggle/input/icr-identify-age-related-conditions/train.csv\")\n", "test = pd.read_csv(\"/kaggle/input/icr-identify-age-related-conditions/test.csv\")\n", "greeks = pd.read_csv(\"/kaggle/input/icr-identify-age-related-conditions/greeks.csv\")\n", "sample_submission = pd.read_csv(\"/kaggle/input/icr-identify-age-related-conditions/sample_submission.csv\")" ] }, { "cell_type": "code", "execution_count": 4, "id": "f33024e6", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:08.372572Z", "iopub.status.busy": "2023-07-27T15:24:08.371359Z", "iopub.status.idle": "2023-07-27T15:24:08.402631Z", "shell.execute_reply": "2023-07-27T15:24:08.401810Z" }, "papermill": { "duration": 0.041246, "end_time": "2023-07-27T15:24:08.405579", "exception": false, "start_time": "2023-07-27T15:24:08.364333", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 617 entries, 0 to 616\n", "Data columns (total 58 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Id 617 non-null object \n", " 1 AB 617 non-null float64\n", " 2 AF 617 non-null float64\n", " 3 AH 617 non-null float64\n", " 4 AM 617 non-null float64\n", " 5 AR 617 non-null float64\n", " 6 AX 617 non-null float64\n", " 7 AY 617 non-null float64\n", " 8 AZ 617 non-null float64\n", " 9 BC 617 non-null float64\n", " 10 BD 617 non-null float64\n", " 11 BN 617 non-null float64\n", " 12 BP 617 non-null float64\n", " 13 BQ 557 non-null float64\n", " 14 BR 617 non-null float64\n", " 15 BZ 617 non-null float64\n", " 16 CB 615 non-null float64\n", " 17 CC 614 non-null float64\n", " 18 CD 617 non-null float64\n", " 19 CF 617 non-null float64\n", " 20 CH 617 non-null float64\n", " 21 CL 617 non-null float64\n", " 22 CR 617 non-null float64\n", " 23 CS 617 non-null float64\n", " 24 CU 617 non-null float64\n", " 25 CW 617 non-null float64\n", " 26 DA 617 non-null float64\n", " 27 DE 617 non-null float64\n", " 28 DF 617 non-null float64\n", " 29 DH 617 non-null float64\n", " 30 DI 617 non-null float64\n", " 31 DL 617 non-null float64\n", " 32 DN 617 non-null float64\n", " 33 DU 616 non-null float64\n", " 34 DV 617 non-null float64\n", " 35 DY 617 non-null float64\n", " 36 EB 617 non-null float64\n", " 37 EE 617 non-null float64\n", " 38 EG 617 non-null float64\n", " 39 EH 617 non-null float64\n", " 40 EJ 617 non-null object \n", " 41 EL 557 non-null float64\n", " 42 EP 617 non-null float64\n", " 43 EU 617 non-null float64\n", " 44 FC 616 non-null float64\n", " 45 FD 617 non-null float64\n", " 46 FE 617 non-null float64\n", " 47 FI 617 non-null float64\n", " 48 FL 616 non-null float64\n", " 49 FR 617 non-null float64\n", " 50 FS 615 non-null float64\n", " 51 GB 617 non-null float64\n", " 52 GE 617 non-null float64\n", " 53 GF 617 non-null float64\n", " 54 GH 617 non-null float64\n", " 55 GI 617 non-null float64\n", " 56 GL 616 non-null float64\n", " 57 Class 617 non-null int64 \n", "dtypes: float64(55), int64(1), object(2)\n", "memory usage: 279.7+ KB\n" ] } ], "source": [ "train.info()" ] }, { "cell_type": "code", "execution_count": 5, "id": "531297a6", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:08.421312Z", "iopub.status.busy": "2023-07-27T15:24:08.420135Z", "iopub.status.idle": "2023-07-27T15:24:08.430489Z", "shell.execute_reply": "2023-07-27T15:24:08.429201Z" }, "papermill": { "duration": 0.021489, "end_time": "2023-07-27T15:24:08.432921", "exception": false, "start_time": "2023-07-27T15:24:08.411432", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Shape of the dataframe: (617, 58)\n", "\n", "Columns with NaN values: ['BQ', 'CB', 'CC', 'DU', 'EL', 'FC', 'FL', 'FS', 'GL']\n", "\n", "Numerical columns: ['AB', 'AF', 'AH', 'AM', 'AR', 'AX', 'AY', 'AZ', 'BC', 'BD ', 'BN', 'BP', 'BQ', 'BR', 'BZ', 'CB', 'CC', 'CD ', 'CF', 'CH', 'CL', 'CR', 'CS', 'CU', 'CW ', 'DA', 'DE', 'DF', 'DH', 'DI', 'DL', 'DN', 'DU', 'DV', 'DY', 'EB', 'EE', 'EG', 'EH', 'EL', 'EP', 'EU', 'FC', 'FD ', 'FE', 'FI', 'FL', 'FR', 'FS', 'GB', 'GE', 'GF', 'GH', 'GI', 'GL', 'Class']\n", "\n", "Categorical columns: ['Id', 'EJ']\n", "\n", "Class balance: 0 509\n", "1 108\n", "Name: Class, dtype: int64\n" ] } ], "source": [ "nan_cols = train.columns[train.isnull().any()].tolist()\n", "numerical_cols = train.select_dtypes(include=[np.number]).columns.tolist()\n", "categorical_cols = train.select_dtypes(include=['object']).columns.tolist()\n", "print(f\"Shape of the dataframe: {train.shape}\\n\")\n", "print(f\"Columns with NaN values: {nan_cols}\\n\")\n", "print(f'Numerical columns: {numerical_cols}\\n')\n", "print(f'Categorical columns: {categorical_cols}\\n')\n", "print(f\"Class balance: {train['Class'].value_counts()}\")" ] }, { "cell_type": "code", "execution_count": 6, "id": "8f2cc22e", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:08.447619Z", "iopub.status.busy": "2023-07-27T15:24:08.447248Z", "iopub.status.idle": "2023-07-27T15:24:08.452830Z", "shell.execute_reply": "2023-07-27T15:24:08.451703Z" }, "papermill": { "duration": 0.016006, "end_time": "2023-07-27T15:24:08.455159", "exception": false, "start_time": "2023-07-27T15:24:08.439153", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "def encode_discrete(df, columns):\n", " df_copy = df.copy()\n", " if isinstance(columns, str):\n", " columns = [columns]\n", " for col in columns:\n", " le = LabelEncoder()\n", " df_copy[col] = le.fit_transform(df_copy[col].astype(str))\n", " return df_copy" ] }, { "cell_type": "code", "execution_count": 7, "id": "c9725cea", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:08.469027Z", "iopub.status.busy": "2023-07-27T15:24:08.468665Z", "iopub.status.idle": "2023-07-27T15:24:08.473611Z", "shell.execute_reply": "2023-07-27T15:24:08.472560Z" }, "papermill": { "duration": 0.014604, "end_time": "2023-07-27T15:24:08.475779", "exception": false, "start_time": "2023-07-27T15:24:08.461175", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "def ffil(df):\n", " df_copy = df.copy()\n", " df_copy = df_copy.fillna(method = 'ffill')\n", " return df_copy" ] }, { "cell_type": "code", "execution_count": 8, "id": "6bf66f98", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:08.489612Z", "iopub.status.busy": "2023-07-27T15:24:08.488759Z", "iopub.status.idle": "2023-07-27T15:24:08.494058Z", "shell.execute_reply": "2023-07-27T15:24:08.493352Z" }, "papermill": { "duration": 0.014383, "end_time": "2023-07-27T15:24:08.496076", "exception": false, "start_time": "2023-07-27T15:24:08.481693", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "def move_class_label(df):\n", " df_copy = df.copy()\n", " if 'Class' in df_copy.columns:\n", " class_col = df_copy.pop('Class')\n", " df_copy['Class'] = class_col\n", " \n", " return df_copy" ] }, { "cell_type": "code", "execution_count": 9, "id": "60f41ec4", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:08.509796Z", "iopub.status.busy": "2023-07-27T15:24:08.509163Z", "iopub.status.idle": "2023-07-27T15:24:08.523624Z", "shell.execute_reply": "2023-07-27T15:24:08.522610Z" }, "papermill": { "duration": 0.023993, "end_time": "2023-07-27T15:24:08.525949", "exception": false, "start_time": "2023-07-27T15:24:08.501956", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "def preprocess_datasets(df):\n", " df = encode_discrete(df, \"EJ\")\n", " df = ffil(df)\n", " df = move_class_label(df)\n", " return df\n", "\n", "train = preprocess_datasets(train)\n", "test = preprocess_datasets(test)" ] }, { "cell_type": "code", "execution_count": 10, "id": "43027d09", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:08.539868Z", "iopub.status.busy": "2023-07-27T15:24:08.539272Z", "iopub.status.idle": "2023-07-27T15:24:08.546770Z", "shell.execute_reply": "2023-07-27T15:24:08.545927Z" }, "papermill": { "duration": 0.017221, "end_time": "2023-07-27T15:24:08.549096", "exception": false, "start_time": "2023-07-27T15:24:08.531875", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "X = train.iloc[:, 1:-1]\n", "y = train.iloc[:, -1]\n", "\n", "X_train, X_valid, y_train, y_valid = train_test_split(X, y, test_size = 0.2, random_state = 42)" ] }, { "cell_type": "code", "execution_count": 11, "id": "cc8456a2", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:08.564144Z", "iopub.status.busy": "2023-07-27T15:24:08.563529Z", "iopub.status.idle": "2023-07-27T15:24:08.575638Z", "shell.execute_reply": "2023-07-27T15:24:08.574430Z" }, "papermill": { "duration": 0.022347, "end_time": "2023-07-27T15:24:08.578293", "exception": false, "start_time": "2023-07-27T15:24:08.555946", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "scaler = StandardScaler()\n", "X_train = scaler.fit_transform(X_train)\n", "X_valid = scaler.transform(X_valid)" ] }, { "cell_type": "code", "execution_count": 12, "id": "96d890d6", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:08.591896Z", "iopub.status.busy": "2023-07-27T15:24:08.591517Z", "iopub.status.idle": "2023-07-27T15:24:31.965907Z", "shell.execute_reply": "2023-07-27T15:24:31.964404Z" }, "papermill": { "duration": 23.384678, "end_time": "2023-07-27T15:24:31.968806", "exception": false, "start_time": "2023-07-27T15:24:08.584128", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fitting 5 folds for each of 36 candidates, totalling 180 fits\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.10/site-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.16.5 and <1.23.0 is required for this version of SciPy (detected version 1.23.5\n", " warnings.warn(f\"A NumPy version >={np_minversion} and <{np_maxversion}\"\n", "/opt/conda/lib/python3.10/site-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.16.5 and <1.23.0 is required for this version of SciPy (detected version 1.23.5\n", " warnings.warn(f\"A NumPy version >={np_minversion} and <{np_maxversion}\"\n", "/opt/conda/lib/python3.10/site-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.16.5 and <1.23.0 is required for this version of SciPy (detected version 1.23.5\n", " warnings.warn(f\"A NumPy version >={np_minversion} and <{np_maxversion}\"\n", "/opt/conda/lib/python3.10/site-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.16.5 and <1.23.0 is required for this version of SciPy (detected version 1.23.5\n", " warnings.warn(f\"A NumPy version >={np_minversion} and <{np_maxversion}\"\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Best parameters: {'learning_rate': 0.2, 'max_depth': 6, 'n_estimators': 100}\n", "Best accuracy score: 0.8110341899913127\n" ] } ], "source": [ "def train_xgb(X, y):\n", " param_grid = {\n", " 'n_estimators': [50, 100, 200],\n", " 'max_depth': [2, 4, 6, 8],\n", " 'learning_rate': [0.01, 0.1, 0.2],\n", " }\n", "\n", " xgb = XGBClassifier(eval_metric='logloss')\n", "\n", " grid_search = GridSearchCV(\n", " xgb,\n", " param_grid,\n", " cv=KFold(n_splits=5, shuffle=True, random_state=42), # 5-fold cross-validation\n", " scoring=make_scorer(balanced_accuracy_score), # Use balanced accuracy as the scoring metric\n", " verbose=1, # If you want to see what Grid Search is doing, set verbose=2\n", " n_jobs=-1, # Use all available processors\n", " )\n", " grid_search.fit(X, y) \n", " print(f\"Best parameters: {grid_search.best_params_}\")\n", " print(f\"Best accuracy score: {grid_search.best_score_}\") \n", " return grid_search\n", "\n", "grid_search = train_xgb(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": 13, "id": "4cf3c60b", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:31.983985Z", "iopub.status.busy": "2023-07-27T15:24:31.983208Z", "iopub.status.idle": "2023-07-27T15:24:31.994601Z", "shell.execute_reply": "2023-07-27T15:24:31.993373Z" }, "papermill": { "duration": 0.023193, "end_time": "2023-07-27T15:24:31.998170", "exception": false, "start_time": "2023-07-27T15:24:31.974977", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "model = grid_search.best_estimator_\n", "y_valid_predictions = model.predict(X_valid)" ] }, { "cell_type": "code", "execution_count": 14, "id": "ff150925", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:32.011890Z", "iopub.status.busy": "2023-07-27T15:24:32.011528Z", "iopub.status.idle": "2023-07-27T15:24:32.024801Z", "shell.execute_reply": "2023-07-27T15:24:32.023875Z" }, "papermill": { "duration": 0.022772, "end_time": "2023-07-27T15:24:32.027054", "exception": false, "start_time": "2023-07-27T15:24:32.004282", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "LogLoss: 0.9354838709677419\n", "Accuracy: 0.9354838709677419\n" ] } ], "source": [ "def evaluate_model(model, y_actual, y_predicted):\n", " print('LogLoss: ', model.score(y_actual, y_predicted))\n", " print('Accuracy: ', accuracy_score(y_actual, y_predicted))\n", " \n", "evaluate_model(model, y_valid, y_valid_predictions)" ] }, { "cell_type": "code", "execution_count": 15, "id": "880d50fc", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:32.041808Z", "iopub.status.busy": "2023-07-27T15:24:32.041141Z", "iopub.status.idle": "2023-07-27T15:24:32.062189Z", "shell.execute_reply": "2023-07-27T15:24:32.061020Z" }, "papermill": { "duration": 0.031408, "end_time": "2023-07-27T15:24:32.064717", "exception": false, "start_time": "2023-07-27T15:24:32.033309", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Classification Report:\n", " precision recall f1-score support\n", "\n", " 0 0.93 0.99 0.96 101\n", " 1 0.94 0.70 0.80 23\n", "\n", " accuracy 0.94 124\n", " macro avg 0.94 0.84 0.88 124\n", "weighted avg 0.94 0.94 0.93 124\n", "\n", "Confusion Matrix:\n", "[[100 1]\n", " [ 7 16]]\n" ] } ], "source": [ "y_pred = model.predict(X_valid)\n", "\n", "def get_classification_report(y_actual, y_predicted):\n", " print('Classification Report:')\n", " print(classification_report(y_actual, y_predicted))\n", " print('Confusion Matrix:')\n", " print(confusion_matrix(y_actual, y_predicted))\n", " \n", "get_classification_report(y_actual=y_valid, y_predicted=y_pred)" ] }, { "cell_type": "code", "execution_count": 16, "id": "477f5e60", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:32.079261Z", "iopub.status.busy": "2023-07-27T15:24:32.078629Z", "iopub.status.idle": "2023-07-27T15:24:32.399393Z", "shell.execute_reply": "2023-07-27T15:24:32.398473Z" }, "papermill": { "duration": 0.330628, "end_time": "2023-07-27T15:24:32.401630", "exception": false, "start_time": "2023-07-27T15:24:32.071002", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "Text(50.722222222222214, 0.5, 'Truth')" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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4IMP6vDhw5Kkbdu26bnnntPYsWO1b98+paSkqHXr1rb3/8c//qHZs2dr+vTp2rNnj55//nn17dtX69evlyT99NNP6t69u+6//37t3LlTTz31lF566SWTv2PADRhwe/369TO6du1qGIZh3HPPPUb//v0NwzCMRYsWGVf/iPTu3duIiYmxO2/YsGFGnTp1bK+rV69udOvWze6Y2bNnG5KMAwcO2MYGDBhg+Pj4GGfOnLGNde7c2RgwYMB1Y9yyZYshyXbO2rVrDUlGVlZW4T8w8Ad//PN/rV69ehm1a9c2DMMwJBmLFi0yDMMwnn32WaN9+/ZGXl5evnNWr15t+Pv7GxcvXrQbv/POO42ZM2deN446deoYU6dONQzDMBYsWGD4+/sbp0+fznfc2bNnDS8vL2PTpk12408++aTx+OOPG4ZhGCNHjjRq165tF9+IESP4mYHTUNmAnaSkJCUnJ+v777+3G9+7d69atmxpN9ayZUv95z//sWt/REVF5bumj4+P7rzzTtvroKAghYWFydfX127sj22SHTt2qGvXrqpevbr8/PzUtm1bSbL9yw8oDoZhFDhJOjY2Vjt37lStWrX03HPPacWKFbZ9qampOnv2rCpVqiRfX1/blpaWpoMHD0qSzp07p+HDh6tOnToKDAyUr6+vfvjhB9uf75iYGFWvXl3h4eH6y1/+orlz5+r8+fOSpO+//14XL15UTEyM3fXfffdd2/X37t2re+65xy72Fi1amPZ9Av6Mh7MDgGtp3bq1OnfurJdfftmubVHQX7pGAXe6L1++fL4xT09Pu9dXZ/1fO3Z15v+5c+fUqVMnderUSe+//74qV66sw4cPq3Pnzkw6RbHau3evatSokW+8SZMmSktL07Jly7Rq1Sr17NlTHTt21Pz585WXl6eQkBCtW7cu33mBgYGSpGHDhmn58uV64403FBERIW9vbz3yyCO2P99+fn7avn271q1bpxUrVujVV19VfHy8tm7davs5+eKLL3T77bfbXf/qBNaCfjYBZyLZQD7jx49Xo0aNVLNmTdtYnTp1tHHjRrvjNm3apJo1a6ps2bIOff8ffvhBx48f1/jx41W1alVJV3rYQHFas2aNdu/ereeff77A/f7+/urVq5d69eqlRx55RPfee69OnDihJk2aKCMjQx4eHrZ5HNf68ssvFRsbq4cffljSlTkc107g9PDwUMeOHdWxY0eNHj1agYGBWrNmjWJiYmS1WnX48GG1adOmwOvXqVMn3z1BNm/eXKjPDzgSyQbyqV+/vvr06aOpU6faxl544QU1a9ZMr732mnr16qWvv/5a06ZN09tvv+3w969WrZrKlSunqVOnauDAgfruu+/02muvOfx9gKuys7OVkZGh3Nxc/frrr0pJSVFiYqIeeOABPfHEE/mOnzx5skJCQtSoUSOVKVNGn3zyiYKDgxUYGKiOHTuqRYsW6tatm5KSklSrVi0dOXJES5cuVbdu3RQVFaWIiAgtXLhQDz74oCwWi0aNGmV3T4/PP/9cP/74o1q3bq0KFSpo6dKlysvLU61ateTn56cXX3xRzz//vPLy8tSqVSudPn1amzZtkq+vr/r166eBAwdq4sSJGjp0qAYMGKDU1NR8k7mB4sScDRTotddesyvFNmnSRB9//LE+/PBD1atXT6+++qrGjh1rygqRypUra86cOfrkk09Up04djR8/Xm+88YbD3we4KiUlRSEhIQoLC9O9996rtWvX6s0339Snn35aYOXO19dXSUlJioqKUrNmzZSenq6lS5eqTJkyslgsWrp0qVq3bq3+/furZs2aeuyxx5Senq6goCBJV5KVChUqKDo6Wg8++KA6d+6sJk2a2K4fGBiohQsXqn379qpdu7ZmzJihDz74QHXr1pV05efz1VdfVWJiomrXrq3OnTvrs88+s7V8qlWrpgULFuizzz5Tw4YNNWPGDCUkJBTDdxIoGI+YBwAApqKyAQAATEWyAQAATEWyAQAATEWyAQAATEWyAQAATEWyAQAATEWyAQAATEWyAZQi8fHxatSoke11bGysunXrVqRrOuIaANwbyQZQDGJjY2WxWGwPoQsPD9eLL76oc+fOmfq+//znP2/6NtXp6emyWCzauXPnLV8DAArCs1GAYnLvvfdq9uzZunTpkr788ks99dRTOnfunKZPn2533KVLl/I9FfdWBQQEuMQ1ALg3KhtAMbFarQoODlbVqlXVu3dv9enTR4sXL7a1Pv79738rPDxcVqtVhmHo1KlT+tvf/qYqVarI399f7du3165du+yuOX78eAUFBcnPz09PPvmkLl68aLf/2hZIXl6ekpKSFBERIavVqmrVqun111+XJNtzNRo3biyLxaK2bdsWeI3s7Gw999xzqlKliry8vNSqVStt3brVtn/dunWyWCxavXq1oqKi5OPjo+joaO3bt8+B300AJQnJBuAk3t7eunTpkiTpwIED+vjjj7VgwQJbG6NLly7KyMjQ0qVLlZqaqiZNmqhDhw46ceKEJOnjjz/W6NGj9frrr2vbtm0KCQn506fwjhw5UklJSRo1apS+//57zZs3z/ZwsC1btkiSVq1apaNHj2rhwoUFXmP48OFasGCBkpOTtX37dkVERKhz5862uK565ZVXNHHiRG3btk0eHh7q37//LX+vAJRwBgDT9evXz+jatavt9TfffGNUqlTJ6NmzpzF69GjD09PTyMzMtO1fvXq14e/vb1y8eNHuOnfeeacxc+ZMwzAMo0WLFsbAgQPt9jdv3txo2LBhge97+vRpw2q1Gu+8806BMaalpRmSjB07dlw39rNnzxqenp7G3LlzbftzcnKM0NBQY8KECYZhGMbatWsNScaqVatsx3zxxReGJOPChQvX/yYBKLWobADF5PPPP5evr6+8vLzUokULtW7dWlOnTpUkVa9eXZUrV7Ydm5qaqrNnz6pSpUry9fW1bWlpaTp48KAkae/evWrRooXde1z7+o/27t2r7OxsdejQ4ZY/w8GDB3Xp0iW1bNnSNubp6am7775be/futTu2QYMGtq9DQkIkSZmZmbf83gBKLiaIAsWkXbt2mj59ujw9PRUaGmo3CbR8+fJ2x+bl5SkkJETr1q3Ld53AwMBben9vb+9bOu+PDMOQJFkslnzj14798fNd3ZeXl1fkGACUPFQ2gGJSvnx5RUREqHr16n+62qRJkybKyMiQh4eHIiIi7LbbbrtNklS7dm1t3rzZ7rxrX/9RZGSkvL29tXr16gL3lytXTpKUm5t73WtERESoXLly2rhxo23s0qVL2rZtm2rXrn3DzwTAfVHZAFxQx44d1aJFC3Xr1k1JSUmqVauWjhw5oqVLl6pbt26KiorSkCFD1K9fP0VFRalVq1aaO3eu9uzZo/Dw8AKv6eXlpREjRmj48OEqV66cWrZsqWPHjmnPnj168sknVaVKFXl7eyslJUV33HGHvLy88i17LV++vP7+979r2LBhqlixoqpVq6YJEybo/PnzevLJJ4vjWwOgBCLZAFyQxWLR0qVL9corr6h///46duyYgoOD1bp1a9vqkV69eungwYMaMWKELl68qB49eujvf/+7li9fft3rjho1Sh4eHnr11Vd15MgRhYSEaODAgZIkDw8Pvfnmmxo7dqxeffVV/c///E+BbZzx48crLy9Pf/nLX3TmzBlFRUVp+fLlqlChginfCwAln8W42oQFAAAwAXM2AACAqUg2AACAqUg2AACAqUg2AACAqUg2AACAqUg2AACAqUg2AACAqUg2AACAqUg2AACAqUg2AACAqUg2AACAqUg2AACAqf4f0N1FzyyPArwAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cm = confusion_matrix(y_valid, y_pred)\n", "class_names = ['Normal', 'Diseased']\n", "ax = sns.heatmap(cm, annot = True, fmt = '.0f', cmap = \"Blues\", annot_kws = {\"size\": 16},\\\n", " xticklabels = class_names, yticklabels = class_names)\n", "ax.set_xlabel(\"Prediction\")\n", "ax.set_ylabel(\"Truth\")" ] }, { "cell_type": "code", "execution_count": 17, "id": "8e1b3a57", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:32.417254Z", "iopub.status.busy": "2023-07-27T15:24:32.416493Z", "iopub.status.idle": "2023-07-27T15:24:59.597550Z", "shell.execute_reply": "2023-07-27T15:24:59.596508Z" }, "papermill": { "duration": 27.191357, "end_time": "2023-07-27T15:24:59.599924", "exception": false, "start_time": "2023-07-27T15:24:32.408567", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fitting 5 folds for each of 36 candidates, totalling 180 fits\n", "Best parameters: {'learning_rate': 0.1, 'max_depth': 8, 'n_estimators': 50}\n", "Best accuracy score: 0.858039092613453\n", "Results on full training data:\n", "LogLoss: 0.17504051863857376\n", "Accuracy: 1.0\n" ] } ], "source": [ "X_full = scaler.fit_transform(X)\n", "grid_search_for_submission = train_xgb(X_full, y)\n", "model = grid_search_for_submission.best_estimator_\n", "y_full_predictions = model.predict(X_full)\n", "\n", "print(\"Results on full training data:\")\n", "evaluate_model(model, y, y_full_predictions)" ] }, { "cell_type": "code", "execution_count": 18, "id": "ebe8e7ba", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:59.616093Z", "iopub.status.busy": "2023-07-27T15:24:59.615451Z", "iopub.status.idle": "2023-07-27T15:24:59.621177Z", "shell.execute_reply": "2023-07-27T15:24:59.620095Z" }, "papermill": { "duration": 0.016592, "end_time": "2023-07-27T15:24:59.623912", "exception": false, "start_time": "2023-07-27T15:24:59.607320", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "X_submission = test.iloc[:, 1:]" ] }, { "cell_type": "code", "execution_count": 19, "id": "d1cc18e6", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:59.639502Z", "iopub.status.busy": "2023-07-27T15:24:59.639112Z", "iopub.status.idle": "2023-07-27T15:24:59.653400Z", "shell.execute_reply": "2023-07-27T15:24:59.652502Z" }, "papermill": { "duration": 0.024828, "end_time": "2023-07-27T15:24:59.655739", "exception": false, "start_time": "2023-07-27T15:24:59.630911", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "array([[0.7650116 , 0.23498839],\n", " [0.7650116 , 0.23498839],\n", " [0.7650116 , 0.23498839],\n", " [0.7650116 , 0.23498839],\n", " [0.7650116 , 0.23498839]], dtype=float32)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_submission = scaler.transform(X_submission)\n", "y_submission_pred = model.predict_proba(X_submission)\n", "\n", "y_submission_pred" ] }, { "cell_type": "code", "execution_count": 20, "id": "080b9a65", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:59.671279Z", "iopub.status.busy": "2023-07-27T15:24:59.670890Z", "iopub.status.idle": "2023-07-27T15:24:59.679245Z", "shell.execute_reply": "2023-07-27T15:24:59.678446Z" }, "papermill": { "duration": 0.018746, "end_time": "2023-07-27T15:24:59.681447", "exception": false, "start_time": "2023-07-27T15:24:59.662701", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "submission = pd.DataFrame(test[\"Id\"], columns = [\"Id\"])\n", "y_pred_df = pd.DataFrame(y_submission_pred, columns = ['0', '1'])\n", "submission[\"class_0\"] = y_pred_df['0']\n", "submission[\"class_1\"] = y_pred_df['1']" ] }, { "cell_type": "code", "execution_count": 21, "id": "146e4d53", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:59.697552Z", "iopub.status.busy": "2023-07-27T15:24:59.696549Z", "iopub.status.idle": "2023-07-27T15:24:59.711208Z", "shell.execute_reply": "2023-07-27T15:24:59.710110Z" }, "papermill": { "duration": 0.0251, "end_time": "2023-07-27T15:24:59.713487", "exception": false, "start_time": "2023-07-27T15:24:59.688387", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "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", "
Idclass_0class_1
000eed32682bb0.7650120.234988
1010ebe33f6680.7650120.234988
202fa521e18380.7650120.234988
3040e15f562a20.7650120.234988
4046e85c7cc7f0.7650120.234988
\n", "
" ], "text/plain": [ " Id class_0 class_1\n", "0 00eed32682bb 0.765012 0.234988\n", "1 010ebe33f668 0.765012 0.234988\n", "2 02fa521e1838 0.765012 0.234988\n", "3 040e15f562a2 0.765012 0.234988\n", "4 046e85c7cc7f 0.765012 0.234988" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "submission" ] }, { "cell_type": "code", "execution_count": 22, "id": "e1666e47", "metadata": { "execution": { "iopub.execute_input": "2023-07-27T15:24:59.729455Z", "iopub.status.busy": "2023-07-27T15:24:59.728660Z", "iopub.status.idle": "2023-07-27T15:24:59.736956Z", "shell.execute_reply": "2023-07-27T15:24:59.735893Z" }, "papermill": { "duration": 0.019006, "end_time": "2023-07-27T15:24:59.739504", "exception": false, "start_time": "2023-07-27T15:24:59.720498", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "submission.to_csv('submission.csv',index = False)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.12" }, "papermill": { "default_parameters": {}, "duration": 65.777315, "end_time": "2023-07-27T15:25:02.369277", "environment_variables": {}, "exception": null, "input_path": "__notebook__.ipynb", "output_path": "__notebook__.ipynb", "parameters": {}, "start_time": "2023-07-27T15:23:56.591962", "version": "2.4.0" } }, "nbformat": 4, "nbformat_minor": 5 }