bp神经网络

BP神经网络算法预测销量高低

岁酱吖の 提交于 2019-11-29 04:44:24
  理论以前写过: 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;

误差回传神经网络(BP)——数学理论

不打扰是莪最后的温柔 提交于 2019-11-27 15:25:12
误差回传神经网络(BP) BP网络是一种无反馈的前向网络,网络中的神经元分层排列,每一层内的神经元的输出均传送到下一层,这种传送由联接权来达到输出的作用。工作过程分为学习期和工作期两个部分,计算关键在于学习期中的误差反向传播过程,使目标函数最小化来完成的。 1) BP神经网络的设计 如图1为BP神经网络基本结构图。 输入层、隐含层、输出层神经元分别以 予以编号。 具体的计算公式如下: 隐含层与输出层的各个神经元的输入分别为 隐含层与输出层的各个神经元的输出分别为 其中激活函数 均为单极性 Sigmiod 函数,即: 2)计算网络误差 网络的输出 与实际输出 (期望值)不相等时,存在训练的误差,则系统的平均误差为 网络的总误差表示为 上式便是BP神经网络的目标函数,学习期中的误差反向传播过程,就是使目标函数最小化来完成的。 3)各层权值的调整 每一层的权值的调整都是反向的一个过程,也就是说由实际输出值yk与实际相比得到的误差信号δ_k ,对隐含层与输出层之间的权重 w_kj进行调整。 然后由误差信号 反向传至输入层,得到输入层误差信号 ,由此起到对输入层与隐含层之间的权值调整。 其中η 为学习率,α 为动量项,以此提高BP神经网络的训练速度,且能够保持一定的稳定性。 通过网络训练,达到要求后,网络各个节点之间的互联权值就完全确定,则称整个的BP网络已经学习好。 模型建立

keras 实现BP神经网络

不羁岁月 提交于 2019-11-27 05:09:57
# -*- coding: utf-8 -*- """ Created on Thu Jul 20 09:59:50 2017 @author: Administrator """ import pandas as pd inputfile = 'input.xlsx' #excel输入 outputfile = 'output.xls' #excel输出 modelfile = 'modelweight.model' #神经网络权重保存 data = pd.read_excel(inputfile,index='Date',sheetname=0) #pandas以DataFrame的格式读入excel表 feature = ['F1','F2','F3','F4'] #影响因素四个 label = ['L1'] #标签一个,即需要进行预测的值 data_train = data.loc[range(0,20)].copy() #标明excel表从第0行到520行是训练集 #2 数据预处理和标注 data_mean = data_train.mean() data_std = data_train.std() data_train = (data_train - data_mean)/data_std #数据标准化 x_train = data_train[feature].as