{"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":"nvidiaTeslaT4","dataSources":[{"sourceId":82611,"databundleVersionId":9553358,"sourceType":"competition"}],"dockerImageVersionId":30786,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport kagglehub","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-11-03T07:55:41.864947Z","iopub.execute_input":"2024-11-03T07:55:41.866223Z","iopub.status.idle":"2024-11-03T07:55:42.605220Z","shell.execute_reply.started":"2024-11-03T07:55:41.866144Z","shell.execute_reply":"2024-11-03T07:55:42.603846Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"kagglehub.competition_download('brist1d', path='train.csv')","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:55:42.607448Z","iopub.execute_input":"2024-11-03T07:55:42.608016Z","iopub.status.idle":"2024-11-03T07:55:43.013397Z","shell.execute_reply.started":"2024-11-03T07:55:42.607970Z","shell.execute_reply":"2024-11-03T07:55:43.011697Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df_train  = pd.read_csv(kagglehub.competition_download('brist1d', path='train.csv'))\ndf_train.head()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:55:43.015587Z","iopub.execute_input":"2024-11-03T07:55:43.016091Z","iopub.status.idle":"2024-11-03T07:55:58.972904Z","shell.execute_reply.started":"2024-11-03T07:55:43.016036Z","shell.execute_reply":"2024-11-03T07:55:58.971617Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df_test  = pd.read_csv(kagglehub.competition_download('brist1d', path='test.csv'))\ndf_test.head()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:55:58.976186Z","iopub.execute_input":"2024-11-03T07:55:58.976736Z","iopub.status.idle":"2024-11-03T07:55:59.817991Z","shell.execute_reply.started":"2024-11-03T07:55:58.976678Z","shell.execute_reply":"2024-11-03T07:55:59.816294Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(df_train.shape)","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:55:59.820020Z","iopub.execute_input":"2024-11-03T07:55:59.820558Z","iopub.status.idle":"2024-11-03T07:55:59.827311Z","shell.execute_reply.started":"2024-11-03T07:55:59.820486Z","shell.execute_reply":"2024-11-03T07:55:59.826014Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df_train.isna().sum()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:55:59.829373Z","iopub.execute_input":"2024-11-03T07:55:59.829989Z","iopub.status.idle":"2024-11-03T07:56:00.587159Z","shell.execute_reply.started":"2024-11-03T07:55:59.829944Z","shell.execute_reply":"2024-11-03T07:56:00.585977Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df_train.describe()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:00.588954Z","iopub.execute_input":"2024-11-03T07:56:00.589355Z","iopub.status.idle":"2024-11-03T07:56:05.157052Z","shell.execute_reply.started":"2024-11-03T07:56:00.589312Z","shell.execute_reply":"2024-11-03T07:56:05.155444Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df_test.isna().sum()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:05.158515Z","iopub.execute_input":"2024-11-03T07:56:05.158952Z","iopub.status.idle":"2024-11-03T07:56:05.185799Z","shell.execute_reply.started":"2024-11-03T07:56:05.158905Z","shell.execute_reply":"2024-11-03T07:56:05.184460Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Data Preprocessing\n","metadata":{}},{"cell_type":"code","source":"df_train['time'] = pd.to_datetime(df_train['time'] ,format='%H:%M:%S')\ndf_test['time'] = pd.to_datetime(df_train['time'] , format = '%H:%M:%S')\ndf_train['hour'] = df_train.time.dt.hour\ndf_test['hour'] = df_test.time.dt.hour\ndf_train['minute'] = df_train.time.dt.minute\ndf_test['minute'] = df_test.time.dt.minute","metadata":{"_kg_hide-output":true,"execution":{"iopub.status.busy":"2024-11-03T07:56:05.187458Z","iopub.execute_input":"2024-11-03T07:56:05.187942Z","iopub.status.idle":"2024-11-03T07:56:05.288116Z","shell.execute_reply.started":"2024-11-03T07:56:05.187894Z","shell.execute_reply":"2024-11-03T07:56:05.286588Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"## Drop columns ##\ndf_train.drop(columns= ['time'] , inplace = True)\ndf_test.drop(columns = ['time'] , inplace = True)\n","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:05.293057Z","iopub.execute_input":"2024-11-03T07:56:05.293497Z","iopub.status.idle":"2024-11-03T07:56:05.668093Z","shell.execute_reply.started":"2024-11-03T07:56:05.293455Z","shell.execute_reply":"2024-11-03T07:56:05.666764Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(df_train.select_dtypes('object').isna().sum())\ncols_remove = df_train.select_dtypes('object').columns\ndf_train.drop(columns = cols_remove , inplace = True)\ndel cols_remove","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:05.669962Z","iopub.execute_input":"2024-11-03T07:56:05.670386Z","iopub.status.idle":"2024-11-03T07:56:07.881731Z","shell.execute_reply.started":"2024-11-03T07:56:05.670342Z","shell.execute_reply":"2024-11-03T07:56:07.880313Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.impute import SimpleImputer\n\n# Select the columns for X (features) and Y (target) from the training dataset\ncols = df_train.columns.difference(['bg+1:00'])\nX = df_train[cols]\nY = df_train['bg+1:00']\n\n# Select the same columns for the test dataset\ndf_test = df_test[cols]\n\n# Create an imputer with the 'mean' strategy\nimputer = SimpleImputer(strategy='mean')\n\n# Fit the imputer on the training data and transform it\nX = pd.DataFrame(imputer.fit_transform(X), columns=cols)\n\n# Transform the test data using the same imputer (without fitting)\ndf_test_imputed = pd.DataFrame(imputer.transform(df_test), columns=cols)\n\n# Now, X_imputed and df_test_imputed are dataframes with the imputed values and original column names\n","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:07.883446Z","iopub.execute_input":"2024-11-03T07:56:07.883965Z","iopub.status.idle":"2024-11-03T07:56:12.104776Z","shell.execute_reply.started":"2024-11-03T07:56:07.883921Z","shell.execute_reply":"2024-11-03T07:56:12.103510Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(X.shape)\nprint(df_test_imputed.shape)","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:12.106784Z","iopub.execute_input":"2024-11-03T07:56:12.107852Z","iopub.status.idle":"2024-11-03T07:56:12.114576Z","shell.execute_reply.started":"2024-11-03T07:56:12.107803Z","shell.execute_reply":"2024-11-03T07:56:12.112615Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.model_selection import train_test_split\ntrainx , testx , trainy , testy = train_test_split(X , Y  , test_size = .25 , random_state = 123)","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:12.116302Z","iopub.execute_input":"2024-11-03T07:56:12.116792Z","iopub.status.idle":"2024-11-03T07:56:12.806006Z","shell.execute_reply.started":"2024-11-03T07:56:12.116745Z","shell.execute_reply":"2024-11-03T07:56:12.804245Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(trainx.shape)\nprint(testx.shape)","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:12.808050Z","iopub.execute_input":"2024-11-03T07:56:12.808512Z","iopub.status.idle":"2024-11-03T07:56:12.815739Z","shell.execute_reply.started":"2024-11-03T07:56:12.808468Z","shell.execute_reply":"2024-11-03T07:56:12.814186Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Rename columns to remove special characters\ntrainx.columns = trainx.columns.str.replace(r'[^A-Za-z0-9_]+', '_', regex=True)\ntestx.columns = testx.columns.str.replace(r'[^A-Za-z0-9_]+', '_', regex=True)\ndf_test = df_test.columns.str.replace(r'[^A-Za-z0-9_]+', '_', regex=True)\n# Now you can fit the GridSearchCV object to the data\n# grid_search.fit(trainx, trainy)\n","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:12.817772Z","iopub.execute_input":"2024-11-03T07:56:12.818510Z","iopub.status.idle":"2024-11-03T07:56:12.834717Z","shell.execute_reply.started":"2024-11-03T07:56:12.818460Z","shell.execute_reply":"2024-11-03T07:56:12.833431Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# from sklearn.model_selection import GridSearchCV\n# import lightgbm as lgb\n\n\n# # Initialize the LightGBM regressor with GPU support\n# lgb_reg = lgb.LGBMRegressor(device='gpu')\n\n# # Simplified hyperparameter grid\n# param_grid = {\n#     'n_estimators': [100, 5000],  # Reduced number of estimators\n#     # 'learning_rate': [0.01, 0.1],  # Learning rate\n#     'num_leaves': [ 75],  # Number of leaves\n#     'max_depth': [5, 20],  # Maximum tree depth\n#     # 'min_child_samples': [20, 50],  # Minimum number of samples in a leaf\n#     'subsample': [0.8 ],  # Row subsampling ratio\n#     'colsample_bytree': [0.8, 1.0],  # Feature subsampling ratio\n#     'reg_alpha': [0, 0.1],  # L1 regularization\n#     'reg_lambda': [0, 0.1],  # L2 regularization\n# }\n\n# # GridSearchCV setup\n# grid_search = GridSearchCV(estimator=lgb_reg,\n#                            param_grid=param_grid,\n#                            cv=3,  # 3-fold cross-validation\n#                            scoring='neg_mean_squared_error',\n#                            verbose=1,\n#                            n_jobs=-1)\n\n# # Fit the GridSearchCV to your training data\n# grid_search.fit(trainx, trainy)\n\n# # Best parameters found by GridSearchCV\n# best_params = grid_search.best_params_\n# print(\"Best Hyperparameters:\", best_params)","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:12.836863Z","iopub.execute_input":"2024-11-03T07:56:12.837255Z","iopub.status.idle":"2024-11-03T07:56:12.851171Z","shell.execute_reply.started":"2024-11-03T07:56:12.837198Z","shell.execute_reply":"2024-11-03T07:56:12.849689Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import lightgbm as lgb \ncallbacks = [\n    lgb.early_stopping(stopping_rounds= 50,  verbose=True),\n    lgb.callback.log_evaluation(period=50)\n]\n\nlgb_model = lgb.LGBMRegressor(  n_estimators =100 , max_depth = 20  , num_leaves = 75 , subsample = 0.8  ,  reg_alpha = 0.1 , reg_lambda = 0.1 , colsample_bytree = 0.8 , device = 'gpu')\nlgb_model.fit(trainx, trainy , eval_set = [(testx , testy)] , callbacks = callbacks )","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:12.852619Z","iopub.execute_input":"2024-11-03T07:56:12.853178Z","iopub.status.idle":"2024-11-03T07:56:24.165130Z","shell.execute_reply.started":"2024-11-03T07:56:12.853108Z","shell.execute_reply":"2024-11-03T07:56:24.161757Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df_val = pd.DataFrame( { 'actual':  testy,\n                            'predicted':lgb_model.predict(testx) } )\n\ndf_val.head()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.166695Z","iopub.status.idle":"2024-11-03T07:56:24.167243Z","shell.execute_reply.started":"2024-11-03T07:56:24.166996Z","shell.execute_reply":"2024-11-03T07:56:24.167025Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.metrics import mean_squared_error , mean_absolute_error\n\n\n\nMSE_test = mean_squared_error(df_val.actual, df_val.predicted)\n\n\n\n# print the values of RMSE for train and test\nprint( 'RMSE of testing data: ', np.sqrt(MSE_test))\n\nprint()\n\nmae_test = mean_absolute_error(df_val.actual , df_val.predicted)\nprint('Mean absolute error' , mae_test) ","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.168884Z","iopub.status.idle":"2024-11-03T07:56:24.169335Z","shell.execute_reply.started":"2024-11-03T07:56:24.169118Z","shell.execute_reply":"2024-11-03T07:56:24.169140Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df_pred = pd.DataFrame({\"Model\" :['Lightgbm'] , 'RMSE' : np.sqrt(MSE_test)})\ndf_pred","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.170803Z","iopub.status.idle":"2024-11-03T07:56:24.171250Z","shell.execute_reply.started":"2024-11-03T07:56:24.171035Z","shell.execute_reply":"2024-11-03T07:56:24.171056Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"submission_test =  pd.read_csv(\"/kaggle/input/brist1d/test.csv\")\nsubmission_test['id']","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.173647Z","iopub.status.idle":"2024-11-03T07:56:24.174144Z","shell.execute_reply.started":"2024-11-03T07:56:24.173913Z","shell.execute_reply":"2024-11-03T07:56:24.173944Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Preparing Submission File\n\n# prediction on our X_test_trf or (df_test on which we have to predict and create a submission file)\n\ny_pred = lgb_model.predict(df_test_imputed)\n\n\nsubmission_file = pd.DataFrame({\n    'id': submission_test['id'],\n    'bg+1:00': y_pred\n})\n\nsubmission_file.to_csv('/kaggle/working/submission.csv',index=False)","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2024-11-03T07:56:24.175644Z","iopub.status.idle":"2024-11-03T07:56:24.176111Z","shell.execute_reply.started":"2024-11-03T07:56:24.175886Z","shell.execute_reply":"2024-11-03T07:56:24.175908Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# # ### xgb regressor ##\n# from sklearn.model_selection import GridSearchCV\n# import xgboost as xgb\n\n# # Create an XGBoost Regressor with GPU support using the updated device parameter\n# xgb_reg = xgb.XGBRegressor(tree_method='hist', device='cuda')\n\n# # Define the hyperparameter grid\n# param_grid = {\n#     'n_estimators': [100, 5000],\n#     'learning_rate': [0.01, 0.1],\n#     'max_depth': [6, 10],\n#     'min_child_weight': [1, 5],\n#     'subsample': [0.8],\n#     'colsample_bytree': [0.8],\n#     'reg_alpha': [0, 0.1],\n#     'reg_lambda': [1]\n# }\n\n# # Set up the GridSearchCV\n# grid_search = GridSearchCV(estimator=xgb_reg,\n#                            param_grid=param_grid,\n#                            cv=3,  # 3-fold cross-validation\n#                            scoring='neg_mean_squared_error',\n#                            verbose=1,\n#                            n_jobs=-1)  # Use all available cores\n\n# # Fit the GridSearchCV object to the data\n# grid_search.fit(trainx, trainy)\n\n# # Get the best hyperparameters\n# best_params = grid_search.best_params_\n# print(\"Best Hyperparameters:\", best_params)\n\n","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.177418Z","iopub.status.idle":"2024-11-03T07:56:24.177896Z","shell.execute_reply.started":"2024-11-03T07:56:24.177678Z","shell.execute_reply":"2024-11-03T07:56:24.177702Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import xgboost as xgb\n\n\n\n\n# Create an XGBoost Regressor with GPU support using the updated device parameter\nxgb_reg = xgb.XGBRegressor(tree_method='hist', device='cuda', n_estimators=100, learning_rate=0.1, min_child_weight=1, reg_alpha=0.1, reg_lambda=1, subsample=0.8)\n\n# Train the model with early stopping and evaluation\nxgb_reg.fit(trainx, trainy, \n            eval_set=[(testx, testy)],  # Validation set for early stopping\n            eval_metric='rmse',  # Evaluation metric (RMSE in this case)\n            early_stopping_rounds=50,  # Stop if no improvement after 500 rounds\n            verbose=False)  # Verbose mode to display evaluation info\n\n\n","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.180057Z","iopub.status.idle":"2024-11-03T07:56:24.180512Z","shell.execute_reply.started":"2024-11-03T07:56:24.180287Z","shell.execute_reply":"2024-11-03T07:56:24.180308Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df_val = pd.DataFrame( { 'actual':  testy,\n                            'predicted':xgb_reg.predict(testx) } )\n\nMSE_test = mean_squared_error(df_val.actual, df_val.predicted)\n\n\n\n# print the values of RMSE for train and test\nprint( 'RMSE of testing data: ', np.sqrt(MSE_test))","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.183701Z","iopub.status.idle":"2024-11-03T07:56:24.184203Z","shell.execute_reply.started":"2024-11-03T07:56:24.183970Z","shell.execute_reply":"2024-11-03T07:56:24.183994Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"new_entry = pd.DataFrame({'Model': ['Xg-Boost'], 'RMSE': [np.sqrt(MSE_test)]})\ndf_pred = pd.concat([df_pred, new_entry], ignore_index=True)\n\ndf_pred","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.186002Z","iopub.status.idle":"2024-11-03T07:56:24.186474Z","shell.execute_reply.started":"2024-11-03T07:56:24.186232Z","shell.execute_reply":"2024-11-03T07:56:24.186256Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Preparing Submission File\n\n# prediction on our X_test_trf or (df_test on which we have to predict and create a submission file)\ndf_test_imputed.columns = trainx.columns\nsubmission_test =  pd.read_csv(\"/kaggle/input/brist1d/test.csv\")\nsubmission_test['id']\ny_pred = xgb_reg.predict(df_test_imputed)\n\n\nsubmission_file = pd.DataFrame({\n    'id': submission_test['id'],\n    'bg+1:00': y_pred\n})\n\nsubmission_file.to_csv('/kaggle/working/submission.csv',index=False)\n","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.187986Z","iopub.status.idle":"2024-11-03T07:56:24.188435Z","shell.execute_reply.started":"2024-11-03T07:56:24.188213Z","shell.execute_reply":"2024-11-03T07:56:24.188235Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"**Random Forest**","metadata":{}},{"cell_type":"code","source":"### Random forest  regressor ##\n\n# from sklearn.ensemble import RandomForestRegressor\n# from sklearn.model_selection import GridSearchCV\n\n# # Create a Random Forest Regressor\n# rf_reg = RandomForestRegressor()\n\n# # Define the extended hyperparameter grid\n# param_grid = {\n#     'n_estimators': [100 ],           # Number of trees in the forest\n#     'max_depth': [ 20],           # Maximum depth of the tree\n#     'min_samples_split': [2, 5 ],           # Minimum number of samples required to split a node\n#     'min_samples_leaf': [ 2 ,4  ]           # Minimum number of samples required at each leaf node\n\n#               # Whether bootstrap samples are used when building trees\n#            # Maximum number of leaf nodes in a tree\n# }\n\n# # Set up GridSearchCV\n# grid_search = GridSearchCV(estimator=rf_reg,\n#                            param_grid=param_grid,\n#                            cv=3,  # 3-fold cross-validation\n#                            scoring='neg_mean_squared_error',  # Use MSE as the evaluation metric\n#                            verbose=2,\n#                            n_jobs=-1)  # Use all available CPU cores\n\n# # Fit the GridSearchCV object to the data\n# grid_search.fit(trainx, trainy)\n\n# # Get the best hyperparameters\n# best_params = grid_search.best_params_\n# print(\"Best Hyperparameters:\", best_params)\n\n\n","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.189716Z","iopub.status.idle":"2024-11-03T07:56:24.190153Z","shell.execute_reply.started":"2024-11-03T07:56:24.189937Z","shell.execute_reply":"2024-11-03T07:56:24.189959Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.ensemble import RandomForestRegressor\nrf_reg = RandomForestRegressor(n_estimators = 100 , max_depth = 20 , n_jobs = -1)\nrf_reg.fit(trainx , trainy)","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.192327Z","iopub.status.idle":"2024-11-03T07:56:24.192808Z","shell.execute_reply.started":"2024-11-03T07:56:24.192584Z","shell.execute_reply":"2024-11-03T07:56:24.192606Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.metrics import mean_squared_error , mean_absolute_error\ndf_val = pd.DataFrame( { 'actual':  testy,\n                            'predicted':rf_reg.predict(testx) } )\n\nMSE_test = mean_squared_error(df_val.actual, df_val.predicted)\n\n\n\n# print the values of RMSE for train and test\nprint( 'RMSE of testing data: ', np.sqrt(MSE_test))","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.194162Z","iopub.status.idle":"2024-11-03T07:56:24.194876Z","shell.execute_reply.started":"2024-11-03T07:56:24.194367Z","shell.execute_reply":"2024-11-03T07:56:24.194388Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df_val = pd.DataFrame( { 'actual':  testy,\n                            'predicted':rf_reg.predict(testx) } )\n\ndf_val.head()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.196267Z","iopub.status.idle":"2024-11-03T07:56:24.196741Z","shell.execute_reply.started":"2024-11-03T07:56:24.196492Z","shell.execute_reply":"2024-11-03T07:56:24.196514Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"new_entry = pd.DataFrame({'Model': ['random-forest'], 'RMSE': [np.sqrt(MSE_test)]})\ndf_pred = pd.concat([df_pred, new_entry], ignore_index=True)\n\ndf_pred","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-03T07:56:24.198611Z","iopub.status.idle":"2024-11-03T07:56:24.199071Z","shell.execute_reply.started":"2024-11-03T07:56:24.198851Z","shell.execute_reply":"2024-11-03T07:56:24.198874Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df_test_imputed.columns = trainx.columns\ny_pred = rf_reg.predict(df_test_imputed)\n\n\nsubmission_file = pd.DataFrame({\n    'id': submission_test['id'],\n    'bg+1:00': y_pred\n})\n\nsubmission_file.to_csv('/kaggle/working/submission.csv',index=False)","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.200263Z","iopub.status.idle":"2024-11-03T07:56:24.200735Z","shell.execute_reply.started":"2024-11-03T07:56:24.200489Z","shell.execute_reply":"2024-11-03T07:56:24.200511Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# from sklearn.model_selection import GridSearchCV\n\n# base_estimator = DecisionTreeRegressor()\n# ada_model = AdaBoostRegressor(base_estimator=base_estimator, n_estimators=100)\n\n# # Define the parameter grid for GridSearchCV\n# param_grid = {\n#     'n_estimators': [50, 100, 200],\n#     'learning_rate': [0.01, 0.1, 1.0],\n#     'base_estimator__max_depth': [1, 2, 3]  # Specify max_depth in param_grid\n# }\n\n# # Set up GridSearchCV with RMSE scoring\n# grid_search = GridSearchCV(estimator=ada_model, param_grid=param_grid, cv=3, scoring=make_scorer(rmse, greater_is_better=False), verbose=2, n_jobs=-1)\n\n# # Fit the model\n# grid_search.fit(X_train, y_train)\n\n# # Output the best parameters and the best score\n# print(\"Best parameters found: \", grid_search.best_params_)\n# print(\"Best CV score (RMSE): \", -grid_search.best_score_)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-03T07:56:24.202411Z","iopub.status.idle":"2024-11-03T07:56:24.202963Z","shell.execute_reply.started":"2024-11-03T07:56:24.202745Z","shell.execute_reply":"2024-11-03T07:56:24.202768Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.ensemble import AdaBoostRegressor\nfrom sklearn.tree import DecisionTreeRegressor\n\nfrom sklearn.metrics import  mean_squared_error\n\nimport numpy as np\n\nada_model = AdaBoostRegressor(base_estimator=DecisionTreeRegressor(max_depth = 3) , n_estimators = 100 )\nada_model.fit(trainx , trainy)","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.204279Z","iopub.status.idle":"2024-11-03T07:56:24.204756Z","shell.execute_reply.started":"2024-11-03T07:56:24.204499Z","shell.execute_reply":"2024-11-03T07:56:24.204521Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df_val = pd.DataFrame( { 'actual':  testy,\n                            'predicted':ada_model.predict(testx) } )\n\ndf_val.head()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.206428Z","iopub.status.idle":"2024-11-03T07:56:24.206917Z","shell.execute_reply.started":"2024-11-03T07:56:24.206671Z","shell.execute_reply":"2024-11-03T07:56:24.206713Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Preparing Submission File\n\n# prediction on our X_test_trf or (df_test on which we have to predict and create a submission file)\ndf_test_imputed.columns = trainx.columns\nsubmission_test =  pd.read_csv(\"/kaggle/input/brist1d/test.csv\")\nsubmission_test['id']\ny_pred = ada_model.predict(df_test_imputed)\n\n\nsubmission_file = pd.DataFrame({\n    'id': submission_test['id'],\n    'bg+1:00': y_pred\n})\n\nsubmission_file.to_csv('/kaggle/working/submission.csv',index=False)\n","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.208429Z","iopub.status.idle":"2024-11-03T07:56:24.208987Z","shell.execute_reply.started":"2024-11-03T07:56:24.208760Z","shell.execute_reply":"2024-11-03T07:56:24.208784Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"new_entry = pd.DataFrame({'Model': ['Ada-Bosst'], 'RMSE': [np.sqrt(MSE_test)]})\ndf_pred = pd.concat([df_pred, new_entry], ignore_index=True)\n\ndf_pred","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-03T07:56:24.210439Z","iopub.status.idle":"2024-11-03T07:56:24.210945Z","shell.execute_reply.started":"2024-11-03T07:56:24.210725Z","shell.execute_reply":"2024-11-03T07:56:24.210751Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"**Gradient Boosting**\n","metadata":{}},{"cell_type":"code","source":"# from sklearn.ensemble import GradientBoostingRegressor\n# from sklearn.model_selection import GridSearchCV\n# from sklearn.metrics import  mean_squared_error\n# import numpy as np\n\n\n\n# # Initialize the GradientBoostingRegressor\n# gbr = GradientBoostingRegressor()\n\n# # Define the hyperparameter grid\n# param_grid = {\n#     'n_estimators': [100,  500],\n#     'max_depth': [3, 5],\n# }\n\n# # Set up GridSearchCV with RMSE scoring\n# grid_search = GridSearchCV(\n#     estimator=gbr,\n#     param_grid=param_grid,\n#     cv=3,\n#     scoring= 'neg_mean_squared_error',\n#     verbose=2,\n#     n_jobs=-1\n# )\n\n# # Fit the model\n# grid_search.fit(trainx , trainy )\n\n# # Output the best parameters and the best score\n# print(\"Best parameters found: \", grid_search.best_params_)\n# print(\"Best CV score (RMSE): \", -grid_search.best_score_)\n","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.212554Z","iopub.status.idle":"2024-11-03T07:56:24.213029Z","shell.execute_reply.started":"2024-11-03T07:56:24.212795Z","shell.execute_reply":"2024-11-03T07:56:24.212818Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.ensemble import GradientBoostingRegressor\n\n\nfrom sklearn.metrics import  mean_squared_error\n\nimport numpy as np\n\ngradient_model = GradientBoostingRegressor(n_estimators = 100 , max_depth = 5 , verbose = 2)\ngradient_model.fit(trainx , trainy)","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.214577Z","iopub.status.idle":"2024-11-03T07:56:24.215005Z","shell.execute_reply.started":"2024-11-03T07:56:24.214799Z","shell.execute_reply":"2024-11-03T07:56:24.214820Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df_val = pd.DataFrame( { 'actual':  testy,\n                            'predicted':gradient_model.predict(testx) } )\n\ndf_val.head()","metadata":{"_kg_hide-output":true,"execution":{"iopub.status.busy":"2024-11-03T07:56:24.217103Z","iopub.status.idle":"2024-11-03T07:56:24.217594Z","shell.execute_reply.started":"2024-11-03T07:56:24.217344Z","shell.execute_reply":"2024-11-03T07:56:24.217368Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Preparing Submission File\n\n# prediction on our X_test_trf or (df_test on which we have to predict and create a submission file)\ndf_test_imputed.columns = trainx.columns\nsubmission_test =  pd.read_csv(\"/kaggle/input/brist1d/test.csv\")\nsubmission_test['id']\ny_pred = gradient_model.predict(df_test_imputed)\n\n\nsubmission_file = pd.DataFrame({\n    'id': submission_test['id'],\n    'bg+1:00': y_pred\n})\n\nsubmission_file.to_csv('/kaggle/working/submission.csv',index=False)","metadata":{"execution":{"iopub.status.busy":"2024-11-03T07:56:24.219195Z","iopub.status.idle":"2024-11-03T07:56:24.219690Z","shell.execute_reply.started":"2024-11-03T07:56:24.219433Z","shell.execute_reply":"2024-11-03T07:56:24.219459Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}