zoukankan      html  css  js  c++  java
  • 数学建模算法(三):神经网络

    1.BP神经网络(葡萄酒

    clear all; clc ;
    data=[
        -1.17    -0.73    2.2    -0.6    -0.34    -0.4    -1.59    -0.15    0.09    -0.42
    -0.16    -0.08    -0.75    -0.46    -0.7    -0.69    0.36    0.07    -0.48    0.26
    0.46    3.37    -0.29    -0.46    0.37    -0.12    0.87    3.23    1.81    -0.36
    0.15    0.15    1.35    -0.5    0.04    0    0.08    0.95    -0.64    0.68
    0.18    0.78    -0.54    -0.3    0.62    -0.13    0.1    -1.01    -0.42    -0.31
    1.72    -0.11    0.05    0.22    -0.38    0.52    -0.05    0.08    -0.25    -0.12
    -0.05    -0.25    -0.12    -0.13    -1.58    -0.49    -2.38    -0.6    -0.97    -0.21
    -1.36    -0.74    -0.86    -0.04    -0.67    -0.31    0.77    -0.89    0.72    -0.44
    0.47    -0.02    -0.78    -0.56    2.58    -0.27    0.27    1.03    0.16    -0.35
    -0.42    0.16    -0.63    -0.51    -0.31    -0.57    -0.29    0.08    -0.56    0.3
    -0.89    -0.42    -0.86    -0.44    0.19    -0.23    1.45    -1.12    1.13    -0.46
    0.65    -0.25    -0.48    0.26    -0.25    4.14    0.94    -0.94    -0.79    -0.46
    1.41    -1.41    1.24    -0.62    -0.97    1.82    -0.38    -0.61    -0.33    -0.24
    -1.45    -0.45    -0.32    -0.5    2.36    -0.14    -1.32    -0.46    3.08    -0.48
    1.89    0.79    -0.81    0.63    0.14    -0.47    0.1    -1.17    1.55    4.72
    -0.91    -1.05    0.09    -0.07    -2.37    -0.15    -2.16    -0.74    -1.34    -0.4
    -1.52    -0.86    2.68    0    -0.2    -0.69    0.1    0.85    0.27    -0.03
    -0.43    -0.72    -0.24    -0.34    -1.24    1.6    -0.76    -0.31    0.39    -0.51
    0    -1.24    -0.85    -0.55    -0.08    -0.15    1.19    0.67    -0.42    -0.41
    0.53    0.11    -0.64    0.02    0.83    -0.54    -0.89    -0.04    -0.19    -0.3
    0.06    -0.43    1.78    -0.56    -0.17    -0.19    -0.26    -0.33    -0.11    -0.39
    1.35    -0.54    1.25    0.31    0.34    -0.46    1.72    -0.57    -0.36    -0.04
    -1.2    -0.47    -0.72    0.68    -0.07    -0.5    0.3    1.95    -0.84    0.01
    1.02    1.23    -0.37    -0.3    0.71    -0.22    0.37    0.68    -0.17    -0.04
    1.03    0.44    -0.54    0.28    -0.1    -0.03    0.77    0.64    -0.32    -0.3
    -1.32    0.14    -0.21    -0.18    -0.02    -0.57    0.94    -0.89    -1.57    1.16
    0.48    0.58    -0.1    4.74    0.47    -0.28    0.07    0.3    -0.52    -0.36
    -0.51    2.02    -0.51    -0.03    0.77    -0.48    -0.31    -0.71    1.09    -0.49
    
    ];
    p1=data(3,:);
    p2=[
        data(1,:);
        data(10,:);
        data(16,:);
        data(23,:);
        data(2,:);
        data(26,:);
        data(7,:);
        data(21,:);
        data(28,:)
    ];
    p3=[
        data(19,:);
        data(5,:);
        data(24,:);
        data(11,:);
        data(9,:);
        data(25,:);
        data(6,:)
    ];
    p4=[
        data(22,:);
        data(27,:);
        data(13,:);
    
    ];
    p=[p1;p2;p3;p4]';
    pr=minmax(p);
    goal=[
        ones(1,1),zeros(1,19);zeros(1,1),ones(1,9),zeros(1,10);
        zeros(1,10),ones(1,7),zeros(1,3);zeros(1,17),ones(1,3)
    ];
    net=newff(pr,[7,4],{'logsig','logsig'}); %创建 一个bp 神经网络 %logsig 对数S形传递函数
    net.trainParam.show = 10;  %显示训练迭代过程,是n个周期后显示一下收敛曲线的变化
    net.trainParam.lr = 0.05;    %学习速率0.05
    net.trainParam.goal = 1e-13;   %训练精度
    net.trainParam.epochs = 900000;   %最大训练次数
    net = train(net,p,goal);  %训练
    x=[
        data(20,:);
        data(12,:);
        data(18,:);
        data(15,:);
        data(8,:);
        data(4,:);
        data(14,:);
        data(17,:)
        ]'; %待判断数据
    y0=sim(net,p)
    y=sim(net,x)
    
    回归因子,运行结果:
    
    y0 =
    
      Columns 1 through 9
    
        0.9999    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000
        0.0001    1.0000    1.0000    1.0000    0.9999    0.9999    1.0000    1.0000    0.9999
        0.0001    0.0000    0.0000    0.0000    0.0000    0.0001    0.0000    0.0001    0.0000
        0.0000    0.0001    0.0000    0.0000    0.0000    0.0000    0.0003    0.0000    0.0001
    
      Columns 10 through 18
    
        0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000
        0.9999    0.0000    0.0000    0.0000    0.0001    0.0000    0.0000    0.0000    0.0000
        0.0002    0.9999    0.9999    0.9999    0.9998    0.9999    0.9999    0.9999    0.0007
        0.0000    0.0001    0.0000    0.0000    0.0000    0.0000    0.0001    0.0002    0.9997
    
      Columns 19 through 20
    
        0.0000    0.0000
        0.0002    0.0000
        0.0003    0.0001
        0.9998    0.9986
    
    
    y =
    
        0.0000    0.0001    0.0000    0.3158    0.0000    0.0000    0.9968    0.0000
        0.7749    0.0000    0.2577    0.0463    0.9825    0.9996    0.9426    1.0000
        1.0000    0.9999    0.0011    0.0114    0.0002    0.0000    0.2173    0.0000
        0.0000    0.0000    0.1042    0.0251    0.0996    0.0004    0.0000    0.0001
    
    >>
    
    主成分因子数据运行结果 :
    
    y0 =
    
      Columns 1 through 9
    
        0.9997    0.0000    0.0000    0.0001    0.0000    0.0000    0.0000    0.0000    0.0000
        0.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    0.0000    0.0000
        0.0002    0.0000    0.0000    0.0001    0.0000    0.0000    0.0000    1.0000    1.0000
        0.0002    0.0001    0.0001    0.0001    0.0003    0.0000    0.0001    0.0000    0.0000
    
      Columns 10 through 18
    
        0.0000    0.0002    0.0000    0.0000    0.0001    0.0001    0.0000    0.0000    0.0000
        0.0000    0.0004    0.0000    0.0000    0.0000    0.0000    0.0001    0.0000    0.0000
        1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    0.0001
        0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.9997
    
      Columns 19 through 20
    
        0.0003    0.0002
        0.0001    0.0000
        0.0000    0.0000
        0.9999    0.9999
    
    
    y =
    
        0.0004    0.0000    0.9993    0.0001    0.0000    0.0000    0.0000
        0.2758    0.2290    0.0016    0.0000    0.0000    0.0000    1.0000
        0.9994    0.9886    0.0243    0.0024    0.9986    0.9999    0.0000
        0.0000    0.0000    0.0000    0.9992    0.0129    0.0002    0.0000

     2.(重金属污染

    clc,clear
    load As a b c
    data=[a';b'];
    data=data';
    data1=c;
    k=rand(1,60501);
    [m n]=sort(k);
    %获取训练数据与预测数据
    input_train=data(n(1:9900),:)';
    output_train=data1(n(1:9900),:)';
    input_test=data(n(9901:10000),:)';
    output_test=data1(n(9901:10000),:)';
    %数据归一化
    [inputn,inputps]=mapminmax(input_train);
    [outputn,outputps]=mapminmax(output_train);
    %%bp训练%初始化网络结构
    net=newff(inputn,outputn,100);
    net.trainParam.show=30;
    net.trainParam.epochs=300;%最大迭代次数
    net.trainParam.lr=0.01;%学习速率
    net.trainParam.goal=1e-6;
    %网络训练
    net=train(net,inputn,outputn);%%bp预测
    %预测数据归一化?
    inputn_test=mapminmax('apply',input_test,inputps);%网络预测输出
    an=sim(net,inputn_test);%仿真
    %网络输出反归一化
    BPoutput=mapminmax('reverse',an,outputps);%结果分析
    figure
    plot(BPoutput,':og');
    hold on
    plot(output_test,'-*');
    legend('预测输出','期望输出','fontsize',12)
    title('BP?网络预测输出','fontsize',12)
    xlabel('样本','fontsize',12)
    ylabel('输出','fontsize',12)%预测误差
    error=BPoutput-output_test;
    figure
    plot(error,'-*')
    title('神经网络预测误差')
    errorsum=sum(abs(error))
    save data2 net inputps outputps
  • 相关阅读:
    抖音圈圈乐 系统搭建H5微信小游戏圈圈乐系统介绍
    GPS NMEA-0183标准详解
    GPS定位的偏移校正(WGS84与火星坐标互转)
    Complete_NGINX_Cookbook
    GBT32960-2016电动汽车远程服务与管理系统技术规范 第3部分:通信协议及数据格式
    Redis 到底是怎么实现“附近的人”这个功能的呢?
    NETGEAR R7800路由器TFTP刷回原厂固件方法
    JT/T 808-2013 道路运输车辆卫星定位系统北斗兼容车载终端通讯协议技术规范
    如何正确地使用设计模式?
    各常用分类算法的优缺点总结:DT/ANN/KNN/SVM/GA/Bayes/Adaboosting/Rocchio
  • 原文地址:https://www.cnblogs.com/pursuit1996/p/5149513.html
Copyright © 2011-2022 走看看