From 9e14cefe6538529be364e6f36def9006490efc0d Mon Sep 17 00:00:00 2001 From: Haoran Pan <167847254+TPLin22@users.noreply.github.com> Date: Thu, 26 Sep 2024 13:43:50 +0800 Subject: [PATCH] feat: random forest for s3e11 (#347) --- .../model/model_randomforest.py | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 rdagent/scenarios/kaggle/experiment/playground-series-s3e11_template/model/model_randomforest.py diff --git a/rdagent/scenarios/kaggle/experiment/playground-series-s3e11_template/model/model_randomforest.py b/rdagent/scenarios/kaggle/experiment/playground-series-s3e11_template/model/model_randomforest.py new file mode 100644 index 00000000..9618a10e --- /dev/null +++ b/rdagent/scenarios/kaggle/experiment/playground-series-s3e11_template/model/model_randomforest.py @@ -0,0 +1,35 @@ +import pandas as pd +from sklearn.ensemble import RandomForestRegressor + + +def select(X: pd.DataFrame) -> pd.DataFrame: + # Ignore feature selection logic + return X + + +def fit(X_train: pd.DataFrame, y_train: pd.DataFrame, X_valid: pd.DataFrame, y_valid: pd.DataFrame): + """Define and train the Random Forest model. Merge feature_select""" + X_train = select(X_train) + + rf_params = { + "n_estimators": 100, + "max_depth": 10, + "min_samples_split": 2, + "min_samples_leaf": 1, + "max_features": "sqrt", + "random_state": 2023, + "n_jobs": -1, + "verbose": 1, + } + model = RandomForestRegressor(**rf_params) + model.fit(X_train, y_train) + return model + + +def predict(model, X_test): + """ + Keep feature select's consistency. + """ + X_test = select(X_test) + y_pred = model.predict(X_test) + return y_pred.reshape(-1, 1)