MATLAB數據矩陣單位化,歸一化,標準化

1.數據矩陣單位化

單位化就是令列向量的模爲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.數據矩陣歸一化

歸一化,將不同樣本的同一維度的數據歸一化。矩陣歸一化,說白了就是整體地乘一個係數,使矩陣的絕對值=1
函數: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.數據矩陣標準化

讓矩陣 每一列 內積爲1,不同列內積爲0。標準化的數據均值爲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
和以上結果一致。

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
和以上結果一致。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章