文档帮助中心文档
利用回归神经网络预测反应
yfit = predict(Mdl,X)
yfit = predict(Mdl,X,'ObservationsIn',dimension)
例子
yfit=预测(Mdl,X)返回表或矩阵中预测器数据的预测响应值X利用训练好的回归神经网络模型Mdl.
yfit=预测(Mdl,X)
yfit
Mdl
X
yfit作为数字向量返回,谁的我第Th项对应于我的观察X.
yfit=预测(Mdl,X“ObservationsIn”,维)指定预测器数据观测维度“行”(默认)或“列”.例如,指定“ObservationsIn”、“列”表示预测数据中的列与观测值相对应。
yfit=预测(Mdl,X“ObservationsIn”,维)
维
“行”
“列”
“ObservationsIn”、“列”
全部折叠
利用训练好的回归神经网络模型预测测试集的响应值。
加载病人数据集。从数据集中创建一个表。每一行对应一个病人,每列对应一个诊断变量。使用收缩压变量作为响应变量,其余变量作为预测变量。
病人
收缩压
负载病人tbl = table(年龄,舒张压,性别,身高,吸烟,体重,收缩压);
将数据分成一个训练集tblTrain和一个测试集tblTest通过使用非分层坚持分区。该软件为测试数据集保留大约30%的观测值,并将其余观测值用于训练数据集。
tblTrain
tblTest
rng (“默认”)用于分区的再现性C = cvpartition(size(tbl,1),“坚持”, 0.30);trainingIndices = training(c);testIndices =测试(c);tblTrain = tbl(trainingIndices,:);tblTest = tbl(testIndices,:);
使用训练集训练回归神经网络模型。指定收缩压列的tblTrain作为响应变量。指定以标准化数值预测器。默认情况下,神经网络模型有一个全连接层和10个输出,不包括最终的全连接层。
Mdl = fitrnet(tblTrain,“收缩”,...“标准化”,真正的);
预测测试集中患者的收缩压水平。
predictedY = predict(Mdl,tblTest);
通过使用带有参考线的散点图来可视化结果。沿纵轴绘制预测值,沿横轴绘制真实响应值。参考线上的点表示正确的预测。
情节(tblTest。收缩压,预测edY,“。”)举行在情节(tblTest.Systolic tblTest.Systolic)从包含(“真实收缩压水平”) ylabel (“预测收缩压水平”)
由于许多点远离参考线,默认的神经网络模型具有大小为10的完全连接层,似乎不能很好地预测收缩压水平。
通过比较测试集损失和预测来执行特征选择。将使用所有预测器训练的回归神经网络模型的测试集指标与仅使用预测器子集训练的模型的测试集指标进行比较。
加载示例文件fisheriris.csv,其中包含虹膜数据,包括萼片长度、萼片宽度、花瓣长度、花瓣宽度和物种类型。将文件读入表。
fisheriris.csv
渔场=可读表(“fisheriris.csv”);
将数据分成一个训练集trainTbl和一个测试集testTbl通过使用非分层坚持分区。该软件为测试数据集保留大约30%的观测值,并将其余观测值用于训练数据集。
trainTbl
testTbl
rng (“默认”) c = cvpartition(size(fishtable,1),“坚持”, 0.3);trainTbl =渔场(训练(c),:);testTbl = fishtable (test(c),:);
使用训练集中的所有预测器训练一个回归神经网络模型,并使用训练集中的所有预测器训练另一个模型PetalWidth.对于这两个模型,请指定PetalLength作为响应变量,并对预测函数进行标准化。
PetalWidth
PetalLength
allMdl = fitrnet(trainTbl,“PetalLength”,“标准化”,真正的);subsetMdl = fitrnet(trainTbl,“PetalLength ~ SepalLength + SepalWidth + Species”,...“标准化”,真正的);
比较两个模型的测试集均方误差(MSE)。MSE值越小,性能越好。
allMSE = loss(allMdl,testTbl)
allMSE = 0.0856
subsetMSE = loss(subsetMdl,testTbl)
subsetMSE = 0.0881
对于每个模型,将测试集预测的花瓣长度与真实的花瓣长度进行比较。沿纵轴绘制预测花瓣长度,沿横轴绘制真实花瓣长度。参考线上的点表示正确的预测。
tiledlayout (2, 1)%顶轴Ax1 = nexttile;allPredictedY = predict(allMdl,testTbl);情节(ax₁,testTbl。PetalLength,allPredictedY,“。”)举行在情节(ax₁,testTbl.PetalLength testTbl.PetalLength)从包含(ax₁“真实花瓣长度”) ylabel (ax₁,“预计花瓣长度”)标题(ax₁,“预测”)%底轴Ax2 = nexttile;subsetPredictedY = predict(subsetMdl,testTbl);情节(ax2 testTbl。PetalLength,subsetPredictedY,“。”)举行在情节(ax2、testTbl.PetalLength testTbl.PetalLength)从包含(ax2,“真实花瓣长度”) ylabel (ax2,“预计花瓣长度”)标题(ax2,“预测因子子集”)
因为这两个模型似乎都表现得很好,预测分散在参考线附近,考虑使用使用所有预测器训练的模型PetalWidth.
了解回归神经网络模型的各层如何协同工作以预测单个观测的响应值。
加载示例文件fisheriris.csv,其中包含虹膜数据,包括萼片长度、萼片宽度、花瓣长度、花瓣宽度和物种类型。将文件读入一个表,并显示表的前几行。
渔场=可读表(“fisheriris.csv”);头(fishertable)
ans =8×5表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(渔场表,“PetalLength ~ SepalLength + SepalWidth + PetalWidth”);
从数据集中选择第15个观测值。看看神经网络的各层是如何获取观察结果并返回预测的响应值的newPointResponse.
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{end})*reluStep + Mdl.LayerBiases{end};newPointResponse = finalFCStep
newPointResponse = 1.6716
方法返回的预测是否匹配预测对象的功能。
预测
predictedY = predict(Mdl,newPoint)
predictedY = 1.6716
isequal (newPointResponse predictedY)
ans =逻辑1
这两个结果是一致的。
RegressionNeuralNetwork
CompactRegressionNeuralNetwork
经过训练的回归神经网络,指定为aRegressionNeuralNetwork模型对象或CompactRegressionNeuralNetwork返回的模型对象fitrnet或紧凑的,分别。
fitrnet
紧凑的
用于生成响应的预测器数据,指定为数字矩阵或表格。
默认情况下,每一行X对应一个观察结果,每一列对应一个变量。
对于数值矩阵:
列中的变量X必须与训练的预测变量有相同的顺序Mdl.
如果你训练Mdl使用表格(例如,资源描述),资源描述那么,只包含数值预测变量X可以是数值矩阵。处理中的数值预测器资源描述作为分类的训练,识别分类预测因子使用CategoricalPredictors的名称-值参数fitrnet.如果资源描述包含异构预测变量(例如,数字和分类数据类型)和X是数字矩阵吗预测抛出错误。
资源描述
CategoricalPredictors
对于表格:
预测不支持多列变量或除金宝app字符向量的单元格数组外的单元格数组。
如果你训练Mdl使用表格(例如,资源描述),然后输入所有预测变量X必须具有与训练的变量相同的变量名和数据类型Mdl(存储在Mdl。PredictorNames).的列序X是否需要对应的列顺序资源描述.同时,资源描述而且X可以包含额外的变量(响应变量、观察权重等),但是预测忽略了它们。
Mdl。PredictorNames
如果你训练Mdl使用一个数字矩阵,然后预测器名称在Mdl。PredictorNames必须与中对应的预测变量名称相同X.若要在训练期间指定预测器名称,请使用PredictorNames的名称-值参数fitrnet.所有预测变量X必须是数值向量。X可以包含额外的变量(响应变量、观察权重等),但是预测忽略了它们。
PredictorNames
如果你设置“标准化”,真的在fitrnet当训练Mdl,然后软件用相应的均值和标准差对预测器数据的数值列进行标准化。
“标准化”,真的
请注意
如果你定位你的预测矩阵,使观察结果与列相对应,并指定“ObservationsIn”、“列”,那么您可能会经历计算时间的显著减少。你不能指定“ObservationsIn”、“列”用于表中的预测器数据。
数据类型:单|双|表格
单
双
表格
预测器数据观测维数,指定为“行”或“列”.
数据类型:字符|字符串
字符
字符串
fitrnet|RegressionNeuralNetwork|损失|CompactRegressionNeuralNetwork
损失
您有这个示例的修改版本。要使用编辑打开此示例吗?
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在可用的地方获得翻译的内容,并查看当地的活动和优惠。根据您所在的位置,我们建议您选择:.
您也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
联系当地办事处