主要内容

mapstd

通过将每一行的均值映射为0,偏差映射为1来处理矩阵

语法

(Y, PS) = mapstd (X, ymean ystd)
(Y, PS) = mapstd (X, FP)
Y = mapstd(“应用”,X, PS)
X = mapstd(“逆转”,Y, PS)
dx_dy = mapstd (dx_dy, X, Y, PS)

描述

mapstd通过将每一行的均值和标准差转换为来处理矩阵ymeanystd

(Y, PS) = mapstd (X, ymean ystd)需要X和可选的参数,

X

N——- - - - - -矩阵

ymean

的每一行的平均值Y(默认是0)

ystd

的每一行的标准差Y(默认为1)

并返回

Y

N——- - - - - -矩阵

PS

允许对值进行一致处理的进程设置

(Y, PS) = mapstd (X, FP)接受参数作为结构:FP.ymeanFP.ystd

Y = mapstd(“应用”,X, PS)返回Y,鉴于X和设置PS

X = mapstd(“逆转”,Y, PS)返回X,鉴于Y和设置PS

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

例子

这里您将格式化一个矩阵,以便将每行的最小值和最大值映射为默认的平均值和STD(0和1)。

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

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

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

反向处理日元得到x1一次。

x1_again = mapstd(“逆转”,y1, PS)

更多关于

全部折叠

规范网络输入和目标使用mapstd

另一种扩大网络输入和目标的方法是将训练集的均值和标准差归一化。这个函数mapstd将输入和目标归一化,使其具有零均值和统一标准偏差。下面的代码演示了mapstd

(pn, ps) = mapstd (p);(tn, ts) = mapstd (t);

原始的网络输入和目标在矩阵中给出pt.标准化的输入和目标pntn返回的数据将具有零均值和统一标准差。设置结构psts包含原始输入和原始目标的均值和标准差。在培训了网络之后,您应该使用这些设置来转换将来应用到网络上的任何输入。他们有效地成为网络的一部分,就像网络的权重和偏见一样。

如果mapstd然后对网络的输出进行训练,生成均值为零、标准差为统一的输出。要将这些输出转换回用于原始目标的相同单元,请使用ts.下面的代码模拟在前面的代码中训练的网络,然后将网络输出转换回原来的单元。

一个= sim(网络,pn);一个= mapstd(“反向”、一个ts);

网络的输出一个对应于归一化目标tn.未标准化的网络输出一个和原来的目标在同一个单位吗t

如果mapstd是用来对训练集数据进行预处理的,那么无论何时训练的网络使用新的输入,你应该用为训练集计算的平均值和标准偏差对它们进行预处理ps.下列命令将一组新的输入应用于已训练的网络:

pnewn = mapstd(“应用”,pnew、ps);anewn = sim(净,pnewn);重新= mapstd(“反向”、anewn ts);

对大多数网络来说,包括feedforwardnet,这些步骤是自动完成的,因此您只需要使用sim卡命令。

算法

人们认为X只有有限的实数,并且每一行的元素不都相等。

Y = (x-xmean)*(ystd/xstd) + ymean;
介绍了R2006a