3
votes

Avertissement de dépréciation dans scikit-learn

Bonjour à tous, j'apprends le machine learning, au début, le code fonctionnait bien, mais le lendemain, quand j'exécute à nouveau le code, il commence à me donner un avertissement sur la prise en charge des données manquantes dans un ensemble de données, je ne sais pas quoi le problème mais y a-t-il quelqu'un qui connaît la solution

LE CODE SOURCE:

DeprecationWarning: Class Imputer is deprecated; Imputer was deprecated in version 0.20 and will be removed in 0.22. Import impute.SimpleImputer from sklearn instead.

ET VOICI L'AVERTISSEMENT:

import numpy as np

import matplotlib.pyplot as plt

import pandas as pd

dataset = pd.read_csv('Data.csv')

x = dataset.iloc[:, :-1]

y = dataset.iloc[:, 3]


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])


4 commentaires

c'est un avertissement pas une erreur, en plus il vous dit quoi faire à la place


@EdChum pardon mon frère, il ne prend pas la moyenne de la valeur manquante de solution pour ça?


Modifiez votre question pour inclure ces informations, car elles ne figurent pas dans votre question


@EdChum ok frère


6 Réponses :


11
votes

SimpleImputer fonctionne presque de la même manière que l'ancien Imputer, il suffit d'importer et de l'utiliser à la place. L'imputer n'est plus utilisé.

from sklearn.impute import SimpleImputer

https://scikit-learn.org/stable/modules/generated/sklearn.impute.SimpleImputer.html


0 commentaires

1
votes

Imputer peut toujours être utilisé, il suffit d'ajouter les paramètres restants (verbeux et copier) et de les remplir si nécessaire.

from sklearn.preprocessing import Imputer

imputer = Imputer(missing_values="NaN", strategy="mean", axis=0, verbose=0, copy="True")

imputer = imputer.fit(X[:, 1:3])

X[:, 1:3] = imputer.transform(X[:, 1:3]))


0 commentaires

8
votes
from sklearn.impute import SimpleImputer

imputer = SimpleImputer(missing_values = np.nan, strategy = 'mean',verbose=0)

imputer = imputer.fit(X[:, 1:3])

X[:, 1:3] = imputer.transform(X[:, 1:3])

1 commentaires

Si besoin est, comment utiliser axis = 1 (imputer par ligne) dans SimpleImputer? Merci!



1
votes

Essayez ceci. Dans la nouvelle version de Python, SimpleImputer fonctionne.

from sklearn.impute import SimpleImputer

imputer = SimpleImputer(missing_values = np.nan, strategy = 'mean',verbose=0)

imputer = imputer.fit(X[:, 1:3])

X[:, 1:3] = imputer.transform(X[:, 1:3])


0 commentaires

2
votes

Prendre soin des données manquantes

from sklearn.impute import SimpleImputer

imputer = SimpleImputer(missing_values= np.nan, strategy='mean')

imputer = imputer.fit(X.iloc[:, 1:3])
X = imputer.transform(X.iloc[:, 1:3])

Utiliser .iloc aux lignes 3 et 4 serait utile!


1 commentaires

Si quelqu'un trouvait cela utile comme je viens de le faire, j'ai trouvé que je devais également utiliser .iloc sur la réaffectation de variable à la ligne 4.



2
votes
from sklearn.impute import SimpleImputer

imputer = SimpleImputer(missing_values = np.nan, strategy = 'mean', verbose = 0)

imputer = imputer.fit(X[:, 1:3])
X[:, 1:3] = imputer.transform(X[:, 1:3])

0 commentaires