scikit learn 的 fit_transform 是否也会转换我的原始数据框?
Does scikit learn's fit_transform also transform my original dataframe?
我正在使用 scikit 学习的 StandardScaler() 并注意到在我应用 transform(xtrain) 或 fit_transform(xtrain) 之后,它也会更改我的 xtrain 数据帧。这应该发生吗?如何避免 StandardScaler 更改我的数据框? (我试过使用 copy=False)
xtrain.describe() #everything ok here
scalar = StandardScaler()
xtrain2 = scalar.fit_transform(xtrain)
在这个阶段,我希望 xtrain 不会改变,而 xtrain2 是 xtrain 的缩放版本。但是当我在 2 个数据帧上 运行 describe() 时,我发现它们是相同的并且都被缩放了。这是为什么?
我遇到同样的问题:
scalekey = scalar.fit(xtrain)
xtrain2 = scalekey.transform(xtrain)
为了不修改你的 df:
你可以复制一份并传递这个
xtrain2 = xtrain.copy()
scalar.fit_transform(xtrain2)
docs 指出 StandardScaler
的默认参数是 copy=True
所以它不应该修改你的 df。
考虑在 pandas 和 scikit-learn 中升级到 0.16.x 或更高版本。软件包作者不断改进每个软件包对待另一个软件包的方式。
我正在使用 scikit 学习的 StandardScaler() 并注意到在我应用 transform(xtrain) 或 fit_transform(xtrain) 之后,它也会更改我的 xtrain 数据帧。这应该发生吗?如何避免 StandardScaler 更改我的数据框? (我试过使用 copy=False)
xtrain.describe() #everything ok here
scalar = StandardScaler()
xtrain2 = scalar.fit_transform(xtrain)
在这个阶段,我希望 xtrain 不会改变,而 xtrain2 是 xtrain 的缩放版本。但是当我在 2 个数据帧上 运行 describe() 时,我发现它们是相同的并且都被缩放了。这是为什么?
我遇到同样的问题:
scalekey = scalar.fit(xtrain)
xtrain2 = scalekey.transform(xtrain)
为了不修改你的 df:
你可以复制一份并传递这个xtrain2 = xtrain.copy()
scalar.fit_transform(xtrain2)
docs 指出 StandardScaler
的默认参数是 copy=True
所以它不应该修改你的 df。
考虑在 pandas 和 scikit-learn 中升级到 0.16.x 或更高版本。软件包作者不断改进每个软件包对待另一个软件包的方式。