繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM