私は、パンダのデータフレームのいくつかの列を正規化するためにsklearn標準スケーラを使用しています。 fit_transformは期待通りに機能しますが、変換は行いません。ここで私は何をすべきかです:slearn標準スケーラ変換VS fit_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])
そして、これはエラーメッセージです:
今File "main_FM.py", line 286, in predict_first_stage
test[non_categorical_features] = scaler.transform(test[non_categorical_features])
TypeError: 'coo_matrix' object has no attribute '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
ありがとうございました!
私たちが試してみるためにいくつかのサンプルデータをモックアップできますか? – flyingmeatball
は、それらの印刷ステートメントの出力を与えることができれば素晴らしいでしょう。さらに、エラーを再現する最小限の例を作成することができればさらに大きくなります。 'transform'を呼び出すと、それは以前にフィッティングされた' scaler'か新しいものかですか?これは、sklearnとpandasの奇妙で完全に成熟したやりとりではないかもしれません(関連する列をまずnumpyに変換して再確認します)。 – eickenberg
'non_categorical_features'はリストですか?あなたが表示しているエラーはスケーラから来ません(エラーメッセージの一部を投稿していない限り)。また、印刷文では、 'non_categorical_variable'ではなく' non_categorical_features'を使用しています – Dimosthenis