web-dev-qa-db-fra.com

scikit-learn.impute n'est pas importé d'Imputer via Spyder à l'aide du code du didacticiel Machine Learning A-Z

Mon code ne fonctionne pas que j'ai copié Word pour Word à partir du Machine Learning AZ ™: Pratique Python & R dans le cours du didacticiel Data Science. J'utilise Python 3.7, j'ai installé le paquet scikit-learn dans mon environnement. Cela ne fonctionne pas, j'ai essayé de chercher un paquet qui a sklearn bien qu'il ne semble rien trouver. Cela me donne cette erreur.
J'exécute mon environnement via Anaconda.

ImportError: cannot import name 'Imputer' from 'sklearn.preprocessing' (C:\Users\vygan\.conda\envs\env\lib\site-packages\sklearn\preprocessing\__init__.py)

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd



# Importing the dataset
dataset = pd.read_csv('Data.csv')
X = pd.DataFrame(dataset.iloc[:, :-1].values)
y = pd.DataFrame(dataset.iloc[:, 3].values)

# Taking care of missing data
from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values = 'NaN', strategy = 'mean', axis = 0)
imputer = imputer.fit(X[:, 1:3])
X[:, 1:3] = imputer.transform(X[:, 1:3])
2
Vygandas Razhas

il est passé en permanence du prétraitement à la bibliothèque d'imputation, vous pouvez l'appeler comme:

from sklearn.impute import SimpleImputer

c'est tout à fait pareil. si cela ne fonctionne pas, vous devez le désinstaller avec pip et le réinstaller, il peut ne pas être installé correctement pour la première fois

il n'a plus d'axe, mais vous pouvez facilement le gérer avec l'en-tête pandas dataframe comme ceci:

si=SimpleImputer()
si.fit([dataset["headername"]])

il y a un paramètre de stratégie qui vous permet de choisir entre "moyenne", "la plus fréquente", "médiane" et "constante"

mais il y a un autre imputer que j'aime plus:

from sklearn.impute import KNNImputer

qui impute les valeurs manquantes avec une moyenne de k voisins les plus proches

3
parsa

Une réponse plus complète:

Imputer ( https://sklearn.org/modules/generated/sklearn.preprocessing.Imputer.html `) ne peut être trouvé que dans les versions 0.19.1 et inférieures.

SimpleImputer est apparu dans les dernières versions et c'est ce dont vous avez besoin.


Essayez d'installer la dernière version:

 pip install -U scikit-learn # or using conda

Et puis utilisez:

from sklearn.impute import SimpleImputer

Source: https://github.com/mindsdb/lightwood/issues/75

2
makis

Votre code fonctionne bien pour moi. Quelle version de sklearn possédez-vous?

import sklearn
sklearn.__version__

"0,21,3"

Vous pouvez mettre à jour des packages avec conda de la manière suivante:

Comment mettre à jour le paquet scikit-learn dans anaconda

0
Carlos Mougan