{"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":7453542,"sourceType":"datasetVersion","datasetId":921302}],"dockerImageVersionId":30787,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"\nimport torch\nimport numpy as np\nimport pandas as pd\n\nimport os\nimport re\n\nfrom sklearn.base import clone\nfrom sklearn.metrics import cohen_kappa_score\nfrom sklearn.model_selection import StratifiedKFold\n\nfrom scipy.optimize import minimize\nfrom concurrent.futures import ThreadPoolExecutor\n\nfrom tqdm import tqdm\nimport polars as pl\nimport polars.selectors as cs\nimport matplotlib.pyplot as plt\nfrom matplotlib.ticker import MaxNLocator, FormatStrFormatter, PercentFormatter\nimport seaborn as sns\n\n\n\nfrom sklearn.preprocessing import StandardScaler\nimport matplotlib.pyplot as plt\nfrom keras.models import Model\nfrom keras.layers import Input, Dense\nfrom keras.optimizers import Adam\n\n\nimport torch.nn as nn\nimport torch.optim as optim\n\n\n\nfrom colorama import Fore, Style\nfrom IPython.display import clear_output\nimport warnings\n\n\nfrom lightgbm import LGBMRegressor\n\nfrom xgboost import XGBRegressor\n\nfrom catboost import CatBoostRegressor\n\nfrom sklearn.ensemble import VotingRegressor, RandomForestRegressor, GradientBoostingRegressor\nfrom sklearn.impute import SimpleImputer, KNNImputer\nfrom sklearn.pipeline import Pipeline\nimport gc\nwarnings.filterwarnings('ignore')\npd.options.display.max_columns = None","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:23:01.341883Z","iopub.execute_input":"2024-12-06T06:23:01.342252Z","iopub.status.idle":"2024-12-06T06:23:19.450641Z","shell.execute_reply.started":"2024-12-06T06:23:01.342221Z","shell.execute_reply":"2024-12-06T06:23:19.449707Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.decomposition import PCA\nfrom sklearn.preprocessing import StandardScaler","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:23:19.452270Z","iopub.execute_input":"2024-12-06T06:23:19.452835Z","iopub.status.idle":"2024-12-06T06:23:19.456642Z","shell.execute_reply.started":"2024-12-06T06:23:19.452808Z","shell.execute_reply":"2024-12-06T06:23:19.455703Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from catboost import CatBoostClassifier, Pool","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:23:19.457592Z","iopub.execute_input":"2024-12-06T06:23:19.457817Z","iopub.status.idle":"2024-12-06T06:23:19.468025Z","shell.execute_reply.started":"2024-12-06T06:23:19.457795Z","shell.execute_reply":"2024-12-06T06:23:19.467341Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import random\ndef seed_everything(seed):\n    random.seed(seed)\n    os.environ['PYTHONHASHSEED'] = str(seed)\n    np.random.seed(seed)\n    torch.manual_seed(seed)\n    torch.cuda.manual_seed(seed)\n    torch.backends.cudnn.deterministic = True\n    torch.backends.cudnn.benchmark = True\nseed_everything(42)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:23:19.470286Z","iopub.execute_input":"2024-12-06T06:23:19.471129Z","iopub.status.idle":"2024-12-06T06:23:19.484615Z","shell.execute_reply.started":"2024-12-06T06:23:19.471101Z","shell.execute_reply":"2024-12-06T06:23:19.483843Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def 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)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:23:19.485610Z","iopub.execute_input":"2024-12-06T06:23:19.485925Z","iopub.status.idle":"2024-12-06T06:23:19.491919Z","shell.execute_reply.started":"2024-12-06T06:23:19.485891Z","shell.execute_reply":"2024-12-06T06:23:19.491165Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# 特征工程","metadata":{}},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def 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","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:23:19.492868Z","iopub.execute_input":"2024-12-06T06:23:19.493168Z","iopub.status.idle":"2024-12-06T06:23:19.504491Z","shell.execute_reply.started":"2024-12-06T06:23:19.493142Z","shell.execute_reply":"2024-12-06T06:23:19.503665Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df = pd.read_csv('/kaggle/input/child-mind-institute-problematic-internet-use/train.csv')\ntest_df = 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')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:23:19.505421Z","iopub.execute_input":"2024-12-06T06:23:19.505666Z","iopub.status.idle":"2024-12-06T06:23:19.581453Z","shell.execute_reply.started":"2024-12-06T06:23:19.505642Z","shell.execute_reply":"2024-12-06T06:23:19.580532Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_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":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:23:19.582630Z","iopub.execute_input":"2024-12-06T06:23:19.582996Z","iopub.status.idle":"2024-12-06T06:24:30.891750Z","shell.execute_reply.started":"2024-12-06T06:23:19.582942Z","shell.execute_reply":"2024-12-06T06:24:30.890952Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"ts_cols = list(set(train_ts.columns) - {'id'})\ntrain_ts_encoded = train_ts\n\ntest_ts_encoded = test_ts\n\n\ntrain = pd.merge(train_df, train_ts_encoded, how=\"left\", on='id')\ntest = pd.merge(test_df, test_ts_encoded, how=\"left\", on='id')\n\ntrain = train.dropna(subset=['sii'])\ntrain_ids = train[\"id\"]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:24:30.892948Z","iopub.execute_input":"2024-12-06T06:24:30.893618Z","iopub.status.idle":"2024-12-06T06:24:30.919504Z","shell.execute_reply.started":"2024-12-06T06:24:30.893577Z","shell.execute_reply":"2024-12-06T06:24:30.918827Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"cat_c = ['Basic_Demos-Enroll_Season', 'CGAS-Season', 'Physical-Season', \n\n          'Fitness_Endurance-Season', 'FGC-Season', 'BIA-Season', \n\n          'PAQ_A-Season', 'PAQ_C-Season', 'SDS-Season', 'PreInt_EduHx-Season']\n\n\n\ndef update(df):\n\n    global cat_c\n\n    for c in cat_c: \n\n        df[c] = df[c].fillna('Missing')\n\n        df[c] = df[c].astype('category')\n\n    return df\n\n        \n\ntrain = update(train)\n\ntest = update(test)\n\n\n\ndef create_mapping(column, dataset):\n\n    unique_values = dataset[column].unique()\n\n    return {value: idx for idx, value in enumerate(unique_values)}\n\n\n\nfor col in cat_c:\n\n    mapping = create_mapping(col, train)\n\n    mappingTe = create_mapping(col, test)\n\n    \n\n    train[col] = train[col].replace(mapping).astype(int)\n\n    test[col] = test[col].replace(mappingTe).astype(int)\n\n\ndef feature_engineering(df):\n    \n    df['BMI_Age'] = df['Physical-BMI'] * df['Basic_Demos-Age']\n    df['Internet_Hours_Age'] = df['PreInt_EduHx-computerinternet_hoursday'] * df['Basic_Demos-Age']\n    df['BMI_Internet_Hours'] = df['Physical-BMI'] * df['PreInt_EduHx-computerinternet_hoursday']\n    df['BFP_BMI'] = df['BIA-BIA_Fat'] / df['BIA-BIA_BMI']\n    df['FFMI_BFP'] = df['BIA-BIA_FFMI'] / df['BIA-BIA_Fat']\n    df['FMI_BFP'] = df['BIA-BIA_FMI'] / df['BIA-BIA_Fat']\n    df['LST_TBW'] = df['BIA-BIA_LST'] / df['BIA-BIA_TBW']\n    df['BFP_BMR'] = df['BIA-BIA_Fat'] * df['BIA-BIA_BMR']\n    df['BFP_DEE'] = df['BIA-BIA_Fat'] * df['BIA-BIA_DEE']\n    df['BMR_Weight'] = df['BIA-BIA_BMR'] / df['Physical-Weight']\n    df['DEE_Weight'] = df['BIA-BIA_DEE'] / df['Physical-Weight']\n    df['SMM_Height'] = df['BIA-BIA_SMM'] / df['Physical-Height']\n    df['Muscle_to_Fat'] = df['BIA-BIA_SMM'] / df['BIA-BIA_FMI']\n    df['Hydration_Status'] = df['BIA-BIA_TBW'] / df['Physical-Weight']\n    df['ICW_TBW'] = df['BIA-BIA_ICW'] / df['BIA-BIA_TBW']\n    \n    return df\n\ntrain = feature_engineering(train)\n\ntest = feature_engineering(test)\n\n\ntrain_featuresCols = ['Basic_Demos-Age', 'Basic_Demos-Sex',\n                'CGAS-CGAS_Score', 'Physical-BMI',\n                'Physical-Height', 'Physical-Weight', 'Physical-Waist_Circumference',\n                'Physical-Diastolic_BP', 'Physical-HeartRate', 'Physical-Systolic_BP',\n                'Fitness_Endurance-Max_Stage',\n                'Fitness_Endurance-Time_Mins', 'Fitness_Endurance-Time_Sec',\n                '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',\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-PAQ_A_Total',\n                'PAQ_C-PAQ_C_Total', 'SDS-SDS_Total_Raw',\n                'SDS-SDS_Total_T',\n                'PreInt_EduHx-computerinternet_hoursday', 'sii', 'BMI_Age','Internet_Hours_Age','BMI_Internet_Hours',\n                'BFP_BMI', 'FFMI_BFP', 'FMI_BFP', 'LST_TBW', 'BFP_BMR', 'BFP_DEE', 'BMR_Weight', 'DEE_Weight',\n                'SMM_Height', 'Muscle_to_Fat', 'Hydration_Status', 'ICW_TBW']\n\ntrain_featuresCols += cat_c\ntrain_featuresCols += ts_cols\ntrain = train[train_featuresCols]\n\n\ntest_featuresCols = ['Basic_Demos-Age', 'Basic_Demos-Sex',\n                'CGAS-CGAS_Score', 'Physical-BMI',\n                'Physical-Height', 'Physical-Weight', 'Physical-Waist_Circumference',\n                'Physical-Diastolic_BP', 'Physical-HeartRate', 'Physical-Systolic_BP',\n                'Fitness_Endurance-Max_Stage',\n                'Fitness_Endurance-Time_Mins', 'Fitness_Endurance-Time_Sec',\n                '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',\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-PAQ_A_Total',\n                'PAQ_C-PAQ_C_Total', 'SDS-SDS_Total_Raw',\n                'SDS-SDS_Total_T',\n                'PreInt_EduHx-computerinternet_hoursday', 'BMI_Age','Internet_Hours_Age','BMI_Internet_Hours',\n                'BFP_BMI', 'FFMI_BFP', 'FMI_BFP', 'LST_TBW', 'BFP_BMR', 'BFP_DEE', 'BMR_Weight', 'DEE_Weight',\n                'SMM_Height', 'Muscle_to_Fat', 'Hydration_Status', 'ICW_TBW']\n\ntest_featuresCols += cat_c\ntest_featuresCols += ts_cols\ntest = test[test_featuresCols]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:24:30.921659Z","iopub.execute_input":"2024-12-06T06:24:30.921921Z","iopub.status.idle":"2024-12-06T06:24:30.998543Z","shell.execute_reply.started":"2024-12-06T06:24:30.921897Z","shell.execute_reply":"2024-12-06T06:24:30.997643Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"if np.any(np.isinf(train)):\n    train = train.replace([np.inf, -np.inf], np.nan)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:24:30.999788Z","iopub.execute_input":"2024-12-06T06:24:31.000367Z","iopub.status.idle":"2024-12-06T06:24:31.005789Z","shell.execute_reply.started":"2024-12-06T06:24:31.000330Z","shell.execute_reply":"2024-12-06T06:24:31.005165Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"cat_params={\n    'task_type'           : \"GPU\",\n    'loss_function'       : 'MultiClassOneVsAll',\n    'classes_count': 4,\n    'eval_metric'         : \"Accuracy\",\n    'auto_class_weights'         : \"Balanced\",\n\n    \n    'bagging_temperature' : 1.2,\n\n\n    \n    'iterations'          : 2_000,\n    'learning_rate'       : 0.045,\n    'max_depth'           : 7,\n    'l2_leaf_reg'         : 10,\n    'min_data_in_leaf'    : 32,\n    'random_strength'     : 0.25,\n    \n    'random_state'        : 42,\n    \n    'early_stopping_rounds': 400,\n    'use_best_model'       : True,\n    'allow_writing_files' : False,\n} # parameters are taken from https://www.kaggle.com/code/martynovandrey/eda-and-lgb-cat-xgb","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:27:12.423329Z","iopub.execute_input":"2024-12-06T06:27:12.423674Z","iopub.status.idle":"2024-12-06T06:27:12.428597Z","shell.execute_reply.started":"2024-12-06T06:27:12.423647Z","shell.execute_reply":"2024-12-06T06:27:12.427713Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# cat_params={\n#     'task_type'           : \"CPU\",\n#     'loss_function'       : 'MultiClassOneVsAll',\n#     'classes_count': 4,\n#     'eval_metric'         : \"WKappa\",\n#     'auto_class_weights'         : \"Balanced\",\n#     'bagging_temperature' : 1.2,\n#     # 'colsample_bylevel'   : 0.40,\n#     'iterations'          : 2_000,\n#     'learning_rate'       : 0.045,\n#     'max_depth'           : 7,\n#     'l2_leaf_reg'         : 10,\n#     'min_data_in_leaf'    : 32,\n#     'random_strength'     : 0.25,\n#     'random_state'        : 42,\n#     'early_stopping_rounds': 200,\n#     'use_best_model'       : True,\n#     'allow_writing_files' : False,\n# } # parameters are taken from https://www.kaggle.com/code/martynovandrey/eda-and-lgb-cat-xgb","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:27:12.650631Z","iopub.execute_input":"2024-12-06T06:27:12.650932Z","iopub.status.idle":"2024-12-06T06:27:12.654918Z","shell.execute_reply.started":"2024-12-06T06:27:12.650908Z","shell.execute_reply":"2024-12-06T06:27:12.654029Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"target = 'sii'\nskfold = StratifiedKFold(n_splits=10, shuffle=True, random_state=42)\nX = train.drop(target, axis=1)\ny = train[target].ravel()\ntest_pool = Pool(test, cat_features=cat_c)\nfeatures = cat_c\noof_preds = []\noof_accs = []\noof_train_preds = np.zeros(len(y))\nfor fold, (train_idx, test_idx) in enumerate(skfold.split(X, y)):\n    X_train, y_train = X.iloc[train_idx], y[train_idx]\n    X_test, y_test = X.iloc[test_idx], y[test_idx]\n    \n    X_train_pool = Pool(X_train, y_train, cat_features=features)\n    X_test_pool = Pool(X_test, y_test, cat_features=features)\n    \n    cat_clf = CatBoostClassifier(**cat_params)\n    cat_clf = cat_clf.fit(X=X_train_pool,\n                          eval_set=X_test_pool,\n                          verbose=100,\n                          early_stopping_rounds=400)\n    oof_train_preds[test_idx] = cat_clf.predict(Pool(X_test, cat_features=features)).reshape(-1)\n    test_pred = cat_clf.predict(test_pool).reshape(-1)\n    oof_preds.append(test_pred)\n    auc = quadratic_weighted_kappa(y_test, oof_train_preds[test_idx])\n    oof_accs.append(auc)\n\n    # break\n    print(f\"\\nFold {fold+1}--> Kappa Score: {auc:.6f}\\n\")\n    \n    del X_train, y_train, X_test, y_test\n    del X_train_pool, X_test_pool\n    del cat_clf\n    gc.collect()\n\nprint(np.mean(oof_accs))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:30:18.177544Z","iopub.execute_input":"2024-12-06T06:30:18.177853Z","iopub.status.idle":"2024-12-06T06:31:18.338379Z","shell.execute_reply.started":"2024-12-06T06:30:18.177829Z","shell.execute_reply":"2024-12-06T06:31:18.337511Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"oof_preds","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#b1.3     0.4152825556339952\n#b1.2     0.41891841089053905","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(np.mean(oof_accs))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:31:27.343790Z","iopub.execute_input":"2024-12-06T06:31:27.344414Z","iopub.status.idle":"2024-12-06T06:31:27.349117Z","shell.execute_reply.started":"2024-12-06T06:31:27.344379Z","shell.execute_reply":"2024-12-06T06:31:27.348266Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"    \n    9 100点  0.4124756972511877\n    9 42 0.44838324155747267\n    \n     7 50  0.44126908784456154\n    7 100 0.4298706939458173\n    \n    \n    5 50  0.4562086293537755\n    5 72 0.41103223054483956\n    \n    \n    \n    \n    -----------CPU WKappa-------------\n    5 50  0.4562086293537755\n\n\n\n    ----------- +  TS GPU-------------\n    0.47057760552638267","metadata":{"execution":{"iopub.status.busy":"2024-12-04T03:18:34.296907Z","iopub.execute_input":"2024-12-04T03:18:34.297266Z","iopub.status.idle":"2024-12-04T03:18:34.303634Z","shell.execute_reply.started":"2024-12-04T03:18:34.297233Z","shell.execute_reply":"2024-12-04T03:18:34.302633Z"}}},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# oof_accs","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:31:29.160036Z","iopub.execute_input":"2024-12-06T06:31:29.160373Z","iopub.status.idle":"2024-12-06T06:31:29.164133Z","shell.execute_reply.started":"2024-12-06T06:31:29.160345Z","shell.execute_reply":"2024-12-06T06:31:29.163204Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"oof_preds","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:31:29.746114Z","iopub.execute_input":"2024-12-06T06:31:29.746770Z","iopub.status.idle":"2024-12-06T06:31:29.752566Z","shell.execute_reply.started":"2024-12-06T06:31:29.746742Z","shell.execute_reply":"2024-12-06T06:31:29.751740Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"combined = pd.DataFrame(np.array(oof_preds))\ncombined[\"score\"] = oof_accs\n# combined = combined.loc[combined['score'] > 0.4]\ndel combined['score']\ncombined = combined.T\n\n\ndef majority_vote(row):\n\n    return row.mode()[0]\n\n\ncombined['sii'] = combined.apply(majority_vote, axis=1)\ncombined['id'] = sample['id']\nfinal_submission = combined[['id', 'sii']]\nfinal_submission.to_csv('submission.csv', index=False)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:31:42.395927Z","iopub.execute_input":"2024-12-06T06:31:42.396623Z","iopub.status.idle":"2024-12-06T06:31:42.408762Z","shell.execute_reply.started":"2024-12-06T06:31:42.396592Z","shell.execute_reply":"2024-12-06T06:31:42.407827Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"combined","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:31:42.816523Z","iopub.execute_input":"2024-12-06T06:31:42.817279Z","iopub.status.idle":"2024-12-06T06:31:42.829201Z","shell.execute_reply.started":"2024-12-06T06:31:42.817249Z","shell.execute_reply":"2024-12-06T06:31:42.828321Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(final_submission)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-06T06:31:44.000364Z","iopub.execute_input":"2024-12-06T06:31:44.001167Z","iopub.status.idle":"2024-12-06T06:31:44.006897Z","shell.execute_reply.started":"2024-12-06T06:31:44.001135Z","shell.execute_reply":"2024-12-06T06:31:44.006006Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}