原博客http://blog.csdn.net/yb536/article/details/41050181點擊打開鏈接
1.數據矩陣單位化
方法一:
%%矩陣的列向量單位化
%輸出矩陣Y為單位化矩陣
%方法即是矩陣中所有元素除以該元素所在列向量的二范數
clc;
clear;
X=[790 3977 849 1294 1927 1105 204 1329
768 5037 1135 1330 1925 1459 275 1487
942 2793 820 814 1617 942 155 976
916 2798 901 932 1599 910 182 1135
1006 2864 1052 1005 1618 839 196 1081];
%方法一
[m,n]=size(X);
for i=1:n
A(1,i)=norm(X(:,i));
end
A=repmat(A,m,1);
Y=X./A;輸出結果:
Y =
0.3974 0.4932 0.3959 0.5290 0.4941 0.4601 0.4422 0.4890
0.3863 0.6247 0.5292 0.5437 0.4936 0.6074 0.5961 0.5471
0.4738 0.3464 0.3823 0.3327 0.4146 0.3922 0.3360 0.3591
0.4608 0.3470 0.4201 0.3810 0.4100 0.3789 0.3945 0.4176
0.5060 0.3552 0.4905 0.4108 0.4149 0.3493 0.4249 0.3977
方法二:
%%矩陣的列向量單位化
%輸出矩陣Y為單位化矩陣
%方法即是矩陣中所有元素除以該元素所在列向量的二范數
clc;
clear;
X=[790 3977 849 1294 1927 1105 204 1329
768 5037 1135 1330 1925 1459 275 1487
942 2793 820 814 1617 942 155 976
916 2798 901 932 1599 910 182 1135
1006 2864 1052 1005 1618 839 196 1081];
%方法二
[m,n]=size(X);
a=0;
for j=1:n
for i=1:m
a=a+X(i,j)^2;
end
A(1,j)=sqrt(a);
a=0;
end
A=repmat(A,m,1);
Y=X./A輸出結果:
Y =
0.3974 0.4932 0.3959 0.5290 0.4941 0.4601 0.4422 0.4890
0.3863 0.6247 0.5292 0.5437 0.4936 0.6074 0.5961 0.5471
0.4738 0.3464 0.3823 0.3327 0.4146 0.3922 0.3360 0.3591
0.4608 0.3470 0.4201 0.3810 0.4100 0.3789 0.3945 0.4176
0.5060 0.3552 0.4905 0.4108 0.4149 0.3493 0.4249 0.3977
結果同上。
2.數據矩陣歸一化
歸一化,將不同樣本的同一維度的數據歸一化。
函數:mapminmax
默認規范范圍(-1,1)
若想將規范范圍划為(0,1),可編寫Y=mapminmax(A,0,1);
此函數規整行向量中最大最小值,如果運用此函數,則A矩陣每一行為一個維度,每一列是一個樣本。
%%矩陣數據歸一化
%歸一化作用是處理奇異樣本矩陣
%將矩陣數據規范與一個范圍之中,使不同維度具有可比性
clc;
clear;
X=[790 3977 849 1294 1927 1105 204 1329
768 5037 1135 1330 1925 1459 275 1487
942 2793 820 814 1617 942 155 976
916 2798 901 932 1599 910 182 1135
1006 2864 1052 1005 1618 839 196 1081];
Y=mapminmax(X,0,1);
輸出結果:
Y =
0.1553 1.0000 0.1710 0.2889 0.4567 0.2388 0 0.2982
0.1035 1.0000 0.1806 0.2215 0.3465 0.2486 0 0.2545
0.2983 1.0000 0.2521 0.2498 0.5542 0.2983 0 0.3112
0.2806 1.0000 0.2748 0.2867 0.5417 0.2783 0 0.3643
0.3036 1.0000 0.3208 0.3032 0.5330 0.2410 0 0.3317
規范范圍為(-1,1)
%%矩陣數據歸一化
%歸一化作用是處理奇異樣本矩陣
%將矩陣數據規范與一個范圍之中,使不同維度具有可比性
clc;
clear;
X=[790 3977 849 1294 1927 1105 204 1329
768 5037 1135 1330 1925 1459 275 1487
942 2793 820 814 1617 942 155 976
916 2798 901 932 1599 910 182 1135
1006 2864 1052 1005 1618 839 196 1081];
Y=mapminmax(X);
輸出結果:
Y =
-0.6894 1.0000 -0.6581 -0.4222 -0.0867 -0.5224 -1.0000 -0.4037
-0.7929 1.0000 -0.6388 -0.5569 -0.3070 -0.5027 -1.0000 -0.4910
-0.4033 1.0000 -0.4958 -0.5004 0.1084 -0.4033 -1.0000 -0.3776
-0.4388 1.0000 -0.4503 -0.4266 0.0833 -0.4434 -1.0000 -0.2714
-0.3928 1.0000 -0.3583 -0.3936 0.0660 -0.5180 -1.0000 -0.3366
3.數據矩陣標准化
標准化的數據均值為0,標准差為1
標准化函數zscore(x)
就是原數據減去均值,再除以標准差(無偏估計)
即Z=(x-mean(x))./std(x);
%%矩陣數據標准化
clc;
clear;
X=[790 3977 849 1294 1927 1105 204 1329
768 5037 1135 1330 1925 1459 275 1487
942 2793 820 814 1617 942 155 976
916 2798 901 932 1599 910 182 1135
1006 2864 1052 1005 1618 839 196 1081];
Y=zscore(X);輸出結果:
Y =
-0.9261 0.4840 -0.7522 0.9640 1.1002 0.2177 0.0358 0.6225
-1.1419 1.5457 1.3487 1.1224 1.0886 1.6449 1.6257 1.3944
0.5651 -0.7020 -0.9653 -1.1488 -0.6967 -0.4395 -1.0614 -1.1023
0.3100 -0.6969 -0.3702 -0.6294 -0.8011 -0.5685 -0.4568 -0.3254
1.1929 -0.6308 0.7390 -0.3081 -0.6909 -0.8547 -0.1433 -0.5892
也可以按照上面的公式:
%%矩陣數據標准化
clc;
clear;
X=[790 3977 849 1294 1927 1105 204 1329
768 5037 1135 1330 1925 1459 275 1487
942 2793 820 814 1617 942 155 976
916 2798 901 932 1599 910 182 1135
1006 2864 1052 1005 1618 839 196 1081];
Y=(X-repmat(mean(X),5,1))./repmat(std(X),5,1);輸出結果:
Y =
-0.9261 0.4840 -0.7522 0.9640 1.1002 0.2177 0.0358 0.6225
-1.1419 1.5457 1.3487 1.1224 1.0886 1.6449 1.6257 1.3944
0.5651 -0.7020 -0.9653 -1.1488 -0.6967 -0.4395 -1.0614 -1.1023
0.3100 -0.6969 -0.3702 -0.6294 -0.8011 -0.5685 -0.4568 -0.3254
1.1929 -0.6308 0.7390 -0.3081 -0.6909 -0.8547 -0.1433 -0.5892
和以上結果一致。