%% 【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

判别或预测方法汇总(判别分析、神经网络、支持向量机SVM等)的更多相关文章

  1. OpenCV3 Java 机器学习使用方法汇总

    原文链接:OpenCV3 Java 机器学习使用方法汇总  前言 按道理来说,C++版本的OpenCV训练的版本XML文件,在java中可以无缝使用.但要注意OpenCV本身的版本问题.从2.4 到3 ...

  2. 知识图谱-生物信息学-医学顶刊论文(Bioinformatics-2021)-KG4SL:用于人类癌症综合致死率预测的知识图神经网络

    5.(2021.7.12)Bioinformatics-KG4SL:用于人类癌症综合致死率预测的知识图神经网络 论文标题:KG4SL: knowledge graph neural network f ...

  3. 你真的会玩SQL吗?实用函数方法汇总

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  4. Java实现时间动态显示方法汇总

    这篇文章主要介绍了Java实现时间动态显示方法汇总,很实用的功能,需要的朋友可以参考下 本文所述实例可以实现Java在界面上动态的显示时间.具体实现方法汇总如下: 1.方法一 用TimerTask: ...

  5. C#读写文件的方法汇总_C#教程_脚本之家

    C#读写文件的方法汇总_C#教程_脚本之家 http://www.jb51.net/article/34936.htm

  6. UITextView实现placeHolder方法汇总

    UITextField中有一个placeholder属性,可以设置UITextField的占位文字,起到提示用户的作用.可是UITextView就没那么幸运了,apple没有给UITextView提供 ...

  7. 将编码从GB2312转成UTF-8的方法汇总(从前台、程序、数据库)

    这篇文章主要介绍了将编码从GB2312转成UTF-8的方法汇总(从前台.程序.数据库),需要的朋友可以参考下 一个网站如果需要国际化,就需要将编码从GB2312转成UTF-8,其中有很多的问题需要注意 ...

  8. 本地获取System权限CMD方法汇总(转)

    本地获取System权限CMD方法汇总(转) 稍微整理了下,大概有三种方法可以本地获取system权限的cmd,但前提都是当前用户具备administrator权限. 下面列举的三种方法各有千秋,看你 ...

  9. Javascript对象属性与方法汇总

    Javascript对象属性与方法汇总 发布时间:2015-03-06 编辑:www.jquerycn.cn 详细介绍下,javascript对象属性与对象方法的相关知识,包括javascript字符 ...

随机推荐

  1. Dash文档制作教程

    前言 什么是Dash 面向程序员的文档库(Mac) 代码片段管理工具 这是强烈推荐给每天在各种API文档中摸爬滚打的程序员们的神器. 为什么要自己制作文档 官方的源中没有相关文档 文档在离线下体验更好 ...

  2. [CORS:跨域资源共享] 同源策略与JSONP

    Web API普遍采用面向资源的REST架构,将浏览器最终执行上下文的JavaScript应用Web API消费者的重要组成部分."同源策略"限制了JavaScript的跨站点调用 ...

  3. 基于Java的打包jar、war、ear包的作用与区别详解

      本篇文章,小编为大家介绍,基于Java的打包jar.war.ear包的作用与区别详解.需要的朋友参考下   以最终客户的角度来看,JAR文件就是一种封装,他们不需要知道jar文件中有多少个.cla ...

  4. 探讨Js的事件的冒泡阶段

    近来看到了一个新的知识点叫Js的事件冒泡,因此决定自己来研究一番. 大家应该都知道,Js中的事件处理分为三个阶段,1:事件的捕获阶段,2:处于目标阶段,3:事件的冒泡阶段.那么什么是事件的捕获和冒泡呢 ...

  5. WCF学习之旅——第一个WCF示例(二)

    第四步:通过自我寄宿的方式寄宿服务 WCF服务需要依存一个运行着的进程(宿主),服务寄宿就是为服务指定一个宿主的过程.WCF是一个基于消息的通信框架,采用基于终结点(Endpoint)的通信手段. 终 ...

  6. 【Win 10应用开发】实现全屏播放的方法

    有人会问,以前的MediaElement控件不是有现成的一排操作按钮吗?而且可以直接进入全屏播放.是的,我们知道,以往的Store App都是在全屏模式下运行的,只要MediaElement控件填满整 ...

  7. jQuery 2.0.3 源码分析Sizzle引擎 - 超级匹配

    声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢! 通过Expr.find[ type ]我们找出选择器最右边的最终seed种子合集 通过Sizzle.compile函数编译器 ...

  8. Mask裁切UI粒子特效或者3D模型

    刚好前几天有人问我这个问题,再加上新项目也可能用,所以这两天就研究了一下.其实如果粒子特效 和3D模型 都用RenderTexture来做的话就不会有裁切的问题,但是粒子特效用RenderTextur ...

  9. MVC4做网站后台:用户管理 ——用户组 1、添加用户组

    打开控制器UserGroupController 添加Add action /// <summary> /// 添加用户组 /// </summary> /// <ret ...

  10. 学用MVC4做网站六后台管理:6.1.3管理员修改密码

    6.1.3修改密码 需要两个action.一个是点击修改密码的链接要显示修改密码的分部视图(对话框形式):另一个是提交的处理action. 1.打开[AdministratorController]添 ...