{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.14","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"gpu","dataSources":[{"sourceId":82611,"databundleVersionId":9553358,"sourceType":"competition"}],"dockerImageVersionId":30787,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"<h1 style=\"text-align: center; \">★ ANN 🩸📊 Blood Glucose Prediction ★</h1>\n","metadata":{}},{"cell_type":"markdown","source":"---","metadata":{}},{"cell_type":"markdown","source":"![HowtoReduceBloodSugarLevelImmediately.png](attachment:fcaba10c-177b-41e7-8eaa-1229497574e0.png)","metadata":{},"attachments":{"fcaba10c-177b-41e7-8eaa-1229497574e0.png":{"image/png":"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"}}},{"cell_type":"markdown","source":"---","metadata":{}},{"cell_type":"markdown","source":"# ⏳  Introduction\n#### *The dataset includes data from young adults in the UK with type 1 diabetes using a CGM, insulin pump, and smartwatch, capturing glucose readings, insulin dosages, carb intake, and activity data in five-minute intervals. The goal is to predict future blood glucose readings based on samples aggregated from the previous six hours. Training data from nine participants covers the first three months, while testing data from fifteen participants spans the remaining study period, ensuring no overlap and random order to prevent data leakage.*\n\n<font color='blue' size='5' fornt = \"itlic\">Content </font> \n    \n1. [📂 Load Dataset](#1)\n2. [📝 Dataset Information](#2)\n3. [🚀 Reduce Memory](#3)\n4. [🛠️ Feature Selection](#4)\n5. [🔍 Impute Missing values](#5)\n6. [🧠 ANN Modeling](#6)\n    * [📦 Plan for Model and Data Processing](#6)\n    * [📊 Residuals](#8)","metadata":{}},{"cell_type":"markdown","source":"# 🛠️ Data Cleaning and Feature Engineering Plan\n","metadata":{}},{"cell_type":"markdown","source":"#### 📥 Step 1: Load the Dataset\n   -   Set up the environment and load the data for further analysis.\n\n#### 🔍 Step 2: Data Exploration\n   -   Get a better understanding of the dataset’s structure, columns, and general statistics.\n\n#### 🚫 Step 3: Check and Handle Missing Values\n   -   Identify and handle any missing values to ensure clean, complete data for model training.\n\n#### 📊 Step 4: Feature Engineering\n   -   Extract new, meaningful features and prepare the data for better model performance.\n\n#### 🎛️ Step 5: Feature Selection\n   -   Identify and select features that contribute the most to model performance while reducing memory usage.\n\n#### 🧠 Step 6: Model Training - Artificial Neural Network (ANN)\n   -   Build and train a model to capture patterns and make accurate predictions.\n\n#### 📝 Step 7: Submission Preparation\n   -   Format predictions for submission and prepare the final output.\n\n---","metadata":{"_kg_hide-input":true}},{"cell_type":"markdown","source":"<a id = \"1\"></a><br>\n# **📂 Load Dataset**","metadata":{}},{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport seaborn as sns\nimport plotly.express as px \nimport matplotlib.pyplot as plt\nfrom sklearn.preprocessing import LabelEncoder\n\nimport gc\nimport warnings\nwarnings.filterwarnings('ignore')","metadata":{"execution":{"iopub.status.busy":"2024-11-29T18:48:33.471688Z","iopub.execute_input":"2024-11-29T18:48:33.472037Z","iopub.status.idle":"2024-11-29T18:48:34.921956Z","shell.execute_reply.started":"2024-11-29T18:48:33.472004Z","shell.execute_reply":"2024-11-29T18:48:34.921271Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"%%time\n# Load datasets using context managers\ndef load_datasets():\n    try:\n        # Load CSV files\n        train=pd.read_csv(\"/kaggle/input/brist1d/train.csv\")\n        test=pd.read_csv(\"/kaggle/input/brist1d/test.csv\")\n        sample_submission=pd.read_csv(\"/kaggle/input/brist1d/sample_submission.csv\")\n        \n        print(\"Datasets loaded successfully.\")\n        return train, test, sample_submission\n    \n    except Exception as e:\n        print(f\"Error loading datasets: {e}\")\n        return None\n    \ntrain, test, sample, = load_datasets()\n","metadata":{"execution":{"iopub.status.busy":"2024-11-29T18:48:34.923595Z","iopub.execute_input":"2024-11-29T18:48:34.924021Z","iopub.status.idle":"2024-11-29T18:48:45.482799Z","shell.execute_reply.started":"2024-11-29T18:48:34.923993Z","shell.execute_reply":"2024-11-29T18:48:45.481891Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-29T19:14:19.002382Z","iopub.execute_input":"2024-11-29T19:14:19.002753Z","iopub.status.idle":"2024-11-29T19:14:19.032961Z","shell.execute_reply.started":"2024-11-29T19:14:19.002721Z","shell.execute_reply":"2024-11-29T19:14:19.032190Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"sample","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-29T19:14:49.095866Z","iopub.execute_input":"2024-11-29T19:14:49.096729Z","iopub.status.idle":"2024-11-29T19:14:49.107932Z","shell.execute_reply.started":"2024-11-29T19:14:49.096694Z","shell.execute_reply":"2024-11-29T19:14:49.107038Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"<a id = \"2\"></a><br>\n# **📝 Dataset Information**","metadata":{}},{"cell_type":"code","source":"# Display information for all datasets\n# Display dataset information\ndef display_dataset_info(dataset, name):\n    \n    print(\"-----------------------------------------------------------------\")\n\n    print(f\"{name} DataFrame Shape: Rows = {dataset.shape[0]}, Columns = {dataset.shape[1]}\")\n    \n    total_missing = dataset.isnull().sum().sum()\n    print(f\"There are total {total_missing} missing values in the {name} DataFrame.\") if total_missing > 0 else print(f\"There are no missing values in the {name} DataFrame.\")\n\n    total_duplicates = dataset.duplicated().sum()\n    print(f\"There are {total_duplicates} duplicate rows in the {name} DataFrame.\") if total_duplicates > 0 else print(f\"There are no duplicate rows in the {name} DataFrame.\")\n    \n    display(dataset.describe().style.set_caption(f\"Descriptive Statistics for {name} Dataset\").background_gradient(cmap=\"coolwarm\"))\n    print(\"-----------------------------------------------------------------\")\n    gc.collect()\n\ndatasets = [train, test, sample]\nnames = [ \"Train\", \"Test\", \"Sample\"]\nfor i in range(len(datasets)):\n    display_dataset_info(datasets[i], names[i])","metadata":{"execution":{"iopub.status.busy":"2024-11-29T18:48:45.484134Z","iopub.execute_input":"2024-11-29T18:48:45.484879Z","iopub.status.idle":"2024-11-29T18:48:52.902587Z","shell.execute_reply.started":"2024-11-29T18:48:45.484833Z","shell.execute_reply":"2024-11-29T18:48:52.901573Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"<a id = \"3\"></a><br>\n# **🚀 Reduce Memory**","metadata":{}},{"cell_type":"code","source":"# Function to reduce memory usage\ndef reduce_memory(df):\n    start_mem = df.memory_usage().sum() / 1024**2\n    print(f\"Memory usage before optimization: {start_mem:.2f} MB\")\n\n    for col in df.columns:\n        col_type = df[col].dtype\n\n        if col_type != object:\n            if str(col_type).startswith(\"int\"):\n                df[col] = pd.to_numeric(df[col], downcast=\"integer\")\n            elif str(col_type).startswith(\"float\"):\n                df[col] = pd.to_numeric(df[col], downcast=\"float\")\n        else:\n            df[col] = df[col].astype(\"category\")\n\n    end_mem = df.memory_usage().sum() / 1024**2\n    print(f\"Memory usage after optimization: {end_mem:.2f} MB\")\n    print(f\"Reduced by {(100 * (start_mem - end_mem) / start_mem):.1f}%\")\n\n    return df\n\n# Apply memory reduction\ntrain = reduce_memory(train)\ntest = reduce_memory(test)","metadata":{"execution":{"iopub.status.busy":"2024-11-29T18:48:52.903729Z","iopub.execute_input":"2024-11-29T18:48:52.904172Z","iopub.status.idle":"2024-11-29T18:48:55.243128Z","shell.execute_reply.started":"2024-11-29T18:48:52.904143Z","shell.execute_reply":"2024-11-29T18:48:55.242227Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"%%time\n\n# Encode categorical variables  \ncategorical_columns = train.select_dtypes(include=\"category\").columns  \n\nfor col in categorical_columns:  \n    # Initialize the LabelEncoder  \n    le = LabelEncoder()  \n    \n    # Fit and transform the categorical column  \n    train[col] = le.fit_transform(train[col])  \n    test[col] = le.fit_transform(test[col])\n    # Save the encoder for inverse transformation later  ","metadata":{"execution":{"iopub.status.busy":"2024-11-29T18:48:55.245774Z","iopub.execute_input":"2024-11-29T18:48:55.246048Z","iopub.status.idle":"2024-11-29T18:48:57.567177Z","shell.execute_reply.started":"2024-11-29T18:48:55.246022Z","shell.execute_reply":"2024-11-29T18:48:57.566277Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Drop columns with more than 60% missing values\nnumeric_columns = train.select_dtypes(\"number\")\ntrain = train.dropna(thresh=int(0.6 * len(train)), axis=1)\n\n\n# Calculate the variance of each column\nvariances = numeric_columns.var()\n\n# Identify columns with low variance\nlow_variance_cols = variances[variances < 1].index.tolist()\n\n# Drop the low variance columns\ntrain = train.drop(columns=low_variance_cols)\n\n# Optionally, print the dropped columns for reference\nprint(\"Dropped columns with low variance:\", low_variance_cols)\n","metadata":{"_kg_hide-output":true,"execution":{"iopub.status.busy":"2024-11-29T18:48:57.568434Z","iopub.execute_input":"2024-11-29T18:48:57.568799Z","iopub.status.idle":"2024-11-29T18:48:59.367571Z","shell.execute_reply.started":"2024-11-29T18:48:57.568758Z","shell.execute_reply":"2024-11-29T18:48:59.366666Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"#### *The dataset originally had `40,294,794` null values. After eliminating columns with more than **60%** missing data, the count of null values reduced to `31,977,253`, a decrease of approximately **20.5%**. Additionally, 38 low-variance columns, representing a certain percentage of the dataset, were dropped to further streamline the data*","metadata":{}},{"cell_type":"markdown","source":"<a id = \"4\"></a><br>\n# **🛠️ Feature Selection**","metadata":{}},{"cell_type":"code","source":"# Selected columns\nselected_columns = [\n     \"bg-2:45\", \"bg-2:30\", \"bg-2:15\", \"bg-2:00\", \"bg-1:45\", \n    \"bg-1:30\", \"bg-1:15\",\"bg-1:00\", \"bg-0:45\", \"bg-0:30\", \n    \"bg-0:15\", \"bg-0:00\", \"bg+1:00\", \n    \"activity-3:35\", \"activity-4:05\", \"activity-3:50\", \n    \"activity-4:20\", \"activity-4:15\", \"activity-4:25\", \n    \"activity-3:05\", \"activity-3:20\", \"activity-0:05\", \n    \"activity-2:50\", \"activity-2:35\", \"activity-2:05\", \n    \"activity-0:20\", \"activity-0:15\", \"activity-0:10\", \n    \"activity-0:00\", \"activity-4:35\", \"activity-4:30\", \n    \"id\", \"activity-4:40\", \"activity-5:30\", \"time\", \n    \"p_num\", \"activity-5:55\", \"activity-5:50\", \n    \"activity-5:45\", \"activity-5:40\", \"activity-5:35\", \n    \"activity-5:25\", \"activity-4:45\", \"activity-5:20\", \n    \"activity-5:15\", \"activity-5:10\", \"activity-5:05\", \n    \"activity-5:00\", \"activity-4:55\", \"activity-4:50\", \n]\n\n# Select columns for train and test\ntrain = train[selected_columns]\ntest = test[[col for col in selected_columns if col in test.columns]]\n\n","metadata":{"execution":{"iopub.status.busy":"2024-11-29T18:48:59.368536Z","iopub.execute_input":"2024-11-29T18:48:59.368794Z","iopub.status.idle":"2024-11-29T18:48:59.426373Z","shell.execute_reply.started":"2024-11-29T18:48:59.368768Z","shell.execute_reply":"2024-11-29T18:48:59.425732Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"#### *We chose the columns `bg-1:00` `bg-0:45` `bg-0:30` `bg-0:15` and other `blood glucose` measurements because they show the strongest correlations with the target column `bg+1:00`. Additionally, we included other columns that have no null values, as this enhances the overall performance of the model.*","metadata":{}},{"cell_type":"markdown","source":"<a id = \"5\"></a><br>\n# **🔍 Impute Missing values**","metadata":{}},{"cell_type":"code","source":"%%time\nfrom sklearn.impute import KNNImputer\n\nnumeric_trainColl = train.select_dtypes(\"number\")  \nnumeric_testColl = test.select_dtypes(\"number\")  \n\nimputer = KNNImputer(n_neighbors=5)\ntrain_imputed = imputer.fit_transform(numeric_trainColl)\ntrain = pd.DataFrame(train_imputed, columns=numeric_trainColl.columns)\n\nimputer = KNNImputer(n_neighbors=5)\ntest_imputed = imputer.fit_transform(numeric_testColl)\ntest = pd.DataFrame(test_imputed, columns=numeric_testColl.columns)\ngc.collect()\n\ndel numeric_trainColl, numeric_testColl, train_imputed, test_imputed\n\nprint(\"Remaining missing values in train:\", train.isnull().sum().sum())\nprint(\"Remaining missing values in test:\", test.isnull().sum().sum())","metadata":{"execution":{"iopub.status.busy":"2024-11-29T18:48:59.427272Z","iopub.execute_input":"2024-11-29T18:48:59.427511Z","iopub.status.idle":"2024-11-29T18:56:25.509315Z","shell.execute_reply.started":"2024-11-29T18:48:59.427486Z","shell.execute_reply":"2024-11-29T18:56:25.508445Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"#### *Use the KNN Imputer to fill in the missing values for your data set with the identifier 69040.* ","metadata":{}},{"cell_type":"code","source":"%%time\nfig = px.histogram(train, x='bg+1:00', nbins=30, title='Histogram of Bg+1:00',   \n                   labels={'bg+1:00': 'Value'})  \nfig.update_layout(xaxis_title='Value', yaxis_title='Frequency')  \n# Show the plot  \nfig.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-29T18:56:25.510442Z","iopub.execute_input":"2024-11-29T18:56:25.510797Z","iopub.status.idle":"2024-11-29T18:56:26.820882Z","shell.execute_reply.started":"2024-11-29T18:56:25.510765Z","shell.execute_reply":"2024-11-29T18:56:26.819971Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"%%time\n# Calculate Q1 (25th percentile) and Q3 (75th percentile)  \nQ1 = train['bg+1:00'].quantile(0.25)  \nQ3 = train['bg+1:00'].quantile(0.75)  \n\n# Calculate IQR  \nIQR = Q3 - Q1  \n# Define the bounds for outliers  \nlower_bound = Q1 - 1.5 * IQR  \nupper_bound = Q3 + 1.5 * IQR  \n\n# Remove outliers  \ndf_cleaned = train[(train['bg+1:00'] >= lower_bound) & (train['bg+1:00'] <= upper_bound)]  \ngc.collect()\n\ndel Q1, Q3, IQR, lower_bound, upper_bound","metadata":{"execution":{"iopub.status.busy":"2024-11-29T18:56:26.822049Z","iopub.execute_input":"2024-11-29T18:56:26.822317Z","iopub.status.idle":"2024-11-29T18:56:26.947523Z","shell.execute_reply.started":"2024-11-29T18:56:26.822289Z","shell.execute_reply":"2024-11-29T18:56:26.946650Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"#### *To enhance accuracy, eliminate outliers from the \"**`bg+1:00`**\" columns using the interquartile range (IQR) method.*","metadata":{}},{"cell_type":"code","source":"%%time\n# Create a histogram using Plotly  \nfig = px.histogram(df_cleaned, x='bg+1:00', nbins=30, title='Histogram of Bg+1:00',   \n                   labels={'bg+1:00': 'Value'})  \n\n# Update layout for axes labels  \nfig.update_layout(xaxis_title='Value', yaxis_title='Frequency')  \n\n# Show the plot  \nfig.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-29T18:56:26.948690Z","iopub.execute_input":"2024-11-29T18:56:26.949337Z","iopub.status.idle":"2024-11-29T18:56:27.026566Z","shell.execute_reply.started":"2024-11-29T18:56:26.949287Z","shell.execute_reply":"2024-11-29T18:56:27.025522Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"<a id = \"6\"></a><br>\n# **🧠 ANN**\n","metadata":{}},{"cell_type":"markdown","source":"📊 **Data Splitting and Scaling**  \n- Split: 80-20 (train-test split)  \n- Standardize: Apply `StandardScaler` for feature stability  \n\n➡️ **ANN Model Setup**  \n- Layers: Three layers – 64 neurons (first layer), 32 neurons (second layer), 1 neuron (output layer)  \n- Activation: ReLU for hidden layers, linear for output  \n\n⚙️ **Compilation**  \n- Optimizer: Adam  \n- Loss: Mean Squared Error (MSE)  \n- Emgo: Set Emgo metric to assess model robustness  \n\n⏳ **Early Stopping**  \n- Criterion: Stop if no improvement in validation loss for 10 epochs  \n- Restore Best Weights: Enable to keep best-performing model 🏆  \n\n📏 **Evaluation**  \n- Primary Metric: Use RMSE for prediction accuracy  \n- Additional Metric: Emgo for model stability and robustness evaluation  \n----","metadata":{"_kg_hide-input":true}},{"cell_type":"code","source":"%%time  \nimport gc\nfrom sklearn.metrics import mean_squared_error  \nfrom sklearn.model_selection import train_test_split  \nfrom sklearn.preprocessing import StandardScaler  \nfrom keras.models import Sequential  \nfrom tensorflow.keras.layers import Dense, Dropout\nfrom tensorflow.keras.optimizers import Adam\n\nfrom keras.callbacks import EarlyStopping,ReduceLROnPlateau\n\nX = df_cleaned.drop(columns=\"bg+1:00\")  \ny = df_cleaned['bg+1:00']  \n\n# Train-test split\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n\n# Standardizing the data\nscaler = StandardScaler()\nX_train_scaled = scaler.fit_transform(X_train)\nX_test_scaled = scaler.transform(X_test)\n\n# ANN model\nann_model = Sequential()\nann_model.add(Dense(64, input_dim=X_train_scaled.shape[1], activation='relu'))\nann_model.add(Dropout(0.3))  # Dropout for regularization\nann_model.add(Dense(32, activation='relu'))\nann_model.add(Dropout(0.3))  # Another dropout layer\nann_model.add(Dense(1))\n\n# Compile the model\nann_model.compile(optimizer=Adam(learning_rate=0.001), loss='mean_squared_error')\n\n# Early stopping and learning rate scheduler\nearly_stopping = EarlyStopping(monitor='val_loss', patience=10, restore_best_weights=True)\nlr_scheduler = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=5, min_lr=1e-6)\n\n# Clear memory\ngc.collect()\n\n# Train the model with early stopping and learning rate scheduler\nhistory = ann_model.fit(X_train_scaled, y_train, epochs=100, batch_size=10, \n                        validation_split=0.2, callbacks=[early_stopping, lr_scheduler])\n\n# Predictions and RMSE calculation  \nann_predictions = ann_model.predict(X_test_scaled)  \nann_rmse = np.sqrt(mean_squared_error(y_test, ann_predictions))  \ngc.collect()\n","metadata":{"execution":{"iopub.status.busy":"2024-11-29T18:56:27.027685Z","iopub.execute_input":"2024-11-29T18:56:27.027935Z","iopub.status.idle":"2024-11-29T19:10:50.314100Z","shell.execute_reply.started":"2024-11-29T18:56:27.027892Z","shell.execute_reply":"2024-11-29T19:10:50.313171Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"%%time\n# Plotting the loss \nprint(f\"ANN RMSE: {ann_rmse:.4f}\")  \nplt.figure(figsize=(10, 6))\nplt.plot(history.history['loss'], label='Training Loss')  \nplt.plot(history.history['val_loss'], label='Validation Loss')  \n\nplt.title('Model Loss During Training')  \nplt.xlabel('Epochs')  \nplt.ylabel('Loss')  \nplt.legend()  \nplt.grid()  \nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-29T19:10:50.315171Z","iopub.execute_input":"2024-11-29T19:10:50.315710Z","iopub.status.idle":"2024-11-29T19:10:50.527769Z","shell.execute_reply.started":"2024-11-29T19:10:50.315680Z","shell.execute_reply":"2024-11-29T19:10:50.526978Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"<a id = \"8\"></a><br>\n## **📊 Residuals**","metadata":{}},{"cell_type":"markdown","source":"#### *`Residual` plot is a graphical tool used in statistics and data science to assess the goodness of fit of a regression model. It shows the residuals (the differences between the observed values and the predicted values) on the vertical axis and the predicted values (or sometimes the independent variable) on the horizontal axis.*","metadata":{}},{"cell_type":"code","source":"%%time\nimport scipy.stats as stats\n\nresiduals = y_test.values - ann_predictions.flatten()\n\nplt.figure(figsize=(12, 12))\n\n# Prediction Error Plot (subplot 1)\nplt.subplot(2, 2, 1)  # 2 rows, 2 columns, first subplot\nplt.scatter(y_test, ann_predictions, color='orange', alpha=0.5)\nplt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], color='red', linestyle='--')\nplt.xlabel(\"Actual Values\")\nplt.ylabel(\"Predicted Values\")\nplt.title(\"Prediction Error Plot (Actual vs. Predicted)\")\n\n# Histogram of Residuals (subplot 2)\nplt.subplot(2, 2, 2)  # 2 rows, 2 columns, second subplot\nplt.hist(residuals, bins=30, color='skyblue', edgecolor='black')\nplt.xlabel(\"Residuals\")\nplt.ylabel(\"Frequency\")\nplt.title(\"Histogram of Residuals\")\n\n# Q-Q Plot of Residuals (subplot 3 - on row 2, column span)\nplt.subplot(2, 1, 2)  # 2 rows, 1 column, third subplot\nstats.probplot(residuals, dist=\"norm\", plot=plt)\nplt.title(\"Q-Q Plot of Residuals\")\n\n# Adjust spacing between subplots\nplt.tight_layout()\nplt.show()\n","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2024-11-29T19:10:50.531157Z","iopub.execute_input":"2024-11-29T19:10:50.531394Z","iopub.status.idle":"2024-11-29T19:10:51.424359Z","shell.execute_reply.started":"2024-11-29T19:10:50.531369Z","shell.execute_reply":"2024-11-29T19:10:51.423507Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"### `Q-Q Plot`\n\n- Assesses the normality of residuals.\n- Deviations from the straight line indicate non-normality, suggesting potential issues with the model's assumptions.\n\n### `Histogram of Residuals`\n- Visualizes the distribution of residuals.\n- Ideally, the distribution should be centered around zero and approximately bell-shaped (normal).\n- In this case, the distribution appears roughly normal, with some slight skewness to the right.\n\n### `Prediction Error Plot`\n- Evaluates the accuracy of the model's predictions.\n- Points close to the diagonal line indicate accurate predictions.\n- Deviations from the line suggest errors in the model's predictions.\n\n#### *Based on the provided plots, the model appears to be performing reasonably well. The residuals are approximately normally distributed, and the predictions are relatively accurate. However, the slight skewness in the residuals and some deviations from the diagonal line in the prediction error plot suggest that there may be room for improvement.*","metadata":{}},{"cell_type":"code","source":"# Plot predictions vs actual values\nplt.figure(figsize=(10, 6))\nplt.plot(y_test.values, label=\"Actual\", color='blue', alpha=0.7)\nplt.plot(ann_predictions, label=\"Predicted\", color='red', alpha=0.7)\nplt.xlabel(\"Samples\")\nplt.ylabel(\"bg+1:00\")\nplt.title(\"ANN Model Predictions vs Actual\")\nplt.legend()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-29T19:10:51.425429Z","iopub.execute_input":"2024-11-29T19:10:51.425714Z","iopub.status.idle":"2024-11-29T19:10:52.484714Z","shell.execute_reply.started":"2024-11-29T19:10:51.425684Z","shell.execute_reply":"2024-11-29T19:10:52.483850Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"#### *The provided image shows a plot comparing the actual and predicted values of an Artificial Neural Network (ANN) model. The model struggles to capture the variability in the actual data, often predicting values closer to the average. To improve the model's performance, consider increasing its complexity, cleaning the data, exploring feature engineering, tuning hyperparameters, and using regularization techniques.*","metadata":{}},{"cell_type":"markdown","source":"# **🌐 Submission file**","metadata":{}},{"cell_type":"code","source":"# Ensure test data doesn't have 'bg+1:00' column\ntest_data = test.drop(columns=[col for col in ['bg+1:00'] if col in test.columns])\n\n# Standardize the test data using the scaler fitted on the train data\ntest_scaled = scaler.transform(test_data)\n\n# Make predictions on the test data\ntest_predictions = ann_model.predict(test_scaled)\n\n# Prepare the submission DataFrame\nsubmission = pd.DataFrame({\n    'id': sample['id'],  # Using 'id' from the test DataFrame\n    'bg+1:00': test_predictions.flatten()  # Flatten predictions to match the shape of the DataFrame\n})\n\n# Save the submission file\nsubmission.to_csv('submission.csv', index=False)\nprint(\"Submission file 'submission.csv' created successfully.\")\n","metadata":{"execution":{"iopub.status.busy":"2024-11-29T19:15:35.037091Z","iopub.execute_input":"2024-11-29T19:15:35.037807Z","iopub.status.idle":"2024-11-29T19:15:35.288334Z","shell.execute_reply.started":"2024-11-29T19:15:35.037774Z","shell.execute_reply":"2024-11-29T19:15:35.287540Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"submission","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-29T19:15:42.456716Z","iopub.execute_input":"2024-11-29T19:15:42.457079Z","iopub.status.idle":"2024-11-29T19:15:42.466540Z","shell.execute_reply.started":"2024-11-29T19:15:42.457046Z","shell.execute_reply":"2024-11-29T19:15:42.465678Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## **🧑‍💻 Summary**\n\n#### *The dataset initially had **40,294,794** missing values, which were reduced to **31,977,253** (a `20.5%` decrease) by removing columns with more than 50% missing data. Additionally, 38 low-variance columns were dropped to streamline the dataset. Relevant features, such as `'bg-1:00'`  `'bg-0:45'`  `'bg-0:30'`  `'bg-0:15'` and  `'bg-0:00'`  were selected for their high correlation with the target variable 'bg+1:00', and columns with no missing values were retained for model efficiency.*\n\n#### *Outliers in the `'bg+1:00'` column were removed using the Interquartile Range (IQR) method to improve data quality.*\n\n#### *An **Artificial Neural Network (ANN)** model was trained on the preprocessed data, achieving a Root Mean Squared Error **(RMSE) of 1.81**. The model's residuals showed a reasonable fit with a normal distribution, though slight skewness and deviations from the expected error distribution suggest room for improvement.*\n","metadata":{}},{"cell_type":"markdown","source":"----","metadata":{}},{"cell_type":"markdown","source":"😊 **If you found this notebook useful, please consider upvoting and sharing your thoughts in the comments! Your feedback is invaluable in fostering a collaborative learning environment.**  \n<h1 style=\"text-align: center;\">👍Show your support by upvoting this notebook! </h1>","metadata":{}},{"cell_type":"markdown","source":"----","metadata":{}}]}