主要内容

预测

使用回归神经网络预测的反应

自从R2021a

    描述

    例子

    yfit=预测(Mdl,X)回报预测响应值的预测数据表或矩阵X使用训练回归神经网络模型Mdl

    yfit作为一个数值向量返回的条目对应th观察X

    yfit=预测(Mdl,X“ObservationsIn”,)指定了预测数据观察维度“行”(默认)或“列”。例如,指定“ObservationsIn”、“列”预测数据表明列对应于观测。

    例子

    全部折叠

    测试集预测响应值通过使用一个训练有素的回归神经网络模型。

    加载病人从数据集中数据集。创建一个表,每一行对应一个病人和每一列对应一个诊断变量。使用收缩压变量作为响应变量,其余变量的预测因子。

    负载病人台=表(收缩压舒张压、身高、吸烟、体重);

    单独的数据训练集tblTrain和一个测试集tblTest通过使用一个nonstratified抵抗分区。软件储备大约30%的测试数据集,并使用其余的观察观察的训练数据集。

    rng (“默认”)%的再现性分区c = cvpartition(大小(1台),“坚持”,0.30);trainingIndices =培训(c);testIndices =测试(c);tblTrain =(资源(trainingIndices:);tblTest =(资源(testIndices:);

    火车回归神经网络模型使用训练集,指定收缩压列的tblTrain作为反应变量。指定标准化数值预测,并设置迭代限制为50。默认情况下,神经网络模型有一个完全连接层10输出,不包括最终的完全连接层。

    Mdl = fitrnet (tblTrain,“收缩”,“标准化”,真的,“IterationLimit”,50);

    预测患者的收缩压水平测试集。

    tblTest predictedY =预测(Mdl);

    可视化结果通过使用散点图参考线。情节沿着纵轴的预测值和真实的响应值沿水平轴。点参考线显示正确的预测。

    情节(tblTest.Systolic predictedY,“。”)举行情节(tblTest.Systolic tblTest.Systolic)包含(“真正的收缩压水平”)ylabel (“预测收缩压水平”)

    因为许多点远离参考线,默认的神经网络模型与一个完全连接层10码似乎并不是一个伟大的收缩压水平的预测。

    通过比较测试集进行特征选择和预测损失。比较的测试集指标回归神经网络模型训练使用所有测试集的预测指标对模型训练使用只有一个子集的预测。

    加载示例文件fisheriris.csv,其中包含虹膜数据包括花萼长度、宽度萼片,花瓣长度,花瓣宽度,和物种类型。读取文件成一个表。

    fishertable = readtable (“fisheriris.csv”);

    单独的数据训练集trainTbl和一个测试集testTbl通过使用一个nonstratified抵抗分区。软件储备大约30%的测试数据集,并使用其余的观察观察的训练数据集。

    rng (“默认”)c = cvpartition(大小(fishertable, 1),“坚持”,0.3);trainTbl = fishertable(培训(c):);testTbl = fishertable(测试(c):);

    火车一个回归使用所有的预测神经网络模型训练集,并使用所有的预测,除了训练另一个模型PetalWidth。对于这两种模型,指定PetalLength作为响应变量,预测和规范。

    allMdl = fitrnet (trainTbl,“PetalLength”,“标准化”,真正的);subsetMdl = fitrnet (trainTbl,“PetalLength ~ SepalLength + SepalWidth +物种”,“标准化”,真正的);

    比较测试集均方误差(MSE)的两个模型。更小的均方误差值显示更好的性能。

    allMSE =损失(allMdl testTbl)
    allMSE = 0.0856
    subsetMSE =损失(subsetMdl testTbl)
    subsetMSE = 0.0881

    对于每个模型,比较了测试集预测花瓣长度真正的花瓣长度。图预测的花瓣长度沿垂直轴沿水平轴和真正的花瓣长度。点参考线显示正确的预测。

    tiledlayout (2, 1)%顶轴ax₁= nexttile;allPredictedY =预测(allMdl testTbl);情节(ax₁, testTbl.PetalLength allPredictedY,“。”)举行情节(ax₁, testTbl.PetalLength testTbl.PetalLength)包含(ax₁“真正的花瓣长度”)ylabel (ax₁,“花瓣长度预测”)标题(ax₁,“预测”)%底部轴ax2 = nexttile;subsetPredictedY =预测(subsetMdl testTbl);情节(ax2、testTbl.PetalLength subsetPredictedY,“。”)举行情节(ax2、testTbl.PetalLength testTbl.PetalLength)包含(ax2,“真正的花瓣长度”)ylabel (ax2,“花瓣长度预测”)标题(ax2,“子集预测”)

    图包含2轴对象。坐标轴对象1标题预测,包含真正的花瓣长度,ylabel预测花瓣长度包含2线类型的对象。一个或多个行显示它的值只使用标记轴对象2标题预测的子集,包含真正的花瓣长度,ylabel预测花瓣长度包含2线类型的对象。一个或多个行显示的值只使用标记

    因为两种模型似乎表现良好,预测分散在参考线附近,考虑使用该模型使用所有预测除了训练PetalWidth

    看到回归神经网络模型的层共同预测响应值一个观察。

    加载示例文件fisheriris.csv,其中包含虹膜数据包括花萼长度、宽度萼片,花瓣长度,花瓣宽度,和物种类型。读取文件成一个表,并显示表的前几行。

    fishertable = readtable (“fisheriris.csv”);头(fishertable)
    SepalLength SepalWidth PetalLength PetalWidth物种___________ __________ ___________ __________ __________ 5.1 3.5 1.4 1.4 0.2 4.9 {‘setosa} 3 {‘setosa} 4.7 3.2 1.3 0.2 0.2 {‘setosa} 4.6 3.1 1.5 0.2 {‘setosa} 5 3.6 1.4 0.2 {‘setosa} 5.4 3.9 1.7 0.4 {‘setosa} 4.6 3.4 1.4 0.3 {‘setosa} 5 3.4 1.5 0.2 {' setosa '}

    火车回归神经网络模型使用指定的数据集PetalLength变量和使用其他数字变量的响应预测。

    Mdl = fitrnet (fishertable,“PetalLength ~ SepalLength + SepalWidth + PetalWidth”);

    从数据集选择十五观察。看看层神经网络以观察和返回一个预测响应值newPointResponse

    newPoint = Mdl.X{15日:}
    newPoint =1×35.8000 4.0000 0.2000
    firstFCStep = (Mdl.LayerWeights {1}) * newPoint”+ Mdl.LayerBiases {1};reluStep = max (firstFCStep, 0);finalFCStep = (Mdl.LayerWeights{结束})* reluStep + Mdl.LayerBiases{结束};newPointResponse = finalFCStep
    newPointResponse = 1.6716

    检查返回的一个预测匹配预测对象的功能。

    newPoint predictedY =预测(Mdl)
    predictedY = 1.6716
    isequal (newPointResponse predictedY)
    ans =逻辑1

    两个结果匹配。

    输入参数

    全部折叠

    回归神经网络训练,指定为一个RegressionNeuralNetwork模型对象或CompactRegressionNeuralNetwork模型对象返回的fitrnet紧凑的,分别。

    预测数据用于生成反应,指定为一个数字矩阵或表。

    默认情况下,每一行X对应于一个观察,每一列对应一个变量。

    • 一个数字矩阵:

      • 变量的列X必须有相同的订单预测变量,训练吗Mdl

      • 如果你训练Mdl使用一个表(例如,资源描述),资源描述只包含数字预测变量,然后X可以是一个数字矩阵。将数值预测资源描述分类在训练、识别分类预测使用CategoricalPredictors名称-值参数fitrnet。如果资源描述包含了异构预测变量(例如,数字和分类数据类型)X是一个数字矩阵,然后呢预测抛出一个错误。

    • 一个表:

      • 预测不支持多列变量或细金宝app胞数组以外的细胞阵列的特征向量。

      • 如果你训练Mdl使用一个表(例如,资源描述),那么所有的预测变量X必须有相同的变量名和数据类型的变量训练吗Mdl(存储在Mdl.PredictorNames)。然而,列的顺序X不需要对应的列顺序资源描述。同时,资源描述X可以包含额外的变量(响应变量,观察体重、等等),但预测忽略了它们。

      • 如果你训练Mdl使用一个数字矩阵,然后预测名称Mdl.PredictorNames必须与相应的预测变量的名字X。使用指定预测名称在训练PredictorNames名称-值参数fitrnet。所有的预测变量X必须是数值向量。X可以包含额外的变量(响应变量,观察体重、等等),但预测忽略了它们。

    如果你设置“标准化”,真的fitrnet当训练Mdl,那么软件标准化的数字列预测数据使用对应的均值和标准差。

    请注意

    如果你东方预测矩阵,以便观察并指定对应列“ObservationsIn”、“列”,那么你可能会经历显著减少计算时间。你不能指定“ObservationsIn”、“列”预测数据表。

    数据类型:||

    预测数据观察维度,指定为“行”“列”

    请注意

    如果你东方预测矩阵,以便观察并指定对应列“ObservationsIn”、“列”,那么你可能会经历显著减少计算时间。你不能指定“ObservationsIn”、“列”预测数据表。

    数据类型:字符|字符串

    选择功能

    金宝app仿真软件块

    集成神经网络回归模型的预测模型金宝app®,你可以使用RegressionNeuralNetwork预测块的统计和机器学习的图书馆或MATLAB工具箱™®功能块的预测函数。有关示例,请参见预测使用RegressionNeuralNetwork预测块的反应预测类标签使用MATLAB函数块

    当决定使用哪种方法,考虑以下几点:

    • 如果你使用统计和机器学习工具库,您可以使用定点的工具(定点设计师)一个浮点模型转换为定点。

    • 金宝app支持适应可变数组必须启用的MATLAB函数块预测函数。

    • 如果使用MATLAB功能块,您可以使用MATLAB函数之前或之后预处理或后处理预测在同一MATLAB功能块。

    扩展功能

    版本历史

    介绍了R2021a