[英]Different output while using fit_transform vs fit and transform from sklearn
[英]slearn standard scaler transform VS fit_transform output
我正在使用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])
这是错误消息:
在predict_first_stage中输入“main_FM.py”,第286行
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
谢谢你的帮助!
可能test
是稀疏矩阵,而train
不是。 因此, test[non_categorical_variable]
失败,因为稀疏矩阵不支持gettitem接口。
如果您使用的是OneHotEncoder,则可以将其sparse
参数设置为false。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.