{"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":"none","dataSources":[{"sourceId":104857,"databundleVersionId":12651513,"sourceType":"competition"}],"dockerImageVersionId":31040,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\n\ntrain = pd.read_csv('/kaggle/input/burnout-datathon-ieeecsmuj/train.csv')\ntest = pd.read_csv('/kaggle/input/burnout-datathon-ieeecsmuj/test.csv')\nval = pd.read_csv('/kaggle/input/burnout-datathon-ieeecsmuj/val.csv')\nsample_submission = pd.read_csv('/kaggle/input/burnout-datathon-ieeecsmuj/sample_submission.csv')\n\nprint(\"Train Shape:\", train.shape)\nprint(\"Test Shape:\", test.shape)\nprint(\"Validation Shape:\", val.shape)\n\nprint(\"\\nTrain Head:\\n\", train.head())\n\nprint(\"\\nMissing values in Train:\\n\", train.isnull().sum())\n\nprint(\"\\nData Types:\\n\", train.dtypes)","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"execution":{"iopub.status.busy":"2025-06-14T05:43:15.811401Z","iopub.execute_input":"2025-06-14T05:43:15.811624Z","iopub.status.idle":"2025-06-14T05:43:41.808861Z","shell.execute_reply.started":"2025-06-14T05:43:15.811603Z","shell.execute_reply":"2025-06-14T05:43:41.807829Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"\nimport pandas as pd\n\nsample_submission = pd.read_csv('/kaggle/input/burnout-datathon-ieeecsmuj/sample_submission.csv')\n\nprint(sample_submission.head())\nprint(sample_submission.columns)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-14T05:47:31.207483Z","iopub.execute_input":"2025-06-14T05:47:31.208551Z","iopub.status.idle":"2025-06-14T05:47:31.355503Z","shell.execute_reply.started":"2025-06-14T05:47:31.208512Z","shell.execute_reply":"2025-06-14T05:47:31.354395Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import numpy as np \nimport pandas as pd\n\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-14T08:06:32.042566Z","iopub.execute_input":"2025-06-14T08:06:32.042760Z","iopub.status.idle":"2025-06-14T08:06:34.302463Z","shell.execute_reply.started":"2025-06-14T08:06:32.042742Z","shell.execute_reply":"2025-06-14T08:06:34.301436Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nfrom sklearn.impute import SimpleImputer\nfrom sklearn.preprocessing import LabelEncoder\n\n\ndf = pd.read_csv('/kaggle/input/burnout-datathon-ieeecsmuj/train.csv')\n\n\nnumerical_cols = df.select_dtypes(include=['int64', 'float64']).columns\ncategorical_cols = df.select_dtypes(include=['object']).columns\n\nnum_imputer = SimpleImputer(strategy='mean')\ndf[numerical_cols] = num_imputer.fit_transform(df[numerical_cols])\n\ncat_imputer = SimpleImputer(strategy='most_frequent')\ndf[categorical_cols] = cat_imputer.fit_transform(df[categorical_cols])\n\nprint(\"\\nMissing values after filling:\")\nprint(df.isnull().sum())\n\nle = LabelEncoder()\nfor col in categorical_cols:\n    df[col] = le.fit_transform(df[col])\n\nprint(\"\\n✅ Shape:\", df.shape)\nprint(\"\\n✅ Columns:\\n\", df.columns.tolist())\nprint(\"\\n✅ Preview:\\n\", df.head())\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-14T08:55:25.209665Z","iopub.execute_input":"2025-06-14T08:55:25.210374Z","iopub.status.idle":"2025-06-14T08:55:45.562194Z","shell.execute_reply.started":"2025-06-14T08:55:25.210341Z","shell.execute_reply":"2025-06-14T08:55:45.561547Z"},"jupyter":{"outputs_hidden":true},"collapsed":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import pandas as pd\nfrom sklearn.impute import SimpleImputer\nfrom sklearn.preprocessing import LabelEncoder, StandardScaler\n\ndf = pd.read_csv('/kaggle/input/burnout-datathon-ieeecsmuj/train.csv')\n\nnum_cols = df.select_dtypes(include=['int64', 'float64']).columns\ncat_cols = df.select_dtypes(include=['object']).columns\nnum_imputer = SimpleImputer(strategy='mean')\ndf[num_cols] = num_imputer.fit_transform(df[num_cols])\n\n\ncat_imputer = SimpleImputer(strategy='most_frequent')\ndf[cat_cols] = cat_imputer.fit_transform(df[cat_cols])\n\n\nlabel_encoders = {}\nfor col in cat_cols:\n    le = LabelEncoder()\n    df[col] = le.fit_transform(df[col])\n    label_encoders[col] = le  \n\n\nscaler = StandardScaler()\ndf[num_cols] = scaler.fit_transform(df[num_cols])\n\n\n\ncols_to_drop = ['Unique ID', 'Rider_ID']  \ndf.drop(columns=cols_to_drop, inplace=True, errors='ignore')\n\n\nprint(\"Shape after preprocessing:\", df.shape)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-14T09:11:33.890506Z","iopub.execute_input":"2025-06-14T09:11:33.890762Z","iopub.status.idle":"2025-06-14T09:11:54.465696Z","shell.execute_reply.started":"2025-06-14T09:11:33.890745Z","shell.execute_reply":"2025-06-14T09:11:54.464878Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nfrom sklearn.impute import SimpleImputer\nfrom sklearn.preprocessing import LabelEncoder, StandardScaler\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import mean_squared_error\nfrom xgboost import XGBRegressor\nimport warnings\nwarnings.filterwarnings('ignore')\n\ntrain_df = pd.read_csv(\"/kaggle/input/burnout-datathon-ieeecsmuj/train.csv\")\ntest_df = pd.read_csv(\"/kaggle/input/burnout-datathon-ieeecsmuj/test.csv\")\nval_df = pd.read_csv(\"/kaggle/input/burnout-datathon-ieeecsmuj/val.csv\")\n\ny = train_df['Lap_Time_Seconds']\nX = train_df.drop(columns=['Lap_Time_Seconds', 'Unique ID', 'Rider_ID'], errors='ignore')\n\nnum_features = X.select_dtypes(include=['int64', 'float64']).columns\ncat_features = X.select_dtypes(include='object').columns\n\nnum_imputer = SimpleImputer(strategy='mean')\nX[num_features] = num_imputer.fit_transform(X[num_features])\ntest_df[num_features] = num_imputer.transform(test_df[num_features])\nval_df[num_features] = num_imputer.transform(val_df[num_features])\n\ncat_imputer = SimpleImputer(strategy='most_frequent')\nX[cat_features] = cat_imputer.fit_transform(X[cat_features])\ntest_df[cat_features] = cat_imputer.transform(test_df[cat_features])\nval_df[cat_features] = cat_imputer.transform(val_df[cat_features])\n\nlabel_encoders = {}\nfor col in cat_features:\n    encoder = LabelEncoder()\n    X[col] = encoder.fit_transform(X[col])\n    test_df[col] = encoder.transform(test_df[col])\n    val_df[col] = encoder.transform(val_df[col])\n    label_encoders[col] = encoder\n\nscaler = StandardScaler()\nX[num_features] = scaler.fit_transform(X[num_features])\ntest_df[num_features] = scaler.transform(test_df[num_features])\nval_df[num_features] = scaler.transform(val_df[num_features])\n\nX_train, X_valid, y_train, y_valid = train_test_split(X, y, test_size=0.1, random_state=42)\n\nmodel = XGBRegressor(n_estimators=500,\n                     learning_rate=0.05,\n                     max_depth=10,\n                     subsample=0.8,\n                     colsample_bytree=0.8,\n                     random_state=42,\n                     tree_method='hist')\nmodel.fit(X_train, y_train)\n\ny_pred_valid = model.predict(X_valid)\nrmse = np.sqrt(mean_squared_error(y_valid, y_pred_valid))\nprint(\"Validation RMSE:\", rmse)\n\ntest_predictions = model.predict(test_df.drop(columns=['Unique ID', 'Rider_ID'], errors='ignore'))\n\nsubmission = pd.DataFrame({\n    'Unique ID': test_df['Unique ID'],\n    'Lap_Time_Seconds': test_predictions\n})\nsubmission.to_csv(\"submission.csv\", index=False)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-14T10:32:46.689239Z","iopub.execute_input":"2025-06-14T10:32:46.689478Z","iopub.status.idle":"2025-06-14T10:35:17.780523Z","shell.execute_reply.started":"2025-06-14T10:32:46.689457Z","shell.execute_reply":"2025-06-14T10:35:17.779653Z"}},"outputs":[],"execution_count":null}]}