Files
app-store-optimization/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-13497.patch

15 lines
963 B
Diff

Based on the issue description, I understand the problem. In scikit-learn's `_estimate_mi` function, there's a comparison `discrete_features == 'auto'` that will fail when `discrete_features` is an array (numpy array or list) because comparing an array to a string produces a boolean array, not a single boolean value. This will cause issues in future numpy versions.
The fix is to use `isinstance()` to check if `discrete_features` is a string before doing the comparison. Let me create the patch:
--- a/sklearn/feature_selection/_mutual_info.py
+++ b/sklearn/feature_selection/_mutual_info.py
@@ -82,7 +82,7 @@ def _estimate_mi(X, y, discrete_features='auto', discrete_target=False,
n_samples, n_features = X.shape
X = X.astype(float, copy=False)
- if discrete_features == 'auto':
+ if isinstance(discrete_features, str) and discrete_features == 'auto':
discrete_features = issparse(X)
if isinstance(discrete_features, bool):