『壹』 在matlab中导入libsvm工具箱时出现问题
这个问题还真不太清楚,我以前编译libsvm的时候没有遇到这种问题
我给你了一份我编译好的libsvm,你试试看能不能用。
上传到了
网盘
了:
http://d.namipan.com/d/
『贰』 怎么用MATLAB下的libsvm工具箱画最优分类面
只有线性可分的2维情况,才能画出可视化图。
高维无法可视化
线性不可分的,由于已经映射到高维空间,而且是采用核函数,本身的映射函数不可知,所以在原空间中无法画出最优分类超平面。
但通过核函数映射后在 高维空间中的分类超平面的方程可知。
『叁』 请问Matlab的libsvm工具箱如何进行多元回归
这个问题其实非常地简单。
1、在Matlab里面先做这样一小段处理:
data = [
0.5 2 12 26 2 0.0476890000000000
0.5 3 14 28 4 0.0792965000000000
0.5 4 16 30 6 0.106723000000000
0.5 5 18 32 8 0.112500000000000
1 2 14 30 8 0.487650000000000
1 3 12 32 6 0.0955300000000000
1 4 18 26 4 0.336150000000000
1 5 16 28 2 0.202830000000000
1.5 2 16 32 4 1.18260000000000
1.5 3 12 30 2 0.273390000000000
1.5 4 18 28 8 0.784670200000000
1.5 5 14 26 6 0.487695000000000
2 2 18 28 6 1.41230000000000
2 3 16 26 8 0.934150000000000
2 4 14 32 2 0.181100000000000
2 5 12 30 4 1.08280000000000
];
x = data(:,1:end-1);
y = data(:,end);
% 上述处理即是将最后一列作为输出,前n-1列全部作为输入
2. 将 x, y 分别作为输入和输出放入svmtrain函数中训练
3. 再在svmpredict函数中输入x即可得出各个x对应的预测值y
注:这里的原理其实十分简单,在libsvm中其实也是将所有变量都默认为了向量(或矩阵),所以你只管输入的数据结构即可。
『肆』 求在MATLAB下编译好(可以直接使用)的libsvm工具箱
以下两种方法,我已经亲测可用
方法1:可以在其他朋友的电脑上进行编译,编译完后直接把libsvmread.mexw64、libsvmwrite.mexw64、svmpredict.mexw64、svmtrain.mexw64复制到你自己的程序中即可运行。这种方法的弊端是不同的算法程序中均需要复制一次。
方法2:把编译完后的libsvmread.mexw64、libsvmwrite.mexw64、svmpredict.mexw64、svmtrain.mexw64这几个文件添加到F:\MATLAB 2015a anzhuang\toolbox\libsvm-3.22\matlab下,即可
『伍』 如何在MATLAB中添加SVM函数工具箱
打开matlab,点击HOME中的"Set Path"选项。
『陆』 请教,如何在matlab下配置LIBsvm加强工具箱
第一步选n,会出来几个compiler, Microsoft Visual C/C++ version 7.0, Microsoft Visual C/C++ version 6.0什么的,选择你的版本。注意执行mex的时候,matlab环境的路径设置成你要安装的libsvm的文件夹。实在不行换成matlabR2011a吧,好多东西都装好在里面了,还有一些demo什么的可以参考。
『柒』 matlab使用libsvm工具箱回归预测不准确,怎么解决
得看你数据特征是什么 以及你svm用的参数是什么
svm调参是一门学问,现在都不流行这个了
还有得看你数据是不是时间周期类型, 时间类型用普通的回归做效果也不会很好
『捌』 Matlab除了matlab 还有其他更好用、智能提示的第三方的IDE吗
【工具箱】
libsvm-3.1-[FarutoUltimate3.1Mcode]
其他名称:libsvm-faruto版本,libsvm-faruto加强工具箱,libsvm-farutoUltimate版本
【更新说明】
libsvm-faruto版本好久都没有更新了,近期我将代码重新整理了一下,看到注释中上次更新代码的时间是2010.01.17,才发现libsvm-faruto版本已经一年多没有添加进行更新,看着自己以前编写的一行行代码,心中不免想起过往那些逝去的岁月,想起过往的那些人,煽情的不多说,此次更新主要内容如下:
1.基于目前的最新的libsvm-3.1编写。
2.对原来的部分代码进行了重新优化。
3.添加ClassResult.m函数,方便给出各种分类准确率,以及给出判别函数的权值w、偏置b、支持向量在原始训练集中的位置索引以及alpha系数。
给出这个函数的目的是方便大家,个人感觉这个函数会对相关朋友有很大帮助。
4.重新编写说明文档TutorialForFarutoUltimate3.1.pdf
由于libsvm回归不支持多输出,本来还想实现libsvm的多输出(lssvm支持多输出,但我详细研究了一下lssvm也就是一维一维的进行回归实现的多输出,libsvm完全可以仿照这种形式实现多输出),但后来又犯懒,因为实在没有技术含量,就搁置了。如果实现有朋友需要就在后期的版本更新中添加吧。另外给大家做个预告,暑假期间我会制作一系列的关于libsvm工具箱和lssvm工具箱的视频,完全免费下载。之前在我的那个专辑期刊中做过预告,这里权当造势啦。O(∩_∩)O
『玖』 安装了libsvm,matlab自带的svmtrain怎么用
1、 配置C环境:
在MATLAB中任意路径下,输入mex –setup
然后按步骤进行
2、 添加路径
(1) 将libsvm工具箱复制到MATLAB的toolbox文件夹下
(2) Set path-------Add withSubfolders,将libsvm的工具箱文件夹添加到路径中
3、 编译
将当前路径设置为libsvm工具箱中的matlab文件夹下,输入make即可。
此时,若直接调用svmtrain(),则用的还是MATLAB自带的函数。
『拾』 如何在matlab里安装libsvm包
1.下载好libsvm包
下载libsvm-3.21到随意一个地方,比如到安装路径下的 toolbox下——D:\MATLAB\R2014A\toolbox\下,并解压。
打开matlab,将libsvm-3.21\matlab 添加到路径,比如将:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab 添加到路径。
2.setup 第一次尝试
若提示没有C++编译器,则根据提示的网址去下载 winsdk_web.exe,然后 双击运行winsdk_web.exe,安装到最后若提示失败,则去卸载自带的visual studio 和 .netframework 4,然后再运行 winsdk_web.exe,提示缺少 .netframework 4,则自行下载安装,反复运行 winsdk_web.exe。
直到运行 winsdk_web.exe 时出现如下图所示情况,说明距成功更近一步了,
选择 Change,下一步,
勾选上 visual C++ compilers 和 microsoft visual C++ 2010,下一步,
最后提示成功安装。
2. setup
打开Matlab中,进入LIBSVM根目录下的matlab目录(如D:\MATLAB\R2014A\toolbox\libsvm-3.21),在命令窗口的输入mex -setup 输出为:
>>mex –setup
MEX 配置为使用 'Microsoft Windows SDK 7.1 (C)' 以进行 C 语言编译。
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the
new API. You can find more information about this at:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
要选择不同的语言,请从以下选项中选择一种命令:
mex -setup C++
mex -setup FORTRAN
继续:
>> mex -setup C++
MEX 配置为使用 'Microsoft Windows SDK 7.1 (C++)' 以进行 C++ 语言编译。
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the
new API. You can find more information about this at:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
3.编译
执行 make,输出如下:
>> make
使用 'Microsoft Windows SDK 7.1 (C)' 编译。
MEX 已成功完成。
使用 'Microsoft Windows SDK 7.1 (C)' 编译。
MEX 已成功完成。
使用 'Microsoft Windows SDK 7.1 (C++)' 编译。
找不到 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab\svmtrain.exp
找不到 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab\svmtrain.exp
MEX 已成功完成。
使用 'Microsoft Windows SDK 7.1 (C++)' 编译。
找不到 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab\svmpredict.exp
找不到 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab\svmpredict.exp
MEX 已成功完成。
>>
4.重命名
忽略错误(找不到……),继续,编译完成后,在当前目录下(libsvm-3.21/matlab下)会出现svmtrain.mexw64、svmpredict.mexw64 或者svmtrain.mexw32、svmpredict.mexw32 ,把文件名svmtrain和svmpredict 相应改成 libsvmtrain 和 libsvmpredict。
这是因为Matlab中自带有SVM的工具箱,其函数名字就是svmtrain和svmpredict,和 libsvm 默认的名字一样.
5.测试是否安装成功libsvm
libsvm 软件包中自带有测试数据,即软件包根目录下的 heart_scale 文件。
在matlab运行代码,输出如下:
>> [heart_scale_label, heart_scale_inst] = libsvmread('heart_scale');
>> model = libsvmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');
*
optimization finished, #iter = 134
nu = 0.433785
obj = -101.855060, rho = 0.426412
nSV = 130, nBSV = 107
Total nSV = 130
>> [predict_label, accuracy, dec_values] = libsvmpredict(heart_scale_label, heart_scale_inst, model);
Accuracy = 86.6667% (234/270) (classification)
>>
OK ,perfect ! Congratulations to you!
如果遇到:
>> [heart_scale_label, heart_scale_inst] = libsvmread('heart_scale');
Invalid MEX-file 'C:\Users\jiao\Documents\MATLAB\libsvm-3.20\matlab\libsvmread.mexw64': 找不到指定的模块。
则把 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab 文件夹添加到路径就可以了。