1 简介
BP 网络是典型的前馈神经网络,其权值训练中采用误差逆向传播的方式,具有非线性连续有理函数的逼近功能。在信号前向传递过程中,输入信号从输入层进入,经过隐含层处理,到达输出层。每一层的神经元状态只影响下一层的神经元状态。判断输出层的结果是否为期望输出,如果不是,则转入反向传播,然后根据预测误差调整网络权值和阈值,从而使 BP 神经网络预测输出不断逼近期望输出。由于结构简单,可调参数多,训练算法多,操控性好,BP 神经网络获得了广泛的实际应用。
Adaboost 算法是 Boosting 算法典型应用之一。AdaBoost学习算法选择少量而又非常重要的矩形特征来构造一系列弱分类器,然后将这些弱分类器级联起来构成一个强分类器。算法通过选择最能区分正负样本的矩形特征。对于每一个特征,弱分类器给定一个最优的分类函数的阈值,使得最少的样本被错误分类。Adaboost 算法的优点在于它使用加权后选取的训练数据代替随机选取的训练样本,将弱分类器联合起来,使用加权的投票机制代替平均投票机制。
2 部分代码
%% 该代码为基于BP_Adaboost的强预测器预测%% 清空环境变量clcclear%% 下载数据load data1 input output%% 权重初始化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),:)';%样本权重[mm,nn]=size(input_train);D(1,:)=ones(1,nn)/nn;%训练样本归一化[inputn,inputps]=mapminmax(input_train);[outputn,outputps]=mapminmax(output_train);%% 结果统计%强分离器效果output=at*test_simu;error=output_test-output;plot(abs(error),'-*')hold onfor i=1:8error1(i,:)=test_simu(i,:)-output;endplot(mean(abs(error1)),'-or')title('强预测器预测误差绝对值','fontsize',12)xlabel('预测样本','fontsize',12)ylabel('误差绝对值','fontsize',12)legend('强预测器预测','弱预测器预测')%%
3 仿真结果
4 参考文献
[1]李翔, 朱全银. 基于Adaboost算法和BP神经网络的税收预测[J]. 计算机应用, 2012, 32(12):4.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。