2

sklearn 標準スケーラーを使用して、パンダ データ フレームの一部の列を正規化しています。fit_transform は期待どおりに機能しますが、transform は機能しません。これが私がすることです:

non_categorical_variable = ['var1','var5']
scaler = StandardScaler()
train[non_categorical_variable] = scaler.fit_transform(train[non_categorical_variable])

そして、それは完全に機能しますが、これは機能しません:

test[non_categorical_variable] = scaler.transform(test[non_categorical_variable])

そして、これはエラーメッセージです:

ファイル "main_FM.py"、286 行目、predict_first_stage 内

test[non_categorical_features] = scaler.transform(test[non_categorical_features])

TypeError: 'coo_matrix' オブジェクトには属性 ' getitem ' がありませ

次のように入力するだけで、すべてが機能し、一致します。

print test[non_categorical_variable]
print scaler.transform(test[non_categorical_variable])

print type(test[non_categorical_variable])
print type(scaler.transform(test[non_categorical_variable]))

print test[non_categorical_variable].shape
print scaler.transform(test[non_categorical_variable]).shape

ご協力いただきありがとうございます!

4

1 に答える 1

0

おそらくtest疎行列ですが、そうでtrainはありません。したがってtest[non_categorical_variable]、疎行列は gettitem インターフェイスをサポートしていないため、失敗します。

OneHotEncoder を使用している場合は、そのsparse引数を false に設定できます。

于 2016-06-18T09:59:40.587 に答える