{"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":"none","dataSources":[{"sourceId":81933,"databundleVersionId":9643020,"sourceType":"competition"}],"dockerImageVersionId":30786,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\nimport plotly.express as px\nimport plotly.subplots as sp\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nfrom matplotlib.lines import Line2D\nimport plotly.graph_objects as go\nimport missingno as msno\n\n\nfrom plotly.subplots import make_subplots\nimport math\n\nimport warnings\nwarnings.filterwarnings(\"ignore\")\n\nimport numpy as np\nfrom sklearn.model_selection import StratifiedKFold\nfrom sklearn.metrics import cohen_kappa_score, classification_report\nfrom xgboost import XGBClassifier\nfrom sklearn.preprocessing import LabelEncoder\n\nfrom catboost import CatBoostClassifier\nfrom lightgbm import LGBMClassifier\nfrom sklearn.ensemble import VotingClassifier","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:55:41.341100Z","iopub.execute_input":"2024-12-11T09:55:41.341814Z","iopub.status.idle":"2024-12-11T09:55:44.672724Z","shell.execute_reply.started":"2024-12-11T09:55:41.341751Z","shell.execute_reply":"2024-12-11T09:55:44.671352Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df = pd.read_csv('/kaggle/input/child-mind-institute-problematic-internet-use/train.csv')\ndata_dictionary = pd.read_csv('/kaggle/input/child-mind-institute-problematic-internet-use/data_dictionary.csv')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:55:44.675298Z","iopub.execute_input":"2024-12-11T09:55:44.676273Z","iopub.status.idle":"2024-12-11T09:55:44.736856Z","shell.execute_reply.started":"2024-12-11T09:55:44.676214Z","shell.execute_reply":"2024-12-11T09:55:44.735287Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df.shape\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:55:44.738654Z","iopub.execute_input":"2024-12-11T09:55:44.738997Z","iopub.status.idle":"2024-12-11T09:55:44.746736Z","shell.execute_reply.started":"2024-12-11T09:55:44.738964Z","shell.execute_reply":"2024-12-11T09:55:44.745517Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(data_dictionary[\ndata_dictionary['Field'].str.contains('PreInt_EduHx-computerinternet_hoursday')\n][\"Value Labels\"].iloc[0])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:55:44.749271Z","iopub.execute_input":"2024-12-11T09:55:44.749701Z","iopub.status.idle":"2024-12-11T09:55:44.763779Z","shell.execute_reply.started":"2024-12-11T09:55:44.749664Z","shell.execute_reply":"2024-12-11T09:55:44.762663Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"pciat_columns = [col for col in train_df.columns if 'PCIAT' in col]\npciat_columns","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:55:44.765072Z","iopub.execute_input":"2024-12-11T09:55:44.765416Z","iopub.status.idle":"2024-12-11T09:55:44.778483Z","shell.execute_reply.started":"2024-12-11T09:55:44.765368Z","shell.execute_reply":"2024-12-11T09:55:44.777363Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Plot distribution for each PCIAT question\nplt.figure(figsize=(14, 10))\nfor i, col in enumerate(pciat_columns, 1):\n    plt.subplot(5, 5, i)\n    sns.countplot(data=train_df, x=col, palette=\"viridis\")\n    plt.title(f'Distribution of {col}')\n    plt.xlabel('Response')\n    plt.ylabel('Count')\n\nplt.tight_layout()\nplt.show()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:55:44.779980Z","iopub.execute_input":"2024-12-11T09:55:44.780331Z","iopub.status.idle":"2024-12-11T09:55:49.083856Z","shell.execute_reply.started":"2024-12-11T09:55:44.780293Z","shell.execute_reply":"2024-12-11T09:55:49.082496Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"numerical_cols = train_df.select_dtypes(include=['float64', 'int64']).columns\npciat_numerical_cols = [col for col in numerical_cols if 'PCIAT' in col]\n\ncorrelation_matrix = train_df[pciat_numerical_cols].corr()\n\nplt.figure(figsize=(10, 8))\nsns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt='.2f', linewidths=0.5)\nplt.title('Correlation Matrix of PCIAT Questions')\nplt.show()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:55:49.085194Z","iopub.execute_input":"2024-12-11T09:55:49.085532Z","iopub.status.idle":"2024-12-11T09:55:50.413480Z","shell.execute_reply.started":"2024-12-11T09:55:49.085495Z","shell.execute_reply":"2024-12-11T09:55:50.412335Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"non_numeric_cols = train_df.select_dtypes(exclude=['float64', 'int64']).columns\nprint(\"Non-numeric columns:\", non_numeric_cols)\n\ntrain_df_numeric = train_df.select_dtypes(include=['float64', 'int64'])\n\ntrain_df_numeric = train_df_numeric.fillna(train_df_numeric.mean())  # or use dropna()\n\ncorrelation_matrix = train_df_numeric.corr()\n\nplt.figure(figsize=(20, 15))\nsns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt='.2f', linewidths=0.5)\nplt.title('Correlation Matrix of Numerical Features')\nplt.show()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:55:50.414838Z","iopub.execute_input":"2024-12-11T09:55:50.415140Z","iopub.status.idle":"2024-12-11T09:56:00.501767Z","shell.execute_reply.started":"2024-12-11T09:55:50.415110Z","shell.execute_reply":"2024-12-11T09:56:00.500627Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"selected_columns = [\n    'BIA-Season', 'BIA-BIA_Activity_Level_num', 'BIA-BIA_BMC', 'BIA-BIA_BMI',\n    'BIA-BIA_BMR', 'BIA-BIA_DEE', 'BIA-BIA_ECW', 'BIA-BIA_FFM', 'BIA-BIA_FFMI',\n    'BIA-BIA_FMI', 'BIA-BIA_Fat', 'BIA-BIA_Frame_num', 'BIA-BIA_ICW',\n    'BIA-BIA_LDM', 'BIA-BIA_LST', 'BIA-BIA_SMM', 'BIA-BIA_TBW'\n]\n\nfiltered_df = train_df[selected_columns]\n\nfiltered_df = filtered_df.apply(pd.to_numeric, errors='coerce')\n\ncorrelation_matrix = filtered_df.corr()\n\nplt.figure(figsize=(14, 10)) \nsns.heatmap(\n    correlation_matrix,\n    annot=True,                \n    cmap='coolwarm',           \n    fmt='.2f',                 \n    linewidths=0.5             \n)\nplt.title('Correlation Matrix of Selected BIA Columns')\nplt.show()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:56:00.503214Z","iopub.execute_input":"2024-12-11T09:56:00.503578Z","iopub.status.idle":"2024-12-11T09:56:01.482592Z","shell.execute_reply.started":"2024-12-11T09:56:00.503513Z","shell.execute_reply":"2024-12-11T09:56:01.481360Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Check data type and basic statistics of the target variable 'sii'\ntrain_df['sii'].dtype, train_df['sii'].describe()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:56:01.485660Z","iopub.execute_input":"2024-12-11T09:56:01.486054Z","iopub.status.idle":"2024-12-11T09:56:01.500972Z","shell.execute_reply.started":"2024-12-11T09:56:01.486016Z","shell.execute_reply":"2024-12-11T09:56:01.499713Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df['sii'].unique()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:56:01.502630Z","iopub.execute_input":"2024-12-11T09:56:01.503107Z","iopub.status.idle":"2024-12-11T09:56:01.512047Z","shell.execute_reply.started":"2024-12-11T09:56:01.503055Z","shell.execute_reply":"2024-12-11T09:56:01.510995Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import matplotlib.pyplot as plt\nimport seaborn as sns\n\nplt.figure(figsize=(8, 6))\nsns.histplot(train_df['sii'], kde=True, bins=20)  \nplt.title('Distribution of SII')\nplt.xlabel('SII')\nplt.ylabel('Frequency')\nplt.show()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:56:01.513166Z","iopub.execute_input":"2024-12-11T09:56:01.513470Z","iopub.status.idle":"2024-12-11T09:56:01.888644Z","shell.execute_reply.started":"2024-12-11T09:56:01.513436Z","shell.execute_reply":"2024-12-11T09:56:01.887305Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"missing_values = train_df.isnull().sum()\nmissing_values_percentage = (train_df.isnull().sum() / len(train_df)) * 100\n\nmissing_data = pd.DataFrame({'Missing Values': missing_values, 'Percentage': missing_values_percentage})\nmissing_data = missing_data[missing_data['Missing Values'] > 0].sort_values('Percentage', ascending=False)\nmissing_data\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:56:01.890522Z","iopub.execute_input":"2024-12-11T09:56:01.891035Z","iopub.status.idle":"2024-12-11T09:56:01.916378Z","shell.execute_reply.started":"2024-12-11T09:56:01.890983Z","shell.execute_reply":"2024-12-11T09:56:01.915249Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Check for correlation between missing values in 'sii' and other columns\nmissing_sii_related = train_df[train_df['sii'].isnull()].isnull().sum()\nmissing_sii_related\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:56:01.918113Z","iopub.execute_input":"2024-12-11T09:56:01.918489Z","iopub.status.idle":"2024-12-11T09:56:01.933696Z","shell.execute_reply.started":"2024-12-11T09:56:01.918442Z","shell.execute_reply":"2024-12-11T09:56:01.932403Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plt.figure(figsize=(12, 8))\nmsno.matrix(train_df)\nplt.title('Missing Values Matrix')\nplt.show()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:56:01.935035Z","iopub.execute_input":"2024-12-11T09:56:01.935391Z","iopub.status.idle":"2024-12-11T09:56:02.643952Z","shell.execute_reply.started":"2024-12-11T09:56:01.935356Z","shell.execute_reply":"2024-12-11T09:56:02.642608Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import seaborn as sns\n\nmissing_percentage = train_df.isnull().mean() * 100\n\nmissing_percentage = missing_percentage[missing_percentage > 0].sort_values(ascending=False)\n\nplt.figure(figsize=(12, 8))\nsns.barplot(x=missing_percentage.index, y=missing_percentage.values)\nplt.title('Missing Values Percentage by Column')\nplt.xticks(rotation=90)\nplt.ylabel('Percentage of Missing Values')\nplt.show()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:56:02.645743Z","iopub.execute_input":"2024-12-11T09:56:02.646223Z","iopub.status.idle":"2024-12-11T09:56:03.545192Z","shell.execute_reply.started":"2024-12-11T09:56:02.646173Z","shell.execute_reply":"2024-12-11T09:56:03.543420Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"numerical_columns = train_df.select_dtypes(include=['float64', 'int64']).columns\ncategorical_columns = train_df.select_dtypes(include=['object', 'category']).columns\n\nprint(f\"Numerical Columns: {numerical_columns}\")\nprint(f\"Categorical Columns: {categorical_columns}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:56:03.547131Z","iopub.execute_input":"2024-12-11T09:56:03.547623Z","iopub.status.idle":"2024-12-11T09:56:03.557847Z","shell.execute_reply.started":"2024-12-11T09:56:03.547572Z","shell.execute_reply":"2024-12-11T09:56:03.556600Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"!pip install fancyimpute\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:56:03.559487Z","iopub.execute_input":"2024-12-11T09:56:03.559973Z","iopub.status.idle":"2024-12-11T09:56:26.791987Z","shell.execute_reply.started":"2024-12-11T09:56:03.559922Z","shell.execute_reply":"2024-12-11T09:56:26.790638Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.ensemble import RandomForestRegressor\nfrom sklearn.metrics import cohen_kappa_score\nfrom sklearn.model_selection import StratifiedKFold\nfrom sklearn.impute import KNNImputer\nimport numpy as np\nimport pandas as pd\nfrom tqdm import tqdm\nfrom concurrent.futures import ThreadPoolExecutor\nfrom scipy.optimize import minimize\nimport os\n\npd.set_option('future.no_silent_downcasting', True)  # Enable future behavior\n\n# Load data\ntrain = pd.read_csv('/kaggle/input/child-mind-institute-problematic-internet-use/train.csv')\ntest = pd.read_csv('/kaggle/input/child-mind-institute-problematic-internet-use/test.csv')\nsample = pd.read_csv('/kaggle/input/child-mind-institute-problematic-internet-use/sample_submission.csv')\n\ndef process_file(filename, dirname):\n    df = pd.read_parquet(os.path.join(dirname, filename, 'part-0.parquet'))\n    df.drop('step', axis=1, inplace=True)\n    return df.describe().values.reshape(-1), filename.split('=')[1]\n\ndef load_time_series(dirname) -> pd.DataFrame:\n    ids = os.listdir(dirname)\n\n    with ThreadPoolExecutor() as executor:\n        results = list(tqdm(executor.map(lambda fname: process_file(fname, dirname), ids), total=len(ids)))\n\n    stats, indexes = zip(*results)\n\n    df = pd.DataFrame(stats, columns=[f\"stat_{i}\" for i in range(len(stats[0]))])\n    df['id'] = indexes\n    return df\n\ntrain_ts = load_time_series(\"/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet\")\ntest_ts = load_time_series(\"/kaggle/input/child-mind-institute-problematic-internet-use/series_test.parquet\")\n\n# Merge time series data\ntrain = pd.merge(train, train_ts, how=\"left\", on='id')\ntest = pd.merge(test, test_ts, how=\"left\", on='id')\n\ntrain = train.drop('id', axis=1)\ntest = test.drop('id', axis=1)\n\n# Feature selection\nfeaturesCols = ['Basic_Demos-Enroll_Season', 'Basic_Demos-Age', 'Basic_Demos-Sex',\n                'CGAS-Season', 'CGAS-CGAS_Score', 'Physical-Season', 'Physical-BMI',\n                'Physical-Height', 'Physical-Weight', 'Physical-Waist_Circumference',\n                'Physical-Diastolic_BP', 'Physical-HeartRate', 'Physical-Systolic_BP',\n                'Fitness_Endurance-Season', 'Fitness_Endurance-Max_Stage',\n                'Fitness_Endurance-Time_Mins', 'Fitness_Endurance-Time_Sec',\n                'FGC-Season', 'FGC-FGC_CU', 'FGC-FGC_CU_Zone', 'FGC-FGC_GSND',\n                'FGC-FGC_GSND_Zone', 'FGC-FGC_GSD', 'FGC-FGC_GSD_Zone', 'FGC-FGC_PU',\n                'FGC-FGC_PU_Zone', 'FGC-FGC_SRL', 'FGC-FGC_SRL_Zone', 'FGC-FGC_SRR',\n                'FGC-FGC_SRR_Zone', 'FGC-FGC_TL', 'FGC-FGC_TL_Zone', 'BIA-Season',\n                'BIA-BIA_Activity_Level_num', 'BIA-BIA_BMC', 'BIA-BIA_BMI',\n                'BIA-BIA_BMR', 'BIA-BIA_DEE', 'BIA-BIA_ECW', 'BIA-BIA_FFM',\n                'BIA-BIA_FFMI', 'BIA-BIA_FMI', 'BIA-BIA_Fat', 'BIA-BIA_Frame_num',\n                'BIA-BIA_ICW', 'BIA-BIA_LDM', 'BIA-BIA_LST', 'BIA-BIA_SMM',\n                'BIA-BIA_TBW', 'PAQ_A-Season', 'PAQ_A-PAQ_A_Total', 'PAQ_C-Season',\n                'PAQ_C-PAQ_C_Total', 'SDS-Season', 'SDS-SDS_Total_Raw',\n                'SDS-SDS_Total_T', 'PreInt_EduHx-Season',\n                'PreInt_EduHx-computerinternet_hoursday', 'sii']\n\n# train = train[featuresCols]\n# train = train.dropna(subset=['sii'])\n\ncategorical_columns_train = train.select_dtypes(include=['object', 'category']).columns\ncategorical_columns_test = test.select_dtypes(include=['object', 'category']).columns\n\n# Drop categorical columns from both train and test datasets\ntrain = train.drop(columns=categorical_columns_train)\ntest = test.drop(columns=categorical_columns_test)\n\n# Verify the removal\nprint(\"Categorical columns removed from train dataset:\")\nprint(categorical_columns_train)\n\nprint(\"\\nCategorical columns removed from test dataset:\")\nprint(categorical_columns_test)\n# # Categorical columns\n# cat_c = ['Basic_Demos-Enroll_Season', 'CGAS-Season', 'Physical-Season',\n#          'Fitness_Endurance-Season', 'FGC-Season', 'BIA-Season','PCIAT-Season'\n#          'PAQ_A-Season', 'PAQ_C-Season', 'SDS-Season', 'PreInt_EduHx-Season']\n\n# def update(df):\n#     for c in cat_c:\n#         df[c] = df[c].fillna('Missing').astype('category')\n#     return df\n\n# train = update(train)\n# test = update(test)\n\n# # Encode categorical columns\n# def create_mapping(column, dataset):\n#     unique_values = dataset[column].unique()\n#     return {value: idx for idx, value in enumerate(unique_values)}\n\n# for col in cat_c:\n#     mapping = create_mapping(col, train)\n#     train[col] = train[col].replace(mapping).astype(int)\n#     test[col] = test[col].replace(mapping).astype(int)\n\n# # Apply KNN imputation to handle missing values\n# imputer = KNNImputer(n_neighbors=5)\n# train_imputed = imputer.fit_transform(train)\n# test_imputed = imputer.transform(test)\n\n# # Convert back to DataFrame\n# train = pd.DataFrame(train_imputed, columns=train.columns)\n# test = pd.DataFrame(test_imputed, columns=test.columns)\n\n# print(train.columns)\n# print(test.columns)\n\n\n# # Define Random Forest model parameters\n# RF_Params = {\n#     'n_estimators': 200,\n#     'max_depth': 6,\n#     'max_features': 0.8,\n#     'min_samples_split': 2,\n#     'min_samples_leaf': 1,\n#     'bootstrap': True,\n#     'random_state': 42\n# }\n\n# # Train Random Forest\n# X = train.drop(['sii'], axis=1)\n# y = train['sii']\n\n# model = RandomForestRegressor(**RF_Params)\n# model.fit(X, y)\n\n# def threshold_rounder(predictions, thresholds):\n#     return np.where(predictions < thresholds[0], 0,\n#                     np.where(predictions < thresholds[1], 1,\n#                              np.where(predictions < thresholds[2], 2, 3)))\n\n# # Predictions\n# test_preds = model.predict(test)\n# thresholds = [0.5, 1.5, 2.5]\n# test_preds_rounded = threshold_rounder(test_preds, thresholds)\n\n# # Create submission file\n# submission = pd.DataFrame({\n#     'id': sample['id'],\n#     'sii': test_preds_rounded\n# })\n\n# submission.to_csv('submission.csv', index=False)\n# print(\"Submission file saved.\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:56:26.794345Z","iopub.execute_input":"2024-12-11T09:56:26.794886Z","iopub.status.idle":"2024-12-11T09:57:51.560759Z","shell.execute_reply.started":"2024-12-11T09:56:26.794827Z","shell.execute_reply":"2024-12-11T09:57:51.559399Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"imputer = KNNImputer(n_neighbors=5)\ntrain_imputed = imputer.fit_transform(train)\ntest_imputed = imputer.fit_transform(test)\n\n# Convert back to DataFrame after imputation\ntrain = pd.DataFrame(train_imputed, columns=train.columns)\ntest = pd.DataFrame(test_imputed, columns=test.columns)\n\n# Define Random Forest model parameters\nRF_Params = {\n    'n_estimators': 200,\n    'max_depth': 6,\n    'max_features': 0.8,\n    'min_samples_split': 2,\n    'min_samples_leaf': 1,\n    'bootstrap': True,\n    'random_state': 42\n}\n\n# Train Random Forest\nX = train.drop(['sii','PCIAT-PCIAT_01','PCIAT-PCIAT_02','PCIAT-PCIAT_03','PCIAT-PCIAT_04','PCIAT-PCIAT_05'\n               ,'PCIAT-PCIAT_06','PCIAT-PCIAT_07','PCIAT-PCIAT_08','PCIAT-PCIAT_09','PCIAT-PCIAT_10'\n               ,'PCIAT-PCIAT_11','PCIAT-PCIAT_12','PCIAT-PCIAT_13','PCIAT-PCIAT_14','PCIAT-PCIAT_15'\n               ,'PCIAT-PCIAT_16','PCIAT-PCIAT_17','PCIAT-PCIAT_18','PCIAT-PCIAT_19','PCIAT-PCIAT_20','PCIAT-PCIAT_Total'], axis=1)\ny = train['sii']\n\nmodel = RandomForestRegressor(**RF_Params)\nmodel.fit(X, y)\n\n# Define threshold rounding function\ndef threshold_rounder(predictions, thresholds):\n    return np.where(predictions < thresholds[0], 0,\n                    np.where(predictions < thresholds[1], 1,\n                             np.where(predictions < thresholds[2], 2, 3)))\n\n# Predictions\ntest_preds = model.predict(test)\nthresholds = [0.5, 1.5, 2.5]\ntest_preds_rounded = threshold_rounder(test_preds, thresholds)\n\n# Create submission file\nsubmission = pd.DataFrame({\n    'id': sample['id'],\n    'sii': test_preds_rounded\n})\nsubmission.to_csv('submission.csv', index=False)\n# print(\"Submission file saved.\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:59:33.866825Z","iopub.execute_input":"2024-12-11T09:59:33.867276Z","iopub.status.idle":"2024-12-11T09:59:46.862410Z","shell.execute_reply.started":"2024-12-11T09:59:33.867240Z","shell.execute_reply":"2024-12-11T09:59:46.861373Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"submission","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T09:59:51.547564Z","iopub.execute_input":"2024-12-11T09:59:51.547997Z","iopub.status.idle":"2024-12-11T09:59:51.559473Z","shell.execute_reply.started":"2024-12-11T09:59:51.547955Z","shell.execute_reply":"2024-12-11T09:59:51.558284Z"}},"outputs":[],"execution_count":null}]}