×

libsvm li svm

libsvm(如何使用libsvm进行回归预测)

admin admin 发表于2023-08-24 14:14:23 浏览43 评论0

抢沙发发表评论

本文目录

如何使用libsvm进行回归预测

  《1》 下载Libsvm、Python和Gnuplot。我用的版本分别是:Libsvm(2.8.1),Python(2.4),Gnuplot(3.7.3)。注意:Gnuplot一定要用3.7.3版,3.7.1版的有bug.《2》 修改训练和测试数据的格式(可以自己用perl编个小程序):目标值 第一维特征编号:第一维特征值 第二维特征编号:第二维特征值 ......例如:2.3 1:5.6 2:3.2表示训练用的特征有两维,第一维是5.6,第二维是3.2,目标值是2.3注意:训练和测试数据的格式必须相同,都如上所示。测试数据中的目标值是为了计算误差用《3》 分别使用Libsvm中的Windows版本的工具svmscale.exe进行训练和测试数据的归一化,svmtrain.exe进行模型训练,svmpredict.exe进行预测(1)svmscale.exe的用法:svmscale.exe feature.txt feature.scaled默认的归一化范围是,可以用参数-l和-u分别调整上界和下届,feature.txt是输入特征文件名输出的归一化特征名为feature.scaled(2)svmtrtrain.exe训练模型我习惯写个批处理小程序,处理起来比较方便。例如svm_train.bat中训练语句为:svmtrain.exe -s 3 -p 0.0001 -t 2 -g 32 -c 0.53125 -n 0.99 feature.scaled训练得到的模型为feature.scaled.model具 体的参数含义可以参考帮助文档。这里-s是选择SVM的类型。对于回归来说,只能选3或者4,3表示epsilon-support vector regression, 4表示nu-support vector regression。-t是选择核函数,通常选用RBF核函数,原因在“A Practical Guide support vector classification”中已经简单介绍过了。-p尽量选个比较小的数字。需要仔细调整的重要参数是-c和-g。除非用 gridregression.py来搜索最优参数,否则只能自己慢慢试了。

