From ea7fcc0583f444db0d3f45da509d08a43d9aa3ca Mon Sep 17 00:00:00 2001 From: Yash Raj Pandey Date: Sat, 18 Jul 2026 21:36:57 -0400 Subject: [PATCH] Fix regressor fit crash when sklearn output is globally set to pandas TabFMRegressor.fit scales the target with a StandardScaler and calls .flatten() on the result. When the user has set sklearn.set_config(transform_output="pandas") globally, fit_transform returns a DataFrame, which has no .flatten(), raising AttributeError (issue #58). Pin the target scaler to numpy output with set_output(transform="default") so target scaling is unaffected by the global config. --- tabfm/src/classifier_and_regressor.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tabfm/src/classifier_and_regressor.py b/tabfm/src/classifier_and_regressor.py index 4a0ebee..7da3278 100644 --- a/tabfm/src/classifier_and_regressor.py +++ b/tabfm/src/classifier_and_regressor.py @@ -3430,6 +3430,7 @@ def fit(self, X: Any, y: Any) -> "TabFMRegressor": cat_features = list(range(n_cat)) self.y_scaler_ = StandardScaler() + self.y_scaler_.set_output(transform="default") y = self.y_scaler_.fit_transform(y.reshape(-1, 1)).flatten() self.ensemble_generator_ = EnsembleGenerator(