gpt4 book ai didi

python - 机器学习的扩展功能

转载 作者:行者123 更新时间:2023-11-30 09:28:49 24 4
gpt4 key购买 nike

我对如何正确缩放数据集有疑问。

它由以下部分组成

  1. 我当前存储为秒的日期

  2. 1 到 5 之间的值

  3. 大约 240 个 bool 值 1 或 0

所以一行看起来像

[1514761200, 3, 1, 1, 0, 0, 1, 0, 1,  ......]

我尝试应用scikit StandardScaler,但它会导致一些非常奇怪的值,一些 0 保持 0 其他缩放到类似 -1.736 的值。如果我然后对数据应用 inverse_transform ,一些 bool 值仍然是奇怪的数字。

我认为问题在于日期列中的巨大数字,我不确定。

但是,如果,处理日期的更好方法是什么,或者一般来说,我该如何处理不适合其余数据但又是强制性的 1/2 列。

谢谢。

最佳答案

在大多数情况下,缩放会分别应用于每个功能,这就是 StandardScaler 正在做的事情。因此,有些 0 保持为零,而另一些 0 则被转换,这是完全自然的。看下面的代码

int_mat = np.array([[0,0],[0,1],[0,2]])

输出

array([[0, 0],
[0, 1],
[0, 2]])

现在我们进行缩放

from sklearn.preprocessing import StandardScaler

ssc = StandardScaler()
int_scaled = ssc.fit_transform(int_mat)
inverse_scaling = ssc.inverse_transform(int_scaled)

int_scaled

array([[ 0.        , -1.22474487],
[ 0. , 0. ],
[ 0. , 1.22474487]])

如您所见,第一个特征(第一列)保持不变,因为它的均值已经为零。

逆变换结果为原始矩阵

逆缩放

array([[0.00000000e+00, 1.11022302e-16],
[0.00000000e+00, 1.00000000e+00],
[0.00000000e+00, 2.00000000e+00]])

关于python - 机器学习的扩展功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49509575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com