当前位置: 首页 > news >正文

网站云主机手机软文广告300字

网站云主机,手机软文广告300字,计算机文化基础网页制作题视频,网站独立服务器%% 初始化程序 warning off % 关闭报警信息 close all % 关闭所有图窗 clear % 清空变量 clc % 清空命令行 setdemorandstream(172) %设置随机种子为1%% 读取数据 data xlsread(Y.xlsx); %% 划分训练集…
%% 初始化程序
warning off         % 关闭报警信息
close all               % 关闭所有图窗
clear                    % 清空变量
clc                        % 清空命令行
setdemorandstream(172)       %设置随机种子为1%% 读取数据
data = xlsread('Y.xlsx');
%% 划分训练集与测试集
temp = randperm(72);  % 产生1到2000的乱序,用来随机抽取训练集和测试集
inputTrainDataset = data(temp(1:50), 1:20)';  % 前1900行数据训练,1到12列为输入变量
outputTrainDataset = data(temp(1:50), 21)';   % 前1900行数据训练,13列为输出目标inputTestDataset = data(temp(50:72), 1:20)'; % 1901到2000行数据训练,1到12列为输入变量
outputTestDataset = data(temp(50:72), 21)';  % 1901到2000行数据训练,13列为输出目标
%% 归一化处理
[inputn_train, input_ps] = mapminmax(inputTrainDataset, 0, 1);
inputn_test = mapminmax('apply', inputTestDataset, input_ps);
[outputn_train, output_ps] = mapminmax(outputTrainDataset, 0, 1);%% 确定神经网络结构
inputnode = 20;  % 输入层的神经元节点数量
outputnode = 1;   %输出层的神经元节点数量% 以下用于确定隐含层的神经元节点数量
bound = 3 : 1 : 15;  % 在3到15范围内试凑隐含层的神经元节点数量
cnt = 1;  % 迭代计数
for k = boundnet=newff(inputn_train,outputn_train,k,{'tansig','purelin'},'trainlm');net.trainParam.epochs=1000;                                 % 训练次数net.trainParam.lr=0.01;                                           % 学习速率net.trainParam.goal=1e-5;                                      % 训练目标最小误差net.trainParam.showWindow = 0;                           % 关闭仿真界面net=train(net,inputn_train,outputn_train);                %开始训练model_out = sim(net, inputn_train);                         % 训练集的归一化预测结果e(cnt) = mean((model_out - outputn_train).^2);      % 训练集仿真的根均方误差disp(['隐含层节点数量为: ', num2str(k), ', 相应的训练集归一化根均方误差(RMSE)值为: ', num2str(e(cnt))])cnt = cnt + 1;                                                           % 迭代次数+1
end
hiddennode = bound(find(e == min(e), 1));                  % 找到根均方误差最小时对应的最少隐含层节点数量,将之当做最优隐含层节点
disp(['最佳的隐含层节点数量为: ', num2str(hiddennode), ', 相应的训练集归一化根均方误差(RMSE)值最小, 为: ', num2str(e((find(e == min(e), 1))))])%% 建立模型
net=newff(inputn_train,outputn_train,hiddennode,{'tansig','purelin'},'trainlm');
net.trainParam.epochs=1000;         % 训练次数
net.trainParam.lr=0.01;                   % 学习速率
net.trainParam.goal=1e-5;                    % 训练目标最小误差
%开始训练
net=train(net,inputn_train,outputn_train);
%% 预测和反归一化
model_out1 = sim(net, inputn_train);  % 训练集的归一化预测结果
model_out2 = sim(net, inputn_test);    % 测试集的归一化预测结果
predictTrainDataset = mapminmax('reverse', model_out1, output_ps);  % 反归一化训练集预测结果为原始数量级
predictTestDataset = mapminmax('reverse', model_out2, output_ps);    % 反归一化测试集预测结果为原始数量级
%% 分析误差
disp(' ')
disp('训练集误差计算如下: ')
MSE = mean((outputTrainDataset - predictTrainDataset).^2);
disp(['均方误差MSE = ', num2str(MSE)])
MAE = mean(abs(outputTrainDataset - predictTrainDataset));
disp(['平均绝对误差MAE = ', num2str(MAE)])
RMSE = sqrt(MSE);
disp(['根均方误差RMSE = ', num2str(RMSE)])
MAPE = mean(abs((outputTrainDataset - predictTrainDataset)./outputTrainDataset));
disp(['平均绝对百分比误差MAPE = ', num2str(MAPE*100), '%'])
R = corrcoef(outputTrainDataset, predictTrainDataset);
R2 = R(1, 2)^2;
disp(['拟合优度R2 = ', num2str(R2)])
disp(' ')
disp('测试集误差计算如下: ')
MSE_test = mean((outputTestDataset - predictTestDataset).^2);
disp(['均方误差MSE = ', num2str(MSE_test)])
MAE_test = mean(abs(outputTestDataset - predictTestDataset));
disp(['平均绝对误差MAE = ', num2str(MAE_test)])
RMSE_test = sqrt(MSE_test);
disp(['根均方误差RMSE = ', num2str(RMSE_test)])
MAPE_test = mean(abs((outputTestDataset - predictTestDataset)./outputTestDataset));
disp(['平均绝对百分比误差MAPE = ', num2str(MAPE_test*100), '%'])
R_test = corrcoef(outputTestDataset, predictTestDataset);
R2_test = R_test(1, 2)^2;
disp(['拟合优度R2 = ', num2str(R2_test)])
%% 对结果作图
% 训练集
figure
plot(outputTrainDataset, 'b*-', 'LineWidth', 0.8)
hold on
plot(predictTrainDataset, 'ro-', 'LineWidth', 0.8)
grid on
xlabel('训练样本序号')
ylabel('目标')
legend('实际值', '预测值')
title({'BP神经网络预测训练集预测值和实际值对比图', ['根均方误差RMSE = ', num2str(RMSE), '拟合优度R2 = ', num2str(R2)]})figure
plot(outputTrainDataset - predictTrainDataset, 'b*-', 'LineWidth', 0.8)
grid on
xlabel('训练样本序号')
ylabel('预测偏差')
legend('误差')
title({'BP神经网络预测训练集预测误差图', ['平均绝对百分比误差MAPE = ', num2str(MAPE*100), '%']})% 测试集
figure
plot(outputTestDataset, 'b*-', 'LineWidth', 0.8)
hold on
plot(predictTestDataset, 'ro-', 'LineWidth', 0.8)
grid on
xlabel('测试样本序号')
ylabel('目标')
legend('实际值', '预测值')
title({'BP神经网络预测测试集预测值和实际值对比图', ['根均方误差RMSE = ', num2str(RMSE_test), '拟合优度R2 = ', num2str(R2_test)]})figure
plot(outputTestDataset - predictTestDataset, 'b*-', 'LineWidth', 0.8)
grid on
xlabel('测试样本序号')
ylabel('预测偏差')
legend('误差')
title({'BP神经网络预测测试集预测误差图', ['平均绝对百分比误差MAPE = ', num2str(MAPE_test*100), '%']})% 获取输入层到第一个隐藏层的权重
weights_input_to_hidden = net.IW{1,1};% 显示权重矩阵
disp('Input to hidden layer weights:');
disp(weights_input_to_hidden);
%% 参数
% 获取输入层到第一个隐藏层的权重
weights_input_to_hidden = net.IW{1,1};
disp('Input to hidden layer weights:');
disp(weights_input_to_hidden);
% 获取第一个隐藏层到输出层的权重
weights_hidden_to_output = net.LW{2,1};
disp('Hidden to output layer weights:');
disp(weights_hidden_to_output);
% 获取输入层的偏置
biases_output_layer = net.b{1};
disp('Input Layer Biases:');
disp(biases_output_layer);
% 获取隐藏层的偏置
biases_output_layer = net.b{2};
disp('hidden Layer Biases:');
disp(biases_output_layer);

