slearn标准缩放器变换VS fit_transform输出

时间:2016-04-30 19:55:59

标签: python scikit-learn scaling sklearn-pandas

我正在使用sklearn标准缩放器来规范化pandas数据框中的某些列。虽然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])

这是错误消息:

  

文件“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

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

可能test是稀疏矩阵,而train则不是。{1}}。因此test[non_categorical_variable]失败,因为稀疏矩阵不支持gettitem接口。

如果您正在使用OneHotEncoder,则可以将其sparse参数设置为false。