zoukankan      html  css  js  c++  java
  • 神经网络学习-(1)

    1. 几个主要的函数如下:

    newff:BP神经网络参数设置函数,构建了一个带参数神经网络
    net=newff(P,T,S,TF,BTF,BLF,PL,IPF,OPF,DDF)
    P:输入数据矩阵
    T:输出数据矩阵
    S:隐含层节点数
    TF:节点传递函数,包括硬限幅传递函数hardlim、对称硬限幅传递函数hardlims、现象传递函数purelin、正切S型传递函数tansig、对数S型传递函数logsig。
    BTF:训练函数
    BLF:网络学习函数
    PF:性能分析函数
    IPF:输入处理函数
    OPF:输出处理函数
    DDF:验证数据划分函数

    trian:BP神经网络训练函数
    [net,tr]=train(NET,X,T,Pi,Ai)
    NET:待训练网络
    X:输入数据矩阵
    T:输出数据矩阵
    Pi:初始化输入层条件
    Ai:初始化输出层条件
    net:训练好的网络
    tr:训练过程记录

    sim:BP神经网络预测函数
    y=sim(net,x)
    net:训练好的网络
    x:输入数据
    y:网络预测数据

    2. 简单测试下的代码

    %% 该代码为基于BP神经网络的预测算
    %% 清空环境变量
    clc
    clear
    
    %% 训练数据预测数据提取及归一化
    %下载输入输出数据
    load data input output
    
    %从1到2000间随机排序
    k=rand(1,2000);
    [m,n]=sort(k);
    
    %找出训练数据和预测数据
    input_train=input(n(1:1900),:)';
    output_train=output(n(1:1900));
    input_test=input(n(1901:2000),:)';
    output_test=output(n(1901:2000));
    
    %选连样本输入输出数据归一化
    [inputn,inputps]=mapminmax(input_train);
    [outputn,outputps]=mapminmax(output_train);
    
    %% BP网络训练
    % %初始化网络结构
    net=newff(inputn,outputn,5);
    
    net.trainParam.epochs=100;
    net.trainParam.lr=0.1;
    net.trainParam.goal=0.00004;
    
    %网络训练
    net=train(net,inputn,outputn);
    
    %% BP网络预测
    %预测数据归一化
    inputn_test=mapminmax('apply',input_test,inputps);
    
    %网络预测输出
    an=sim(net,inputn_test);
    
    %网络输出反归一化
    BPoutput=mapminmax('reverse',an,outputps);
    
    %% 结果分析
    
    figure(1)
    plot(BPoutput,':og')
    hold on
    plot(output_test,'-*');
    legend('预测输出','期望输出')
    title('BP网络预测输出','fontsize',12)
    ylabel('函数输出','fontsize',12)
    xlabel('样本','fontsize',12)
    %预测误差
    error=BPoutput-output_test;
    
    
    figure(2)
    plot(error,'-*')
    title('BP网络预测误差','fontsize',12)
    ylabel('误差','fontsize',12)
    xlabel('样本','fontsize',12)
    
    figure(3)
    plot((output_test-BPoutput)./BPoutput,'-*');
    title('神经网络预测误差百分比')
    
    errorsum=sum(abs(error));
    
    
  • 相关阅读:
    根据年月日算出当前日期是星期几
    告别where 1=1 最佳方案分享
    服务器时间,剩余天、小时、分、秒倒计时代码
    分享一个Web弹框类
    从网上搜集了两篇关于数据库分页性能分析总结
    Request、Request.Form和Request.QueryString的区别
    LINQ to SQL语句之Join和Order By
    List转换成Json、对象集合转换Json等
    GRID控件删除之前确认
    LeetCode 141
  • 原文地址:https://www.cnblogs.com/hhwblogs/p/12706535.html
Copyright © 2011-2022 走看看