MATLAB中mapminmax函数用法

本文介绍了mapminmax函数的作用,即通过将矩阵的行最小值和最大值映射到指定区间,用于深度学习数据的标准化。它在训练前对输入和目标进行缩放,并提供了相关示例和参数说明。
摘要由CSDN通过智能技术生成

目录

语法

说明

示例

使用 mapminmax 函数格式化矩阵


        mapminmax函数的功能是通过将行最小值和最大值映射到 [-1 1] 来处理矩阵。

语法

[Y,PS] = mapminmax(X,YMIN,YMAX)
[Y,PS] = mapminmax(X,FP)
Y = mapminmax('apply',X,PS)
X = mapminmax('reverse',Y,PS)
dx_dy = mapminmax('dx_dy',X,Y,PS)

说明

提示

        要重新缩放深度学习工作流的数据,请对输入层使用归一化名称-值对组。

[Y,PS] = mapminmax(X,YMIN,YMAX) 接受一个 N×Q 矩阵 X 以及(可选)Y 的每行的最小值 YMIN 和最大值 YMAX,并返回一个 N×Q 矩阵 Y 以及允许一致处理值的处理设置 PS。

mapminmax 通过将每行的最小值和最大值归一化为 [YMIN, YMAX] 来处理矩阵。

[Y,PS] = mapminmax(X,FP) 接受结构体形式的参数:FP.ymin、FP.ymax。

        在给定 X 和设置 PS 的情况下,Y = mapminmax('apply',X,PS) 返回 Y。

        在给定 Y 和设置 PS 的情况下,X = mapminmax('reverse',Y,PS) 返回 X。

dx_dy = mapminmax('dx_dy',X,Y,PS) 返回反向导数。

示例

使用 mapminmax 函数格式化矩阵

        此示例说明如何格式化矩阵,以便将每行的最小值和最大值映射到默认区间 [-1,+1]。

x1 = [1 2 4; 1 1 1; 3 2 2; 0 0 0]
[y1,PS] = mapminmax(x1)

        接下来,对新值应用相同的处理设置。

x2 = [5 2 3; 1 1 1; 6 7 3; 0 0 0]
y2 = mapminmax('apply',x2,PS)

        反向处理 y1,以再次得到 x1。

x1_again = mapminmax('reverse',y1,PS)

参数说明

X — 输入矩阵

        要处理的矩阵,指定为 N×Q 矩阵。

YMIN — 最小值

        输出矩阵 Y 的每行的最小值,指定为标量。

YMAX — 最大值

        输出矩阵 Y 的每行的最大值,指定为标量。

Y — 输出矩阵

        处理后的矩阵,以 N×Q 矩阵形式返回。

PS — 处理设置

        允许一致处理值的处理设置,以结构体形式返回。

使用 mapminmax 归一化输入和目标

        在训练之前,需要缩放输入和目标,使它们始终落在指定的范围内,这样做通常很有用。函数 mapminmax 可缩放输入和目标,使它们落在 [–1,1] 范围内。以下代码说明如何使用此函数。

[pn,ps] = mapminmax(p);
[tn,ts] = mapminmax(t);
net = train(net,pn,tn);

        矩阵 p 和 t 中给出了原始网络输入和目标。返回的归一化输入和目标 pn 和 tn 都将落在 [–1,1] 区间内。结构体 ps 和 ts 包含设置,在本例中是原始输入和目标的最小值和最大值。训练完网络后,应使用 ps 设置来变换未来应用于网络的任何输入。它们实际上成为了网络的一部分,就像网络的权重和偏置一样。

        如果使用 mapminmax 缩放目标,则网络的输出将被训练为生成 [–1,1] 范围内的输出。要将这些输出转换回用于原始目标的相同单位,请使用设置 ts。以下代码仿真在上述代码中训练的网络,然后将网络输出转换回原始单位。

an = sim(net,pn);
a = mapminmax('reverse',an,ts);

        网络输出 an 对应于归一化目标 tn。未归一化的网络输出 a 与原始目标 t 采用相同的单位。

        如果使用 mapminmax 预处理训练集数据,则每当将经过训练的网络与新输入结合使用时,都应使用存储在设置 ps 中的为训练集计算的最小值和最大值对它们进行预处理。以下代码将一组新输入应用于已经过训练的网络。

