Cannot import name 'Imputer' from 'sklearn.preprocessing' from pandas_ml - python

I am working on a project for my master and I was trying to get some stats on my calculations. I found a very cool tool to do this, called panda_ml, but when I import it in my cell on jupyter like this:
from pandas_ml import *
It gives me this output error:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-118-93009f7254d4> in <module>
3 from sklearn import *
4 from matplotlib.colors import LogNorm
----> 5 from pandas_ml import *
6 import math
7
~/anaconda3/envs/Lab1_B/lib/python3.7/site-packages/pandas_ml/__init__.py in <module>
1 #!/usr/bin/env python
2
----> 3 from pandas_ml.core import ModelFrame, ModelSeries # noqa
4 from pandas_ml.tools import info # noqa
5 from pandas_ml.version import version as __version__ # noqa
~/anaconda3/envs/Lab1_B/lib/python3.7/site-packages/pandas_ml/core/__init__.py in <module>
1 #!/usr/bin/env python
2
----> 3 from pandas_ml.core.frame import ModelFrame # noqa
4 from pandas_ml.core.series import ModelSeries # noqa
~/anaconda3/envs/Lab1_B/lib/python3.7/site-packages/pandas_ml/core/frame.py in <module>
8
9 import pandas_ml.imbaccessors as imbaccessors
---> 10 import pandas_ml.skaccessors as skaccessors
11 import pandas_ml.smaccessors as smaccessors
12 import pandas_ml.snsaccessors as snsaccessors
~/anaconda3/envs/Lab1_B/lib/python3.7/site-packages/pandas_ml/skaccessors/__init__.py in <module>
17 from pandas_ml.skaccessors.neighbors import NeighborsMethods # noqa
18 from pandas_ml.skaccessors.pipeline import PipelineMethods # noqa
---> 19 from pandas_ml.skaccessors.preprocessing import PreprocessingMethods # noqa
20 from pandas_ml.skaccessors.svm import SVMMethods # noqa
~/anaconda3/envs/Lab1_B/lib/python3.7/site-packages/pandas_ml/skaccessors/preprocessing.py in <module>
11 _keep_col_classes = [pp.Binarizer,
12 pp.FunctionTransformer,
---> 13 pp.Imputer,
14 pp.KernelCenterer,
15 pp.LabelEncoder,
AttributeError: module 'sklearn.preprocessing' has no attribute 'Imputer'
I am using Conda, I have my own env with all the packages, I have tried to install older versions of sklearn and pandas_ml but it did not solve the problem. I've searching around but it seems that no one had ever this problem...Do you have any suggestion?

You have to uninstall properly and downgrading will work.
pip uninstall -y scikit-learn
pip uninstall -y pandas
pip uninstall -y pandas_ml
pip install scikit-learn==0.21.1
pip install pandas==0.24.2
pip install pandas_ml
Then import
from pandas_ml import *
Tested in Python 3.8.2

I had scikit-learn version 0.22.1 installed recently and had a similar problem. Then I tried your solution under Python 3.7.2, maintained the versions for Pandas v0.25.1 and Pandas ML v0.6.1 and it work like a charm!. I wonder when would be it safe to turn to a newer version of scikit-learn

from sklearn.impute import SimpleImputer
imp = SimpleImputer(missing_values=np.nan, copy=False, strategy="mean", )
No axis value is needed anymore

Related

issue importing module in python jupyter

hi so I'm trying to import geopandas into my script
import pandas as pd
import geopandas as gpd
from shapely.geometry import Point
#handling txt
#remove 'lat=' and 'long=' then type change from object to float to make point.
df = pd.read_csv('latlong.txt', header=None, names = ['lat','long', 'name','description'])
df['lat'] = df['lat'].str.replace('lat=', '')
df['long'] = df['long'].str.replace('long=', '')
df['lat'] = df['lat'].astype(float)
df['long'] = df['long'].astype(float)
#make point geometry
df['geometry'] = df.apply(lambda row: Point(low['long'], low['lat']), axis=1) #long is X, lat is Y
#change df to gdf
gdf = gpd.GeoDataFrame(df, geometry = 'geometry', crs='EPSG:4326') #epsg4326 is WGS84
But when I try to run this in the jupyter notebook, using a conda environment from these steps: https://medium.com/#nrk25693/how-to-add-your-conda-environment-to-your-jupyter-notebook-in-just-4-steps-abeab8b8d084
I get the following error :
ImportError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_2312/3230284861.py in <module>
----> 1 import pandas as pd
2 import geopandas as gpd
3 from shapely.geometry import Point
4
5 #handling txt
~\.conda\envs\geojsongen\lib\site-packages\pandas\__init__.py in <module>
14
15 if missing_dependencies:
---> 16 raise ImportError(
17 "Unable to import required dependencies:\n" + "\n".join(missing_dependencies)
18 )
ImportError: Unable to import required dependencies:
numpy:
IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!
Importing the numpy C-extensions failed. This error can happen for
many reasons, often due to issues with your setup or how NumPy was
installed.
We have compiled some common reasons and troubleshooting tips at:
https://numpy.org/devdocs/user/troubleshooting-importerror.html
Please note and check the following:
* The Python version is: Python3.9 from "C:\Users\User\.conda\envs\geojsongen\python.exe"
* The NumPy version is: "1.21.2"
and make sure that they are the versions you expect.
Please carefully study the documentation linked above for further help.
Original error was: DLL load failed while importing _multiarray_umath: The specified module could not be found.
I installed the geopandas in this environment using the following command:
conda install -c conda-forge geopandas
Could someone advise me on how I can fix these errors? Any help is appreciated, thank you!!
edit:
I tried this pip install --upgrade --force-reinstall numpy, thanks #krmogi for this, but now I get this error, it looks like an issue with my geopandas installation? :
ImportError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_13932/3230284861.py in <module>
1 import pandas as pd
----> 2 import geopandas as gpd
3 from shapely.geometry import Point
4
5 #handling txt
~\.conda\envs\geojsongen\lib\site-packages\geopandas\__init__.py in <module>
----> 1 from geopandas._config import options # noqa
2
3 from geopandas.geoseries import GeoSeries # noqa
4 from geopandas.geodataframe import GeoDataFrame # noqa
5 from geopandas.array import points_from_xy # noqa
~\.conda\envs\geojsongen\lib\site-packages\geopandas\_config.py in <module>
107 use_pygeos = Option(
108 key="use_pygeos",
--> 109 default_value=_default_use_pygeos(),
110 doc=(
111 "Whether to use PyGEOS to speed up spatial operations. The default is True "
~\.conda\envs\geojsongen\lib\site-packages\geopandas\_config.py in _default_use_pygeos()
93
94 def _default_use_pygeos():
---> 95 import geopandas._compat as compat
96
97 return compat.USE_PYGEOS
~\.conda\envs\geojsongen\lib\site-packages\geopandas\_compat.py in <module>
7 import numpy as np
8 import pandas as pd
----> 9 import pyproj
10 import shapely
11 import shapely.geos
~\.conda\envs\geojsongen\lib\site-packages\pyproj\__init__.py in <module>
47 import warnings
48
---> 49 import pyproj.network
50 from pyproj._datadir import ( # noqa: F401 pylint: disable=unused-import
51 _pyproj_global_context_initialize,
~\.conda\envs\geojsongen\lib\site-packages\pyproj\network.py in <module>
8 import certifi
9
---> 10 from pyproj._network import ( # noqa: F401 pylint: disable=unused-import
11 _set_ca_bundle_path,
12 is_network_enabled,
ImportError: DLL load failed while importing _network: The specified module could not be found.
Your issue is happening here as shown in your traceback
----> 1 import pandas as pd
Make sure you have pandas installed.
pip install pandas
It also says that numpy C-extentions failed. Install numpy as well:
pip install numpy
While you're at it, make sure you have the other modules installed as well.
If you're still getting the same error, it's possible that setuptools is not properly installed. Do this:
pip uninstall -y numpy
pip uninstall -y setuptools
pip install setuptools
pip install numpy
If you still don't have any luck, try this:
pip install --upgrade --force-reinstall numpy

No module named 'sklearn.neighbors._base'

I have recently installed imblearn package in jupyter using
!pip show imbalanced-learn
But I am not able to import this package.
from tensorflow.keras import backend
from imblearn.over_sampling import SMOTE
I get the following error
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-20-f19c5a0e54af> in <module>
1 # from sklearn.utils import resample
2 from tensorflow.keras import backend
----> 3 from imblearn.over_sampling import SMOTE
4
5
~/.virtualenvs/p3/lib/python3.6/site-packages/imblearn/__init__.py in <module>
32 Module which allowing to create pipeline with scikit-learn estimators.
33 """
---> 34 from . import combine
35 from . import ensemble
36 from . import exceptions
~/.virtualenvs/p3/lib/python3.6/site-packages/imblearn/combine/__init__.py in <module>
3 """
4
----> 5 from ._smote_enn import SMOTEENN
6 from ._smote_tomek import SMOTETomek
7
~/.virtualenvs/p3/lib/python3.6/site-packages/imblearn/combine/_smote_enn.py in <module>
8 from sklearn.utils import check_X_y
9
---> 10 from ..base import BaseSampler
11 from ..over_sampling import SMOTE
12 from ..over_sampling.base import BaseOverSampler
~/.virtualenvs/p3/lib/python3.6/site-packages/imblearn/base.py in <module>
14 from sklearn.utils.multiclass import check_classification_targets
15
---> 16 from .utils import check_sampling_strategy, check_target_type
17
18
~/.virtualenvs/p3/lib/python3.6/site-packages/imblearn/utils/__init__.py in <module>
5 from ._docstring import Substitution
6
----> 7 from ._validation import check_neighbors_object
8 from ._validation import check_target_type
9 from ._validation import check_sampling_strategy
~/.virtualenvs/p3/lib/python3.6/site-packages/imblearn/utils/_validation.py in <module>
11
12 from sklearn.base import clone
---> 13 from sklearn.neighbors._base import KNeighborsMixin
14 from sklearn.neighbors import NearestNeighbors
15 from sklearn.utils.multiclass import type_of_target
ModuleNotFoundError: No module named 'sklearn.neighbors._base'
Other packages in the environment
numpy==1.16.2
pandas==0.24.2
paramiko==2.1.1
matplotlib==2.2.4
scikit-learn==0.22.1
Keras==2.2.4
tensorflow==1.12.0
tensorboard==1.12.0
tensorflow-hub==0.4.0
xlrd==1.2.0
flask==1.0.2
wtforms==2.2.1
bs4==0.0.1
gensim==3.8.1
spacy==2.2.3
nltk==3.4.5
wordcloud==1.6.0
pymongo==3.10.1
imbalanced-learn==0.6.1
I checked the sklearn package, it contains base module, not _base. But modifying it may not be the right solution. Any other solution to fix this issue.
If in case you want to persist with the latest version of scikit-learn, add the following code to your script or execute the following code in your environment before installing imblearn
import sklearn.neighbors._base
sys.modules['sklearn.neighbors.base'] = sklearn.neighbors._base
This has to be after
pip install sklearn
or in a notebook environment:
!pip install sklearn
This problem stems from the fact that certain modules are named with an underscore in the newer scikit-learn releases
Previous sklearn.neighbors.base has been renamed to sklearn.neighbors._base in version 0.22.1.
You have probably a version of scikit-learn older than that.
Installing the latest release solves the problem:
pip install -U scikit-learn
or
pip install scikit-learn==0.22.1
I had a similar problem trying to import SMOTE from imblearn.over_sampling and my version of scikit-learn was up to date (0.24.1). What worked for me was:
First I downgraded my scikit learn version to 0.22.1 using
pip install scikit-learn==0.22.1
Next, I updated the imbalanced-learn package using:
pip install -U imbalanced-learn
That uninstalled scikit-learn-0.22.1, installed the updated version (scikit-learn-0.24.1), and updated the imbalanced-learn package. Everything worked fine thereafter.
If it is in a particular env, you must copy the _base file or base file to the env from package file.
I had the same problem in my tensorflow env. I just copied _base and base file to my tensorflow env and worked.

Issues while importing imblearn

I am trying to import SMOTE in my jupyter notebook.I tried the following steps;
I first installed imblearn using the following command in my terminal
conda install -c glemaitre imbalanced-learn
Then i used the following command to import imblearn in my notebook;
from imblearn import under_sampling, over_sampling
I am getting the following error;
<ipython-input-36-d0524665b8f2> in <module>()
----> 1 from imblearn import under_sampling, over_sampling
~/anaconda3/lib/python3.6/site-packages/imblearn/under_sampling/__init__.py in <module>()
4 """
5
----> 6 from .prototype_generation import ClusterCentroids
7
8 from .prototype_selection import RandomUnderSampler
~/anaconda3/lib/python3.6/site-packages/imblearn/under_sampling/prototype_generation/__init__.py in <module>()
4 """
5
----> 6 from .cluster_centroids import ClusterCentroids
7
8 __all__ = [
~/anaconda3/lib/python3.6/site-packages/imblearn/under_sampling/prototype_generation/cluster_centroids.py in <module>()
12 from scipy import sparse
13
---> 14 from sklearn.cluster import KMeans
15 from sklearn.neighbors import NearestNeighbors
16 from sklearn.utils import safe_indexing
~/anaconda3/lib/python3.6/site-packages/sklearn/cluster/__init__.py in <module>()
4 """
5
----> 6 from .spectral import spectral_clustering, SpectralClustering
7 from .mean_shift_ import (mean_shift, MeanShift,
8 estimate_bandwidth, get_bin_seeds)
~/anaconda3/lib/python3.6/site-packages/sklearn/cluster/spectral.py in <module>()
15 from ..metrics.pairwise import pairwise_kernels
16 from ..neighbors import kneighbors_graph
---> 17 from ..manifold import spectral_embedding
18 from .k_means_ import k_means
19
~/anaconda3/lib/python3.6/site-packages/sklearn/manifold/__init__.py in <module>()
4
5 from .locally_linear import locally_linear_embedding, LocallyLinearEmbedding
----> 6 from .isomap import Isomap
7 from .mds import MDS, smacof
8 from .spectral_embedding_ import SpectralEmbedding, spectral_embedding
~/anaconda3/lib/python3.6/site-packages/sklearn/manifold/isomap.py in <module>()
9 from ..utils import check_array
10 from ..utils.graph import graph_shortest_path
---> 11 from ..decomposition import KernelPCA
12 from ..preprocessing import KernelCenterer
13
~/anaconda3/lib/python3.6/site-packages/sklearn/decomposition/__init__.py in <module>()
9 from .incremental_pca import IncrementalPCA
10 from .kernel_pca import KernelPCA
---> 11 from .sparse_pca import SparsePCA, MiniBatchSparsePCA
12 from .truncated_svd import TruncatedSVD
13 from .fastica_ import FastICA, fastica
~/anaconda3/lib/python3.6/site-packages/sklearn/decomposition/sparse_pca.py in <module>()
9 from ..utils import check_random_state, check_array
10 from ..utils.validation import check_is_fitted
---> 11 from ..linear_model import ridge_regression
12 from ..base import BaseEstimator, TransformerMixin
13 from .dict_learning import dict_learning, dict_learning_online
~/anaconda3/lib/python3.6/site-packages/sklearn/linear_model/__init__.py in <module>()
10 # complete documentation.
11
---> 12 from .base import LinearRegression
13
14 from .bayes import BayesianRidge, ARDRegression
~/anaconda3/lib/python3.6/site-packages/sklearn/linear_model/base.py in <module>()
25
26 from ..externals import six
---> 27 from ..utils import Parallel, delayed
28 from ..base import BaseEstimator, ClassifierMixin, RegressorMixin
29 from ..utils import check_array, check_X_y
ImportError: cannot import name 'Parallel
Can anyone please guide me?
Thanks!
So it worked after I installed SMOTE using the following steps;
pip install -U imbalanced-learn
conda install -c conda-forge imbalanced-learn
Looks like I was installing it incorrectly.
I am not able to understand the errors in the previous installation.Would appreciate if someone could point those out to me.
Thanks!
Thanks, I have the same issue, but I ran the following command in terminal or command prompt to fix the issue.
pip install -U imbalanced-learn
after its successfull execution i ran following conda command
conda install -c conda-forge imbalanced-learn
that's how i fixed my problem
Adding these comments as an answer at the suggestion of joanis:
A convenient way to install packages to the same environment backing a Jupyter notebook is to use the modern magic commands for pip and conda in cells in the notebook. The magic commands %pip install <package name> and %conda install <package name> were added to make sure the installs done inside a Jupyter notebook get placed in the actual environment that backs the notebook, see here for more information. The use of the exclamation point alone in front of pip or conda wasn't capable of insuring installation to the proper backing environment, and this often lead to issues of users not understanding why they couldn't import properly after they thought they had installed following the advice of others.
(The % symbol will work in front of pip and conda for other commands besides installs, and so it is just easiest to think of best practice for the use of pip and conda inside Jupyter notebooks now as %pip ... or %conda ..., where ... represents the rest of the command.)
Because in most modern Jupyter systems automagics are enabled by default, you can actually leave off the symbol in front of pip or conda and get the modern magic commands used behind-the-scenes as well. Although it is often best to use the explicit % symbol so that you and others are more aware of what is happening.

Pip not installing package properly

So I am trying to get hmmlearn working in Jupyter, and I have come across an error while installing Hmmlearn using pip. I have tried this solution, but it didn't work.
It seems to me that pip does install the _hmmc file, but it does so incorrect. instead it has the name
_hmmc.cp35-win_amd64
and the file extesion is .PYD, instead of .c
When I run the code to import it, I get this error :
ImportError Traceback (most recent call last)
<ipython-input-1-dee84c3d5ff9> in <module>()
7 import os
8 from pyAudioAnalysis import audioBasicIO as aB
----> 9 from pyAudioAnalysis import audioAnalysis as aA
C:\Users\gover_000\Documents\GitHub\Emotion-Recognition-Prototype\pyAudioAnalysis\audioAnalysis.py in <module>()
15 import audioFeatureExtraction as aF
16 import audioTrainTest as aT
---> 17 import audioSegmentation as aS
18 import audioVisualization as aV
19 import audioBasicIO
C:\Users\gover_000\Documents\GitHub\Emotion-Recognition-Prototype\pyAudioAnalysis\audioSegmentation.py in <module>()
16 import sklearn
17 import sklearn.cluster
---> 18 import hmmlearn.hmm
19 import cPickle
20 import glob
C:\Users\gover_000\Anaconda3\envs\python2\lib\site-packages\hmmlearn\hmm.py in <module>()
19 from sklearn.utils import check_random_state
20
---> 21 from .base import _BaseHMM
22 from .utils import iter_from_X_lengths, normalize
23
C:\Users\gover_000\Anaconda3\envs\python2\lib\site-packages\hmmlearn\base.py in <module>()
11 from sklearn.utils.validation import check_is_fitted
12
---> 13 from . import _hmmc
14 from .utils import normalize, log_normalize, iter_from_X_lengths
15
ImportError: cannot import name _hmmc
I don't know why pip just doesn't install it correctly, even when I tried to use --no-cache-dir
Edit: So i figured out what the problem was. my active python enviroment was python 3.5, as i was manually transferring the installed files to my enviroment, it failed because i had the wrong version.
I had to change my active python enviroment: using activate <my_enviroment name>
after that i could just use pip to install it again and it worked this time.
Looking at your error message I guess that you have downloaded the hmmlearn package from GIT. Have you tried using a wheel (*.whl) file instead? You can download one from here. Check out which version fits your python installation.
Then use:
pip install <the_wheel_that_corresponds_to_your_python_version>.whl
Hope it helps.
So i figured out what the problem was. my active python enviroment was python 3.5, as i was manually transferring the installed files to my enviroment, it failed because i had the wrong version. I had to change my active python enviroment: using activate <my_enviroment_name> after that i could just use pip to install it again and it worked this time.
not sure if it could be helpful to anyone but I installed hmmlearn as follows in my Jupyter Lab:
import sys
!{sys.executable} -m pip install hmmlearn

ImportError: cannot import name murmurhash3_32

I am trying to use the sklearn.qda package in python. I have installed it successfully but when Itry to import it I get the error message below. Can anybody tell me what should I do to fix this?
In [3]: from sklearn.qda import QDA
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-3-7d7abf937d66> in <module>()
----> 1 from sklearn.qda import QDA
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/sklearn/qda.py in <module>()
12
13 from .base import BaseEstimator, ClassifierMixin
---> 14 from .utils.fixes import unique
15 from .utils import check_arrays, array2d
16
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/sklearn/utils/__init__.py in <module>()
7 import warnings
8
----> 9 from .murmurhash import murmurhash3_32
10 from .validation import (as_float_array, check_arrays, safe_asarray,
11 assert_all_finite, array2d, atleast2d_or_csc,
ImportError: cannot import name murmurhash3_32
I had the same problem, I run:
sudo pip install -U scikit-learn
and now everything is working fine
I started a new shell and this problem went away
I faced the similar situation of getting mumurhash error while installing sklearn.preprocessing library.
I upgraded numpy version from 1.13 to 1.15
using
pip install --upgrade numpy
After this, I was able to import the sklearn library.
I fixed this by upgrading murmurhash to 1.0.5.
I faced a similar problem, so there are mainly two solutions
Either run it in administrator mode and install all the libraries and run in admin mode. Something that I would not recommend
Use virtualenv to install the libraries again and run your command in the virtualenv. This worked for me.
Hope this helps

Categories

Resources