大家好,又见面了,我是你们的朋友全栈君。
功能:将矩阵的每一行处理成[-1,1]区间。处理需要归一化的m*n矩阵X,归一化后的矩阵记为Y。
主要有5种调用形式
1.[Y,PS] = mapminmax(X,YMIN,YMAX)
其中,YMIN是我们期望归一化后矩阵Y每行的最小值,YMAX是我们期望归一化后矩阵Y每行的最大值。
例1:待处理矩阵X=[4 5 6;7 8 9]我们期望归一化后每行的最小值为0,最大值为1.程序如下
X=[4 5 6;7 8 9];
mapminmax(X,0,1)
运行结果:
ans =
0 0.5000 1.0000
0 0.5000 1.0000
2.[Y,PS] = mapminmax(X,FP)
FP是一个结构体成员,主要是FP.ymin(相当于YMIN), FP.ymax(相当于YMAX)。1和2处理效果一样,只不过参数的带入形式不同。
例2:
X=[4 5 6;7 8 9];
FP.ymin = 0;
FP.ymax = 1;
mapminmax(X,FP)
运行结果:
ans =
0 0.5000 1.0000
0 0.5000 1.0000
3.Y = mapminmax(‘apply’,X,PS)
PS是训练样本的映射,测试样本的预处理方式应与训练样本相同。只需将映射PS apply到测试样本。
例3.训练样本是X,测试样本是M,归一化后的训练样本是Y
X=[4 5 6;7 8 9];
M = [2 3;4 5];
[Y,PS] = mapminmax(X,0,1);
mapminmax('apply',M,PS)
运行结果:
ans =
-1.0000 -0.5000
-1.5000 -1.0000
4.X = mapminmax(‘reverse’,Y,PS)
将归一化后的Y反转为归一化之前
例4.将n(M的归一化)反转为M
X=[4 5 6;7 8 9];
M = [2 3;4 5];
[Y,PS] = mapminmax(X,0,1);
n = mapminmax('apply',M,PS);
mapminmax('reverse',n,PS)
运行结果:
ans =
2 3
4 5
5.dx_dy = mapminmax(‘dx_dy’,X,Y,PS)
根据给定的矩阵X、标准化矩阵Y及映射PS,获取逆向导数(reverse derivative)。如果给定的X和Y是m行n列的矩阵,那么其结果dx_dy是一个1×n结构体数组,其每个元素又是一个m×n的对角矩阵。这种用法不常用,这里不再举例。
mapminmax的数学公式为y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin。如果某行的数据全部相同,此时xmax=xmin,除数为0,则此时数据不变。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/148398.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...