pnewn = mapminmax('apply',pnew,ps);
anewn = sim(net,pnewn);
anew = mapminmax('reverse',anewn,ts);

        对于大多数网络,包括 feedforwardnet,这些步骤是自动执行的,因此只需使用 sim 命令。

算法

        假设 X 只有有限个实数值,并且每行的元素都不完全相等。(如果 xmax=xmin 或如果 xmax 或 xmin 是非有限值,则 y=x 且不发生变化。)

y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin;

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: mapminmax函数MATLAB的一个数据归一化函数,用于将数据归一化到指定的范围内。该函数的用法如下: mapminmax(X, ymin, ymax) 其,X是需要归一化的数据,ymin和ymax是指定的归一化范围,即归一化后的数据的最小值和最大值。函数的返回值是归一化后的数据。 例如,如果需要将数据X归一化到[,1]的范围内,可以使用以下代码: Y = mapminmax(X, , 1) 这样,Y就是归一化后的数据,其取值范围为[,1]。 ### 回答2: mapminmax函数matlab用来进行数据归一化处理的函数,它可以将原始数据进行压缩和拉伸,使其在一定范围内,便于进行后续处理。 mapminmax函数的基本用法是:y=mapminmax(x),其x表示原始数据,y表示处理后的数据。mapminmax函数会将x的最小值压缩到0,最大值拉伸到1之间,并按照比例对其它值进行压缩和拉伸。 mapminmax函数还可以接收参数,用于指定压缩和拉伸的范围。具体来说,mapminmax(x,ps),ps是一个长度为2的向量,表示压缩和拉伸的范围。例如,ps=[-1 1]表示将x的最小值压缩到-1,最大值拉伸到1之间。 在使用mapminmax函数时,需要注意以下几点: 1. mapminmax函数只适用于单个变量或者单个向量数据的归一化处理。 2. mapminmax函数并不改变原始数据x的值,而是返回处理后的新数组y。 3. 如果原始数据存在NaN值或者inf值,需要先将其删除或替换为其他值,以免影响归一化处理的结果。 4. 当处理的数据范围很大时,可能会导致数值溢出或误差增大,因此需要对参数ps进行相应的调整。 总之,mapminmax函数matlab非常实用的数据归一化处理函数,通过对数据进行压缩和拉伸,可将数据范围缩小到一定范围内,使得后续处理更加准确和方便。 ### 回答3: MATLAB mapminmax 函数用于将数据进行归一化处理,使其值域范围在 [0,1] 之间。该函数的定义如下: [y,PS] = mapminmax(x, ymin, ymax) 其,x 是输入的数据矩阵;ymin 和 ymax 分别是目标值域的最小值和最大值。如果不指定 ymin 和 ymax,则默认值为 0 和 1。 mapminmax 函数将数据矩阵按列进行处理,使其值域范围为 [ymin, ymax]。然后,将处理后的值映射到 [0, 1] 的范围内,并返回映射后的数据矩阵 y。同时,函数还会返回一个结构体 PS,其包含了归一化所使用的参数,包括 x 的最小值和最大值、y 的最小值和最大值等。 更具体地说,对于输入矩阵的每一列 x(:, i),mapminmax 函数对其进行如下计算: - 将 x(:, i) 的最小值 m1 和最大值 M1 计算出来。 - 计算 y(:, i) = (x(:, i) - m1) * (ymax - ymin) / (M1 - m1) + ymin。 需要注意的是,如果 x(:, i) 存在 NaN 值,那么该列的处理结果将全部变为 NaN。 在使用 mapminmax 函数时,需要注意目标值域的选择。对于某些应用场景,目标值域可能不是 [0,1],而是其他的连续值域,这时候可以手动指定 ymin 和 ymax。另外,在进行归一化处理时,需要先对数据集进行分为训练集和测试集等,并在训练集上进行归一化处理,然后使用相同的参数在测试集上进行处理,以保证归一化的一致性。 综上所述,mapminmax 函数是一种常用的归一化处理函数,可以将数据规范化到特定的值域内,增强数据的表达能力,使其更易于进行机器学习等处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值