From 84a05a10847c24ea0712bfbf6e8c61fd473fb4f3 Mon Sep 17 00:00:00 2001 From: 00helloworld <42757757+00helloworld@users.noreply.github.com> Date: Wed, 23 Jul 2025 17:49:56 +0800 Subject: [PATCH 1/2] Update uplift.pyx with isinstance(v, (int, float, np.number)): fix with isinstance(v, (int, float, np.number)): to take np.number under consideration --- causalml/inference/tree/uplift.pyx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/causalml/inference/tree/uplift.pyx b/causalml/inference/tree/uplift.pyx index 1f60b908..4334ccac 100644 --- a/causalml/inference/tree/uplift.pyx +++ b/causalml/inference/tree/uplift.pyx @@ -2264,7 +2264,7 @@ class UpliftTreeClassifier: else: v = observations[tree.col] branch = None - if isinstance(v, int) or isinstance(v, float): + if isinstance(v, (int, float, np.number)): if v >= tree.value: branch = tree.trueBranch else: @@ -2311,7 +2311,7 @@ class UpliftTreeClassifier: return dict(result) else: branch = None - if isinstance(v, int) or isinstance(v, float): + if isinstance(v, (int, float, np.number)): if v >= tree.value: branch = tree.trueBranch else: From e059dd1abbf0ecdc49490a66d59b3cf61277747e Mon Sep 17 00:00:00 2001 From: 00helloworld <42757757+00helloworld@users.noreply.github.com> Date: Tue, 16 Sep 2025 20:20:04 +0800 Subject: [PATCH 2/2] Update uplift.pyx with isinstance(v, numbers.Number): --- causalml/inference/tree/uplift.pyx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/causalml/inference/tree/uplift.pyx b/causalml/inference/tree/uplift.pyx index 4334ccac..272e2ae5 100644 --- a/causalml/inference/tree/uplift.pyx +++ b/causalml/inference/tree/uplift.pyx @@ -33,6 +33,7 @@ from joblib import Parallel, delayed from packaging import version from sklearn.model_selection import train_test_split from sklearn.utils import check_X_y, check_array, check_random_state +import numbers if version.parse(sklearn.__version__) >= version.parse('0.22.0'): from sklearn.utils._testing import ignore_warnings @@ -2264,7 +2265,7 @@ class UpliftTreeClassifier: else: v = observations[tree.col] branch = None - if isinstance(v, (int, float, np.number)): + if isinstance(v, numbers.Number): if v >= tree.value: branch = tree.trueBranch else: @@ -2311,7 +2312,7 @@ class UpliftTreeClassifier: return dict(result) else: branch = None - if isinstance(v, (int, float, np.number)): + if isinstance(v, numbers.Number): if v >= tree.value: branch = tree.trueBranch else: