{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"},"kaggle":{"accelerator":"nvidiaTeslaT4","dataSources":[{"sourceId":50160,"databundleVersionId":7921029,"sourceType":"competition"},{"sourceId":178158327,"sourceType":"kernelVersion"},{"sourceId":178291414,"sourceType":"kernelVersion"},{"sourceId":33095,"sourceType":"modelInstanceVersion","modelInstanceId":27710},{"sourceId":33096,"sourceType":"modelInstanceVersion","modelInstanceId":27711}],"dockerImageVersionId":30699,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"%%capture\n!python /kaggle/usr/lib/script1/script1.py","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%%capture\n!python /kaggle/usr/lib/0_591/0_591.py","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import sys\nfrom pathlib import Path\nimport subprocess\nimport os\nimport gc\nfrom glob import glob\n\nimport numpy as np\nimport pandas as pd\nimport polars as pl\nfrom datetime import datetime\nimport seaborn as sns\nimport matplotlib.pyplot as plt\n\nimport warnings\nwarnings.filterwarnings('ignore')\n\nfrom sklearn.model_selection import TimeSeriesSplit, GroupKFold, StratifiedGroupKFold\nfrom sklearn.base import BaseEstimator, RegressorMixin\nfrom sklearn.metrics import roc_auc_score\nimport lightgbm as lgb\nimport joblib\nfrom imblearn.over_sampling import SMOTE\nfrom sklearn.preprocessing import OrdinalEncoder\nfrom sklearn.impute import KNNImputer","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_train,y,df_test=joblib.load('/kaggle/working/data.pkl')","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fitted_models_lgb=[]\nmodel = lgb.LGBMClassifier()\nmodel.fit(df_train,y)\nfitted_models_lgb.append(model)  ","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"class VotingModel(BaseEstimator, RegressorMixin):\n    def __init__(self, estimators):\n        super().__init__()\n        self.estimators = estimators\n        \n    def fit(self, X, y=None):\n        return self\n    \n    def predict(self, X):\n        y_preds = [estimator.predict(X) for estimator in self.estimators]\n        return np.mean(y_preds, axis=0)\n    \n    def predict_proba(self, X):\n        y_preds = [estimator.predict_proba(X) for estimator in self.estimators]\n        \n        return np.mean(y_preds, axis=0)\n\nmodel = VotingModel(fitted_models_lgb)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_test = df_test.drop(columns=[\"WEEK_NUM\", 'target'])\ndf_test = df_test.set_index(\"case_id\")\n\n# Define chunk size\nchunk_size = 50\n\ndf_subm_final = pd.DataFrame()\n\n# Process df_test in chunks\nfor chunk_start in range(0, len(df_test), chunk_size):\n    df_test_chunk = df_test.iloc[chunk_start:chunk_start + chunk_size]\n    \n    # Make predictions on the current chunk\n    y_pred_chunk = pd.Series(model.predict_proba(df_test_chunk)[:, 1], index=df_test_chunk.index)\n    \n    # Apply condition and update scores\n    condition_chunk = y_pred_chunk < 0.98\n    \n    # Read corresponding part of df_subm\n    df_subm_chunk = pd.read_csv(\"/kaggle/working/sub.csv\", skiprows=range(1, chunk_start + 1), nrows=chunk_size, index_col=\"case_id\", header=0)\n    \n    df_subm_chunk.loc[condition_chunk, 'score'] = (df_subm_chunk.loc[condition_chunk, 'score'] - 0.073111).clip(0.000001)\n    \n    # Append processed chunk to final submission DataFrame\n    df_subm_final = pd.concat([df_subm_final, df_subm_chunk])\n\n# Save the final submission file\ndf_subm_final.to_csv(\"submission.csv\")\n\n# Cleanup if necessary\n!rm -rf data.pkl","metadata":{},"execution_count":null,"outputs":[]}]}