{"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":30804,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"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\nfor 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":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:31.727031Z","iopub.execute_input":"2024-12-05T12:49:31.727424Z","iopub.status.idle":"2024-12-05T12:49:37.904295Z","shell.execute_reply.started":"2024-12-05T12:49:31.727385Z","shell.execute_reply":"2024-12-05T12:49:37.902928Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport matplotlib.pyplot as plt\nfrom sklearn.preprocessing import LabelEncoder\n\nfrom sklearn.model_selection import StratifiedKFold\nfrom tqdm import tqdm\nfrom sklearn.metrics import cohen_kappa_score\nimport lightgbm as lgb\n\nimport warnings\nwarnings.simplefilter(\"ignore\") ","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:37.906198Z","iopub.execute_input":"2024-12-05T12:49:37.906670Z","iopub.status.idle":"2024-12-05T12:49:39.792413Z","shell.execute_reply.started":"2024-12-05T12:49:37.906632Z","shell.execute_reply":"2024-12-05T12:49:39.791194Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train = pd.read_csv(\"/kaggle/input/child-mind-institute-problematic-internet-use/train.csv\")\ntrain.head(5)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:39.794023Z","iopub.execute_input":"2024-12-05T12:49:39.794597Z","iopub.status.idle":"2024-12-05T12:49:39.912360Z","shell.execute_reply.started":"2024-12-05T12:49:39.794561Z","shell.execute_reply":"2024-12-05T12:49:39.911192Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test = pd.read_csv(\"/kaggle/input/child-mind-institute-problematic-internet-use/test.csv\")\ntest.head(5)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:39.915299Z","iopub.execute_input":"2024-12-05T12:49:39.915825Z","iopub.status.idle":"2024-12-05T12:49:39.950058Z","shell.execute_reply.started":"2024-12-05T12:49:39.915774Z","shell.execute_reply":"2024-12-05T12:49:39.948879Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(\"Train shape:\", train.shape)\nprint(\"Test shape:\", test.shape)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:39.951443Z","iopub.execute_input":"2024-12-05T12:49:39.951781Z","iopub.status.idle":"2024-12-05T12:49:39.958519Z","shell.execute_reply.started":"2024-12-05T12:49:39.951747Z","shell.execute_reply":"2024-12-05T12:49:39.957300Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_columns = set(train.columns)\ntest_columns = set(test.columns)\n\ncommon_columns = train_columns.intersection(test_columns)\nprint(\"Common columns:\", common_columns)\n\ntrain_only_columns = train_columns.difference(test_columns)\nprint(\"Columns only in train:\", train_only_columns)\n\ntest_only_columns = test_columns.difference(train_columns)\nprint(\"Columns only in test:\", test_only_columns)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:39.960397Z","iopub.execute_input":"2024-12-05T12:49:39.960846Z","iopub.status.idle":"2024-12-05T12:49:39.981580Z","shell.execute_reply.started":"2024-12-05T12:49:39.960796Z","shell.execute_reply":"2024-12-05T12:49:39.978928Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"missing_common = {col: train[col].isnull().sum() for col in common_columns}\nprint(\"Missing values in common columns:\")\nprint(missing_common)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:39.983685Z","iopub.execute_input":"2024-12-05T12:49:39.984177Z","iopub.status.idle":"2024-12-05T12:49:40.014510Z","shell.execute_reply.started":"2024-12-05T12:49:39.984123Z","shell.execute_reply":"2024-12-05T12:49:40.013275Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"missing_train = {col: train[col].isnull().sum() for col in common_columns}\nmissing_test = {col: test[col].isnull().sum() for col in common_columns}\n\ntotal_train = train.shape[0]\ntotal_test = test.shape[0]\n\nmissing_train_ratio = {col: missing_train[col] / total_train for col in common_columns}\nmissing_test_ratio = {col: missing_test[col] / total_test for col in common_columns}\n\nbar_width = 0.4\n\nplt.figure(figsize=(16, 10))\nindex = range(len(common_columns))\n\nplt.barh(index, list(missing_train_ratio.values()), color='skyblue', height=bar_width, label='Train', alpha=0.7)\n\nplt.barh([i + bar_width for i in index], list(missing_test_ratio.values()), color='lightcoral', height=bar_width, label='Test', alpha=0.7)\n\nplt.xlabel('Proportion of Missing Values')\nplt.title('Proportion of Missing Values in Common Columns')\nplt.yticks([i + bar_width / 2 for i in index], list(missing_train.keys()))\nplt.legend()\nplt.tight_layout()\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:40.015901Z","iopub.execute_input":"2024-12-05T12:49:40.016238Z","iopub.status.idle":"2024-12-05T12:49:41.164098Z","shell.execute_reply.started":"2024-12-05T12:49:40.016203Z","shell.execute_reply":"2024-12-05T12:49:41.162987Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"missing_train_only = {col: train[col].isnull().sum() for col in train_only_columns}\nprint(\"\\nMissing values in columns only in train:\")\nprint(missing_train_only)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:41.165371Z","iopub.execute_input":"2024-12-05T12:49:41.165775Z","iopub.status.idle":"2024-12-05T12:49:41.178915Z","shell.execute_reply.started":"2024-12-05T12:49:41.165735Z","shell.execute_reply":"2024-12-05T12:49:41.177509Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"missing_train_only = {col: train[col].isnull().sum() for col in train_only_columns}\nmissing_train_only_ratio = {col: missing_train_only[col] / total_train for col in train_only_columns}\n\nplt.figure(figsize=(16, 10))\nplt.barh(list(missing_train_only_ratio.keys()), list(missing_train_only_ratio.values()), color='lightcoral')\nplt.xlabel('Proportion of Missing Values')\nplt.title('Proportion of Missing Values in Columns Only in Train')\nplt.xticks(rotation=45)\nplt.tight_layout()\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:41.182874Z","iopub.execute_input":"2024-12-05T12:49:41.183266Z","iopub.status.idle":"2024-12-05T12:49:41.816686Z","shell.execute_reply.started":"2024-12-05T12:49:41.183230Z","shell.execute_reply":"2024-12-05T12:49:41.815433Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"non_numeric_columns = train.select_dtypes(exclude=['number']).columns\n\nprint(\"Non-numeric columns in train:\")\nprint(non_numeric_columns.tolist())","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:41.818235Z","iopub.execute_input":"2024-12-05T12:49:41.818768Z","iopub.status.idle":"2024-12-05T12:49:41.827562Z","shell.execute_reply.started":"2024-12-05T12:49:41.818670Z","shell.execute_reply":"2024-12-05T12:49:41.826374Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def data_process(data, is_train=True):\n    # Common column\n    selected_columns = [\n        'id', 'PreInt_EduHx-Season', 'FGC-FGC_SRL_Zone', 'BIA-BIA_FFMI', \n        'Fitness_Endurance-Time_Sec', 'Fitness_Endurance-Time_Mins', \n        'BIA-BIA_ECW', 'FGC-FGC_SRR', 'BIA-Season', \n        'PAQ_C-PAQ_C_Total', 'FGC-FGC_TL_Zone', 'Physical-HeartRate', \n        'BIA-BIA_Fat', 'Fitness_Endurance-Max_Stage', 'Basic_Demos-Enroll_Season', \n        'PreInt_EduHx-computerinternet_hoursday', 'FGC-FGC_PU', 'BIA-BIA_TBW', \n        'BIA-BIA_BMR', 'BIA-BIA_BMC', 'Physical-Diastolic_BP', \n        'Physical-Weight', 'FGC-FGC_GSND_Zone', 'Physical-Systolic_BP', \n        'BIA-BIA_Activity_Level_num', 'PAQ_A-Season', 'SDS-SDS_Total_Raw', \n        'Physical-BMI', 'Basic_Demos-Sex', 'SDS-SDS_Total_T', 'FGC-FGC_GSD', \n        'FGC-FGC_CU', 'PAQ_A-PAQ_A_Total', 'FGC-FGC_GSD_Zone', \n        'Fitness_Endurance-Season', 'FGC-FGC_GSND', 'FGC-FGC_PU_Zone', \n        'BIA-BIA_ICW', 'FGC-Season', 'FGC-FGC_SRL', 'Physical-Waist_Circumference', \n        'BIA-BIA_Frame_num', 'FGC-FGC_SRR_Zone', 'Physical-Height', \n        'Physical-Season', 'BIA-BIA_FMI', 'PAQ_C-Season', 'FGC-FGC_CU_Zone', \n        'BIA-BIA_SMM', 'CGAS-Season', 'SDS-Season', 'BIA-BIA_BMI', \n        'FGC-FGC_TL', 'BIA-BIA_LST', 'Basic_Demos-Age', 'BIA-BIA_LDM', \n        'BIA-BIA_DEE', 'CGAS-CGAS_Score', 'BIA-BIA_FFM'\n    ]\n\n    # If it is training data, add the target column 'sii'\n    if is_train:\n        selected_columns.append('PCIAT-PCIAT_Total') #sii\n\n    data = data[selected_columns]\n\n    # LabelEncoder\n    label_encoders = {}\n    for col in data.select_dtypes(include=['object', 'category']).columns:\n        le = LabelEncoder()\n        data[col] = le.fit_transform(data[col].astype(str))  # 转为字符串处理缺失值编码\n        label_encoders[col] = le  # 保存编码器以供将来解码\n\n    if is_train:\n        # Handle missing values: Delete columns or rows proportionally\n        missing_threshold = 0.5\n        for col in data.columns:\n            missing_ratio = data[col].isnull().mean()\n            if missing_ratio > missing_threshold:\n                # Columns with more than 50% of missing values are deleted\n                data.drop(columns=[col], inplace=True)\n\n        # Delete the remaining rows with missing values\n        data.dropna(inplace=True)\n    else:\n        # Fill in missing values in the test data\n        for col in data.columns:\n            if data[col].isnull().any():\n                if data[col].dtype in ['float64', 'int64']:\n                    # The numerical columns are filled with the mean\n                    data[col].fillna(data[col].mean(), inplace=True)\n                else:\n                    # Categorical columns are populated with the most frequent values\n                    data[col].fillna(data[col].mode()[0], inplace=True)\n\n\n    return data","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:41.829390Z","iopub.execute_input":"2024-12-05T12:49:41.829889Z","iopub.status.idle":"2024-12-05T12:49:41.848194Z","shell.execute_reply.started":"2024-12-05T12:49:41.829825Z","shell.execute_reply":"2024-12-05T12:49:41.846684Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"processed_train = data_process(train, True)\nprocessed_test = data_process(test, False)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:41.849856Z","iopub.execute_input":"2024-12-05T12:49:41.850350Z","iopub.status.idle":"2024-12-05T12:49:41.945834Z","shell.execute_reply.started":"2024-12-05T12:49:41.850281Z","shell.execute_reply":"2024-12-05T12:49:41.944889Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(\"Train shape:\", processed_train.shape)\nprint(\"Test shape:\", processed_test.shape)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:41.947080Z","iopub.execute_input":"2024-12-05T12:49:41.947514Z","iopub.status.idle":"2024-12-05T12:49:41.953233Z","shell.execute_reply.started":"2024-12-05T12:49:41.947469Z","shell.execute_reply":"2024-12-05T12:49:41.951979Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"target = processed_train[\"PCIAT-PCIAT_Total\"]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:41.954622Z","iopub.execute_input":"2024-12-05T12:49:41.954962Z","iopub.status.idle":"2024-12-05T12:49:41.964106Z","shell.execute_reply.started":"2024-12-05T12:49:41.954916Z","shell.execute_reply":"2024-12-05T12:49:41.962815Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_columns = set(processed_train.columns)\ntest_columns = set(processed_test.columns)\n\ncommon_columns = train_columns.intersection(test_columns)\nprint(\"Common columns:\", common_columns)\n\nprocessed_test_data = processed_test[list(common_columns)]\n\nprocessed_train_data = processed_train[list(common_columns)]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:41.965519Z","iopub.execute_input":"2024-12-05T12:49:41.965986Z","iopub.status.idle":"2024-12-05T12:49:41.985019Z","shell.execute_reply.started":"2024-12-05T12:49:41.965938Z","shell.execute_reply":"2024-12-05T12:49:41.983901Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(\"Train shape:\", processed_train_data.shape)\nprint(\"Test shape:\", processed_test_data.shape)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:41.986646Z","iopub.execute_input":"2024-12-05T12:49:41.987299Z","iopub.status.idle":"2024-12-05T12:49:42.001804Z","shell.execute_reply.started":"2024-12-05T12:49:41.987245Z","shell.execute_reply":"2024-12-05T12:49:42.000422Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"X_train = processed_train_data.drop(columns=[\"id\"])\nX_test = processed_test_data.drop(columns=[\"id\"])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:42.003158Z","iopub.execute_input":"2024-12-05T12:49:42.003506Z","iopub.status.idle":"2024-12-05T12:49:42.020585Z","shell.execute_reply.started":"2024-12-05T12:49:42.003472Z","shell.execute_reply":"2024-12-05T12:49:42.019257Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def convert(scores):\n    scores =np.array(scores)*1.3\n    bins =np.zeros_like(scores)\n    bins[scores<=30]=0\n    bins[(scores>30)&(scores<50)]=1\n    bins[(scores >=50)&(scores <80)]=2\n    bins[scores>=80]=3\n    return bins\n\ndef quadratic_weighted_kappa(y_true,y_pred):\n    y_true_cat = convert(y_true)\n    y_pred_cat = convert(y_pred)\n    return cohen_kappa_score(y_true_cat, y_pred_cat, weights='quadratic')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:42.022429Z","iopub.execute_input":"2024-12-05T12:49:42.023064Z","iopub.status.idle":"2024-12-05T12:49:42.039191Z","shell.execute_reply.started":"2024-12-05T12:49:42.022988Z","shell.execute_reply":"2024-12-05T12:49:42.037404Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def train_folds(model_class, X, y, test_data, n_splits=5, params=None):\n    skf = StratifiedKFold(n_splits=n_splits, shuffle=True, random_state=42)\n    \n    oof_non_rounded = np.zeros(len(y))\n    test_preds = np.zeros((len(test_data), n_splits))\n    val_kappas = []  # Store QWK for each fold\n    \n    for fold, (train_idx, val_idx) in enumerate(tqdm(skf.split(X, y), total=n_splits, desc=\"Training Folds\")):\n        X_train, X_val = X.iloc[train_idx], X.iloc[val_idx]\n        y_train, y_val = y.iloc[train_idx], y.iloc[val_idx]\n        \n        model = model_class(**params) if params else model_class()\n        model.fit(X_train, y_train)\n        \n        # Predict validation\n        y_val_pred = model.predict(X_val)\n        oof_non_rounded[val_idx] = y_val_pred\n        \n        # Round validation predictions\n        y_val_pred_rounded = y_val_pred.round(0).astype(int)\n        \n        # Compute QWK for validation data\n        val_kappa = quadratic_weighted_kappa(y_val, y_val_pred)\n        val_kappas.append(val_kappa)\n        print(f\"Fold {fold+1} - Validation QWK: {val_kappa:.4f}\")\n        \n        # Predict test\n        test_preds[:, fold] = model.predict(test_data)\n    \n    # Average test predictions across folds\n    test_preds_mean = test_preds.mean(axis=1)\n    \n    # Print mean QWK score across all folds\n    mean_kappa = np.mean(val_kappas)\n    print(f\"Mean Validation QWK across folds: {mean_kappa:.4f}\")\n    \n    return test_preds_mean","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:42.040958Z","iopub.execute_input":"2024-12-05T12:49:42.041420Z","iopub.status.idle":"2024-12-05T12:49:42.054767Z","shell.execute_reply.started":"2024-12-05T12:49:42.041364Z","shell.execute_reply":"2024-12-05T12:49:42.053417Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"params = {\n    'learning_rate': 0.03,\n    'n_estimators': 200,\n    'num_leaves': 80,\n    'max_depth': 5,\n    'min_child_samples': 50,\n    'subsample': 0.8,\n    'colsample_bytree': 0.5,\n    'reg_alpha': 3,\n    'reg_lambda': 0.01,\n    'verbosity': -1\n}","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:42.056376Z","iopub.execute_input":"2024-12-05T12:49:42.056735Z","iopub.status.idle":"2024-12-05T12:49:42.074290Z","shell.execute_reply.started":"2024-12-05T12:49:42.056699Z","shell.execute_reply":"2024-12-05T12:49:42.073058Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def objective(trial):\n    params = {\n        'learning_rate': trial.suggest_loguniform('learning_rate', 0.01, 0.2),\n        'n_estimators': trial.suggest_int('n_estimators', 100, 1000),\n        'num_leaves': trial.suggest_int('num_leaves', 30, 150),\n        'max_depth': trial.suggest_int('max_depth', 3, 10),\n        'min_child_samples': trial.suggest_int('min_child_samples', 10, 100),\n        'subsample': trial.suggest_uniform('subsample', 0.5, 1.0),\n        'colsample_bytree': trial.suggest_uniform('colsample_bytree', 0.3, 0.8),\n        'reg_alpha': trial.suggest_loguniform('reg_alpha', 0.01, 10.0),\n        'reg_lambda': trial.suggest_loguniform('reg_lambda', 0.01, 10.0),\n    }\n\n    train_data = lgb.Dataset(X_train_fold, label=y_train_fold)\n    valid_data = lgb.Dataset(X_val_fold, label=y_val_fold, reference=train_data)\n\n    model = lgb.train(\n        params,\n        train_data,\n        valid_sets=[valid_data],\n        early_stopping_rounds=50,\n        verbose_eval=False\n    )\n\n    preds = model.predict(X_val_fold)\n    return quadratic_weighted_kappa(y_val_fold, preds)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:42.075866Z","iopub.execute_input":"2024-12-05T12:49:42.076334Z","iopub.status.idle":"2024-12-05T12:49:42.089162Z","shell.execute_reply.started":"2024-12-05T12:49:42.076265Z","shell.execute_reply":"2024-12-05T12:49:42.087859Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import optuna\n\ndef objective(trial):\n    params = {\n        'learning_rate': trial.suggest_loguniform('learning_rate', 0.01, 0.2),\n        'n_estimators': trial.suggest_int('n_estimators', 100, 1000),\n        'num_leaves': trial.suggest_int('num_leaves', 30, 150),\n        'max_depth': trial.suggest_int('max_depth', 3, 10),\n        'min_child_samples': trial.suggest_int('min_child_samples', 10, 100),\n        'subsample': trial.suggest_uniform('subsample', 0.5, 1.0),\n        'colsample_bytree': trial.suggest_uniform('colsample_bytree', 0.3, 0.8),\n        'reg_alpha': trial.suggest_loguniform('reg_alpha', 0.01, 10.0),\n        'reg_lambda': trial.suggest_loguniform('reg_lambda', 0.01, 10.0),\n    }\n    \n    skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)\n    oof_preds = np.zeros(X_train.shape[0])\n    val_scores = []\n    \n    for train_idx, val_idx in skf.split(X_train, target):\n        X_train_fold, X_val_fold = X_train.iloc[train_idx], X_train.iloc[val_idx]\n        y_train_fold, y_val_fold = target.iloc[train_idx], target.iloc[val_idx]\n        \n        train_data = lgb.Dataset(X_train_fold, label=y_train_fold)\n        valid_data = lgb.Dataset(X_val_fold, label=y_val_fold, reference=train_data)\n        \n        model = lgb.train(\n            params,\n            train_data,\n            valid_sets=[valid_data],\n            early_stopping_rounds=50,\n            verbose_eval=False\n        )\n        \n        preds = model.predict(X_val_fold)\n        oof_preds[val_idx] = preds\n        \n        score = quadratic_weighted_kappa(y_val_fold, preds)\n        val_scores.append(score)\n    \n    return np.mean(val_scores)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:42.090736Z","iopub.execute_input":"2024-12-05T12:49:42.091135Z","iopub.status.idle":"2024-12-05T12:49:42.385304Z","shell.execute_reply.started":"2024-12-05T12:49:42.091078Z","shell.execute_reply":"2024-12-05T12:49:42.384103Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"pred = train_folds(lgb.LGBMRegressor, X_train, target, X_test, n_splits=5, params=params)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:42.386822Z","iopub.execute_input":"2024-12-05T12:49:42.387165Z","iopub.status.idle":"2024-12-05T12:49:43.279109Z","shell.execute_reply.started":"2024-12-05T12:49:42.387131Z","shell.execute_reply":"2024-12-05T12:49:43.277263Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"pred","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:43.281529Z","iopub.execute_input":"2024-12-05T12:49:43.282040Z","iopub.status.idle":"2024-12-05T12:49:43.291230Z","shell.execute_reply.started":"2024-12-05T12:49:43.281989Z","shell.execute_reply":"2024-12-05T12:49:43.289935Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_ids = test[\"id\"]\ntest_ids","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:43.293420Z","iopub.execute_input":"2024-12-05T12:49:43.294608Z","iopub.status.idle":"2024-12-05T12:49:43.308227Z","shell.execute_reply.started":"2024-12-05T12:49:43.294526Z","shell.execute_reply":"2024-12-05T12:49:43.306778Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"submission = pd.DataFrame({'id': test_ids.values,\n                            'sii': convert(pred)})\n\nsubmission.to_csv('submission.csv',index=False)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:43.309872Z","iopub.execute_input":"2024-12-05T12:49:43.310502Z","iopub.status.idle":"2024-12-05T12:49:43.326280Z","shell.execute_reply.started":"2024-12-05T12:49:43.310434Z","shell.execute_reply":"2024-12-05T12:49:43.323644Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"submission","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T12:49:43.334259Z","iopub.execute_input":"2024-12-05T12:49:43.334781Z","iopub.status.idle":"2024-12-05T12:49:43.353876Z","shell.execute_reply.started":"2024-12-05T12:49:43.334680Z","shell.execute_reply":"2024-12-05T12:49:43.352601Z"}},"outputs":[],"execution_count":null}]}