zoukankan      html  css  js  c++  java
  • BP神经网络算法预测销量高低

      理论以前写过:https://www.cnblogs.com/fangxiaoqi/p/11306545.html,这里根据天气、是否周末、有无促销的情况,来预测销量情况。

    function [ matrix,attributes ] = bp_preprocess( inputfile )
    %% BP神经网络算法数据预处理,把字符串转换为0,1编码
    % inputfile: 输入数据文件;
    % output: 转换后的0,1矩阵;
    % attributes: 属性和Label;
    %% 读取数据
    [~,txt]=xlsread(inputfile);
    attributes=txt(1,2:end);
    data = txt(2:end,2:end);
    %% 针对每列数据进行转换
    [rows,cols] = size(data);
    matrix = zeros(rows,cols);
    for j=1:cols
        matrix(:,j) = cellfun(@trans2onefalse,data(:,j));
    end
    end
    function flag = trans2onefalse(data)
        if strcmp(data,'') ||strcmp(data,'')...
            ||strcmp(data,'')
            flag =0;
            return ;
        end
        flag =1;
    end
    %% 使用BP神经网络算法预测销量高低
    clear ;
    % 参数初始化
    inputfile = '../data/sales_data.xls'; % 销量及其他属性数据
    %% 数据预处理
    disp('正在进行数据预处理...');
    [matrix,~] =  bp_preprocess(inputfile);
    %% 输入数据变换
    input = matrix(:,1:end-1);
    target = matrix(:,end);
    input=input';
    target=target';
    target=full(ind2vec(target+1));
    %% 新建BP神经网络,并设置参数 
    % net = feedforwardnet(10);
    net = patternnet(10);
    net.trainParam.epochs=1000;
    net.trainParam.show=25;
    net.trainParam.showCommandLine=0;
    net.trainParam.showWindow=1; 
    net.trainParam.goal=0;
    net.trainParam.time=inf;
    net.trainParam.min_grad=1e-6;
    net.trainParam.max_fail=5;
    net.performFcn='mse';
    % 训练神经网络模型
    net= train(net,input,target);
    disp('BP神经网络训练完成!');
    %% 使用训练好的BP神经网络进行预测
    y= sim(net,input);
    plotconfusion(target,y);
    disp('销量预测完成!');

      可以看出,检测样本为34个,预测正确的个数为26,预测准确率为76.5%,预测准确率较低,是由于神经网络预测时需要较多的样本,是在此预测数据较少造成的。

  • 相关阅读:
    Oracle 日期总结
    JavaScript 获取文件名,后缀名
    JavaScript Array pop(),shift()函数
    JavaScript Array splice函数
    Oracle 创建表空间、临时表空间、创建用户并指定表空间、授权,删除用户及表空间
    eclipse debug调试java程序的九个技巧
    Oracle dos连接数据库基本操作
    Oracle 隐式游标 存储过程
    Oracle 修改表名
    Oracle 时间 MM-dd形式转换
  • 原文地址:https://www.cnblogs.com/cruelty_angel/p/11454091.html
Copyright © 2011-2022 走看看