From 808776718a520f520eab659fc991d2816babefb9 Mon Sep 17 00:00:00 2001 From: RektPunk Date: Sat, 20 Dec 2025 16:41:42 +0900 Subject: [PATCH] faster get leafs --- xbooster/lgb_constructor.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/xbooster/lgb_constructor.py b/xbooster/lgb_constructor.py index e79d0b5..1399bff 100644 --- a/xbooster/lgb_constructor.py +++ b/xbooster/lgb_constructor.py @@ -190,13 +190,12 @@ def get_leafs( # For margin output, get raw scores per tree # Each tree's prediction is returned as-is (no base_score adjustment needed) - df_leafs = pd.DataFrame() - + tree_results = [] for i in range(n_trees): - df_leafs[f"tree_{i}"] = self.model.predict( - X, raw_score=True, start_iteration=i, num_iteration=1 - ) + res = self.model.predict(X, raw_score=True, start_iteration=i, num_iteration=1) + tree_results.append(res) + df_leafs = pd.DataFrame(np.column_stack(tree_results), index=X.index, columns=_colnames) return df_leafs def extract_leaf_weights(self) -> pd.DataFrame: