ghm_ghm 发表于 2006-8-24 17:38

怎么归一化

p=[397.4 374.4 364.9 351.8 350.8 377.3 407.8 458.7 475.0 495.5 506.3 525.7 514.0 477.3 448.4 456.9 474.5 484.1 501.4 571.8 609.9 580.8 527.3 461.1 11.7 -8.7 0;
   404.1 370.2 357.3 338.0 336.8 345.2 383.9 420.3 436.1 483.7 477.3 487.7 481.9 434.0 426.6 438.7 447.9 451.5 474.2 550.0 596.2 570.9 510.5 440.5 17.2 -0.2 0;
   385.0 353.7 330.2 333.7 323.7 333.4 338.9 425.3 456.7 475.9 456.6 479.1 463.0 419.5 416.6 430.5 432.7 456.7 479.4 552.1 600.8 557.9 516.6 447.4 22.1 1.3 0;
   387.3 365.1 348.2 344.2 341.0 347.1 588.6 448.3 465.8 490.9 491.1 505.8 497.6 452.3 440.8 458.7 458.8 478.7 509.9 587.8 607.5 580.5 531.9 459.7 19.8 6.7 0;
   409.2 375.9 367.9 361.6 358.7 369.2 393.8 432.2 465.7 489.6 486.7 494.4 493.7 443.1 437.5 446.5 447.2 461.7 492.5 553.2 617.4 584.6 535.9 467.2 14.1 3.1 0;
   406.1 374.8 354.6 349.4 341.9 358.8 384.1 410.1 467.7 490.8 471.1 469.2 459.8 431.2 426.4 431.1 448.3 460.9 490.4 545.1 597.2 573.4 518.5 431.0 19.5 1.9 0;
   378.4 344.1 334.6 329.2 333.6 341.7 384.3 440.2 464.1 474.0 471.4 477.8 465.1 424.9 426.0 443.4 450.6 465.5 506.2 569.1 604.3 575.9 524.5 445.4 21.2 5.0 0;
   375.0 348.3 345.7 337.9 324.7 341.4 370.3 413.8 436.1 447.2 457.9 484.1 485.1 434.6 436.6 445.7 446.5 466.3 489.0 534.0 615.0 581.8 523.0 437.9 16.7 5.7 0;
389.2 354.4 340.6 335.3 331.1 353.2 387.6 434.6 460.7 488.0 491.0 510.6 502.7 460.2 456.2 467.3 470.5 502.4 529.3 574.3 616.4 585.2 529.9 447.0 15.6 2.5 0.5;
397.2 374.1 364.4 339.4 341.6 352.5 390.7 451.4 483.8 516.2 497.7 517.2 521.8 480.0 474.3 489.3 502.1 518.6 568.0 621.5 666.8 631.3 575.8 497.2 15.4 4.2 1;
442.5 416.7 408.4 400.8 390.0 412.8 437.1 493.3 517.2 543.1 533.1 532.4 535.2 476.7 485.2 494.0 506.6 515.4 555.9 601.5 670.6 646.3 590.8 510.4 15.7 0.2 0;
452.4 437.6 406.2 389.6 394.0 504.2 426.1 475.6 518.6 542.2 530.0 530.7 535.9 490.7 480.6 499.4 505.2 530.2 552.0 588.0 654.7 624.9 581.4 511.5 20.9 5.8 0;
451.2 405.7 392.1 383.2 386.8 399.7 422.0 477.1 508.5 538.0 514.8 535.6 528.9 495.0 495.9 480.3 495.9 515.7 525.4 558.4 608.4 600.8 558.2 488.2 25.3 6.6 0]';
>> for i=1:27
p(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));
end
>> p

p =

Columns 1 through 8

    0.2894    0.3760    0.1292    0.1589    0.4419    0.4018    0.0439         0
    0.3241    0.2791    0.1027    0.2246    0.3401    0.3283         0    0.0449
    0.4437    0.3465         0    0.2302    0.4821    0.3120    0.0563    0.1982
    0.3156    0.1229    0.0628    0.2095    0.4525    0.2821         0    0.1215
    0.3855    0.1863         0    0.2461    0.4979    0.2589    0.1408    0.0142
    0.2570    0.0691         0    0.0802    0.2096    0.1487    0.0486    0.0468
    0.2759    0.1802         0    1.0000    0.2199    0.1810    0.1818    0.1258
    0.5841    0.1226    0.1827    0.4591    0.2656         0    0.3618    0.0445
    0.4715         0    0.2497    0.3600    0.3588    0.3830    0.3394         0
    0.5036    0.3806    0.2993    0.4557    0.4421    0.4546    0.2795         0
    0.6497    0.2706         0    0.4510    0.3935    0.1895    0.1935    0.0170
    0.8509    0.2786    0.1491    0.5512    0.3795         0    0.1295    0.2244
    0.7122    0.2904    0.0420    0.4967    0.4455         0    0.0696    0.3325
    0.7656    0.1921         0    0.4344    0.3126    0.1550    0.0715    0.2000
    0.4010    0.1261         0    0.3052    0.2636    0.1236    0.1185    0.2522
    0.3832    0.1190         0    0.4093    0.2322    0.0087    0.1872    0.2206
    0.5656    0.2057         0    0.3532    0.1962    0.2111    0.2422    0.1867
    0.4142         0    0.0661    0.3456    0.1296    0.1194    0.1779    0.1881
    0.2900         0    0.0554    0.3806    0.1951    0.1727    0.3412    0.1578
    0.4320    0.1829    0.2069    0.6149    0.2194    0.1269    0.4011         0
    0.1841         0    0.0618    0.1519    0.2849    0.0134    0.1089    0.2527
    0.2590    0.1471         0    0.2557    0.3020    0.1753    0.2036    0.2704
    0.2092         0    0.0760    0.2665    0.3163    0.0996    0.1743    0.1557
    0.3739    0.1180    0.2037    0.3565    0.4497         0    0.1789    0.0857
         0    0.4044    0.7647    0.5956    0.1765    0.5735    0.6985    0.3676
         0    0.5519    0.6494    1.0000    0.7662    0.6883    0.8896    0.9351
         0         0         0         0         0         0         0         0

Columns 9 through 13

    0.1835    0.2868    0.8721    1.0000    0.9845
    0.1102    0.3209    0.7765    1.0000    0.6588
    0.1330    0.4373    1.0000    0.9719    0.7916
    0.0852    0.1425    1.0000    0.8436    0.7542
    0.1053    0.2546    0.9431    1.0000    0.8976
    0.1159    0.1118    0.4649    1.0000    0.3882
    0.1950    0.2074    0.3933    0.3492    0.3328
    0.2945    0.4964    1.0000    0.7873    0.8053
    0.2982    0.5782    0.9830    1.0000    0.8776
    0.4254    0.7195    1.0000    0.9906    0.9468
    0.4497    0.5373    1.0000    0.9595    0.7608
    0.6235    0.7229    0.9518    0.9262    1.0000
    0.5637    0.8147    0.9908    1.0000    0.9080
    0.5391    0.8013    0.7576    0.9430    1.0000
    0.4994    0.7276    0.8651    0.8071    1.0000
    0.5341    0.8534    0.9216    1.0000    0.7228
    0.5115    0.9391    1.0000    0.9811    0.8552
    0.6468    0.8526    0.8119    1.0000    0.8158
    0.5874    1.0000    0.8710    0.8294    0.5458
    0.4606    1.0000    0.7714    0.6171    0.2789
    0.2715    0.9489    1.0000    0.7863    0.1640
    0.3088    0.8303    1.0000    0.7579    0.4853
    0.2416    0.8132    1.0000    0.8829    0.5940
    0.1988    0.8224    0.9863    1.0000    0.7106
    0.2868    0.2721    0.2941    0.6765    1.0000
    0.7273    0.8377    0.5779    0.9416    0.9935
    0.5000    1.0000         0         0         0

>> 为什么我的归一化出现这么多0?高手,请指教!

[ 本帖最后由 lxq 于 2006-12-23 10:50 编辑 ]

buaalqq 发表于 2006-8-24 19:23

零的位置好像就是那一行的最小值吧。

songzy41 发表于 2006-8-24 19:58

在原P中最小值处处理后便为0,因此每行一定有一个0,如果在一行中有另一个数和最小值一样,便出现二个0。应该说,计算结果没有错。

happy 发表于 2006-8-24 21:11

同意楼上的结论,结果没有问题

ghm_ghm 发表于 2006-8-29 10:22

谢谢

可是,我的前24个向量是电力负荷,后3个向量是温度和天气情况,请问电力负荷怎么会有0值呢?请高手继续帮助分析,好吗?

songzy41 发表于 2006-8-29 14:57

原帖由 ghm_ghm 于 2006-8-29 10:22 发表
可是,我的前24个向量是电力负荷,请问电力负荷怎么会有0值呢?
电力负荷并没有为0,这是在计算中计算公式所产生的
p(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));
这计算公式是得到一行中的最大值为1,最小值为0。当为0时,并不是物理意义上的0(电力负荷为0),而只能说明这时电力负荷最小。

realhappy 发表于 2006-8-29 15:46

归一化后的数值不再是实质上的电荷值,得到的结果也要反归一化才能得到你要的结果。

ghm_ghm 发表于 2006-8-30 15:20

再请帮忙!

这样一组输入样本,采用何种方法归一最合理?
p=
其中,前5项是电力负荷值,11.7是最高气温,-8.7是最低气温,0表示晴天。
高手请指教!

happy 发表于 2006-8-30 19:37

matlab中的归一化处理有三种方法
1. premnmx、postmnmx、tramnmx
2. restd、poststd、trastd
3. 自己编程
具体用那种方法就和你的具体问题有关了

ghm_ghm 发表于 2006-9-1 10:43

请帮忙!

我试了,可是只有premnmx方法可用,且归一后的数值在-1到1之间,不可取。我请高手将
p=[397.4 374.4 364.9 351.8 350.8 377.311.7 -8.7 0;
356.2 368.1 374.2 340.5 360.9 354.2 10.2 -2.1 0]‘;
]
其中,前6项是电力负荷值,11.7是最高气温,-8.7是最低气温,0表示晴天。请高手将此输入样本数据归一到0.1~0.9之间,请将代码写清楚,好吗?谢谢了!
高手请指教!

jimin 发表于 2006-9-1 11:59

0.1+(x-min)/(max-min)*(0.9-0.1)其中max和min分别表示样本最大值和最小值。
反过来不难获得。

for i=1:27
p(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));
end
这个是归一到0 1 之间
把这句用上面的公式表示就可以了

[ 本帖最后由 jimin 于 2006-9-1 12:06 编辑 ]

sscale 发表于 2006-9-1 20:56

我觉得这样不好,还不如直接
pm=max(abs(p(i,:))); p(i,:)=p(i,:)/pm;
这样0值地方还是0,画出图来更直观。

ghm_ghm 发表于 2006-9-6 16:54

你好!

我用pm=max(abs(p(i,:))); p(i,:)=p(i,:)/pm;方法归一,计算效果很好,最后得出

out=';
请问怎样反归一,算出实际数值!谢谢!

ghm_ghm 发表于 2006-9-6 16:54

你好!

我用pm=max(abs(p(i,:))); p(i,:)=p(i,:)/pm;方法归一,计算效果很好,最后得出

out=';
请问怎样反归一,算出实际数值!谢谢!

F117_ren_0 发表于 2006-9-8 11:22

function PGY=GuiYi(P)
=size(P);
for i=1:m
   PGY(i,:)=(P(i,:)-min(P(i,:)))/(max(P(i,:))-min(P(i,:)));
end
%反归一化方法。SimP表示输入向量P_Test仿真后的结果,OriginT表示目标向量在
%归一化之前的值。
function FGY=FanGuiYi(SimP,OriginT)
=size(SimP);
for i=1:m
   FGY(i,:)=SimP(i,:)*(max(OriginT(i,:))-min(OriginT(i,:)))+min(OriginT(i,:));
end
反归一化的时候注意,不是跟你out归一,而是放到前面样本里,跟样本一起归一,但出来的结果是唯一!~
页: [1] 2
查看完整版本: 怎么归一化