%% 【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. 大叔最新课程~MVC核心技术剖析

    <MVC核心技术剖析介绍> 主讲:仓储大叔 时间:2016-12-04 20:30分 MVC各层分工 Http请求的过程 如何查找Action 如何渲染视图 ViewModel,DTO,D ...

  2. CefSharp初识--把网页移到桌面

    在开发中我们可曾有过这样的需求,将某个网页嵌入到.Net应用中来,但Winform自带的web browser不怎么理想.CefSharp可以让我们在.Net应用中嵌入一个Chromium.它提供了W ...

  3. 2013 duilib入门简明教程 -- 部分bug (11)

     一.WindowImplBase的bug     在第8个教程[2013 duilib入门简明教程 -- 完整的自绘标题栏(8)]中,可以发现窗口最大化之后有两个问题,     1.最大化按钮的样式 ...

  4. salesforce 零基础学习(四十八)自定义列表分页之Pagination基类封装 ※※※

    我们知道,salesforce中系统标准列表页面提供了相应的分页功能,如果要使用其分页功能,可以访问http://www.cnblogs.com/zero-zyq/p/5343287.html查看相关 ...

  5. iOS----集成ijkplayer视频直播

    ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集成ijk ...

  6. Windows组件:打开MSDTC,恢复Windows TaskBar,查看windows日志,打开Remote Desktop,打开Services,资源监控

    一,Win10 打开 MSDTC 1,Win+R 打开运行窗口,输入 dcomcnfg,打开组件服务窗口 2,在组件服务 catalog下找到 Distributed Transaction Coor ...

  7. LINQ系列:LINQ to SQL Exists/In/Any/All/Contains

    1. Any 返回没有Product的Category var expr = from c in context.Categories where !c.Products.Any() select c ...

  8. OpenCASCADE DataExchange DWG

    OpenCASCADE DataExchange DWG eryar@163.com Abstract. DWG is a file format created in the 70’s for th ...

  9. alert()与console.log()的区别

    [1]alert() [1.1]有阻塞作用,不点击确定,后续代码无法继续执行 [1.2]alert()只能输出string,如果alert输出的是对象会自动调用toString()方法 e.g. al ...

  10. MySQL学习笔记十六:锁机制

    1.数据库锁就是为了保证数据库数据的一致性在一个共享资源被并发访问时使得数据访问顺序化的机制.MySQL数据库的锁机制比较独特,支持不同的存储引擎使用不同的锁机制. 2.MySQL使用了三种类型的锁机 ...