% 导入数据
data = load(‘pmi_data.mat’); % pmi_data.mat是包含制造业采购经理指数数据的MAT文件
X = data.X; % 输入特征矩阵,大小为[num_samples, num_features]
Y = data.Y; % 输出目标矩阵,大小为[num_samples, 1]
% 数据预处理
% 在这里进行你的数据预处理操作,例如标准化、归一化等
% 划分训练集和测试集
train_ratio = 0.8; % 训练集比例
num_samples = size(X, 1);
num_train = round(train_ratio * num_samples);
X_train = X(1:num_train, 😃; % 训练集输入特征
Y_train = Y(1:num_train, 😃; % 训练集输出目标
X_test = X(num_train+1:end, 😃; % 测试集输入特征
Y_test = Y(num_train+1:end, 😃; % 测试集输出目标
% 构建BP神经网络模型
input_size = size(X, 2); % 输入特征维度
hidden_units = 128; % 隐藏单元数量
net = feedforwardnet(hidden_units);
net.trainFcn = ‘trainlm’; % 使用Levenberg-Marquardt算法进行训练
% 设置训练选项
net.trainParam.showWindow = false; % 不显示训练窗口
net.trainParam.epochs = 200; % 训练迭代次数
% 训练模型
net = train(net, X_train’, Y_train’);
% 在测试集上进行预测
Y_pred = net(X_test’);
% 可选:反向数据预处理操作,例如反标准化、反归一化等
% 计算预测性能指标
mse = mean((Y_pred - Y_test’).^2); % 均方误差
rmse = sqrt(mse); % 均方根误差
mae = mean(abs(Y_pred - Y_test’)); % 平均绝对误差
% 显示预测结果
plot(Y_test); % 真实值
hold on
plot(Y_pred); % 预测值
legend(‘真实值’, ‘预测值’)
xlabel(‘样本索引’)
ylabel(‘制造业采购经理指数’)