{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"gpu","dataSources":[{"sourceId":11848,"databundleVersionId":862157,"sourceType":"competition"}],"dockerImageVersionId":30918,"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\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","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"_kg_hide-output":true,"_kg_hide-input":true,"execution":{"iopub.status.busy":"2025-04-03T09:38:54.198633Z","iopub.execute_input":"2025-04-03T09:38:54.198860Z","iopub.status.idle":"2025-04-03T09:38:55.141890Z","shell.execute_reply.started":"2025-04-03T09:38:54.198838Z","shell.execute_reply":"2025-04-03T09:38:55.141225Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"!pip install scikeras","metadata":{"trusted":true,"_kg_hide-input":true,"_kg_hide-output":true,"execution":{"iopub.status.busy":"2025-04-03T09:39:00.391542Z","iopub.execute_input":"2025-04-03T09:39:00.391864Z","iopub.status.idle":"2025-04-03T09:39:08.405644Z","shell.execute_reply.started":"2025-04-03T09:39:00.391839Z","shell.execute_reply":"2025-04-03T09:39:08.404252Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"!pip install --upgrade scikit-learn scikeras","metadata":{"trusted":true,"_kg_hide-output":true,"_kg_hide-input":true,"execution":{"iopub.status.busy":"2025-04-03T09:39:08.407123Z","iopub.execute_input":"2025-04-03T09:39:08.407350Z","iopub.status.idle":"2025-04-03T09:39:11.969496Z","shell.execute_reply.started":"2025-04-03T09:39:08.407331Z","shell.execute_reply":"2025-04-03T09:39:11.968430Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"!pip install keras-tuner","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-03T09:39:13.781502Z","iopub.execute_input":"2025-04-03T09:39:13.781810Z","iopub.status.idle":"2025-04-03T09:39:17.063094Z","shell.execute_reply.started":"2025-04-03T09:39:13.781786Z","shell.execute_reply":"2025-04-03T09:39:17.062082Z"},"_kg_hide-input":true,"_kg_hide-output":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from PIL import Image\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nimport cv2\nimport tensorflow as tf\nimport keras_tuner as kt\nfrom tensorflow.keras.preprocessing.image import ImageDataGenerator\nfrom tensorflow.keras.models import Sequential\nfrom tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout, GlobalAveragePooling2D, BatchNormalization, Cropping2D, Input, Rescaling\nfrom tensorflow.keras.applications import ResNet50\nfrom keras.callbacks import ReduceLROnPlateau, EarlyStopping\nfrom scikeras.wrappers import KerasClassifier\nfrom sklearn.model_selection import GridSearchCV\nfrom tensorflow.keras.optimizers import Adam\nfrom sklearn.metrics import roc_curve, auc","metadata":{"trusted":true,"_kg_hide-input":true,"execution":{"iopub.status.busy":"2025-04-03T09:39:18.900926Z","iopub.execute_input":"2025-04-03T09:39:18.901226Z","iopub.status.idle":"2025-04-03T09:39:32.480621Z","shell.execute_reply.started":"2025-04-03T09:39:18.901203Z","shell.execute_reply":"2025-04-03T09:39:32.479691Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_dir = '/kaggle/input/histopathologic-cancer-detection/test/'\ntrain_dir = '/kaggle/input/histopathologic-cancer-detection/train/'\ntrain_labels_file = '/kaggle/input/histopathologic-cancer-detection/train_labels.csv'\ntest_labels_file = '/kaggle/input/histopathologic-cancer-detection/sample_submission.csv'","metadata":{"trusted":true,"_kg_hide-input":true,"execution":{"iopub.status.busy":"2025-04-03T09:39:32.481855Z","iopub.execute_input":"2025-04-03T09:39:32.482458Z","iopub.status.idle":"2025-04-03T09:39:32.486082Z","shell.execute_reply.started":"2025-04-03T09:39:32.482424Z","shell.execute_reply":"2025-04-03T09:39:32.485237Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"try:\n    tpu = tf.distribute.cluster_resolver.TPUClusterResolver()  # Detect TPU\n    tf.config.experimental_connect_to_cluster(tpu)\n    tf.tpu.experimental.initialize_tpu_system(tpu)\n    strategy = tf.distribute.TPUStrategy(tpu)\n    print(\"Running on TPU!\")\nexcept:\n    strategy = tf.distribute.get_strategy()  # Default to GPU/CPU\n    print(\"Running on CPU/GPU\")","metadata":{"trusted":true,"_kg_hide-input":true,"_kg_hide-output":true,"execution":{"iopub.status.busy":"2025-04-02T19:51:07.382675Z","iopub.execute_input":"2025-04-02T19:51:07.382875Z","iopub.status.idle":"2025-04-02T19:51:07.418356Z","shell.execute_reply.started":"2025-04-02T19:51:07.382858Z","shell.execute_reply":"2025-04-02T19:51:07.417736Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"<div style=\"background-color: #1f77b4; color: white; padding: 10px; border-radius: 10px; text-align: center; font-size: 24px; font-weight: bold;\">\n    Histopathologic Cancer Detection\n</div>","metadata":{}},{"cell_type":"markdown","source":"<div style=\"background-color: #76c7c0; color: white; padding: 10px; border-radius: 10px; text-align: center; font-size: 24px; font-weight: bold;\">\n    Problem Statement\n</div>","metadata":{}},{"cell_type":"markdown","source":"The goal is to create an algorithm to identify metastatic cancer in small image patches taken from larger digital pathology scans and predict a probability that center 32x32px region of a patch contains at least one pixel of tumor tissue.\n\n## Data\n\nThe data is a slightly modified version of the PatchCamelyon (PCam) [benchmark dataset](https://github.com/basveeling/pcam).\n\n### Dataset Structure\n\nDataset consists of two main folders (train & test) and one CSV file for labels:\n\n* train/ – Contains labeled histopathologic images.\n* test/ – Contains unlabeled images for predictions.\n* train_labels.csv – A CSV file mapping image IDs to labels (0 = benign, 1 = malignant).\n\n","metadata":{}},{"cell_type":"markdown","source":"<div style=\"background-color: #76c7c0; color: white; padding: 10px; border-radius: 10px; text-align: center; font-size: 24px; font-weight: bold;\">\n    EDA\n</div>","metadata":{}},{"cell_type":"code","source":"train_labels = pd.read_csv(train_labels_file)\ntest_labels = pd.read_csv(test_labels_file)\n\nnum_train_images = len(os.listdir(train_dir))\nnum_test_images = len(os.listdir(test_dir))\nnum_labels = train_labels.shape[0]\n\nprint(f\"Number of training images: {num_train_images}\")\nprint(f\"Number of test images: {num_test_images}\")\nprint(f\"Number of labeled images: {num_labels}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-03T09:39:34.788273Z","iopub.execute_input":"2025-04-03T09:39:34.788568Z","iopub.status.idle":"2025-04-03T09:39:56.948237Z","shell.execute_reply.started":"2025-04-03T09:39:34.788547Z","shell.execute_reply":"2025-04-03T09:39:56.947411Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_labels.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T09:10:27.867530Z","iopub.status.idle":"2025-04-02T09:10:27.867775Z","shell.execute_reply":"2025-04-02T09:10:27.867666Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"sample_image_path = os.path.join(train_dir, os.listdir(train_dir)[0])\nimg = Image.open(sample_image_path)\n\nprint(f\"Image size: {img.size}\")\nprint(f\"Image mode: {img.mode}\")\n\nimg_array = np.array(img)\nprint(f\"Image shape: {img_array.shape}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T19:51:15.531969Z","iopub.execute_input":"2025-04-02T19:51:15.532252Z","iopub.status.idle":"2025-04-02T19:51:17.835828Z","shell.execute_reply.started":"2025-04-02T19:51:15.532230Z","shell.execute_reply":"2025-04-02T19:51:17.835095Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"Image samples:","metadata":{}},{"cell_type":"code","source":"benign_samples = train_labels[train_labels[\"label\"] == 0].sample(3)[\"id\"].values\nmalignant_samples = train_labels[train_labels[\"label\"] == 1].sample(3)[\"id\"].values\n\nfig, axes = plt.subplots(2, 3, figsize=(10,6))\n\nfor i, img_id in enumerate(benign_samples):\n    img_path = os.path.join(train_dir, img_id + \".tif\")\n    img = Image.open(img_path)\n    axes[0, i].imshow(img)\n    axes[0, i].axis(\"off\")\n    axes[0, i].set_title(\"Benign\")\n\nfor i, img_id in enumerate(malignant_samples):\n    img_path = os.path.join(train_dir, img_id + \".tif\")\n    img = Image.open(img_path)\n    axes[1, i].imshow(img)\n    axes[1, i].axis(\"off\")\n    axes[1, i].set_title(\"Malignant\")\n\nplt.tight_layout()\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T09:10:27.870841Z","iopub.status.idle":"2025-04-02T09:10:27.871162Z","shell.execute_reply":"2025-04-02T09:10:27.871014Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"The malignant images may have denser, darker regions indicating cancerous cells.\nSome benign images look similar to malignant, making classification challenging.\nFeature engineering (texture, color enhancement) could be beneficial.","metadata":{}},{"cell_type":"markdown","source":"Check labels distribution:","metadata":{}},{"cell_type":"code","source":"sns.countplot(x=train_labels['label'], palette=[\"#76c7c0\", \"#d62728\"])\nplt.title(\"Benign vs. Malignant Distribution\", fontsize=14, color=\"#1f77b4\")\nplt.xlabel(\"Label (0: Benign, 1: Malignant)\")\nplt.ylabel(\"Count\")\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T09:10:27.871739Z","iopub.status.idle":"2025-04-02T09:10:27.872045Z","shell.execute_reply":"2025-04-02T09:10:27.871877Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"The dataset is imbalanced, with more benign (0) than malignant (1) samples.\n**We may need data augmentation or class weighting to balance the model training.**","metadata":{}},{"cell_type":"markdown","source":"Check image intensity distribution:","metadata":{}},{"cell_type":"code","source":"sample_images = [os.path.join(train_dir, img) for img in os.listdir(train_dir)[:500]]  # Sample 500 images\n\nintensities = []\nfor img_path in sample_images:\n    img = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE)  # Convert to grayscale\n    intensities.append(np.mean(img))  # Compute mean intensity\n\nplt.figure(figsize=(6,4))\nsns.histplot(intensities, bins=30, color=\"#1f77b4\", kde=True)\nplt.title(\"Pixel Intensity Distribution\", fontsize=14, color=\"#1f77b4\")\nplt.xlabel(\"Average Pixel Intensity\")\nplt.ylabel(\"Frequency\")\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T09:10:27.872791Z","iopub.status.idle":"2025-04-02T09:10:27.873174Z","shell.execute_reply":"2025-04-02T09:10:27.872990Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"The intensity histogram shows a wide range of brightness levels, indicating diverse staining conditions in pathology slides.\nPreprocessing (normalization, contrast enhancement) may improve model performance.","metadata":{}},{"cell_type":"markdown","source":"<div style=\"background-color: #76c7c0; color: white; padding: 10px; border-radius: 10px; text-align: center; font-size: 24px; font-weight: bold;\">\n    Data Cleaning and Image Preprocessing\n</div>","metadata":{}},{"cell_type":"markdown","source":"Check missing values:","metadata":{}},{"cell_type":"code","source":"missing_values = train_labels.isnull().sum()\nprint(missing_values)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T09:10:27.873724Z","iopub.status.idle":"2025-04-02T09:10:27.874056Z","shell.execute_reply":"2025-04-02T09:10:27.873863Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"Check duplicates:","metadata":{}},{"cell_type":"code","source":"duplicates = train_labels.duplicated().sum()\nprint(f\"Duplicate entries: {duplicates}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T09:10:27.875023Z","iopub.status.idle":"2025-04-02T09:10:27.875269Z","shell.execute_reply":"2025-04-02T09:10:27.875169Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def load_image(iid, image_dir=train_dir):\n    path = image_dir + iid + \".tif\"\n\n    image = cv2.imread(path)\n    image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)\n    return image","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-03T09:40:19.656084Z","iopub.execute_input":"2025-04-03T09:40:19.656378Z","iopub.status.idle":"2025-04-03T09:40:19.660284Z","shell.execute_reply.started":"2025-04-03T09:40:19.656358Z","shell.execute_reply":"2025-04-03T09:40:19.659443Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"We will use small subset of images to find the best model and hyperparametes","metadata":{}},{"cell_type":"code","source":"n_train_subset = int(train_labels.shape[0]*0.05)\n\nnegative = train_labels[train_labels['label'] == 0].sample(n_train_subset)\npositive = train_labels[train_labels['label'] == 1].sample(n_train_subset)\nneg_and_pos = pd.concat([negative, positive], axis=0).reset_index(drop=True)\n\ntrain_labels_subset = neg_and_pos.sample(frac=1).reset_index(drop=True)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T20:38:02.817016Z","iopub.execute_input":"2025-04-02T20:38:02.817304Z","iopub.status.idle":"2025-04-02T20:38:02.845938Z","shell.execute_reply.started":"2025-04-02T20:38:02.817280Z","shell.execute_reply":"2025-04-02T20:38:02.845274Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"X_subset = np.array([load_image(i) for i in train_labels_subset['id']])\ny_subset = train_labels_subset['label'].values","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T20:38:26.331386Z","iopub.execute_input":"2025-04-02T20:38:26.331894Z","iopub.status.idle":"2025-04-02T20:44:31.870175Z","shell.execute_reply.started":"2025-04-02T20:38:26.331866Z","shell.execute_reply":"2025-04-02T20:44:31.869189Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"<div style=\"background-color: #76c7c0; color: white; padding: 10px; border-radius: 10px; text-align: center; font-size: 24px; font-weight: bold;\">\n    Model\n</div>","metadata":{}},{"cell_type":"markdown","source":"We will use Dropout to prevent overfitting and MaxPooling to reduce feature map size.\nAlso to image will be applied rescaling and cropping to 32x32 px.","metadata":{}},{"cell_type":"markdown","source":"Let's compare 2 Simple CNN models:","metadata":{}},{"cell_type":"markdown","source":"## Model 1","metadata":{},"attachments":{}},{"cell_type":"code","source":"def build_model_1(hp):\n    model = Sequential([\n        Input(shape=(96, 96, 3)),\n        Rescaling(1./255),\n        Cropping2D(cropping=32),\n        \n        Conv2D(32, (3,3), activation='relu'),\n        MaxPooling2D(2,2),\n        \n        Conv2D(hp.Int(\"conv_units\", 64, 128, step=64), (3,3), activation='relu'),\n        MaxPooling2D(2,2),\n        \n        Flatten(),\n        Dense(hp.Int(\"dense_units\", 128, 256, step=128), activation='relu'),\n        Dropout(0.3),\n        Dense(1, activation='sigmoid')\n])\n    model.compile(optimizer=Adam(hp.Choice(\"learning_rate\", [1e-4, 1e-3])),\n                  loss='binary_crossentropy', metrics=['accuracy', 'auc'])\n    return model\n\ncnn_1_tuner = kt.RandomSearch(\n    build_model_1,\n    objective=\"val_accuracy\",\n    directory=\"tuning_1\"\n)\n\ncnn_1_tuner.search(X_subset, y_subset, validation_split=0.2, epochs=10)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T09:10:27.878027Z","iopub.status.idle":"2025-04-02T09:10:27.878270Z","shell.execute_reply":"2025-04-02T09:10:27.878170Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"cnn_1_tuner.results_summary()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T09:10:27.878841Z","iopub.status.idle":"2025-04-02T09:10:27.879139Z","shell.execute_reply":"2025-04-02T09:10:27.879033Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"cnn_1_model = cnn_1_tuner.get_best_models(num_models=1)[0]\ncnn_1_model.summary()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T09:10:27.879664Z","iopub.status.idle":"2025-04-02T09:10:27.880034Z","shell.execute_reply":"2025-04-02T09:10:27.879855Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## Model 2","metadata":{}},{"cell_type":"code","source":"def build_model_2(hp):\n    model = Sequential([\n        Input(shape=(96, 96, 3)),\n        Rescaling(1./255),\n        Cropping2D(cropping=32),\n        \n        Conv2D(32, (3,3), activation='relu'),\n        BatchNormalization(),\n        MaxPooling2D((2,2)),\n        \n        Conv2D(64, (3,3), activation='relu'),\n        BatchNormalization(),\n        MaxPooling2D((2,2)),\n        \n        Conv2D(128, (3,3), activation='relu'),\n        BatchNormalization(),\n        MaxPooling2D((2,2)),\n        \n        Flatten(),\n        Dense(hp.Int(\"dense\", 64, 128, step=64), activation='relu'),\n        Dropout(0.5),\n        Dense(1, activation='sigmoid')\n])\n    model.compile(optimizer=Adam(hp.Choice(\"learning_rate\", [1e-4, 1e-3])),\n                  loss='binary_crossentropy', metrics=['accuracy', 'auc'])\n    return model\n\ncnn_2_tuner = kt.RandomSearch(\n    build_model_2,\n    objective=\"val_accuracy\",\n    directory=\"tuning_2\"\n)\n\ncnn_2_tuner.search(X_subset, y_subset, validation_split=0.2, epochs=10)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T20:46:01.357986Z","iopub.execute_input":"2025-04-02T20:46:01.358270Z","iopub.status.idle":"2025-04-02T20:46:41.928771Z","shell.execute_reply.started":"2025-04-02T20:46:01.358249Z","shell.execute_reply":"2025-04-02T20:46:41.927464Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"cnn_2_tuner.results_summary()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T20:27:14.606000Z","iopub.execute_input":"2025-04-02T20:27:14.606312Z","iopub.status.idle":"2025-04-02T20:27:14.616496Z","shell.execute_reply.started":"2025-04-02T20:27:14.606290Z","shell.execute_reply":"2025-04-02T20:27:14.615707Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"cnn_2_model = cnn_2_tuner.get_best_models(num_models=1)[0]\ncnn_2_model.summary()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T20:47:04.723105Z","iopub.execute_input":"2025-04-02T20:47:04.723407Z","iopub.status.idle":"2025-04-02T20:47:05.630810Z","shell.execute_reply.started":"2025-04-02T20:47:04.723385Z","shell.execute_reply":"2025-04-02T20:47:05.630119Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"|**Model**|**Parameters**|**Val Accuracy (10% dataset)**|\n|----|----|----|\n|Model 1|627,969|0.775|\n|Model 2|159,937|0.779|\n","metadata":{}},{"cell_type":"markdown","source":"Model 2 has fewer parameters but achieved slightly higher validation accuracy.\nThis suggests that Model 1 may be overfitting due to a larger number of parameters without significant performance gain.\nModel 2 is more efficient, likely generalizing better with fewer parameters while maintaining similar or better accuracy.","metadata":{}},{"cell_type":"markdown","source":"Let's train Model 2 on the full dataset. We will use EarlyStopping and ReduceLROnPlateau (learning rate reduction) to prevent extreme overfitting.","metadata":{}},{"cell_type":"code","source":"X = np.array([load_image(i) for i in train_labels['id']])\ny = train_labels['label'].values","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# reduce the learning rate when a metric has stopped improving.\nlearning_rate_reduction = ReduceLROnPlateau(monitor='val_loss', \n                                            factor=0.5, \n                                            patience=5, \n                                            min_lr=1e-5)\n\nearlystop = EarlyStopping(monitor='val_loss', \n                          patience=5, \n                          restore_best_weights=True)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T21:17:36.160925Z","iopub.execute_input":"2025-04-02T21:17:36.161249Z","iopub.status.idle":"2025-04-02T21:17:36.165391Z","shell.execute_reply.started":"2025-04-02T21:17:36.161225Z","shell.execute_reply":"2025-04-02T21:17:36.164489Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"best_hps = cnn_2_tuner.get_best_hyperparameters(num_trials=1)[0]\n\nbest_model = build_model_2(best_hps)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T21:17:47.559723Z","iopub.execute_input":"2025-04-02T21:17:47.560029Z","iopub.status.idle":"2025-04-02T21:17:47.632185Z","shell.execute_reply.started":"2025-04-02T21:17:47.560003Z","shell.execute_reply":"2025-04-02T21:17:47.631301Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"history = best_model.fit(X, y, \n                    epochs=50, \n                    validation_split=0.2, \n                    callbacks=[learning_rate_reduction, earlystop])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T21:18:09.145658Z","iopub.execute_input":"2025-04-02T21:18:09.145995Z","iopub.status.idle":"2025-04-02T21:19:24.055339Z","shell.execute_reply.started":"2025-04-02T21:18:09.145966Z","shell.execute_reply":"2025-04-02T21:19:24.054617Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"<div style=\"background-color: #76c7c0; color: white; padding: 10px; border-radius: 10px; text-align: center; font-size: 24px; font-weight: bold;\">\n    Evaluation\n</div>","metadata":{}},{"cell_type":"markdown","source":"**Accuracy Curve**","metadata":{}},{"cell_type":"code","source":"plt.figure(figsize=(10, 6))\n\nplt.plot(history.history['accuracy'], label='CNN Train Accuracy', color='#1f77b4', linestyle=\"dashed\")\nplt.plot(history.history['val_accuracy'], label='CNN Val Accuracy', color='#1f77b4')\n\nplt.xlabel('Epochs')\nplt.ylabel('Accuracy')\nplt.title('Model Accuracy')\nplt.legend()\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T21:20:48.411458Z","iopub.execute_input":"2025-04-02T21:20:48.411808Z","iopub.status.idle":"2025-04-02T21:20:48.601403Z","shell.execute_reply.started":"2025-04-02T21:20:48.411785Z","shell.execute_reply":"2025-04-02T21:20:48.600763Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"* The training accuracy steadily increases over epochs.\n* The validation accuracy fluctuates more but follows an upward trend.","metadata":{}},{"cell_type":"markdown","source":"**Loss Curve**","metadata":{}},{"cell_type":"code","source":"plt.figure(figsize=(10, 6))\n\nplt.plot(history.history['loss'], label='CNN Train Loss', color='#1f77b4', linestyle=\"dashed\")\nplt.plot(history.history['val_loss'], label='CNN Val Loss', color='#1f77b4')\n\nplt.xlabel('Epochs')\nplt.ylabel('Loss')\nplt.title('Model Loss')\nplt.legend()\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T21:20:55.090933Z","iopub.execute_input":"2025-04-02T21:20:55.091228Z","iopub.status.idle":"2025-04-02T21:20:55.289556Z","shell.execute_reply.started":"2025-04-02T21:20:55.091205Z","shell.execute_reply":"2025-04-02T21:20:55.288703Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"* The training loss consistently decreases, indicating the model is learning.\n* The validation loss is erratic, showing spikes at different points.","metadata":{}},{"cell_type":"markdown","source":"**ROC-AUC Curve**","metadata":{}},{"cell_type":"code","source":"n = int(X.shape[0]*0.2)\n\nX_val = X[:n]\ny_val = y[:n]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T21:25:25.620048Z","iopub.execute_input":"2025-04-02T21:25:25.620450Z","iopub.status.idle":"2025-04-02T21:25:25.624642Z","shell.execute_reply.started":"2025-04-02T21:25:25.620426Z","shell.execute_reply":"2025-04-02T21:25:25.623723Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def plot_roc_curve(model_name, y_true, y_pred, color):\n    fpr, tpr, _ = roc_curve(y_true, y_pred)\n    roc_auc = auc(fpr, tpr)\n    plt.plot(fpr, tpr, color=color, label=f\"{model_name} (AUC = {roc_auc:.3f})\")\n\n# Get true labels and predictions\ny_cnn = best_model.predict(X_val)\ny_cnn = y_cnn.ravel()\n\n# Plot ROC Curves\nplt.figure(figsize=(8, 6))\nplot_roc_curve(\"CNN\", y_val, y_cnn, \"#1f77b4\")\n\n# Random baseline\nplt.plot([0, 1], [0, 1], linestyle=\"--\", color=\"gray\", label=\"Random Guessing\")\n\nplt.xlabel(\"False Positive Rate\")\nplt.ylabel(\"True Positive Rate\")\nplt.title(\"ROC Curve Comparison\")\nplt.legend()\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T21:25:52.409747Z","iopub.execute_input":"2025-04-02T21:25:52.410051Z","iopub.status.idle":"2025-04-02T21:25:54.598267Z","shell.execute_reply.started":"2025-04-02T21:25:52.410028Z","shell.execute_reply":"2025-04-02T21:25:54.597385Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"* The ROC curve shows strong performance, with an AUC of 0.924.\n* The model is much better than random guessing (dashed line).\n* The high AUC suggests that the model can effectively distinguish between the two classes.","metadata":{}},{"cell_type":"markdown","source":"## Test Results","metadata":{}},{"cell_type":"code","source":"test_labels.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-03T09:07:02.773558Z","iopub.execute_input":"2025-04-03T09:07:02.773876Z","iopub.status.idle":"2025-04-03T09:07:02.792213Z","shell.execute_reply.started":"2025-04-03T09:07:02.773842Z","shell.execute_reply":"2025-04-03T09:07:02.791551Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"X_test = np.array([load_image(i, image_dir=test_dir) for i in test_labels['id']])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-03T09:40:30.025245Z","iopub.execute_input":"2025-04-03T09:40:30.025560Z","iopub.status.idle":"2025-04-03T09:40:35.274475Z","shell.execute_reply.started":"2025-04-03T09:40:30.025537Z","shell.execute_reply":"2025-04-03T09:40:35.273170Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"y_pred_cnn = best_model.predict(X_test)\ny_pred_cnn = y_pred_cnn.ravel()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T09:10:27.893052Z","iopub.status.idle":"2025-04-02T09:10:27.893356Z","shell.execute_reply":"2025-04-02T09:10:27.893240Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"submission_cnn_df = pd.DataFrame({\n            'id':test_labels[\"id\"],\n            'label':y_pred_cnn })\nsubmission_cnn_df.to_csv('submission_cnn.csv', index=False)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-02T09:10:27.894006Z","iopub.status.idle":"2025-04-02T09:10:27.894231Z","shell.execute_reply":"2025-04-02T09:10:27.894140Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"![image.png](attachment:46321a45-790b-46fe-92c2-45b858e6bcca.png)","metadata":{},"attachments":{"46321a45-790b-46fe-92c2-45b858e6bcca.png":{"image/png":"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AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAiEFCOSHpGEFAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACGS9AID/jzTkiAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACIQUI5IekYQUCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIZL0AgP+PNOSICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIhBQjkh6RhBQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAhkvQCA/4805IgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAiEFCOSHpGEFAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACGS9AID/jzTkiAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACIQUI5IekYQUCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIZL0AgP+PNOSICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIhBQjkh6RhBQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAhkvQCA/4805IgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAiEFCOSHpGEFAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACGS9AID/jzTkiAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACIQUI5IekYQUCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIZL0AgP+PNOSICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIhBQjkh6RhBQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAhkvQCA/4805IgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAiEFCOSHpGEFAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACGS9AID/jzTkiAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACIQUI5IekYQUCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIZL0AgP+PNOSICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIhBQjkh6RhBQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAhkvQCA/4805IgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAiEFCOSHpGEFAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACGS9AID/jzTkiAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACIQUI5IekYQUCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIZL0AgP+PNOSICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIhBQjkh6RhBQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAhkvQCA/4805IgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAiEFCOSHpGEFAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACGS9AID/jzTkiAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACIQUI5IekYQUCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIZL0AgP+PNOSICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIhBQjkh6RhBQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAhkvkDnWQy5fsSbWLNgfAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBI4K0CKfjwICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIJJHDKfyYl0PlwKggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCS1AC3yk/r2c/EIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAokmQCA/0e4I54MAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkNQCBPKT+vZz8QgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACiSZAID/R7gjngwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQ1AIE8pP69nPxCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKJJkAgP9HuCOeDAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJDUAgTyk/r2c/EIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAokmQCA/0e4I54MAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkNQCBPKT+vZz8QgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACiSZAID/R7gjngwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQ1AIE8pP69nPxCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKJJkAgP9HuCOeDAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJDUAgTyk/r2c/EIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAokmQCA/0e4I54MAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkNQCBPKT+vZz8QgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACiSZAID/R7gjngwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQ1AIE8pP69nPxCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKJJkAgP9HuCOeDAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJDUAgTyk/r2c/EIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAokmQCA/0e4I54MAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkNQCBPKTTYoOTQAAQABJREFU+vZz8QgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACiSZAID/R7gjngwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQ1AIE8pP69nPxCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKJJkAgP9HuCOeDAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJDUAgTyk/r2c/EIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAokmQCA/0e4I54MAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkNQCBPKT+vZz8QgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACiSZAID/R7gjngwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQ1AIE8pP69nPxCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKJJkAgP9HuCOeDAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJDUAgTyk/r2c/EIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAokmQCA/0e4I54MAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkNQCBPKT+vZz8QgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACiSZAID/R7gjngwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQ1AIE8pP69nPxCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKJJkAgP9HuCOeDAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJDUAgTyk/r2c/EIIIDAySvw+edfSLHiF/het91e5+S9WK4MAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEETioBAvkn1e3kYhBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEETnQBAvkn+h3k/BFAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEETioBAvkn1e3kYhBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEETnQBAvkn+h3k/BFAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEETioBAvkn1e3kYhBAAAEE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mZ0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEygn4AvVykVqIAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBJIFFPnJ6ZmdAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBMoJKPLLRWohAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEEgWUOQnp2d2AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgnoMgvF6mFCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCBZQJGfnJ7ZCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCcgCK/XKQWIkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFkAUV+cnpmJ0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFyAor8cpFaiAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSSBRT5yemZnQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTKCSjyy0VqIQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBIFlDkJ6dndgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoJ6DILxephQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgWUCRn5ye2QkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgnIAiv1ykFiJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBZAFFfnJ6ZidAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBcgKK/HKRWogAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEkgUU+cnpmZ0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEygko8stFaiECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQSBZQ5CenZ3YCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKCegyC8XqYUIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIFlAkZ+cntkJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoJyAIr9cpBYiQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgWQBRX5yemYnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgXICivxykVqIAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBJIFFPnJ6ZmdAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBMoJKPLLRWohAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEEgWUOQnp2d2AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgnoMgvF6mFCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCBZQJGfnJ7ZCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCcgCK/XKQWIkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFkge2tw//89fvWP+F6AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA4F3AiXz/CgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA4I4EHv5Nt1vmuf75e8vlriVAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQWAk7kLzA8JECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECawso8tdOwPsTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGFgCJ/geEhAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBYW0CRv3YC3p8AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCwEFPkLDA8JECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMDaAv8BdTt+/KJBU7UAAAAASUVORK5CYII="}}},{"cell_type":"markdown","source":"<div style=\"background-color: #76c7c0; color: white; padding: 10px; border-radius: 10px; text-align: center; font-size: 24px; font-weight: bold;\">\n    Conclusion\n</div>","metadata":{}},{"cell_type":"markdown","source":"1. Model Performance Analysis\n\nModel 1: 627,969 parameters, Validation Accuracy: 0.775\nModel 2: 159,937 parameters, Validation Accuracy: 0.779\nDespite having significantly fewer parameters, Model 2 slightly outperformed Model 1 in validation accuracy. This suggests that Model 1 might have been overfitting, as its higher complexity.\n\n2. Insights from Training Metrics\n\nLooking at the accuracy and loss plots:\n\nTrain accuracy consistently increases, while validation accuracy fluctuates more, which could indicate some instability or overfitting.\nValidation loss shows significant spikes, suggesting the model struggled with certain epochs.\n\n3. Learnings & Takeaways\n\nWhat Helped Improve Performance:\n* Reducing Model Complexity – Model 2 performed better with fewer parameters, reducing overfitting risk.\n* Regularization techniques helped prevent extreme overfitting.\n\nWhat Didn’t Help Much:\n* Increasing model size (Model 1) – More parameters didn’t necessarily improve validation accuracy.\n* Validation fluctuations – This suggests instability in training, possibly due to hyperparameter settings or dataset imbalance.\n* Noisy loss trends – Validation loss spikes indicate room for better tuning.\n\n4. Future Improvements & Next Steps\n\n* Hyperparameter tuning\n* Additional regularization\n* Try alternative architectures\n* Better early stopping criteria","metadata":{}}]}