MATLAB分类与预测算法函数
1、glmfit()
功能:构建⼀个⼴义线性回归模型。
使⽤格式:b=glmfit(X,y,distr),根据属性数据X以及每个记录对应的类别数据y构建⼀个线性回归模型,distr可取值为:binomial、gamma、inverse gaussian、normal(默认值)和poisson,分别代表不同类型的回归模型。
2、patternnet()
功能:构建⼀个模式识别神经⽹络。
模式识别神经⽹络是⼀个前馈神经⽹络,通过对已知含有标签的数据进⾏训练得到神经⽹络模型,从⽽可以对新的不含标签的数据进⾏分类。⽤于输⼊的标签数据需要进⾏特殊编码,即⼀个类别使⽤⼀个向量进⾏表⽰,⽐如⼀共有3个类别,那么类别1可以编码为[1,0,0],类别3可以编码为[0,0,1]。
使⽤格式:net=patternnet(hiddenSizes,trainFcn,performFcn),构建⼀个隐含层神经元个数为hiddenSizes,模型函数为trainFcn,性能函数为performFcn的神经⽹络net。
主要的模型函数有:
Trainscg:使⽤标度共梯度算法更新权值和偏移值
Trainlm:使⽤LM算法更新权值和偏移值
Trainbr:使⽤LM算法更新权值和偏移值(贝叶斯正则化)
Trainrp:根据弹反向传播算法更新权值和偏移值
3、fitctree()
功能:构建⼀个⼆叉分类树,每个分⽀节点根据输⼈数据进⾏确定。
使⽤格式:tree=fitctree(x,y),根据数据的属性数据x以及每个记录对应的类别数据y构建⼀个⼆叉分类树tree。
4、fitensemble()
功能:创建⼀个模型,该函数可以根据不同的参数构建不同的模型,可以⽤于分类或者回归。
使⽤格式:Ensemble=fitensemble(x,y,Method,NLearn,Learners),根据输⼊属性数据x以及每个记录对应的y值(如y是离散型变量,则模型为分类模型;如y是连续型变量,则模型为回归模型)、Method(⽤于构建的模型名称)、NLearn(模型学习的循环次数)以及Learners值(弱学习算法名称,有三个值,分别是“Discriminant”“KNN”“Tree”)构建⼀个分类或者回归模型。该模型的性能依赖于弱学习算法的参数设置,如果这些参数设置不合理,将导致较差的性能。
常⽤的method:
①参数值:AdaBoostM1
适⽤范围:适⽤于⼆类别分类
②参数值:LogitBoost
适⽤范围:适⽤于⼆类别分类
③参数值:GentleBoost
适⽤范围:适⽤于⼆类别分类
④参数值:AdaBoostM2
适⽤范围:适⽤于三类别分类及以上
使⽤fitensemble函数构建三个模型,对⽐三个模型的误差。
rng(0,'twister')
Xtrain=rand(2000,20);
Ytrain=sum(Xtrain(:,1:5),2)>2.5;
idx=randsample(2000,200);
Ytrain(idx)=~Ytrain(idx);
%构建⼀个AdaBoostM1模型
ada=fitensemble(Xtrain,Ytrain,'AdaBoostM1',300,'Tree','LearnRate',0.1);
%构建⼀个RobustBoost模型,设置误差阈值为0.15
rb1=fitensemble(Xtrain,Ytrain,'RobustBoost',300,'Tree','RobustErrorGoal',0.15,'RobustMaxMargin',1);正则化可以产生稀疏权值
%构建⼀个RobustBoost模型,设置误差阈值为0.01
rb2=fitensemble(Xtrain,Ytrain,'RobustBoost',300,'Tree','RobustErrorGoal',0.01)
figure
plot(resubLoss(rb1,'Mode','Cumulative'))
hold on
plot(resubLoss(rb2,'Mode','Cumulative'),'r--');
plot(resubLoss(ada,'Mode','Cumulative'),'g.');
hold off
xlabel('Number of trees');
ylabel('Resubstitution error');
legend('ErrorGoal=0.15','ErrorGoal=0.01','AdaBoostM1','Location','NE');
5、fitNaiveBayes()
功能:创建⼀个朴素贝叶斯分类器。
使⽤格式:NBModel=fitNaiveBayes(x,y),根据输⼊数据x以及每个x对应的类别号y(如果y为NaN或者空字符串‘’或者unidefined,都会被视为缺失值,朴素贝叶斯分类器会直接忽略这些值对应的x)构建⼀个朴素贝叶斯分类器。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论