赞
踩
对于案例来说,共有1350组公司财务状态数据,每组数据的输入为10维,代表11.3.3节提及的10个指标,输出为1维,代表公司的财务状态,取值为1时表示财务状况良好,取值为-1时表示财务出现问题。从中随机选取1000组数据作为训练数据,350组数据作为测试数据。根据数据维数,采用的BP神经网络结构为“10-6-1”,共训练生成10个BP神经网络弱分类器,最后用10个弱分类器组成强分类器对公司财务状况进行分类。
使用MATLAB实现BP_Adaboost模型的预警系统的步骤如下。
(1)选择数据集。从样本空间中选择训练样本和测试样本,并对测试样本分配权重,其中训练数据和测试数据存储在data文件中,input_train、output_train分别为训练输入数据和输出数据,input_test、output_test分别为测试输入数据和输出数据。
(2)弱分类器学习分类。把BP神经网络看作弱分类器,对训练后的样本进行分类,并且根据训练样本的分类结果调整权重,最终得出一系列弱分类器及其权重。
(3)强分类器分类和结果统计。由10组弱分类器的BP神经网络组成强分类器对样本进行分类,并统计分类误差。
实现的MATLAB代码如下:
>> clear all; load data input_train output_train input_test output_test %载入数据 %%权重初始化 [mm,nn]=size(input_train); D(1,:)=ones(1,nn)/nn; %%弱分类器分类 K=10; for i=1:K %训练样本归一化 [inputn,inputps]=mapminmax(input_train); [outputn,outputps]=mapminmax(output_train); error(i)=0; %构建BP神经网络 net=newff(inputn,outputn,6); net.trainParam.epochs=5; net.trainParam.lr=0.1; net.trainParam.goal=0.00004; %训练BP神经网络 net=train(net,inputn,outputn);
实现的MATLAB代码如下:
>> clear all;
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;
%训练样本归一化
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。