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])

这是错误消息:

predict_first_stage 中的文件“main_FM.py”,第 286 行

测试[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 回答