{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.11.11","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"gpu","dataSources":[{"sourceId":104857,"databundleVersionId":12651513,"sourceType":"competition"}],"dockerImageVersionId":31041,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# ✅ Install compatible versions of required libraries\n!pip install -q scikit-learn==1.3.2 autogluon.tabular ray==2.10.0\n\n# ✅ Restart the kernel/runtime after running this cell (for local runtime only)","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"execution":{"iopub.status.busy":"2025-06-14T05:48:05.984728Z","iopub.execute_input":"2025-06-14T05:48:05.985205Z","iopub.status.idle":"2025-06-14T05:48:31.789748Z","shell.execute_reply.started":"2025-06-14T05:48:05.985179Z","shell.execute_reply":"2025-06-14T05:48:31.788799Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.model_selection import KFold\nfrom sklearn.metrics import mean_squared_error\nfrom autogluon.tabular import TabularPredictor\nimport pandas as pd\nimport warnings\nimport os\n\nwarnings.filterwarnings('ignore')\n\n\nclass CFG:\n    train_path = \"/kaggle/input/burnout-datathon-ieeecsmuj/train.csv\"\n    test_path = \"/kaggle/input/burnout-datathon-ieeecsmuj/test.csv\"\n    sample_sub_path = \"/kaggle/input/burnout-datathon-ieeecsmuj/sample_submission.csv\"\n    val_path=\"/kaggle/input/burnout-datathon-ieeecsmuj/val.csv\"\n    \n    target = 'Lap_Time_Seconds'\n    n_folds = 5\n    seed = 1859\n    time_limit = 3600 * 2  # adjust if needed\n\n\n# Load data\ntrain = pd.read_csv(CFG.train_path)\ntest = pd.read_csv(CFG.test_path)\nval = pd.read_csv(CFG.val_path)\n\ntrain = pd.concat([train, val], ignore_index=True)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-14T05:48:31.791234Z","iopub.execute_input":"2025-06-14T05:48:31.791534Z","iopub.status.idle":"2025-06-14T05:48:52.301456Z","shell.execute_reply.started":"2025-06-14T05:48:31.791509Z","shell.execute_reply":"2025-06-14T05:48:52.300669Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train[CFG.target] = train[CFG.target].astype(float)\n\n# Create fold column (not needed by AutoGluon but useful for tracking)\nkf = KFold(n_splits=CFG.n_folds, shuffle=True, random_state=CFG.seed)\nfor i, (_, val_idx) in enumerate(kf.split(train)):\n    train.loc[val_idx, 'fold'] = i\n\n# Initialize TabularPredictor for regression\npredictor = TabularPredictor(\n    label=CFG.target,\n    problem_type='regression',\n    eval_metric='rmse',\n    verbosity=2\n)\n\npredictor.fit(\n    train_data=train.drop(columns=[\"fold\"]),\n    time_limit=CFG.time_limit,\n    presets='best_quality',\n    ag_args_fit={\n        'num_gpus': 1,\n        'num_cpus': 4\n    },\n    # Disable stacking\n    use_bag_holdout=False,     # no internal holdout set for bagging\n    num_bag_folds=0,           # disables bagging\n    num_stack_levels=0         # disables stacking\n)","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"predictor.leaderboard(silent=True).style.background_gradient(subset=['score_val'], cmap='RdYlGn')","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"cols_to_drop = \"Lap_Time_Seconds\"\n\n# Drop target column from test if present\nif cols_to_drop in test.columns:\n    test.drop(columns=cols_to_drop, inplace=True)\n\n# Predict with AutoGluon predictor\npred = predictor.predict(test)\n\n# Add predictions back to test\ntest[\"Lap_Time_Seconds\"] = pred\n\n# Save submission file\nsubmission = test[[\"Lap_Time_Seconds\"]]\nsubmission.to_csv(\"submission_autogluon.csv\", index=False)\nprint(\"✅ Submission file saved as 'submission_autogluon.csv'\")","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}