dask / dask/dask-ml

ImportError: cannot import name '_is_constant_feature' from 'sklearn.preprocessing._data

Open
#893 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
951
Forks
262
PR merge metrics
No merged PRs in 30d

Description

**What happened**: I installed dask ml by `pip3 install git+https://github.com/dask/dask-ml.git` But when tried importing dask ml got this error -

```
ImportError Traceback (most recent call last)
in
3 import shapely.wkb
4 # from sklearn.preprocessing import MinMaxScaler
----> 5 from dask_ml.preprocessing import MinMaxScaler
6
7 from shapely.wkt import loads

~/projects/fractal/glassdoor-review-scraper/fract/lib/python3.8/site-packages/dask_ml/__init__.py in
2
3 # Ensure we always register tokenizers
----> 4 from dask_ml.model_selection import _normalize
5
6 __all__ = []

~/projects/fractal/glassdoor-review-scraper/fract/lib/python3.8/site-packages/dask_ml/model_selection/__init__.py in
4 on the underlying estimators being used.
5 """
----> 6 from ._hyperband import HyperbandSearchCV
7 from ._incremental import IncrementalSearchCV, InverseDecaySearchCV
8 from ._search import GridSearchCV, RandomizedSearchCV, check_cv, compute_n_splits

~/projects/fractal/glassdoor-review-scraper/fract/lib/python3.8/site-packages/dask_ml/model_selection/_hyperband.py in
10 from sklearn.utils import check_random_state
11
---> 12 from ._incremental import BaseIncrementalSearchCV
13 from ._successive_halving import SuccessiveHalvingSearchCV
14

~/projects/fractal/glassdoor-review-scraper/fract/lib/python3.8/site-packages/dask_ml/model_selection/_incremental.py in
20 from distributed.utils import log_errors
21 from sklearn.base import BaseEstimator, clone
---> 22 from sklearn.linear_model import SGDClassifier
23 from sklearn.metrics import check_scoring
24 from sklearn.model_selection import ParameterGrid, ParameterSampler

~/projects/fractal/glassdoor-review-scraper/fract/lib/python3.8/site-packages/sklearn/linear_model/__init__.py in
7 # complete documentation.
8
----> 9 from ._base import LinearRegression
10 from ._bayes import BayesianRidge, ARDRegression
11 from ._least_angle import (

~/projects/fractal/glassdoor-review-scraper/fract/lib/python3.8/site-packages/sklearn/linear_model/_base.py in
28
29 from ..base import BaseEstimator, ClassifierMixin, RegressorMixin, MultiOutputMixin
---> 30 from ..preprocessing._data import _is_constant_feature
31 from ..utils import check_array
32 from ..utils.validation import FLOAT_DTYPES

ImportError: cannot import name '_is_constant_feature' from 'sklearn.preprocessing._data' (/home/aum/projects/fractal/glassdoor-review-scraper/fract/lib/python3.8/site-packages/sklearn/preprocessing/_data.py)

```

**Anything else we need to know?**: My scikit-learn version is 1.0.1. I tried downgrading to 0.21 but still getting same issue.

- Dask version: 2.30.0
- Python version: 3.8.10
- Operating System: Ubuntu 20.04
- Install method (conda, pip, source): pip

Contributor guide

Open the contributing guide

Research direction

Reproduce the import with Python 3.8.10, Dask-ML 2.30.0, and scikit-learn 1.0.1, starting from dask_ml/model_selection/_incremental.py and the imports shown in sklearn/linear_model/_base.py and sklearn/preprocessing/_data.py. Check the dependency compatibility and verify that importing dask_ml.preprocessing.MinMaxScaler succeeds without the reported ImportError.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, scikit-learn
Domain
machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.