mapminmax
介绍:
mapminmax()函数是Matlab自带的函数,主要用来对数据进行归一化处理。它把所有的数据都转换为[-1,1]之间的数,目的就是取消各维数据间的数量别差别,防止大数吃小数。
矩阵归一化:
Y=mapminmax(A,ymin,ymax); % 默认ymin = -1,ymax =1,缩放至 [0,1]
默认:
- 按行缩放,范围[-1,1],ymin = -1,ymax = 1。
- Y是归一化后的矩阵。
原理:y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin
Y=mapminmax(A,0,1); %指定X每行缩放到[0,1]
注意:
当X的一行中,xmin和xmax相等,那么分母xmax-xmin为零,这样怎么处理?mapminmax对当前行不处理。输出仍为原始行数据。
例子:

zscore:
z-score标准化方法适用于属性A的最大值和最小值未知的情况。
新数据=(原数据-均值)/标准差
默认:
- 按列缩放,输出的矩阵Y每列服从正态分布,每列的均值是0,标准差是1
- 如果某一列数据全相等,标准化的结果为 0(向量)
[Y,mean,std]=zscore(X) %X:n*d;Y是标准化后矩阵,mean和std分别是原数据每列的平均值和标准差

















