clear
clc
% 准备数据
inputs = rand(10, 100); % 100组输入,每组10个特征
outputs = rand(1, 100); % 100组输出,每组1个输出值
% 将数据分成训练集和测试集
trainRatio = 0.8;
valRatio = 0.1;
testRatio = 0.1;
[trainInd, valInd, testInd] = dividerand(100, trainRatio, valRatio, testRatio);
X_train = inputs(:, trainInd);
y_train = outputs(:, trainInd);
X_test = inputs(:, testInd);
y_test = outputs(:, testInd);
% 创建前馈神经网络
hiddenLayerSize = 10;
net = feedforwardnet(hiddenLayerSize);
% 设置训练、验证和测试数据
net.divideParam.trainRatio = 0.8;
net.divideParam.valRatio = 0.1;
net.divideParam.testRatio = 0.1;
% 训练神经网络
[net, tr] = train(net, X_train, y_train);
% 查看训练结果
plotperform(tr);
% 进行预测
y_pred = net(X_test);
% 计算误差
errors = y_pred - y_test;
% 输出误差
for i = 1:length(y_test)
fprintf('Test sample %d:\n', i);
fprintf('Predicted output: %.4f\n', y_pred(i));
fprintf('Actual output: %.4f\n', y_test(i));
fprintf('Error: %.4f\n\n', errors(i));
end
% 计算均方误差(MSE)
mse = mean(errors.^2);
fprintf('Mean Squared Error: %.4f\n', mse);