① 如何选择SVM,逻辑回归和神经网络算法
神经网络的设计要用到遗传算法,遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。
1.遗传算法在网络学习中的应用
在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用
(1)学习规则的优化
用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。
(2)网络权系数的优化
用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。
2.遗传算法在网络设计中的应用
用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:
(1)直接编码法
这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。
(2)参数化编码法
参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
(3)繁衍生长法
这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
3.遗传算法在网络分析中的应用
遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
② 神经网络和支持向量机的优缺点!
SVM有如下主要几个特点:
(1)非线性映射是SVM方法的理论基础,SVM利用内积核函数代替向高维空间的非线性映射;
(2)对特征空间划分的最优超平面是SVM的目标,最大化分类边际的思想是SVM方法的核心;
(3)支持向量是SVM的训练结果,在SVM分类决策中起决定作用的是支持向量。
(4)SVM 是一种有坚实理论基础的新颖的小样本学习方法。它基本上不涉及概率测度及大数定律等,因此不同于现有的统计方法。从本质上看,它避开了从归纳到演绎的传统过程,实现了高效的从训练样本到预报样本的“转导推理”,大大简化了通常的分类和回归等问题。
(5)SVM 的最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”。
(6)少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本、“剔除”大量冗余样本,而且注定了该方法不但算法简单,而且具有较好的“鲁棒”性。这种“鲁棒”性主要体现在:
①增、删非支持向量样本对模型没有影响;
②支持向量样本集具有一定的鲁棒性;
③有些成功的应用中,SVM 方法对核的选取不敏感
两个不足:
(1) SVM算法对大规模训练样本难以实施
由于SVM是借助二次规划来求解支持向量,而求解二次规划将涉及m阶矩阵的计算(m为样本的个数),当m数目很大时该矩阵的存储和计算将耗费大量的机器内存和运算时间。针对以上问题的主要改进有有J.Platt的SMO算法、T.Joachims的SVM、C.J.C.Burges等的PCGC、张学工的CSVM以及O.L.Mangasarian等的SOR算法
(2) 用SVM解决多分类问题存在困难
经典的支持向量机算法只给出了二类分类的算法,而在数据挖掘的实际应用中,一般要解决多类的分类问题。可以通过多个二类支持向量机的组合来解决。主要有一对多组合模式、一对一组合模式和SVM决策树;再就是通过构造多个分类器的组合来解决。主要原理是克服SVM固有的缺点,结合其他算法的优势,解决多类问题的分类精度。如:与粗集理论结合,形成一种优势互补的多类问题的组合分类器。
③ svm是把数据从低维映射到高维,而RBF神经网络也是这样,从这一点来说,区别是什么,谢谢
区别在于RBF是一个显示映射,而svm是通过内积构造核函数,是一个隐示的映射
④ 以下那些分类算法可以较好地避免样本不平衡问题A KNN BSVM C Bayes D神经网络 答案选A,求解释
KNN只是取了最近的几个样本点做平均而已,离预测数据较远的训练数据对预测回结果不会造成答影响,但是svm、Bayes和NN每一个训练样本果都会对预测结果产生影响,于是如果样本不平衡的话KNN的效果最好,举个极端一点例子:答案只有A与B,但是训练样本中A的个数占99%,而B只有1%,svm、Bayes和NN训练出来的结果,恐怕预测任何数据给出的答案都是A,但是KNN不会。
⑤ 识别数字,bp神经网络算法,卷积神经网络算法,svm算法,adaboost算法哪种好
看数字图片而定。如果图片较小并且质量还不错,那么通过2层的神经网络就能胜任。
对于MNIst数据集(28*28的手写数字),2层神经网络准确率可达99%,svm也有98%以上。
以上实现非常简单,matlab已经有现成工具箱。
卷积神经网络通常用于更加复杂的场合,闭合是被图像内容等。在MNIST数据集上cnn可达99.7%准确率,但是实现起来较为复杂,需要通过开源框架caffe,keras等进行编程。
如果对准确率要求没有达到小数点后两位的程度,用简单的svm,神经网络,softmax等调调参数就行了。
⑥ 怎么看出SVM比BP神经网络收敛速度快
单纯比较收敛速度并没有意义,因为两种方法的原理完全不同。但从得到全版局最优解的角度来看,SVM效果权较好。
一、SVM可以发现全局最优,而BP算法通常只能获得局部最优
SVM学习问题可以表示为凸优化问题,因此可以利用已知的有效算法发现目标函数的全局最小值。而其他分类方法(如基于规则的分类器和BP人工神经网络)都采用一种基于贪心学习的策略来搜索假设空间,这种方法一般只能获得局部最优解。
二、SVM方法避免了“维数灾难”
SVM方法巧妙地解决了维数灾难难题:应用核函数的展开定理,就不需要知道非线性映射的显式表达式;由于是在高维特征空间中建立线性学习机,所以与线性模型相比,不但几乎不增加计算的复杂性,而且在某种程度上避免了“维数灾难”.这一切要归功于核函数的展开和计算理论。
⑦ 推荐一款支持向量机SVM和神经网络软件
迈实软件(meshcade)有神经网络和支持向量机SVM软件,有入门视频教程,可下载一试。
⑧ 求Matlab做电力系统短期负荷预测的代码,用SVM或者神经网络的都可以,用作参考
%% BP神经网络: p t pt tt(测试样本目标值) ta(目标归一化标准)
ss=10000000;
S1=14; %8--18
for i=1:1
% 网络创建
net=newff(p,t,[8],{'tansig','purelin'},'trainrp'); %'traingd' lm
% 设置训练参数
net.trainParam.show=10;%显示中间结果的周期
%net.trainParam.showWindow=flase;
net.trainParam.epochs=2000;%最大迭代次数
%net.trainParam.goal=0.1;%神经网络训练的目标误差
%net.trainParam.lr=0.1;%学习率0.01--0.8
%net.trainParam.mc=0.9; %
%net.iw{1,1}=iw;net.lw{2,1}=lw;net.b{1}=theta1;net.b{2}=theta2;
%net.layers{1}.initFcn ='initlay';
% 网络训练
[net,tr]=train(net,p,t);
% 仿真测试
temp=sim(net,p);
pe=mapminmax('reverse',temp,ta); %pe
%pe=mapminmax(pe);
mset=t-pe;
w=norm(mset);
len=length(t);
s=(w^2)/len;%误差
end
s_bp=sim(net,pt); % BP神经网络的仿6真结果 -1--1
s1=mapminmax('reverse',s_bp,ta); %0--1
s2=mapminmax(s1,0,1); %最终归一化的结果
⑨ SVM属于神经网络范畴吗
不一样,如果用作分类的话,两者的分类原理是不一样的,就当前而言,用SVM作分类更多,个人觉得,二者有交叉,是两种不同的方法,但不能说SVM属于神经网络,当然,也有人将SVM纳入神经网络的范畴。
⑩ 模式识别中神经网络与SVM比,有优势么如果有,在哪里呢
说不上优势,只是使用中方便性有点差别
神经网络的结构比较适合做多分类问题,
SVM本质上是处理二分类问题,当然通过1v1或1vall的方式也可以做多分类