Process matrices by mapping row minimum and maximum values to [-1 1]數組
意思是將矩陣的每一行處理成[-1,1]區間,此時對於模式識別或者其餘統計學來講,數據應該是每一列是一個樣本,每一行是多個樣本的同一維,即對於一個M*N的矩陣來講,樣本的維度是M,樣本數目是N,一共N列N個樣本。app
其主要調用形式有:函數
1. [Y,PS] = mapminmax(X,YMIN,YMAX) % 將矩陣的每一行壓縮到 [YMIN,YMAX],其中當前行的最大值變爲YMAX,最小值變爲YMINspa
2. [Y,PS] = mapminmax(X,FP) %其中FP爲結構體類型,這時就是將矩陣的每一行壓縮到[FP.ymin, FP.ymax]中code
例如:
x=[2,3,4,5,6;7,8,9,10,11]; mapminmax(x,0,1) fp.ymin=0; %fp爲結構體類型 fp.ymax=1; mapminmax(x,fp)
3. Y = mapminmax('apply',X,PS) %ps爲一種映射關係 對其餘數值進行歸一化時,這個數必需要在xmin 和xmax之間,否則歸一化的結果,與總體進行歸一化,結果會不同blog
4. X = mapminmax('reverse',Y,PS) % 反歸一化 獲得原來的值數學
5. dx_dy = mapminmax('dx_dy',X,Y,PS) %不經常使用 根據給定的矩陣X、標準化矩陣Y及映射PS,獲取逆向導數(reverse derivative)。若是給定的X和Y是m行n列的矩陣,那麼其結果dx_dy是一個1×n結構體數組,其每一個元素又是一個m×n的對角矩陣io
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------%class
mapminmax的數學公式爲y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin。若是某行的數據所有相同,此時xmax=xmin,除數爲0,則此時數據不變map
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------%
Process matrices by mapping each row's means to 0 and deviations to 1:將矩陣的每一行映射爲0均值1方差的數據。
主要調用形式有:
1. [Y,PS] = mapstd(X,ymean,ystd) % 均值爲ymean, 方差爲ystd
2. [Y,PS] = mapstd(X,FP)
3. Y = mapstd('apply',X,PS)
4. X = mapstd('reverse',Y,PS)
5. dx_dy = mapstd('dx_dy',X,Y,PS)
和mapminmax相似的,1和2式是對數據X進行標準化,其中ymean和ystd是指望獲得數據的每一行的均值和方差,一樣的,咱們也能夠用一個結構體包含 ymean 和ystd進行帶入
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------%
mapstd公式爲y = (x-xmean)*(ystd/xstd) + ymean。若是設置的ystd=0,或某行的數據所有相同(此時xstd =0)
mean默認是對每一列求均值,mean(x,2)是對每一行求均值,std函數默認求的是標準差的無偏估計,有三種用法,s = std(X),s = std(X,flag),s = std(X,flag,dim)
其中flag是無偏估計的參數,flag=0是無偏估計,即默認 是無偏估計,flag=1是有偏估計,dim表示對第幾維求方差,std(X,0,2)表示對X的每一行作無偏的標準差估計。