• 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%,预测准确率较低,是由于神经网络预测时需要较多的样本,是在此预测数据较少造成的。

  • 相关阅读:
    C# WinForm程序退出的方法
    SpringCloud 微服务框架
    idea 常用操作
    Maven 学习笔记
    SpringBoot 快速开发框架
    html 零散问题
    Java方法注释模板
    Seating Arrangement
    hibernate 离线查询(DetachedCriteria)
    hibernate qbc查询
  • 原文地址:https://www.cnblogs.com/cruelty_angel/p/11454091.html
Copyright © 2020-2023  润新知