%% 【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. padding标准盒模型和怪异盒子模型

    我们都知道padding是为块级元素设置内边距 但是在使用过程中,我们却会遇到一些问题.padding的标准盒模型和怪异盒模型 padding盒子模型 我们通过demo来讲这个问题,用文字干讲第一没意 ...

  2. Atitit 图像处理知识点体系知识图谱 路线图attilax总结 v4 qcb.xlsx

    Atitit 图像处理知识点体系知识图谱 路线图attilax总结 v4 qcb.xlsx 分类 图像处理知识点体系 v2 qb24.xlsx 分类 分类 理论知识 图像金字塔 常用底层操作 卷积扫描 ...

  3. Android-Activity-Dialog theme touch outsize

    最近遇到一个蛋疼的问题: 一个Activity,主题设置成 Dialog 然后点击外面要求这个Activity 不能关闭. 这下好了,直接在 style 的 theme 里面加一个属性就好了. 加上去 ...

  4. Yii2-多表关联的用法示例

    本篇博客是基于<活动记录(Active Record)>中对于AR表关联用法的介绍. 我会构造一个业务场景,主要是测试我比较存疑的各种表关联写法,而非再次介绍基础用法. 构造场景 订单ar ...

  5. CSS系列:CSS中盒子的浮动与定位

    1. 盒子的浮动 在标准流中,一个块级元素在水平方向会自动伸展,知道包含它的元素的边接:而在竖直方向与相邻元素依次排列,不能并排. CSS中float属性,默认为none.将float属性的值设置为l ...

  6. 【Win10 应用开发】OCR识别

    OCR,即Optical Character Recognition,光学字符识别.以下介绍来自搜索: OCR(Optical Character Recognition,光学字符识别)是指电子设备( ...

  7. jQuery源码分析系列(31) : Ajax deferred实现

    AJAX的底层实现都是浏览器提供的,所以任何基于api上面的框架或者库,都只是说对于功能的灵活与兼容维护性做出最优的扩展 ajax请求的流程: 1.通过 new XMLHttpRequest 或其它的 ...

  8. [转]用C/C++扩展PHP详解

    原文:http://www.imsiren.com/archives/547 一个简单的扩展模块 PHP非常容易扩展,因为它提供了我们想用的所有API. 如果要新建一个扩展,需要在PHP源码中执行ex ...

  9. 应用程序框架实战二十九:Util Demo介绍

    上文介绍了我选择EasyUi作为前端框架的原因,并发放了最新Demo.本文将对这个Demo进行一些介绍,以方便你能够顺利运行起来. 这个Demo运行起来以后,是EasyUi的一个简单CRUD操作,数据 ...

  10. 在Objective-C中浅谈面向对象

    接触面向对象也有一段时间了,当时是通过C++学习的OOP,后来又接触到了PHP和Java.每种OOP的语言在面向对象上或多或少都会有不同的地方,现在在学习OC的面向对象部分,又感觉到OC面向对象的特点 ...