当前位置: 首页 > news >正文

判别或预测方法汇总(判别分析、神经网络、支持向量机SVM等)

%% 【Input】:s_train(输入样本数据,行数为样本数,列为维数);s_group(训练样本类别);s_sample(待判别数据)
%% 【Output】:Cla(预测类别)

function Cla = fun_panbie(s_train,s_group,s_sample,index )
switch index
case 1%Classify
%[s_train,~]=mapminmax(s_train);%标准化处理
%[s_sample,~]=mapminmax(s_sample);%标准化处理
[Cla,err,posterior,~,~]=classify(s_sample,s_train,s_group,'linear','empirical');%SS={'linear','diaglinear','quadratic','diagquadratic','mahalanobis'};%判别函数
case 2%SVM
net=svmtrain(s_train,s_group,'kernel_function','linear');%核函数SS={'linear','quadratic','polynomial','rbf','mlp'}
Cla=svmclassify(net,s_sample);
case 3%knnclassify
%略
case 4%RBF
net=newrb(s_train',s_group',0.1,0.1);
Cla=int16(net(s_sample))';
case 5%LVQ
T=ind2vec(s_group'+1);
net=newlvq(minmax(s_train'),5);
net.trainParam.showWindow=0;
net=train(net,s_train',T);
y=sim(net,s_sample');
Cla=vec2ind(y)'-1;
case 6%Elman
[pn,minp,maxp,tn,mint,maxt]=premnmx(s_train',s_group');%数据归一化
p2= tramnmx(s_sample',minp,maxp);
net=newelm(minmax(pn),[3,size(s_group,2)],{'tansig','tansig'});%建立网络模型,其中参数可以根据要求修改
net.trainparam.show=100;%每迭代100次显示1次
net.trainparam.epochs=1000;%最大迭代次数2000
net.trainparam.goal=0.001;%迭代目标
net=init(net);%初始化网络
net.trainParam.showWindow=0;%神经网络训练过程的窗口不弹出来
[net,tr]=train(net,pn,tn);%训练网络
Cla=sim(net,s_sample')';%仿真
Cla=postmnmx(Cla,mint,maxt);%仿真值反归一化
case 7%单层感知器
YY=minmax(s_train');
net=newp(YY,1);
net.trainParam.epochs=20;
net.trainParam.showWindow=0;
net=train(net,s_train',s_group');
Cla=sim(net,s_sample)';
case 8%线性神经网络
T=repmat(s_group,1,size(s_train',2));
net=newlin(minmax(s_train'),size(T,1),10,0.05);
net.trainParam.epochs=500;
net.trainParam.goal=0.0001;
net.trainParam.showWindow=0;
net=train(net,s_train',T);
y=sim(net,s_sample');
Cla=y(:,1);
case 9%单层竞争神经网络
mm=s_train(:);
mm=minmax(mm');
Q=repmat(mm,size(s_train,2),1);
net=newc(Q,2,0.1);
net=init(net);
net.trainParam.showWindow=0;
net.trainparam.epochs=20;
net=train(net,s_train');
a=sim(net,s_train');
Cla=vec2ind(s_sample')';
case 10%BP神经网络
mm=s_train(:);
mm=minmax(mm');
net=newff(repmat(mm,size(s_train',1),1),[5,3,3,1],{'tansig','tansig','tansig','purelin'},'traingd');
net.trainparam.epochs=300;
net.trainparam.lr=0.05;
net.trainparam.show=50;
net.trainparam.goal=1e-5;
net.trainParam.showWindow=0;
[net,tr]=train(net,s_train',s_group');
Cla=sim(net,s_sample')';
otherwise

end

end

转载于:https://www.cnblogs.com/libuyi/p/6028801.html

相关文章:

  • 从0到1起步-跟我进入堆外内存的奇妙世界
  • [LeetCode]--61. Rotate List
  • UVA 253 Cube painting
  • html+css-----补
  • excel技巧
  • sql连接:inner join on, left join on, right join on使用详解
  • Android下AIDL机制详解
  • 1614: [Usaco2007 Jan]Telephone Lines架设电话线
  • DataGridView的按钮列的点击事件
  • MVC--数据增删改查(Razro语法)
  • 【node学习】协程
  • 【转】JVM 分代GC策略分析
  • centos下编译安装MySQL5.7.16
  • Meta标签
  • OpenCV例程实现人脸检测
  • E-HPC支持多队列管理和自动伸缩
  • JavaScript新鲜事·第5期
  • Linux gpio口使用方法
  • Spring-boot 启动时碰到的错误
  • Vue2.0 实现互斥
  • win10下安装mysql5.7
  • 聊聊flink的TableFactory
  • 组复制官方翻译九、Group Replication Technical Details
  • ​人工智能书单(数学基础篇)
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • # include “ “ 和 # include < >两者的区别
  • #ifdef 的技巧用法
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (6)添加vue-cookie
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (强烈推荐)移动端音视频从零到上手(下)
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (一)认识微服务
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)Scala的“=”符号简介
  • .net 获取url的方法
  • .net和php怎么连接,php和apache之间如何连接
  • .NET中使用Redis (二)
  • @Repository 注解
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • @在php中起什么作用?
  • [2016.7.test1] T2 偷天换日 [codevs 1163 访问艺术馆(类似)]
  • [AI]文心一言爆火的同时,ChatGPT带来了这么多的开源项目你了解吗
  • [Asp.net mvc]国际化
  • [AutoSar]状态管理(五)Dcm与BswM、EcuM的复位实现
  • [C#]C# winform部署yolov8目标检测的openvino模型
  • [CTO札记]盛大文学公司名称对联
  • [HDU3710]Battle over Cities
  • [iOS]如何删除工程里面用cocoapods导入的第三方库
  • [LeetBook]【学习日记】获取子字符串 + 颠倒子字符串顺序
  • [P4V]Perforce(P4V)使用教程
  • [python]PyPI使用国内源
  • [Python学习笔记][Python内置函数]