如何调用libsvm 的java 库函数

  第一步:下载java版libsvm3.12,解压。    第二步:打开java文件夹      第三步:建立项目,引用lib.svm包    第五步:把第二步中的文件夹中四个文件复制到一个自定义的包中        第六步:写程序调用,代码如下,贴出来供大家学习,有不对的地方,欢迎拍砖。 import java.io.IOException;  import libsvm.svm;  import libsvm.svm_model;  public class SVMTest { public static void main(String args) throws IOException { svm_train svmt = new svm_train();  svm_predict svmp = new svm_predict();  String argvTrain = {  “C:\\Users\\baolong\\Desktop\\KDD\\other\\svm\\train\\TR1.data“,// 训练文件  “C:\\Users\\baolong\\Desktop\\KDD\\other\\svm\\model\\MO1.model“// 模型文件 };  String argvPredict = {  “C:\\Users\\baolong\\Desktop\\KDD\\other\\svm\\predict\\PR1.data“,// 预测文件  “C:\\Users\\baolong\\Desktop\\KDD\\other\\svm\\model\\MO1.model“, // 模型文件  “C:\\Users\\baolong\\Desktop\\KDD\\other\\svm\\result\\RE1.out“ // 预测结果文件  };  try {  svmt.main(argvTrain);  svmp.main(argvPredict);  } catch (IOException e) {  e.printStackTrace();  }  double record = { -1, 12, 12, 78 };  libsvm.svm_model model = svm .svm_load_model(“C:\\Users\\baolong\\Desktop\\KDD\\other\\svm\\model\\MO1.model“);  System.out.println(svmp.predictPerRecord(record, model)); }}

如何利用python使用libsvm

  把包解压在C盘之中,如:C:\libsvm-3.182.  因为要用libsvm自带的脚本grid.py和easy.py,需要去官网下载绘图工具gnuplot,解压到c盘.进入c:\libsvm\tools目录下,用文本器(记事本,edit都可以)修改grid.py和easy.py两个文件,找到其中关于gnuplot路径的那项,根据实际路径进行修改,并保存  python与libsvm的连接(参考SVM学习笔记(2)LIBSVM在python下的使用)  1.打开IDLE(pythonGUI),输入》》》importsys》》》sys.version  2.如果你的python是32位,将出现如下字符:  (default,Apr102012,23:31:26),m)  ##出现如下结果,应该是正确安装了optimizationfinished,#iter=257nu=0.351161  obj=-225.628984,rho=0.636110nSV=91,nBSV=49  TotalnSV=91  Accuracy=84.2857%(59/70)(classification)

如何将数据转换libsvm格式文件

使用FormatDataLibsvm.xls。其实这个软件就是一个excel工作薄,先把office的宏安全性应当设置为中或者低。打开它就会跳出来一个对话框,选“启用宏”就行了,其他不用管它,把你要的数据拷上去就好了。1,先运行FormatDataLibsvm.xls然后将数据粘贴到sheet1的topleft单元。 2,再“工具“--》“宏“--》执行下面有一个选项(FormatDatatoLibsvm)--》执行,要选中这个然后运行就可以了 ,这时数据转换的问题就解决了,可是现在生成的数据是.xls格式,它还是不能做为libsvm的训练文件啊!还需要怎么转换呢?3,可以copy到一个记事本中即可。但是注意在用libsvm的时候要在命令行输入.txt后缀。 输入数据的格式是 条件属性a 条件属性b ... 决策属性 7 5 ... 2 4 2 ... 1 输出数据格式是 决策属性 条件属性a 条件属性b ... 2 1:7 2:5 ... 1 1:4 2:2 ...P.S. 在第2步时,执行下面还有另一个选项(FormatDatafromLibsvm)这个可以把libsvm数据的格式重新转回来,转到你第1步时刚拷贝到excel里的数据形式。或者自己写个MATLAB的程序,将自己常用的数据格式按照这种数据格式要求转换成这种格式供LIBSVM直接使用。格式转换函数write2libsvm如下:function write2libsvm% 为了使得数据满足libsvm的格式要求而进行的数据格式转换% 原始数据保存格式为:% ,’w’);if(fid~=-1)for k=1:mfprintf(fid,’%3d’,B(k,1));for kk = 2:nfprintf(fid,’\t%d’,(kk-1));fprintf(fid,’:’);fprintf(fid,’%d’,B(k,kk));endfprintf(fid,’\n’);endfclose(fid);elsemsgbox(’无法保存文件!’);endcatchmsgbox(’文件保存过程中出错!’,’出错了...’,’error’);end

请问Matlab的libsvm工具箱如何进行多元回归

这个问题其实非常地简单。1、在Matlab里面先做这样一小段处理:data = ;x = data(:,1:end-1);y = data(:,end);% 上述处理即是将最后一列作为输出,前n-1列全部作为输入2. 将 x, y 分别作为输入和输出放入svmtrain函数中训练3. 再在svmpredict函数中输入x即可得出各个x对应的预测值y注:这里的原理其实十分简单,在libsvm中其实也是将所有变量都默认为了向量(或矩阵),所以你只管输入的数据结构即可。

如何使用libsvm进行分类

  其实使用libsvm进行分类很简单,只需要有属性矩阵和标签,然后就可以建立分类模型(model),然后利用得到的这个model进行分类预测了。  一、属性矩阵和标签:  一个班级里面有两个男生(男生1、男生2),两个女生(女生1、女生2),其中  男生1 身高:176cm 体重:70kg;男生2 身高:180cm 体重:80kg;女生1 身高:161cm 体重:45kg;女生2 身高:163cm 体重:47kg;  如果将男生定义为1,女生定义为-1,并将上面的数据放入矩阵data中,即  data = = svmpredict(testdatalabel,testdata,model);  predictlabel  复制代码  运行结果如下:  Accuracy = 0% (0/1) (classification)  predictlabel =

如何在matlab里安装libsvm包

1.下载好libsvm包下载libsvm-3.21到随意一个地方,比如到matlab安装路径下的 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 –setupMEX 配置为使用 ’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:

安装了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自带的函数。

用libsvm做时间序列预测,为什么训练数据越少越准确

楼主的说法似乎不太对


首先,训练数据的主要区别是什么是测试数据:

如果我有一堆计时数据,首先随机分为两堆,一堆训练只用于看模型是好的,然后前者称为训练数据。下面是几个训练数据序列。(注意不要把训练数据的结果作为模型质量的度量,这是最基本的)。

这个主题想说当马尔可夫阶数是1时比较好,时间序列数据应该看起来不错

。所谓的k阶马氏序列意味着当前数据只与历史K数据点相关,且与该窗口之外的数据无关。如果数据本身是一个一阶Markovian,那么 T-2和数据本身都是独立的,也就是说在T-2或更不帮助预测时间不知道的历史,这个额外的数据相当于噪声,和大多数学习算法的输入噪声的影响。主题可以尝试L1 SVM(libsvm有此选项),或增加规则系数C来消除这些噪声的影响,当然如果数据符合一级马尔可夫完美假设,最好是去掉无关的信息。

当然,还有另一种可能,即数据对一阶外矩的依赖性是高阶(非线性)

。如果与二阶效应问题的题目是可怜的,但一次不是特别好(如P值不小),它可以被认为是一个问题。在这个时候,你可以考虑使用更复杂的模型,添加了更多的历史信息预测,你可以考虑尝试RBF核函数SVM(libsvm有),贝叶斯网络,或神经网络等模型。

根据课题的新的描述,第三(大概率)可以对数据本身信息的缺乏:股票价格预测的一般都是看新闻的同时,或者如果公司是看涨的,不是根据新闻跟进的经济和商业趋势,只看股票价格永远不能预测当秋天/熊市。

最后,如果像预测股票价格一切都那样简单,那么就不需要这么多机器学习和金融专家才能进行高频交易。

请教faruto老师关于libsvm工具箱预测时核函数的选择问题

cmd = ;里的-t 1就是选择的多项式核函数。-t 核函数类型:核函数设置类型(默认2) 0 -- 线性核函数: u’*v 1 -- 多项式核函数: (gamma*u’*v + coef0)^degree 2 -- RBF核函数: exp(-gamma*|u-v|^2) 3 -- sigmoid核函数: tanh(gamma*u’*v + coef0) 4 -- 预定义核函数(指定核矩阵)