En essayant d'exécuter ce
from sklearn.impute import SimpleImputer imputer = SimpleImputer(missing_values ="NaN", strategy = "mean") imputer = SimpleImputer.fit(X[:,1:3]) X[:,1:3] = SimpleImputer.transform(X[:,1:3])
j'obtiens une erreur
TypeError: fit () manquant 1 argument positionnel obligatoire: 'X'
Mais j'ai déjà fourni x, non? Quelle est la solution pour cela?
3 Réponses :
Selon ce module Scikit-learn , la syntaxe correcte doit être :
imputer.fit(X[:,1:3 )
au lieu de:
imputer = SimpleImputer.fit (X [:, 1: 3])
cela a fonctionné mais a soulevé une autre exception. En fait, j'essaie de remplacer la valeur "NaN" par la moyenne d'une autre observation
ValueError: l'entrée contient NaN, l'infini ou une valeur trop grande pour dtype ('float64').
X contient-il des valeurs NaN ou inf?
oui, il contient des valeurs NaN et c'est ce que j'essaie de remplacer par la moyenne d'une autre observation @sheldon
Consultez ce post: stackoverflow.com/questions/31323499/...
Le code complètement travaillé ressemble à:
missing_values = np.nan
Veuillez faire attention à:
from sklearn.impute import SimpleImputer imputer = SimpleImputer(missing_values = np.nan, strategy = "mean") imputer = imputer.fit(X[:,1:3]) X[:,1:3] = imputer.transform(X[:,1:3])
Votre code:
from sklearn.impute import SimpleImputer imputer = SimpleImputer(missing_values=np.nan, strategy='mean',fill_value=None, verbose=0, copy=True) imputer = imputer.fit(X[:, 1:3]) X[:, 1:3] = imputer.transform(X[:, 1:3])
Code correct:
from sklearn.impute import SimpleImputer # PAY ATTENTION: to NaN as np.nan imputer = SimpleImputer(**missing_values ="NaN"**, strategy = "mean") imputer = SimpleImputer.fit(X[:,1:3]) # PAY ATTENTION: instead of "SimpleImputer.transform" use "imputer.transform" X[:,1:3] = **SimpleImputer**.transform(X[:,1:3])
Quelle est la valeur de x?
la méthode "fit" n'accepte que les tableaux numpy en entrée. alors assurez-vous qu'il est du bon type
dataset = pd.read_csv ('data.csv')
X = dataset.iloc [:,: -1] .values
@ gireesh4manu j'ai fourni ceci pour x