{"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":81933,"databundleVersionId":9643020,"sourceType":"competition"},{"sourceId":9479380,"sourceType":"datasetVersion","datasetId":5765800}],"dockerImageVersionId":30762,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# ANALYSIS | CAT + LGBM + XGB | OPTUNE\n\nThere is Japanese here and there","metadata":{}},{"cell_type":"markdown","source":"# Import","metadata":{}},{"cell_type":"code","source":"import numpy as np\nimport polars as pl\nimport pandas as pd\nfrom sklearn.base import clone\nfrom copy import deepcopy\nimport optuna\nfrom scipy.optimize import minimize\nimport matplotlib.pyplot as plt\nimport missingno as msno\nimport re\nfrom colorama import Fore, Style\nimport pickle\nimport itertools\n\nfrom tqdm import tqdm\nfrom IPython.display import clear_output\n\nimport warnings\nwarnings.filterwarnings('ignore')\npd.options.display.max_columns = None\n\nimport lightgbm as lgb\nfrom catboost import CatBoostRegressor, CatBoostClassifier\nfrom xgboost import XGBRegressor\nfrom catboost import CatBoostRegressor\n\nfrom sklearn.feature_selection import RFECV\nimport xgboost as xgb\nfrom sklearn.ensemble import VotingRegressor\nfrom sklearn.model_selection import *\nfrom sklearn.metrics import *\n\nSEED = 42\nn_splits = 5","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-09-26T00:52:44.814318Z","iopub.execute_input":"2024-09-26T00:52:44.814938Z","iopub.status.idle":"2024-09-26T00:52:51.630278Z","shell.execute_reply.started":"2024-09-26T00:52:44.814895Z","shell.execute_reply":"2024-09-26T00:52:51.629407Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%%time\n\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\ntrain = train.drop('id',axis=1)\ntest = test.drop('id',axis=1)\n\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\ntrain = train[featuresCols]\ntrain = train.dropna(subset='sii')\n\ncat_c = ['Basic_Demos-Enroll_Season','CGAS-Season','Physical-Season','Fitness_Endurance-Season','FGC-Season',\n 'BIA-Season','PAQ_A-Season','PAQ_C-Season','SDS-Season','PreInt_EduHx-Season']\n\ndef update(df):\n    global cat_c\n    for c in cat_c : \n        df[c] = df[c].fillna('Missing')\n        df[c] = df[c].astype('category')\n        \n    return df\n        \ntrain = update(train)\ntest = update(test)\n\ndef create_mapping(column, dataset):\n    unique_values = dataset[column].unique()\n    return {value: idx for idx, value in enumerate(unique_values)}\n\n    \nfor col in cat_c:\n    all_values = pd.concat([train[col], test[col]]).unique()\n    mapping = {value: idx for idx, value in enumerate(all_values)}\n\n    train[col] = train[col].replace(mapping).astype(int)\n    test[col] = test[col].replace(mapping).astype(int)","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:52:51.632220Z","iopub.execute_input":"2024-09-26T00:52:51.632887Z","iopub.status.idle":"2024-09-26T00:52:51.824602Z","shell.execute_reply.started":"2024-09-26T00:52:51.632848Z","shell.execute_reply":"2024-09-26T00:52:51.823407Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# ANALYSIS","metadata":{}},{"cell_type":"markdown","source":"## histgrams","metadata":{}},{"cell_type":"code","source":"%%time\n\ntrain","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:52:51.825887Z","iopub.execute_input":"2024-09-26T00:52:51.826239Z","iopub.status.idle":"2024-09-26T00:52:51.925610Z","shell.execute_reply.started":"2024-09-26T00:52:51.826186Z","shell.execute_reply":"2024-09-26T00:52:51.924448Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%%time\n# ヒストグラムを作成する\ntrain.hist(figsize=(15, 10), bins=20, xlabelsize=8, ylabelsize=8)\n\n# グラフのレイアウトを調整して重ならないようにする\nplt.tight_layout()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:52:51.928884Z","iopub.execute_input":"2024-09-26T00:52:51.929294Z","iopub.status.idle":"2024-09-26T00:53:03.686975Z","shell.execute_reply.started":"2024-09-26T00:52:51.929256Z","shell.execute_reply":"2024-09-26T00:53:03.685874Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train[\"sii\"].hist()","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:53:03.688529Z","iopub.execute_input":"2024-09-26T00:53:03.688968Z","iopub.status.idle":"2024-09-26T00:53:03.953245Z","shell.execute_reply.started":"2024-09-26T00:53:03.688923Z","shell.execute_reply":"2024-09-26T00:53:03.952265Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## missing values","metadata":{}},{"cell_type":"code","source":"missing_percent_train = train.isnull().mean() * 100\nmissing_percent_train","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:53:03.954669Z","iopub.execute_input":"2024-09-26T00:53:03.955729Z","iopub.status.idle":"2024-09-26T00:53:03.968409Z","shell.execute_reply.started":"2024-09-26T00:53:03.955677Z","shell.execute_reply":"2024-09-26T00:53:03.967361Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"missing_percent_test = test.isnull().mean() * 100\nmissing_percent_test","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:53:03.969671Z","iopub.execute_input":"2024-09-26T00:53:03.970019Z","iopub.status.idle":"2024-09-26T00:53:03.986338Z","shell.execute_reply.started":"2024-09-26T00:53:03.969984Z","shell.execute_reply":"2024-09-26T00:53:03.985270Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"msno.matrix(train)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:53:03.987555Z","iopub.execute_input":"2024-09-26T00:53:03.987875Z","iopub.status.idle":"2024-09-26T00:53:04.681068Z","shell.execute_reply.started":"2024-09-26T00:53:03.987842Z","shell.execute_reply":"2024-09-26T00:53:04.680008Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"msno.matrix(test)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:53:04.682459Z","iopub.execute_input":"2024-09-26T00:53:04.682868Z","iopub.status.idle":"2024-09-26T00:53:05.288880Z","shell.execute_reply.started":"2024-09-26T00:53:04.682826Z","shell.execute_reply":"2024-09-26T00:53:05.287947Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## interaction feature","metadata":{}},{"cell_type":"code","source":"def create_interaction_features(df, feature_pairs):\n    for feature1, feature2 in feature_pairs:\n        new_feature_name = f\"{feature1}_x_{feature2}\"\n        df[new_feature_name] = df[feature1] * df[feature2]\n    return df","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:53:05.292663Z","iopub.execute_input":"2024-09-26T00:53:05.293004Z","iopub.status.idle":"2024-09-26T00:53:05.299379Z","shell.execute_reply.started":"2024-09-26T00:53:05.292969Z","shell.execute_reply":"2024-09-26T00:53:05.298252Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# feature_pairs = [\n#     ('PreInt_EduHx-computerinternet_hoursday', 'Basic_Demos-Age'),\n#     ('Basic_Demos-Age', 'SDS-SDS_Total_T'),\n#     ('FGC-FGC_SRR_Zone', 'SDS-SDS_Total_T'),\n#     ('BIA-BIA_BMC', 'Physical-HeartRate'),\n#     ('Fitness_Endurance-Season', 'Physical-Waist_Circumference'),\n#     ('BIA-BIA_Fat', 'Physical-BMI'),\n#     ('PreInt_EduHx-Season', 'Fitness_Endurance-Season'),\n#     ('SDS-SDS_Total_T', 'Physical-Systolic_BP'),\n#     ('Basic_Demos-Sex', 'FGC-FGC_PU_Zone')\n# ]\n\n\n# train = create_interaction_features(train, feature_pairs)\n# test = create_interaction_features(test, feature_pairs)\n","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:53:05.300838Z","iopub.execute_input":"2024-09-26T00:53:05.301324Z","iopub.status.idle":"2024-09-26T00:53:05.312934Z","shell.execute_reply.started":"2024-09-26T00:53:05.301272Z","shell.execute_reply":"2024-09-26T00:53:05.311762Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"feature_columns = test.columns  # trainデータのすべての列名を取得\nfeature_pairs = list(itertools.combinations(feature_columns, 2))  # ペアを生成\n\n# 相互作用特徴量を作成する関数\ntrain = create_interaction_features(train, feature_pairs)\ntest = create_interaction_features(test, feature_pairs)","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:53:05.314382Z","iopub.execute_input":"2024-09-26T00:53:05.314764Z","iopub.status.idle":"2024-09-26T00:53:08.118429Z","shell.execute_reply.started":"2024-09-26T00:53:05.314726Z","shell.execute_reply":"2024-09-26T00:53:08.117565Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:53:08.119627Z","iopub.execute_input":"2024-09-26T00:53:08.119930Z","iopub.status.idle":"2024-09-26T00:53:10.617842Z","shell.execute_reply.started":"2024-09-26T00:53:08.119897Z","shell.execute_reply":"2024-09-26T00:53:10.616766Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## RFECV","metadata":{}},{"cell_type":"code","source":"# RFECVの結果を読み込み\nselected_features = pd.read_csv(\"/kaggle/input/rfecv-result/selected_features.csv\")","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:53:10.619150Z","iopub.execute_input":"2024-09-26T00:53:10.619548Z","iopub.status.idle":"2024-09-26T00:53:10.636254Z","shell.execute_reply.started":"2024-09-26T00:53:10.619512Z","shell.execute_reply":"2024-09-26T00:53:10.635177Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# 選択された特徴量名をリストとして取得\nselected_feature_names = selected_features[selected_features['Selected'] == True]['Feature'].tolist()\n","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:53:10.637641Z","iopub.execute_input":"2024-09-26T00:53:10.637998Z","iopub.status.idle":"2024-09-26T00:53:10.644840Z","shell.execute_reply.started":"2024-09-26T00:53:10.637961Z","shell.execute_reply":"2024-09-26T00:53:10.643692Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Feature Importance","metadata":{}},{"cell_type":"code","source":"X = train[selected_feature_names]\ny = train['sii']\n# モデルを学習した後のコード\nXGBoost = xgb.XGBRegressor(random_state=SEED)\nXGBoost.fit(X, y)\n\n# 特徴量重要度を取得\nimportance = XGBoost.feature_importances_\n\n# 特徴量の名前を取得\nfeatures = X.columns\n\n# データフレームとして整理\nimportance_df = pd.DataFrame({'Feature': features, 'Importance': importance})\n\n# 特徴量重要度を降順に並び替え\nimportance_df = importance_df.sort_values(by='Importance', ascending=False).head(20)\n\n# プロット\nplt.figure(figsize=(10, 20))\nplt.barh(importance_df['Feature'], importance_df['Importance'])\nplt.xlabel('Feature Importance')\nplt.ylabel('Features')\nplt.title('Feature Importance in XGBoost')\nplt.gca().invert_yaxis()  # 重要度が高いものを上に\nplt.show()\n","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:53:10.646379Z","iopub.execute_input":"2024-09-26T00:53:10.647119Z","iopub.status.idle":"2024-09-26T00:53:38.443715Z","shell.execute_reply.started":"2024-09-26T00:53:10.647071Z","shell.execute_reply":"2024-09-26T00:53:38.442532Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# 特徴量の名前を取得\nfeatures = X.columns\n\n# データフレームとして整理（特徴量重要度と欠損値の割合を結合）\nimportance_df = pd.DataFrame({'Feature': features, 'Importance': importance})\nmissing_df = pd.DataFrame({'Feature': missing_percent_train.index, 'MissingPercent': missing_percent_train.values})\ncombined_df = pd.merge(importance_df, missing_df, on='Feature')\n\n# 散布図を作成\nplt.figure(figsize=(10, 6))\nplt.scatter(combined_df['MissingPercent'], combined_df['Importance'], alpha=0.7)\nplt.xlabel('Missing Percentage (%)')\nplt.ylabel('Feature Importance')\nplt.title('Feature Importance vs Missing Percentage')\nplt.grid(True)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:53:38.445323Z","iopub.execute_input":"2024-09-26T00:53:38.446126Z","iopub.status.idle":"2024-09-26T00:53:38.800198Z","shell.execute_reply.started":"2024-09-26T00:53:38.446076Z","shell.execute_reply":"2024-09-26T00:53:38.799082Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# MODEL","metadata":{}},{"cell_type":"code","source":"%%time\n\ndef quadratic_weighted_kappa(y_true, y_pred):\n    return cohen_kappa_score(y_true, y_pred, weights='quadratic')\n\ndef threshold_Rounder(oof_non_rounded, thresholds):\n    return np.where(oof_non_rounded < thresholds[0], 0,\n                    np.where(oof_non_rounded < thresholds[1], 1,\n                             np.where(oof_non_rounded < thresholds[2], 2, 3)))\n\ndef evaluate_predictions(thresholds, y_true, oof_non_rounded):\n    rounded_p = threshold_Rounder(oof_non_rounded, thresholds)\n    return -quadratic_weighted_kappa(y_true, rounded_p)\n\ndef TrainML(model_class, X, y, test_data):\n    SKF = StratifiedKFold(n_splits=n_splits, shuffle=True, random_state=SEED)\n    \n    train_S = []\n    test_S = []\n    \n    oof_non_rounded = np.zeros(len(y), dtype=float) \n    oof_rounded = np.zeros(len(y), dtype=int) \n    test_preds = np.zeros((len(test_data), n_splits))\n\n    for fold, (train_idx, test_idx) in enumerate(tqdm(SKF.split(X, y), desc=\"Training Folds\", total=n_splits)):\n        X_train, X_val = X.iloc[train_idx], X.iloc[test_idx]\n        y_train, y_val = y.iloc[train_idx], y.iloc[test_idx]\n\n        model = clone(model_class)\n        model.set_params(tree_method='hist', device='cuda')\n        #model.fit(X_train, y_train)\n\n        # モデルの訓練\n        model.fit(\n            X_train, y_train,\n            eval_set=[(X_val, y_val)],  # 検証データセットを指定\n            verbose=False               # 出力を制御\n        )\n        \n        \n\n        y_train_pred = model.predict(X_train)\n        y_val_pred = model.predict(X_val)\n\n        oof_non_rounded[test_idx] = y_val_pred\n        y_val_pred_rounded = y_val_pred.round(0).astype(int)\n        oof_rounded[test_idx] = y_val_pred_rounded\n\n        train_kappa = quadratic_weighted_kappa(y_train, y_train_pred.round(0).astype(int))\n        val_kappa = quadratic_weighted_kappa(y_val, y_val_pred_rounded)\n\n        train_S.append(train_kappa)\n        test_S.append(val_kappa)\n        \n        test_preds[:, fold] = model.predict(test_data)\n        \n        print(f\"Fold {fold+1} - Train QWK: {train_kappa:.4f}, Validation QWK: {val_kappa:.4f}\")\n        clear_output(wait=True)\n\n    print(f\"Mean Train QWK --> {np.mean(train_S):.4f}\")\n    print(f\"Mean Validation QWK ---> {np.mean(test_S):.4f}\")\n\n    KappaOPtimizer = minimize(evaluate_predictions,\n                              x0=[0.5, 1.5, 2.5], args=(y, oof_non_rounded), \n                              method='Nelder-Mead') # Nelder-Mead | # Powell\n    assert KappaOPtimizer.success, \"Optimization did not converge.\"\n    \n    oof_tuned = threshold_Rounder(oof_non_rounded, KappaOPtimizer.x)\n    tKappa = quadratic_weighted_kappa(y, oof_tuned)\n\n    print(f\"----> || Optimized QWK SCORE :: {Fore.CYAN}{Style.BRIGHT} {tKappa:.3f}{Style.RESET_ALL}\")\n\n    tpm = test_preds.mean(axis=1)\n    tpTuned = threshold_Rounder(tpm, KappaOPtimizer.x)\n    \n    submission = pd.DataFrame({\n        'id': sample['id'],\n        'sii': tpTuned\n    })\n\n    return submission, tKappa","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:53:38.801629Z","iopub.execute_input":"2024-09-26T00:53:38.801955Z","iopub.status.idle":"2024-09-26T00:53:38.820040Z","shell.execute_reply.started":"2024-09-26T00:53:38.801920Z","shell.execute_reply":"2024-09-26T00:53:38.818881Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"best_params_xgb = {'learning_rate': 0.010700843753149928, 'max_depth': 4, 'n_estimators': 440, 'subsample': 0.5902355308689068, 'colsample_bytree': 0.6800886848258054, 'gamma': 4.900729347003991, 'min_child_weight': 8, 'reg_alpha': 0.6814851263383488, 'reg_lambda': 0.4015886586712906, 'early_stopping_rounds': 98}","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:53:38.821826Z","iopub.execute_input":"2024-09-26T00:53:38.822399Z","iopub.status.idle":"2024-09-26T00:53:38.834015Z","shell.execute_reply.started":"2024-09-26T00:53:38.822349Z","shell.execute_reply":"2024-09-26T00:53:38.832942Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# XGBoost\nXGBoost = xgb.XGBRegressor(**best_params_xgb, random_state=SEED)\nSubmission_XGB, k_xgb = TrainML(XGBoost, X, y,test[selected_feature_names])\n","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:53:38.835629Z","iopub.execute_input":"2024-09-26T00:53:38.836490Z","iopub.status.idle":"2024-09-26T00:54:22.224244Z","shell.execute_reply.started":"2024-09-26T00:53:38.836443Z","shell.execute_reply":"2024-09-26T00:54:22.222780Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# SUBMIT","metadata":{}},{"cell_type":"code","source":"print(Submission_XGB['sii'].value_counts())","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:54:22.225627Z","iopub.execute_input":"2024-09-26T00:54:22.225965Z","iopub.status.idle":"2024-09-26T00:54:22.234157Z","shell.execute_reply.started":"2024-09-26T00:54:22.225929Z","shell.execute_reply":"2024-09-26T00:54:22.233168Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%%time\nSubmission_XGB.to_csv('submission.csv', index=False)\n","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:54:22.235392Z","iopub.execute_input":"2024-09-26T00:54:22.235714Z","iopub.status.idle":"2024-09-26T00:54:22.249469Z","shell.execute_reply.started":"2024-09-26T00:54:22.235679Z","shell.execute_reply":"2024-09-26T00:54:22.248326Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"Submission_XGB","metadata":{"execution":{"iopub.status.busy":"2024-09-26T00:54:22.251254Z","iopub.execute_input":"2024-09-26T00:54:22.251678Z","iopub.status.idle":"2024-09-26T00:54:22.263945Z","shell.execute_reply.started":"2024-09-26T00:54:22.251615Z","shell.execute_reply":"2024-09-26T00:54:22.262355Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}