首页 > 其他分享 >基于BP_Adaboost的强分类器设计-公司财务预警建模

基于BP_Adaboost的强分类器设计-公司财务预警建模

时间:2022-10-10 16:01:01浏览次数:48  
标签:end kkk2 分类器 BP Adaboost test output net

%% 清空环境变量
clc
clear%% 下载数据
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);

%训练数据预测
an1=sim(net,inputn);
test_simu1(i,:)=mapminmax('reverse',an1,outputps);

%测试数据预测
inputn_test =mapminmax('apply',input_test,inputps);
an=sim(net,inputn_test);
test_simu(i,:)=mapminmax('reverse',an,outputps);

%统计输出效果
kk1=find(test_simu1(i,:)>0);
kk2=find(test_simu1(i,:)<0);

aa(kk1)=1;
aa(kk2)=-1;

%统计错误样本数
for j=1:nn
if aa(j)~=output_train(j);
error(i)=error(i)+D(i,j);
end
end

%弱分类器i权重
at(i)=0.5*log((1-error(i))/error(i));

%更新D值
for j=1:nn
D(i+1,j)=D(i,j)*exp(-at(i)*aa(j)*test_simu1(i,j));
end

%D值归一化
Dsum=sum(D(i+1,:));
D(i+1,:)=D(i+1,:)/Dsum;

end%% 强分类器分类结果
output=sign(at*test_simu);%% 分类结果统计
%统计强分类器每类分类错误个数
kkk1=0;
kkk2=0;
for j=1:350
if output(j)==1
if output(j)~=output_test(j)
kkk1=kkk1+1;
end
end
if output(j)==-1
if output(j)~=output_test(j)
kkk2=kkk2+1;
end
end
endkkk1
kkk2
disp('第一类分类错误 第二类分类错误 总错误');
% 窗口显示
disp([kkk1 kkk2 kkk1+kkk2]);plot(output)
hold on
plot(output_test,'g')%统计弱分离器效果
for i=1:K
error1(i)=0;
kk1=find(test_simu(i,:)>0);
kk2=find(test_simu(i,:)<0);

aa(kk1)=1;
aa(kk2)=-1;

for j=1:350
if aa(j)~=output_test(j);
error1(i)=error1(i)+1;
end
end
end
disp('统计弱分类器分类效果');
error1disp('强分类器分类误差率')
(kkk1+kkk2)/350disp('弱分类器分类误差率')
(sum(error1)/(K*350))

标签:end,kkk2,分类器,BP,Adaboost,test,output,net
From: https://blog.51cto.com/u_15815923/5744404

相关文章

  • MobPush Android For Unity
    集成准备注册账号使用MobSDK之前,需要先在MobTech官网注册开发者账号,并获取MobTech提供的AppKey和AppSecret,详情可以​​点击查看注册流程​​下载MobPush对应的.unitypackag......
  • Boosting, Bootstrap, Adaboost, GBDT, XGBoost, 随机森林
     Adaboost,按分类对错,分配不同的weight,计算cost function时使用这些weight,从而让“错分的样本权重越来越大,使它们更被重视”。Bootstrap也有类似思想,它在每一步迭代时不......
  • ABP.VNET
    官网文档中心地址:https://docs.abp.io/zh-Hans/abp/latest/创建项目遇到的问题1.官网下载之后选择好数据库链接打开项目报错:Volo.Abp.AbpException:Couldnotfindth......
  • webpack使用
    一、概述模块化和打包 Webpack是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。从图中我们可以看......
  • python中的subprocess.Popen | 9
    在收集snmp数据的过程中用到了subprocess这个模块,本来想用其他python里面关于snmp的库,还是觉得麻烦就直接调用snmpwalk来收集数据。最开始想用subprocess.call()这个函数,然而......
  • Python: 执行系统命令的四种方法(os.system、os.popen、commands、subprocess)
    一、os.system方法这个方法是直接调用标准C的system()函数,仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息。os.system(cmd)的返回值。如果执行成功,那么会......
  • 实用webpack插件之DefinePlugin
    通过阅读这篇文章,可以学习到如何使用DefinePlugin插件使得前端项目更加工程化,说清晰点就是如何使用这个插件,在编译阶段根据NODE_ENV自动切换配置文件,提升前端开发效率。Defi......
  • webpack5简单配置
    webpack4之后webpack5又做了蛮多的变化,这里简单介绍一下webpack5的配置可以参考官网mkdirreact-clicdreact-clinpminit初始化package.jsonnpminstallwebpack......
  • [转] webpack 插件的作用
      我们需要先安装插件:npmiwebpack-dev-server-D然后修改 package.json文件:"scripts":{"dev":"webpackserve"}, ......
  • [转]VUE 之 Webpack 打包构建
    首先,下载jquery npmijquery-S然后,下载webpack npmiwebpackwebpack-cli-D接下来,创建文件:webpack.config.jsmodule.exports={mode:'developmen......