【分类模型】基于BP神经网络、SOftmax分类器、KNN、LDA、贝叶斯网络实现气体数据分类附matlab代码

1 简介

本文以气体传感器收集的数据来训练几种不同的分类器,并测试了正确率

这里仅演示了最基本的使用方法,各个参数的设定还是参考帮助文档为好。

数据来源:http://archive.ics.uci.edu/ml/datasets/Gas+Sensor+Array+Drift+Dataset

数据分为6类气体,由不同的时间段采集,并由时间段分成了10个数据集,各个数据集的详细情况可以见网站的说明。总之,这里有6类气体的数据,不过需要注意的时,由于传感器材质或工艺水平的原因,随着时间的变化,传感器本身会产生漂移。因此,如果用第10个batch上的数据来训练一个分类器,用第1个batch上面的数据来进行测试,正确率可能会很低。这也是现在需要解决的问题。

训练数据600个,测试数据3000个,

固定初始参数时,各个分类器的正确率如下:

Bayes: 60%

BP: 90.5%

Elman: 77.5%

KNN: 97.5333%

LDA: 84.4667%

RBF: 97.7%

Softmax: 98.1667%

2 部分代码

% /* %  * Expanse@yeah.net 2018/07/27%  * 每一列表示一个样本%  */clear; clc;load Batch.mat C_data C_label;  % 加载数据Data = C_data{10};              % 数据Label = C_label{10};            % 标签indices = crossvalind('Kfold',3600,6);      % 随机trainindices = (indices == 1);        testindices = ~trainindices;  traindata = Data(:, trainindices);    testdata = Data(:, testindices);    % 训练数据600个trainlabel = Label(:, trainindices);  testlabel = Label(:, testindices);  % 测试数据3000个% 数据归一化(可选)[traindata,PS]=mapminmax(traindata,0,1);              %要进行一次转置,这样的归一化是对列(也就是每个传感器响应曲线)的归一化,也有的是对每一次采样得到的数据进行归一化。 testdata=mapminmax('apply',testdata,PS);setdemorandstream(pi);        % 固定随机值Softmaxnet = trainSoftmaxLayer(traindata,trainlabel,'MaxEpoch',500);Y = Softmaxnet(testdata);    % 统计分类正确率figureplotconfusion(testlabel,Y);testClassPrediction=compet(Y);testClass=vec2ind(testClassPrediction);ttest=vec2ind(testlabel);count = sum(testClass == ttest);Accuracy = 100*count/length(testlabel);disp('the Accuracy is ');disp(Accuracy);figureplot(testClass ,'ro-');hold onplot(ttest ,'b*-');legend('SOFTmax预测值','真实值')xlabel('样本')title(['准确率=',num2str(Accuracy)])

3 仿真结果

4 参考文献

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值