From a6b500f0d1301dc3fcb6f0f199cb667e9fa8ace5 Mon Sep 17 00:00:00 2001 From: WinstonLiyt <104308117+WinstonLiyt@users.noreply.github.com> Date: Wed, 25 Sep 2024 15:56:01 +0800 Subject: [PATCH] fix: fix a bug in the format of the model input (#327) * fix a bug * fix a bug * fix a ci bug --- .../train.py | 16 ++++++++++++++++ .../playground-series-s3e11_template/train.py | 16 ++++++++++++++++ .../playground-series-s3e26_template/train.py | 16 ++++++++++++++++ .../playground-series-s4e8_template/train.py | 16 ++++++++++++++++ .../playground-series-s4e9_template/train.py | 16 ++++++++++++++++ .../kaggle/experiment/sf-crime_template/train.py | 16 ++++++++++++++++ .../spaceship-titanic_template/train.py | 16 ++++++++++++++++ 7 files changed, 112 insertions(+) diff --git a/rdagent/scenarios/kaggle/experiment/forest-cover-type-prediction_template/train.py b/rdagent/scenarios/kaggle/experiment/forest-cover-type-prediction_template/train.py index 458b3301..c2161ebf 100644 --- a/rdagent/scenarios/kaggle/experiment/forest-cover-type-prediction_template/train.py +++ b/rdagent/scenarios/kaggle/experiment/forest-cover-type-prediction_template/train.py @@ -62,7 +62,23 @@ print(X_train.shape, X_valid.shape, X_test.shape) # Handle inf and -inf values X_train, X_valid, X_test = clean_and_impute_data(X_train, X_valid, X_test) + # 3) Train the model +def flatten_columns(df: pd.DataFrame) -> pd.DataFrame: + """ + Flatten the columns of a DataFrame with MultiIndex columns, + for (feature_0, a), (feature_0, b) -> feature_0_a, feature_0_b + """ + if df.columns.nlevels == 1: + return df + df.columns = ["_".join(col).strip() for col in df.columns.values] + return df + + +X_train = flatten_columns(X_train) +X_valid = flatten_columns(X_valid) +X_test = flatten_columns(X_test) + model_l = [] # list[tuple[model, predict_func]] for f in DIRNAME.glob("model/model*.py"): m = import_module_from_path(f.stem, f) diff --git a/rdagent/scenarios/kaggle/experiment/playground-series-s3e11_template/train.py b/rdagent/scenarios/kaggle/experiment/playground-series-s3e11_template/train.py index a32c04c7..8a137df6 100644 --- a/rdagent/scenarios/kaggle/experiment/playground-series-s3e11_template/train.py +++ b/rdagent/scenarios/kaggle/experiment/playground-series-s3e11_template/train.py @@ -38,7 +38,23 @@ X_train = pd.concat(X_train_l, axis=1, keys=[f"feature_{i}" for i in range(len(X X_valid = pd.concat(X_valid_l, axis=1, keys=[f"feature_{i}" for i in range(len(X_valid_l))]) X_test = pd.concat(X_test_l, axis=1, keys=[f"feature_{i}" for i in range(len(X_test_l))]) + # 3) Train the model +def flatten_columns(df: pd.DataFrame) -> pd.DataFrame: + """ + Flatten the columns of a DataFrame with MultiIndex columns, + for (feature_0, a), (feature_0, b) -> feature_0_a, feature_0_b + """ + if df.columns.nlevels == 1: + return df + df.columns = ["_".join(col).strip() for col in df.columns.values] + return df + + +X_train = flatten_columns(X_train) +X_valid = flatten_columns(X_valid) +X_test = flatten_columns(X_test) + model_l = [] # list[tuple[model, predict_func]] for f in DIRNAME.glob("model/model*.py"): m = import_module_from_path(f.stem, f) diff --git a/rdagent/scenarios/kaggle/experiment/playground-series-s3e26_template/train.py b/rdagent/scenarios/kaggle/experiment/playground-series-s3e26_template/train.py index eab45cb5..ca72e886 100644 --- a/rdagent/scenarios/kaggle/experiment/playground-series-s3e26_template/train.py +++ b/rdagent/scenarios/kaggle/experiment/playground-series-s3e26_template/train.py @@ -74,7 +74,23 @@ X_test = X_test.loc[:, ~X_test.columns.duplicated()] print(X_train.shape, X_valid.shape, X_test.shape) + # 3) Train the model +def flatten_columns(df: pd.DataFrame) -> pd.DataFrame: + """ + Flatten the columns of a DataFrame with MultiIndex columns, + for (feature_0, a), (feature_0, b) -> feature_0_a, feature_0_b + """ + if df.columns.nlevels == 1: + return df + df.columns = ["_".join(col).strip() for col in df.columns.values] + return df + + +X_train = flatten_columns(X_train) +X_valid = flatten_columns(X_valid) +X_test = flatten_columns(X_test) + model_l = [] # list[tuple[model, predict_func]] for f in DIRNAME.glob("model/model*.py"): m = import_module_from_path(f.stem, f) diff --git a/rdagent/scenarios/kaggle/experiment/playground-series-s4e8_template/train.py b/rdagent/scenarios/kaggle/experiment/playground-series-s4e8_template/train.py index ea32b625..ca74a96d 100644 --- a/rdagent/scenarios/kaggle/experiment/playground-series-s4e8_template/train.py +++ b/rdagent/scenarios/kaggle/experiment/playground-series-s4e8_template/train.py @@ -72,7 +72,23 @@ X_train = X_train.loc[:, ~X_train.columns.duplicated()] X_valid = X_valid.loc[:, ~X_valid.columns.duplicated()] X_test = X_test.loc[:, ~X_test.columns.duplicated()] + # 3) Train the model +def flatten_columns(df: pd.DataFrame) -> pd.DataFrame: + """ + Flatten the columns of a DataFrame with MultiIndex columns, + for (feature_0, a), (feature_0, b) -> feature_0_a, feature_0_b + """ + if df.columns.nlevels == 1: + return df + df.columns = ["_".join(col).strip() for col in df.columns.values] + return df + + +X_train = flatten_columns(X_train) +X_valid = flatten_columns(X_valid) +X_test = flatten_columns(X_test) + model_l = [] # list[tuple[model, predict_func,]] for f in DIRNAME.glob("model/model*.py"): m = import_module_from_path(f.stem, f) diff --git a/rdagent/scenarios/kaggle/experiment/playground-series-s4e9_template/train.py b/rdagent/scenarios/kaggle/experiment/playground-series-s4e9_template/train.py index 3e98be58..1971b091 100644 --- a/rdagent/scenarios/kaggle/experiment/playground-series-s4e9_template/train.py +++ b/rdagent/scenarios/kaggle/experiment/playground-series-s4e9_template/train.py @@ -71,7 +71,23 @@ X_train = X_train.loc[:, ~X_train.columns.duplicated()] X_valid = X_valid.loc[:, ~X_valid.columns.duplicated()] X_test = X_test.loc[:, ~X_test.columns.duplicated()] + # 3) Train the model +def flatten_columns(df: pd.DataFrame) -> pd.DataFrame: + """ + Flatten the columns of a DataFrame with MultiIndex columns, + for (feature_0, a), (feature_0, b) -> feature_0_a, feature_0_b + """ + if df.columns.nlevels == 1: + return df + df.columns = ["_".join(col).strip() for col in df.columns.values] + return df + + +X_train = flatten_columns(X_train) +X_valid = flatten_columns(X_valid) +X_test = flatten_columns(X_test) + model_l = [] # list[tuple[model, predict_func,]] for f in DIRNAME.glob("model/model*.py"): m = import_module_from_path(f.stem, f) diff --git a/rdagent/scenarios/kaggle/experiment/sf-crime_template/train.py b/rdagent/scenarios/kaggle/experiment/sf-crime_template/train.py index bd6ad7da..516f5a7f 100644 --- a/rdagent/scenarios/kaggle/experiment/sf-crime_template/train.py +++ b/rdagent/scenarios/kaggle/experiment/sf-crime_template/train.py @@ -74,7 +74,23 @@ X_test = X_test.loc[:, ~X_test.columns.duplicated()] print(X_train.shape, X_valid.shape, X_test.shape) + # 3) Train the model +def flatten_columns(df: pd.DataFrame) -> pd.DataFrame: + """ + Flatten the columns of a DataFrame with MultiIndex columns, + for (feature_0, a), (feature_0, b) -> feature_0_a, feature_0_b + """ + if df.columns.nlevels == 1: + return df + df.columns = ["_".join(col).strip() for col in df.columns.values] + return df + + +X_train = flatten_columns(X_train) +X_valid = flatten_columns(X_valid) +X_test = flatten_columns(X_test) + model_l = [] # list[tuple[model, predict_func]] for f in DIRNAME.glob("model/model*.py"): m = import_module_from_path(f.stem, f) diff --git a/rdagent/scenarios/kaggle/experiment/spaceship-titanic_template/train.py b/rdagent/scenarios/kaggle/experiment/spaceship-titanic_template/train.py index 261ea364..9cc0bcdd 100644 --- a/rdagent/scenarios/kaggle/experiment/spaceship-titanic_template/train.py +++ b/rdagent/scenarios/kaggle/experiment/spaceship-titanic_template/train.py @@ -72,7 +72,23 @@ X_train = X_train.loc[:, ~X_train.columns.duplicated()] X_valid = X_valid.loc[:, ~X_valid.columns.duplicated()] X_test = X_test.loc[:, ~X_test.columns.duplicated()] + # 3) Train the model +def flatten_columns(df: pd.DataFrame) -> pd.DataFrame: + """ + Flatten the columns of a DataFrame with MultiIndex columns, + for (feature_0, a), (feature_0, b) -> feature_0_a, feature_0_b + """ + if df.columns.nlevels == 1: + return df + df.columns = ["_".join(col).strip() for col in df.columns.values] + return df + + +X_train = flatten_columns(X_train) +X_valid = flatten_columns(X_valid) +X_test = flatten_columns(X_test) + model_l = [] # list[tuple[model, predict_func,]] for f in DIRNAME.glob("model/model*.py"): m = import_module_from_path(f.stem, f)