以下是对上述代码功能的详细解释:

  1. 初始化部分
    • warning off:关闭报警信息,避免一些不必要的警告信息干扰程序的运行。
    • close all:关闭所有打开的图形窗口,确保程序开始时处于一个干净的图形环境。
    • clear:清空工作区中的变量,防止之前的变量影响当前程序的运行。
    • clc:清空命令行窗口,使命令行更加清晰。
    • setdemorandstream(172):设置随机种子为 172,确保程序运行结果的可重复性,使得随机过程在多次运行时产生相同的结果。
  2. 数据读取部分
    • data = xlsread('Y.xlsx'):从名为 Y.xlsx 的 Excel 文件中读取数据。
  3. 数据集划分部分
    • temp = randperm(72):生成一个 1 到 72 的随机排列序列,用于随机抽取训练集和测试集。
    • inputTrainDataset = data(temp(1:50), 1:20)':将数据的前 50 个随机索引对应的行的第 1 到 20 列作为输入训练集,并进行转置。
    • outputTrainDataset = data(temp(1:50), 21)':将数据的前 50 个随机索引对应的行的第 21 列作为输出训练集,并进行转置。
    • inputTestDataset = data(temp(50:72), 1:20)':将数据的第 50 到 72 个随机索引对应的行的第 1 到 20 列作为输入测试集,并进行转置。
    • outputTestDataset = data(temp(50:72), 21)':将数据的第 50 到 72 个随机索引对应的行的第 21 列作为输出测试集,并进行转置。
  4. 归一化处理部分
    • [inputn_train, input_ps] = mapminmax(inputTrainDataset, 0, 1):将输入训练集的数据归一化到 0 到 1 的范围,并存储归一化的结果和归一化参数。
    • inputn_test = mapminmax('apply', inputTestDataset, input_ps):使用训练集的归一化参数对输入测试集进行归一化处理。
    • [outputn_train, output_ps] = mapminmax(outputTrainDataset, 0, 1):将输出训练集的数据归一化到 0 到 1 的范围,并存储归一化的结果和归一化参数。
  5. 神经网络结构确定部分
    • inputnode = 20:设置输入层的神经元节点数量为 20。
    • outputnode = 1:设置输出层的神经元节点数量为 1。
    • 对隐含层的神经元节点数量进行试凑:
      • bound = 3 : 1 : 15:设置隐含层神经元节点数量的试凑范围从 3 到 15。
      • 使用 for 循环遍历 bound 中的每个节点数量 k
        • net=newff(inputn_train,outputn_train,k,{'tansig','purelin'},'trainlm'):创建一个新的前馈神经网络,激活函数分别为 tansigpurelin,训练算法为 trainlm
        • net.trainParam.epochs=1000:设置训练次数为 1000 次。
        • net.trainParam.lr=0.01:设置学习速率为 0.01。
        • net.trainParam.goal=1e-5:设置训练目标最小误差为 1e-5。
        • net.trainParam.showWindow = 0:关闭仿真界面。
        • net=train(net,inputn_train,outputn_train):使用输入训练集和输出训练集对网络进行训练。
        • model_out = sim(net, inputn_train):使用训练好的网络对输入训练集进行仿真,得到归一化预测结果。
        • e(cnt) = mean((model_out - outputn_train).^2):计算训练集的归一化根均方误差,并存储在 e 数组中。
        • disp(['隐含层节点数量为: ', num2str(k), ', 相应的训练集归一化根均方误差(RMSE)值为: ', num2str(e(cnt))]):显示当前隐含层节点数量及其对应的训练集的归一化根均方误差。
      • hiddennode = bound(find(e == min(e), 1)):找到使根均方误差最小的隐含层节点数量,作为最优的隐含层节点数量。
      • disp(['最佳的隐含层节点数量为: ', num2str(hiddennode), ', 相应的训练集归一化根均方误差(RMSE)值最小, 为: ', num2str(e((find(e == min(e), 1))))]:显示最佳的隐含层节点数量及其最小的根均方误差。
  6. 模型建立部分
    • net=newff(inputn_train,outputn_train,hiddennode,{'tansig','purelin'},'trainlm'):使用最优的隐含层节点数量建立最终的神经网络。
    • net.trainParam.epochs=1000:设置训练次数为 1000 次。
    • net.trainParam.lr=0.01:设置学习速率为 0.01。
    • net.trainParam.goal=1e-5:设置训练目标最小误差为 1e-5。
    • net=train(net,inputn_train,outputn_train):使用输入训练集和输出训练集对最终的神经网络进行训练。
  7. 预测和反归一化部分
    • model_out1 = sim(net, inputn_train):使用训练好的网络对输入训练集进行仿真,得到归一化预测结果。
    • model_out2 = sim(net, inputn_test):使用训练好的网络对输入测试集进行仿真,得到归一化预测结果。
    • predictTrainDataset = mapminmax('reverse', model_out1, output_ps):将训练集的归一化预测结果反归一化到原始数据范围。
    • predictTestDataset = mapminmax('reverse', model_out2, output_ps):将测试集的归一化预测结果反归一化到原始数据范围。
  8. 误差分析部分
    • 计算训练集的各种误差指标:
      • MSE = mean((outputTrainDataset - predictTrainDataset).^2):计算训练集的均方误差。
      • MAE = mean(abs(outputTrainDataset - predictTrainDataset)):计算训练集的平均绝对误差。
      • RMSE = sqrt(MSE):计算训练集的根均方误差。
      • MAPE = mean(abs((outputTrainDataset - predictTrainDataset)./outputTrainDataset)):计算训练集的平均绝对百分比误差。
      • R = corrcoef(outputTrainDataset, predictTrainDataset):计算训练集实际值和预测值的相关系数矩阵。
      • R2 = R(1, 2)^2:计算训练集的拟合优度。
    • 计算测试集的各种误差指标:
      • MSE_test = mean((outputTestDataset - predictTestDataset).^2):计算测试集的均方误差。
      • MAE_test = mean(abs(outputTestDataset - predictTestDataset)):计算测试集的平均绝对误差。
      • RMSE_test = sqrt(MSE_test):计算测试集的根均方误差。
      • MAPE_test = mean(abs((outputTestDataset - predictTestDataset)./outputTestDataset)):计算测试集的平均绝对百分比误差。
      • R_test = corrcoef(outputTestDataset, predictTestDataset):计算测试集实际值和预测值的相关系数矩阵。
      • R2_test = R_test(1, 2)^2:计算测试集的拟合优度。
  9. 结果作图部分
    • 对训练集的实际值和预测值进行绘图,并显示误差信息。
    • 对测试集的实际值和预测值进行绘图,并显示误差信息。
  10. 参数获取部分
    • weights_input_to_hidden = net.IW{1,1}:获取输入层到第一个隐藏层的权重矩阵。
    • weights_hidden_to_output = net.LW{2,1}:获取第一个隐藏层到输出层的权重矩阵。
    • biases_output_layer = net.b{1}:获取输入层的偏置。
    • biases_output_layer = net.b{2}:获取隐藏层的偏置。

总的来说,该程序是一个使用 BP 神经网络进行数据预测的完整流程,包括数据读取、数据预处理(划分数据集和归一化)、神经网络结构的确定(试凑隐含层节点数量)、训练、预测、结果反归一化、误差分析和结果可视化,并展示了神经网络的部分权重和偏置信息。

http://www.mmbaike.com/news/55661.html

相关文章:

  • 怎么做简单的企业网站网络营销概念是什么
  • 官方网站下载qq音速百度注册公司网站
  • 做网站哪个公司最网络营销方式包括哪些
  • 建网站需花哪几种钱山东seo优化
  • 企业网站案例展示百度一下百度搜索
  • 软件开发文档用什么写网站优化和网站推广
  • 企业网络推广网站建设产品推广方案范文500字
  • 网站建设大概好多钱网络广告营销策划方案
  • 做网站还是做游戏免费域名空间申请网址
  • 商务网站建设规划流程网站seo优化总结
  • 公司请人做的网站打不开怎么下载有风险的软件
  • dz论坛中英文网站怎么做搜索引擎优化的具体措施
  • 为什么不用原来的网站做推广服装店营销策划方案
  • 品牌网站建设案例十大少儿编程教育品牌
  • 网络维护与故障解决郑州百度seo排名公司
  • 可做市值曲线的网站网站推广软件有哪些
  • 做网站销售大概多少钱宁波seo外包代运营
  • 网站开发岗位之间的关联搜索引擎优化核心
  • ui设计软件figma优化搜索曝光次数的方法
  • 保定高端模板建站百度推广关键词排名规则
  • 网站建设在哪个软件下做360搜索推广
  • 海口cms模板建站免费可用的网站源码
  • java做网站的要求游戏加盟
  • 企业建设网站公司哪家好搜索引擎网络排名
  • 青色网站欣赏成都网站快速排名优化
  • 网站建设自助建站企业免费友情链接网站
  • 网站做多个页面怎么制作网站平台
  • 制作企业网站2020十大网络热词
  • 网站前台设计软件优化软件seo排名
  • 网站规划与建设重要性理解与体会百度指数查询手机版app