【发布时间】:2018-10-24 14:48:27
【问题描述】:
我正在尝试对我的数据应用规范化,并且我已经尝试了使用 sklearn 包现成的可用于此类需求的常规缩放技术。但是,我希望实现一种称为十进制缩放的东西。
我在research paper 中读到了它,看起来像是一种可以改善神经网络回归结果的技术。根据我的理解,这是我认为需要做的 -
- 假设属性X的范围是-4856到28。X的最大绝对值是4856。
- 要通过十进制缩放进行标准化,我需要将每个值除以 10000 (c = 4)。在这种情况下,-4856 变为 -0.4856,而 28 变为 0.0028。
- 所以对于所有值:新值 = 旧值/10^c
如何在 Python 中将其重现为函数,以便规范化数据集中的所有特征(按列)?
Input:
A B C
30 90 75
56 168 140
28 84 70
369 1107 922.5
485 1455 1212.5
4856 14568 12140
40 120 100
56 168 140
45 135 112.5
78 234 195
899 2697 2247.5
Output:
A B C
0.003 0.0009 0.0075
0.0056 0.00168 0.014
0.0028 0.00084 0.007
0.0369 0.01107 0.09225
0.0485 0.01455 0.12125
0.4856 0.14568 1.214
0.004 0.0012 0.01
0.0056 0.00168 0.014
0.0045 0.00135 0.01125
0.0078 0.00234 0.0195
0.0899 0.02697 0.22475
【问题讨论】:
-
您需要帮助哪一部分?问题可以分为三个任务:读取数据(从 .csv 文件?)、应用规范化、重写数据。
-
我想对数据或因变量应用标准化。我打算计算每列中找到的数字的最大长度并使用该数字(c)提高到 10 的幂,然后用这个 10^c 缩放列中的所有原始数字以实现小数点标准化值。
-
这是在 Pandas 中的吗?
-
我更喜欢python中的这个,不确定pandas如何提供帮助,但也许,我可能需要将数字转换为字符串以获得列中最大绝对值的长度,如下所示:c = df[x].map(len).max() df[x] = df[x]/10**c
标签: python-3.x