{"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"}],"dockerImageVersionId":30775,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import numpy as np\nimport pandas as pd \nimport matplotlib.pyplot as plt\nfrom sklearn.impute import SimpleImputer, KNNImputer\nfrom sklearn.preprocessing import LabelEncoder, StandardScaler\n\nimport optuna\nfrom sklearn.ensemble import VotingClassifier, VotingRegressor, StackingClassifier, RandomForestClassifier\nfrom xgboost import XGBClassifier, XGBRegressor\nfrom lightgbm import LGBMClassifier, LGBMRegressor \nfrom catboost import CatBoostClassifier, CatBoostRegressor\n\nfrom sklearn.model_selection import StratifiedKFold, cross_val_predict, train_test_split\nfrom sklearn.metrics import cohen_kappa_score, confusion_matrix, classification_report\n\nfrom tqdm import tqdm\nimport concurrent.futures\n\nimport os\n","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_kg_hide-input":false,"_kg_hide-output":true,"execution":{"iopub.status.busy":"2024-11-06T17:46:45.820045Z","iopub.execute_input":"2024-11-06T17:46:45.820452Z","iopub.status.idle":"2024-11-06T17:46:45.827403Z","shell.execute_reply.started":"2024-11-06T17:46:45.820416Z","shell.execute_reply":"2024-11-06T17:46:45.826399Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# **Read Data**","metadata":{}},{"cell_type":"code","source":"path_sub = '/kaggle/input/child-mind-institute-problematic-internet-use/sample_submission.csv'\npath_dict = '/kaggle/input/child-mind-institute-problematic-internet-use/data_dictionary.csv'\npath_train = '/kaggle/input/child-mind-institute-problematic-internet-use/train.csv'\npath_test = '/kaggle/input/child-mind-institute-problematic-internet-use/test.csv'\ntrain = pd.read_csv(path_train)\ntest = pd.read_csv(path_test)\ndata_dict = pd.read_csv(path_dict)\nsub = pd.read_csv(path_sub)","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:46:46.725111Z","iopub.execute_input":"2024-11-06T17:46:46.725798Z","iopub.status.idle":"2024-11-06T17:46:46.776025Z","shell.execute_reply.started":"2024-11-06T17:46:46.725758Z","shell.execute_reply":"2024-11-06T17:46:46.775241Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.head()","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:46:47.014969Z","iopub.execute_input":"2024-11-06T17:46:47.015755Z","iopub.status.idle":"2024-11-06T17:46:47.041821Z","shell.execute_reply.started":"2024-11-06T17:46:47.015713Z","shell.execute_reply":"2024-11-06T17:46:47.040836Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test.head()","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:46:47.295374Z","iopub.execute_input":"2024-11-06T17:46:47.295987Z","iopub.status.idle":"2024-11-06T17:46:47.320737Z","shell.execute_reply.started":"2024-11-06T17:46:47.295947Z","shell.execute_reply":"2024-11-06T17:46:47.319763Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def process_file(file_path):\n    df = pd.read_parquet(file_path)\n    if 'step' in df.columns:\n        df = df.drop('step', axis=1)\n    stats = df.describe().values.reshape(-1)\n    id_value = os.path.basename(os.path.dirname(file_path)).split('=')[1]\n    return stats, id_value\n\ndef load_time_series(directory):\n    ids = os.listdir(directory)\n    file_paths = [os.path.join(directory, id_dir, 'part-0.parquet') for id_dir in ids]\n\n    all_stats = []\n    all_ids = []\n\n    with tqdm(total=len(file_paths), desc=\"Processing files\") as pbar:\n        with concurrent.futures.ThreadPoolExecutor() as executor:\n            futures = {executor.submit(process_file, file_path): file_path for file_path in file_paths}\n            for future in concurrent.futures.as_completed(futures):\n                stats, id_value = future.result()\n                all_stats.append(stats)\n                all_ids.append(id_value)\n                pbar.update(1)\n\n    num_features = len(all_stats[0])\n    columns = [f\"TS_Feature_{i}\" for i in range(num_features)]\n\n    df = pd.DataFrame({'id': all_ids})\n    df[columns] = all_stats\n\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\")","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:46:47.572133Z","iopub.execute_input":"2024-11-06T17:46:47.572751Z","iopub.status.idle":"2024-11-06T17:48:07.132502Z","shell.execute_reply.started":"2024-11-06T17:46:47.572709Z","shell.execute_reply":"2024-11-06T17:48:07.131517Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Preprocessing Data","metadata":{}},{"cell_type":"code","source":"ts_feature = train_ts.select_dtypes(include=['number']).columns.to_numpy()\ntrain_ts[ts_feature].head(5) #del 1 - 11, 39, 41, 42, 45, 53, 65","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:48:07.134203Z","iopub.execute_input":"2024-11-06T17:48:07.134523Z","iopub.status.idle":"2024-11-06T17:48:07.173694Z","shell.execute_reply.started":"2024-11-06T17:48:07.134490Z","shell.execute_reply":"2024-11-06T17:48:07.172801Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def del_feature_ts(data):\n    feature_col = [39, 41, 42, 45, 53, 65]\n    for num_col in range(len(feature_col)):\n        data = data.drop(ts_feature[feature_col[num_col]], axis=1)\n    data = data.drop(ts_feature[1:12], axis=1)\n    \n    return data\n\ntrain_ts_clean = del_feature_ts(train_ts)\ntest_ts_clean = del_feature_ts(test_ts)\nts_feature = train_ts_clean.select_dtypes(include=['number']).columns.to_numpy()\ntrain_ts_clean.head()","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:48:07.174802Z","iopub.execute_input":"2024-11-06T17:48:07.175173Z","iopub.status.idle":"2024-11-06T17:48:07.247352Z","shell.execute_reply.started":"2024-11-06T17:48:07.175130Z","shell.execute_reply":"2024-11-06T17:48:07.246472Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_ts_clean.head()","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:48:07.249418Z","iopub.execute_input":"2024-11-06T17:48:07.249722Z","iopub.status.idle":"2024-11-06T17:48:07.275423Z","shell.execute_reply.started":"2024-11-06T17:48:07.249691Z","shell.execute_reply":"2024-11-06T17:48:07.274595Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# del PCIAT\nPCIAT = [col for col in train.columns if 'PCIAT' in col]\ntrain = train.drop(PCIAT, axis=1)\n# del Season\nseason_col = [col for col in train.columns if 'Season' in col]\ntrain = train.drop(season_col, axis=1)\ntrain = train.dropna(subset=['sii'])\ntest = test.drop(season_col, axis=1)","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:48:07.276494Z","iopub.execute_input":"2024-11-06T17:48:07.276896Z","iopub.status.idle":"2024-11-06T17:48:07.287580Z","shell.execute_reply.started":"2024-11-06T17:48:07.276857Z","shell.execute_reply":"2024-11-06T17:48:07.286743Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y = train['sii']\nx = train.drop('sii', axis=1)\ndata_feature = x.select_dtypes(include=['number']).columns.to_numpy()","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:48:07.288782Z","iopub.execute_input":"2024-11-06T17:48:07.289128Z","iopub.status.idle":"2024-11-06T17:48:07.295895Z","shell.execute_reply.started":"2024-11-06T17:48:07.289094Z","shell.execute_reply":"2024-11-06T17:48:07.295145Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y.value_counts()","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:48:07.296870Z","iopub.execute_input":"2024-11-06T17:48:07.297209Z","iopub.status.idle":"2024-11-06T17:48:07.308924Z","shell.execute_reply.started":"2024-11-06T17:48:07.297176Z","shell.execute_reply":"2024-11-06T17:48:07.308111Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def data_preprocessing(x, test):\n    train = pd.merge(x, train_ts_clean, how='left', on='id')\n    test = pd.merge(test, test_ts_clean, how='left', on='id')\n    \n    train = train.drop(['id'], axis=1)\n    test = test.drop(['id'], axis=1)\n    \n   # cat_train_feature = list(train.select_dtypes(include=['object']).columns)\n   # num_train_feature = train.select_dtypes(include=['number']).columns.tolist()\n    \n   # cat_test_feature = list(test.select_dtypes(include=['object']).columns)\n   # num_test_feature = test.select_dtypes(include=['number']).columns.tolist()\n\n   # for feature in cat_train_feature:\n   #     train[feature] = train[feature].fillna('Missing')\n   #     train[feature] = train[feature].astype('category')\n   #     test[feature] = test[feature].fillna('Missing')\n   #     test[feature] = test[feature].astype('category')\n \n    imputer = KNNImputer(n_neighbors=5)\n    train[data_feature] = imputer.fit_transform(train[data_feature])\n    test[data_feature] = imputer.transform(test[data_feature])\n    \n    \n   # scaler = StandardScaler()\n   # train[num_train_feature] = scaler.fit_transform(train[num_train_feature])\n   # test[num_test_feature] = scaler.transform(test[num_test_feature])\n    \n   # encode = LabelEncoder()\n   # cat_columns = train.select_dtypes(include=['category']).columns\n    \n   # for feature in cat_columns:\n   #     train[feature] = encode.fit_transform(train[feature])\n   #     test[feature] = encode.transform(test[feature])\n    \n\n    \n    return train, test\n\nx, x_test = data_preprocessing(x, test)","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:48:07.310091Z","iopub.execute_input":"2024-11-06T17:48:07.310728Z","iopub.status.idle":"2024-11-06T17:48:09.357204Z","shell.execute_reply.started":"2024-11-06T17:48:07.310685Z","shell.execute_reply":"2024-11-06T17:48:09.355756Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"x.head()","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:48:09.359183Z","iopub.execute_input":"2024-11-06T17:48:09.360469Z","iopub.status.idle":"2024-11-06T17:48:09.411488Z","shell.execute_reply.started":"2024-11-06T17:48:09.360402Z","shell.execute_reply":"2024-11-06T17:48:09.410309Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"x_test","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:48:09.414794Z","iopub.execute_input":"2024-11-06T17:48:09.415731Z","iopub.status.idle":"2024-11-06T17:48:09.462623Z","shell.execute_reply.started":"2024-11-06T17:48:09.415696Z","shell.execute_reply":"2024-11-06T17:48:09.461765Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# **Train model**","metadata":{}},{"cell_type":"markdown","source":"# 1. XGBoost","metadata":{}},{"cell_type":"code","source":"def objective_xgb(trial):\n    param = {\n        'subsample': trial.suggest_float('subsample', 0.7, 1.0),\n        'reg_lambda': trial.suggest_float('reg_lambda', 1e-8, 10.0),\n        'reg_alpha': trial.suggest_float('reg_alpha', 1e-8, 10.0),\n        'n_estimators': trial.suggest_int('n_estimators', 100, 500),\n        'min_child_weight': trial.suggest_int('min_child_weight', 1, 10),\n        'max_depth': trial.suggest_int('max_depth', 3, 10),\n        'learning_rate': trial.suggest_float('learning_rate', 0.01, 0.4),\n        'gamma': trial.suggest_float('gamma', 1e-8, 10.0),\n        'colsample_bytree': trial.suggest_float('colsample_bytree', 0.2, 1.0)\n    }\n    \n    skf = StratifiedKFold(n_splits=3, shuffle=True, random_state=42)\n    \n\n    kappa_scores = []\n    for train_idx, val_idx in skf.split(x, y):\n        x_train_fold, x_val_fold = x.iloc[train_idx], x.iloc[val_idx]\n        y_train_fold, y_val_fold = y.iloc[train_idx], y.iloc[val_idx]\n\n        model = XGBRegressor(**param, tree_method='hist', device='cuda')\n        model.fit(x_train_fold, y_train_fold)\n        y_pred_xgb = model.predict(x_val_fold)\n        y_pred_xgb_round = y_pred_xgb.round(0).astype(int)\n        kappa = cohen_kappa_score(y_val_fold, y_pred_xgb_round, weights='quadratic')\n        kappa_scores.append(kappa)\n        \n    print(kappa_scores)    \n    return np.mean(kappa_scores)\n\n# optuna.logging.set_verbosity(optuna.logging.WARNING)\n\n# study_xgb = optuna.create_study(direction='maximize')\n# study_xgb.optimize(objective_xgb, n_trials=100)\n# print(f'Best param: {study_xgb.best_params}')\n# print(f'Best value: {study_xgb.best_value}')\n","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2024-11-06T17:48:34.336745Z","iopub.execute_input":"2024-11-06T17:48:34.337418Z","iopub.status.idle":"2024-11-06T17:48:34.347363Z","shell.execute_reply.started":"2024-11-06T17:48:34.337373Z","shell.execute_reply":"2024-11-06T17:48:34.346349Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# {'subsample': 0.7775208033184748, 'reg_lambda': 0.4128735504006651, 'reg_alpha': 5.678025597631851, 'n_estimators': 496, 'min_child_weight': 10, 'max_depth': 4, 'learning_rate': 0.04063258428460682, 'gamma': 0.007018314430140005, 'colsample_bytree': 0.5997284681613699}\nbest_param_xgb = {\n    'subsample': 0.8,\n    'reg_lambda': 0.4,\n    'reg_alpha': 5.6,\n    'n_estimators': 496,\n    'min_child_weight': 10,\n    'max_depth': 4,\n    'learning_rate': 0.04,\n    'gamma': 0.007,\n    'colsample_bytree': 0.6\n}\n    \nxgb_model = XGBRegressor(**best_param_xgb, tree_method='hist', device='cuda') # 0.4038030306409579","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:48:34.892727Z","iopub.execute_input":"2024-11-06T17:48:34.893062Z","iopub.status.idle":"2024-11-06T17:48:34.898547Z","shell.execute_reply.started":"2024-11-06T17:48:34.893031Z","shell.execute_reply":"2024-11-06T17:48:34.897608Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# 2. LGBM","metadata":{}},{"cell_type":"code","source":"def objective_lgb(trial):\n    param = {\n        'n_estimators': trial.suggest_int('n_estimators', 100, 1000),\n        'num_leaves': trial.suggest_int('num_leaves', 20, 200),\n        'max_depth': trial.suggest_int('max_depth', 3, 10),\n        'learning_rate': trial.suggest_float('learning_rate', 0.01, 0.3),\n        'subsample': trial.suggest_float('subsample', 0.7, 1.0),\n        'colsample_bytree': trial.suggest_float('colsample_bytree', 0.5, 1.0),\n        'reg_alpha': trial.suggest_float('reg_alpha', 0.0, 10.0),\n        'reg_lambda': trial.suggest_float('reg_lambda', 0.0, 10.0),\n    }\n    \n    skf = StratifiedKFold(n_splits=3, shuffle=True, random_state=42)\n    \n    kappa_scores = []\n    for train_idx, val_idx in skf.split(x, y):\n        x_train_fold, x_val_fold = x.iloc[train_idx], x.iloc[val_idx]\n        y_train_fold, y_val_fold = y.iloc[train_idx], y.iloc[val_idx]\n\n        model = LGBMRegressor(**param, device='gpu', verbose=-1)\n        model.fit(x_train_fold, y_train_fold)\n        y_pred_lgb = model.predict(x_val_fold)\n        y_pred_lgb_round = y_pred_lgb.round(0).astype(int)\n        kappa = cohen_kappa_score(y_val_fold, y_pred_lgb_round, weights='quadratic')\n        kappa_scores.append(kappa)\n        \n    print(kappa_scores)\n    return np.mean(kappa_scores)\n    \n    \n# study_lgb = optuna.create_study(direction='maximize')\n# study_lgb.optimize(objective_lgb, n_trials=100)\n# print(f'Best param: {study_lgb.best_params}')\n# print(f'Best value: {study_lgb.best_value}')","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2024-11-06T17:48:35.934306Z","iopub.execute_input":"2024-11-06T17:48:35.934812Z","iopub.status.idle":"2024-11-06T17:48:35.944911Z","shell.execute_reply.started":"2024-11-06T17:48:35.934773Z","shell.execute_reply":"2024-11-06T17:48:35.943855Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# {'n_estimators': 331, 'num_leaves': 102, 'max_depth': 4, 'learning_rate': 0.034874321890145527, 'subsample': 0.7849922898082777, 'colsample_bytree': 0.8079880378466596, 'reg_alpha': 2.2082239223682225, 'reg_lambda': 4.476069099509012}\nbest_param_lgb = {\n    'n_estimators': 331,\n    'num_leaves': 102,\n    'max_depth': 4,\n    'learning_rate': 0.03,\n    'subsample': 0.8,\n    'colsample_bytree': 0.8,\n    'reg_alpha': 2.2,\n    'reg_lambda': 4.4\n}\n\nlgb_model = LGBMRegressor(**best_param_lgb, device='gpu', verbose=-1) # 0.4043063162428801","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:48:36.554782Z","iopub.execute_input":"2024-11-06T17:48:36.555435Z","iopub.status.idle":"2024-11-06T17:48:36.561609Z","shell.execute_reply.started":"2024-11-06T17:48:36.555394Z","shell.execute_reply":"2024-11-06T17:48:36.560575Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# 3. CatBoost","metadata":{}},{"cell_type":"code","source":"def objective_cat(trial):\n    param = {\n        'iterations': trial.suggest_int('iterations', 100, 200),\n        'depth': trial.suggest_int('depth', 3, 10),\n        'learning_rate': trial.suggest_float('learning_rate', 0.01, 0.3),\n        'l2_leaf_reg': trial.suggest_float('l2_leaf_reg', 1e-2, 10),\n        'border_count': trial.suggest_int('border_count', 32, 255),\n        'random_strength': trial.suggest_float('random_strength', 1e-2, 10),\n        'bagging_temperature': trial.suggest_float('bagging_temperature', 0, 1),\n        'leaf_estimation_iterations': trial.suggest_int('leaf_estimation_iterations', 1, 10),\n        'min_data_in_leaf': trial.suggest_int('min_data_in_leaf', 1, 50),\n    }\n    \n    skf = StratifiedKFold(n_splits=3, shuffle=True, random_state=42)\n    \n    kappa_scores = []\n    for train_idx, val_idx in skf.split(x, y):\n        x_train_fold, x_val_fold = x.iloc[train_idx], x.iloc[val_idx]\n        y_train_fold, y_val_fold = y.iloc[train_idx], y.iloc[val_idx]\n        \n        model = CatBoostRegressor(**param, verbose=0, task_type='GPU', devices='0')\n        model.fit(x_train_fold, y_train_fold)\n        y_pred_cat = model.predict(x_val_fold)\n        y_pred_cat_round = y_pred_cat.round(0).astype(int)\n        kappa = cohen_kappa_score(y_val_fold, y_pred_cat_round, weights='quadratic')\n        kappa_scores.append(kappa)\n    \n    print(kappa_scores)\n    return np.mean(kappa_scores)\n\n\n# study_cat = optuna.create_study(direction='maximize')\n# study_cat.optimize(objective_cat, n_trials=100)\n# print(f'Best param: {study_cat.best_params}')\n# print(f'Best value: {study_cat.best_value}')","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:48:37.029196Z","iopub.execute_input":"2024-11-06T17:48:37.029600Z","iopub.status.idle":"2024-11-06T17:48:37.039812Z","shell.execute_reply.started":"2024-11-06T17:48:37.029539Z","shell.execute_reply":"2024-11-06T17:48:37.038799Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# {'iterations': 109, 'depth': 5, 'learning_rate': 0.1007490195198292, 'l2_leaf_reg': 8.991732015385733, 'border_count': 87, 'random_strength': 1.8431175189901305, 'bagging_temperature': 0.20672021445483585, 'leaf_estimation_iterations': 2, 'min_data_in_leaf': 6}\nbest_param_cat = {\n    'iterations': 109,\n    'depth': 5,\n    'learning_rate': 0.1,\n    'l2_leaf_reg': 9,\n    'border_count': 87,\n    'random_strength': 1.8,\n    'bagging_temperature': 0.2,\n    'leaf_estimation_iterations': 2,\n    'min_data_in_leaf': 6}\n\ncat_model = CatBoostRegressor(**best_param_cat,verbose=0, task_type='GPU', devices='0') # 0.3941616689253638","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:48:37.213795Z","iopub.execute_input":"2024-11-06T17:48:37.214096Z","iopub.status.idle":"2024-11-06T17:48:37.219409Z","shell.execute_reply.started":"2024-11-06T17:48:37.214066Z","shell.execute_reply":"2024-11-06T17:48:37.218540Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# 4. Ensemble ","metadata":{}},{"cell_type":"code","source":"ensemble_voting = VotingRegressor(\n        estimators = [\n            ('XGB', xgb_model),\n            ('LGBM', lgb_model),\n            ('CatBoost', cat_model)\n        ],\n)\n\nskf = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)\n    \nkappa_scores = []\nfor train_idx, val_idx in skf.split(x, y):\n    x_train_fold, x_val_fold = x.iloc[train_idx], x.iloc[val_idx]\n    y_train_fold, y_val_fold = y.iloc[train_idx], y.iloc[val_idx]\n        \n    ensemble_voting.fit(x_train_fold, y_train_fold)\n    y_pred_cat = ensemble_voting.predict(x_val_fold)\n    y_pred_cat_round = y_pred_cat.round(0).astype(int)\n    kappa = cohen_kappa_score(y_val_fold, y_pred_cat_round, weights='quadratic')\n    kappa_scores.append(kappa)\n    \nprint(kappa_scores)\nprint(np.mean(kappa_scores))","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:50:07.294121Z","iopub.execute_input":"2024-11-06T17:50:07.295081Z","iopub.status.idle":"2024-11-06T17:50:20.911850Z","shell.execute_reply.started":"2024-11-06T17:50:07.295038Z","shell.execute_reply":"2024-11-06T17:50:20.911054Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ensemble_voting.fit(x, y)\ny_test_predict = ensemble_voting.predict(x_test)\ny_test_predict_round = y_test_predict.round(0).astype(int)\n#print(y_test_predict[:, 0])\nsubmission = pd.DataFrame({\n    'id': test.id, \n    'sii': y_test_predict_round\n})\nsubmission.to_csv('submission.csv',index=False)","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:50:55.156883Z","iopub.execute_input":"2024-11-06T17:50:55.157702Z","iopub.status.idle":"2024-11-06T17:50:57.734517Z","shell.execute_reply.started":"2024-11-06T17:50:55.157665Z","shell.execute_reply":"2024-11-06T17:50:57.733591Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:50:57.736034Z","iopub.execute_input":"2024-11-06T17:50:57.736637Z","iopub.status.idle":"2024-11-06T17:50:57.750422Z","shell.execute_reply.started":"2024-11-06T17:50:57.736595Z","shell.execute_reply":"2024-11-06T17:50:57.749232Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission['sii'].value_counts()","metadata":{"execution":{"iopub.status.busy":"2024-11-06T17:50:57.751784Z","iopub.execute_input":"2024-11-06T17:50:57.752275Z","iopub.status.idle":"2024-11-06T17:50:57.764454Z","shell.execute_reply.started":"2024-11-06T17:50:57.752141Z","shell.execute_reply":"2024-11-06T17:50:57.763369Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}