不知道这题该怎么做
本帖最后由 小钱还没睡醒 于 2022-10-19 13:00 编辑题目:利用闭包实现数据的归一化与反归一化。提示: Xmax 和 Xmin 为自由变量(含义见参考资料2)。
所有数据写在代码之中,需 print 出待归一化数据的归一化结果,以及待反归一化数据的反归一化结果。
参考资料2: 数据归一化与反归一化
在统计分析或机器学习中,往往需要对输入数据进行归一化,使得所有数据的取值都在0到1之间,以便于排除由于数据标度不同造成的负面影响。
归一化的公式为:
Xnorm = ( x - Xmin) / ( Xmax - Xmin )
其中,x∈X为一个数据, 为多个数据组成的向量,Xmax 、 Xmin 分别为 的最大值和最小;值,Xnorm 为 x 归一化之后的结果。
归一化的关键信息是 Xmax 和 Xmin ,它们可被用于后续数据反归一化。反归一化的公式为:
x = Xmin + Xnorm( Xmax - Xmin)
实现步骤:
根据样本数据确定最大值和最小值;
根据最大值和最小值归一化新的数据;
根据最大值和最小值反归一化新的数据。
实验要求2数据
样本数据 [399, 641, 412, 419, 40, 691, 874, 961, 310, 624, 490, 291, 266, 946, 205, 627, 622, 965, 65, 889, 410,
559, 234, 220, 130, 247, 978, 275, 968, 164, 958, 316, 81, 328, 508, 254, 916, 236, 718, 452, 869, 825, 93, 915, 819,
175, 763, 257, 266, 689, 712, 255, 940, 38, 642, 355, 592, 275, 175, 638, 363, 678, 521, 733, 223, 356, 799]
待归一化数据
待反归一化数据 [0.3202127659574468, 0.7585106382978724, 0.1148936170212766, 0.9382978723404255,
0.5414893617021277, 0.8095744680851064, 0.5851063829787234, 0.8776595744680851,
0.33404255319148934, 0.009574468085106383, 0.9995744680851064, 0.6797872340425531,
0.7595744680851064, 0.20638297872340425, 0.14893617021276595, 0.5563829787234043]
这题我毫无头绪,有点看不懂题
应该是这样理解:
简单点理解,其实 归一化 就是 某个待归一化的数(测量值)dx(满足 SMin <= dx <= SMax ,即以样本数据为基准参考,不能太大也不能太小) 这样就可以套用归一化的公式,计算得出 0-1 的 归一化normalized后的 值。
反归一化,也是类似,只是待反归一化的值 是 0-1的某个小数值, 套用反归一化denormalized公式,即可 算出对应的 反归一化值(某个基于样本数据的极值 可能的测量值)。
代码如下:
sdata =
Xmax, Xmin = max(sdata), min(sdata)
Xmax, Xmin
(978, 38)
d =
normalized = list(map(lambda x: (x-Xmin)/(Xmax-Xmin), d))
normalized
nd =
denormalized = list(map(lambda n: Xmin + n * (Xmax-Xmin), nd ))
denormalized
页:
[1]