18

scikit-learn の Imputerクラスを使用して、データセットの欠損値を予測するための非常に基本的なプログラムを作成しています。

NumPy 配列を作成し、strategy='mean' で Imputer オブジェクトを作成し、NumPy 配列で fit_transform() を実行しました。

fit_transform() を実行した後に配列を出力すると、「ナン」が残り、予測が得られません。

ここで何が間違っていますか?欠損値を予測するにはどうすればよいですか?

import numpy as np
from sklearn.preprocessing import Imputer

X = np.array([[23.56],[53.45],['NaN'],[44.44],[77.78],['NaN'],[234.44],[11.33],[79.87]])

print X

imp = Imputer(missing_values='NaN', strategy='mean', axis=0)
imp.fit_transform(X)

print X
4

3 に答える 3

27

ドキュメントによると新しい配列sklearn.preprocessing.Imputer.fit_transformを返します。引数配列は変更されません。したがって、最小限の修正は次のとおりです。

X = imp.fit_transform(X)
于 2014-07-29T14:20:30.107 に答える
2

注: sklearn ライブラリの変更により、以下に示すように「NaN」を np.nan に置き換える必要があります。

 from sklearn.preprocessing import Imputer
 imputer = Imputer(missing_values= np.nan,strategy='mean',axis=0)  
 imputer = imputer.fit(X[:,1:3])
 X[:,1:3]= imputer.transform(X[:,1:3])
于 2018-08-17T18:09:25.257 に答える