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);