最小二乘支持向量机的自编代码和安装SVM工具箱方法Word格式文档下载.doc
《最小二乘支持向量机的自编代码和安装SVM工具箱方法Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《最小二乘支持向量机的自编代码和安装SVM工具箱方法Word格式文档下载.doc(4页珍藏版)》请在冰豆网上搜索。
%核参数值
%*********构造感知机核函数*************************************
%fori=1:
N
%x1=x(:
index(i));
%forj=1:
%x2=x(:
index(j));
%K(i,j)=tanh(deita*(x1'
*x2)+thita);
%end
%end
%*********构造径向基核函数**************************************
fori=1:
x1=x(:
forj=1:
x2=x(:
x12=x1-x2;
K(i,j)=exp(-(x12'
*x12)/2/(deita*deita));
end
end
%*********构造多项式核函数****************************************
%K(i,j)=(1+x1'
*x2)^(deita);
%*********构造核矩阵************************************
fori=1:
N-NN1
forj=1:
omeiga1(i,j)=K(i,j);
end
end
omeiga2=omeiga1'
;
omeiga=omeiga2+(1/gama)*eye(N-NN1);
A12=ones(1,N-NN1);
A21=A12'
A=[0A12;
A21omeiga];
%**************************************
B21(i,:
)=y(index(i));
B=[0;
B21];
%********LS-SVM模型的解******************************
C=A\B;
%******
b=C
(1);
%模型参数
aipha(i)=C(i+1);
%模型参数,行向量
%*******************************************
fori=1:
N%预测模型
aifx(i)=b+(aipha)*K(1:
N-NN1,i);
end
aifx
index
从网上搜到,还没试,不知那个可以成功,先收藏下
方法一:
Matlab大部分函数都放在了toolbox这个文件夹下面。
可以试着把需要的函数和工具箱放进去看看能不能用。
象matlab升级以后功能会更强大,包含的工具箱也越多,所占用的硬盘空间也变得很大。
建议你安装的时候选择自定义安装,只装自己需要的几个工具箱,看你需要是用在什么专业,它里面有很多比如财务工具箱,航空工具箱,生物技术工具箱对与我专业就没有用,就可以不安装。
这样就省了空间了。
结一下matlab添加工具箱的方法:
第一种:
如果是安装光盘上的工具箱,重新执行安装程序,选中即可。
如果是单独下载的工具箱,一般情况下仅需要把新的工具箱解压到某个目录,然后用pathtool添加工具箱的路径。
在命令窗口中敲入pathtool,会出现一个setpath的窗口,点add
folder或者add
with
subfolders按钮,选中你的工具箱。
保存既可。
任选工具箱中的一个命令,然后help一下看看是否好使。
举例:
我下载了支持向量基工具箱,解压后,里边有一个目录svm
我的matlab安装在D:
\MATLAB6p5
将svm目录拷贝至D:
\MATLAB6p5\toolbox
然后运行matlab,在命令窗口输入addpath
D:
\MATLAB6p5\toolbox\svm回车,来添加路径。
然后在svm目录下,任意找一个m文件,以svcinfo.m为例
在命令窗口中输入which
svcinfo.m
如果显示出该文件路径,如
\MATLAB6p5\toolbox\svm\svcinfo.m
则安装成功
方法二:
在libsvm的网站上下载libsvm-mat-2.83-1.zip文件,解压后放在任意目录下(比如c:
\libsvm-mat-2.83-1下)
打开matlab,切换到c:
\libsvm-mat-2.83-1目录下,键入以下命令:
mex
-setup
Matlab会询问你是否需要locate
installed
compiler,选择y,然后根据需要选择一个编译器即可。
确认时选择y即可。
然后键入
make
就会生成svmtrain.dll,svmpredict.dll和read_sparse.dll这三个文件(对于Matlab
7.1及以上版本,生成的对应文件为svmtrain.mexw32,svmpredict.mexw32和read_sparse.mexw32)
然后可以在matlab的菜单File->
Set
Path->
Add
Folder里,把c:
\libsvm-mat-2.83-1目录添加进去,这样以后在任何目录下都可以调用libsvm的函数了。
为了检验libsvm和matlab之间的接口是否已经配置完成,可以在matlab下执行以下命令:
load
heart_scale.mat
model
=
svmtrain(heart_scale_label,
heart_scale_inst,
'
-c
1
-g
2'
);
如果运行正常并生成了model这个结构体(其中保存了所有的支持向量及其系数),那么说明libsvm和matlab之间的接口已经完全配置成功。
附:
SVM的历史
基于数据的机器学习是现代智能技术中的重要方面,
研究从观测数据(样本)
出发寻找规律,
利用这些规律对未来数据或无法观测的数据进行预测.
包括模式识别、神经网络等在内,
现有机器学习方法共同的重要理论基础之一是统计学.传统统计学研究的是样本数目趋于无穷大时的渐近理论,
现有学习方法也多是基于此假设.
但在实际问题中,
样本数往往是有限的,
因此一些理论上很优秀的学习方法实际中表现却可能不尽人意.
与传统统计学相比,
统计学习理论(Statistical
Learning
Theory
或SLT
)
是一种专门研究小样本情况下机器学习规律的理论.
V.
Vapnik等人从六、七十年代开始致力于此方面研究
到九十年代中期,
随着其理论的不断发展和成熟,
也由于神经网络等学习方法在理论上缺乏实质性进展,
统计学习理论开始受到越来越广泛的重视.
统计学习理论是建立在一套较坚实的理论基础之上的,
为解决有限样本学习问题提供了一个统一的框架.
它能将很多现有方法纳入其中,
有望帮助解决许多原来难以解决的问题(比如神经网络结构选择问题、局部极小点问题等)
同时,
在这一理论基础上发展了一种新的通用学习方法——支持向量机(Support
Vector
Machine
或SVM
它已初步表现出很多优于已有方法的性能.
一些学者认为,SVM
正在成为继神经网络研究之后新的研究热点,
并将有力地推动机器学习理论和技术的发展。
我国早在八十年代末就有学者注意到支持向量机的基础成果,但之后较少研究,目前只有少部分学者认识到这个重要的研究方向.