📅  最后修改于: 2023-12-03 15:17:34.294000             🧑  作者: Mango
在 MATLAB 中,映射函数是一种将一个集合映射或转换到另一个集合的函数。它们可以应用于各种数据类型,如数字、矩阵、图像和音频信号等。映射函数允许我们修改或调整数据集,并根据需要创建新的输出。在 MATLAB 中,有许多内置的和用于映射的函数,我们可以根据需要使用它们。
mapminmax
mapminmax
函数将每个输入向量的每个元素缩放到 Ymin
和 Ymax
范围内。它还可以将最小值和最大值进行记录,以便在使用网络时可以应用相同的变换。这个函数可以用于数据标准化和在输入到神经网络之前调整数据。
% 用法示例:
input = [1.0; 2.0; 3.0];
[y, settings] = mapminmax(input);
% 输出结果:
% y = [0.0000; 0.5000; 1.0000]
% settings =
% settings struct with fields:
% ymin: 1
% ymax: 3
% settings struct with fields:
% yrange: 2
% settings struct with fields:
% offset: -1
% gain: 2
mapstd
mapstd
函数将每个输入向量的每个元素除以它的标准差,将每个元素减去均值并除以标准差,以便将数据映射到零均值和单位标准偏差的尺度上。它还可以将均值和标准差记录下来,以便在使用网络时可以应用相同的变换。这个函数可以用于数据标准化和在输入到神经网络之前调整数据。
% 用法示例:
input = [1.0; 2.0; 3.0];
[y, settings] = mapstd(input);
% 输出结果:
% y = [-1.2247; 0; 1.2247]
% settings =
% struct with fields:
% mean: 2
% std: 0.8165
newff
newff
函数可以创建一个前馈神经网络。这个函数需要一些参数,例如网络的层数、每个层中的神经元数量以及训练算法等。可以为每个输入和输出指定不同的映射函数,以将其调整到正确的范围内。例如,有时我们可能希望将数据集的范围映射到 -1
到 1
的范围内,因为这通常是神经网络输出的范围。
% 用法示例:
net = newff([0 1; 0 1], [2 1], {'tansig', 'purelin'}, 'trainlm');
net.inputs{1}.processFcns = {'mapminmax'};
net.outputs{2}.processFcns = {'mapminmax'};
% 输出结果:
% net =
% trainFcn: 'trainlm'
% initFcn: 'initlay'
% adaptFcn: 'adaptwb'
% performFcn: 'mse'
% plotFcns: {'plotperform', 'plottrainstate', 'ploterrhist', 'plotregression'}
% inputs: [1x1 struct]
% outputs: [1x1 struct]
% layerConnect: [0 0; 1 0]
% biasConnect: [1; 1]
% inputConnect: [1; 0]
% outputConnect: [0 1]
在 MATLAB 中,映射函数可以帮助我们将数据集映射到正确的范围内,以便更好地用于训练和应用神经网络。我们介绍了一些常用的内置函数,但还有许多其他函数可以用于不同的数据类型和应用场景。熟练掌握这些函数可以让我们更加灵活地使用 MATLAB 进行数据处理和机器学习任务。