📄 matlab interface for libsvm.htm
字号:
href="http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#_TOP">[Go Top]</A>
</P>
<HR>
<P><A name=/Q4:_Training_and_prediction></A><A name=f417><STRONG>问::
怎样才可以不让svm-train 和svm-predict 在屏幕上输出?</STRONG></A> <BR></P>
<P>只要将svm.cpp中的: </P><PRE>#if 1
void info(char *fmt,...)
</PRE>
<P>改为: </P><PRE>#if 0
void info(char *fmt,...)
</PRE>
<P align=right><A
href="http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#_TOP">[Go Top]</A>
</P>
<HR>
<P><A name=/Q4:_Training_and_prediction></A><A
name=f418><STRONG>问:我想用自己的核函数,但我发现两个核函数赋值子程序
k_function()和kernel_function().我应该修改哪个? </STRONG></A><BR></P>
<P>我们采用两个函数地原因是: 对于RBF核函数exp(-g |xi - xj|^2),如果我们先计算xi -
xj然后平方,将有3n步操作.因此我们先考虑exp(-g (|xi|^2 - 2dot(xi,xj)
+|xj|^2)),并先计算所有的|xi|^2,这样计算步骤将减小到2vn。这是对于训练,但是对于预测我们不能这样做,因此必须用一个有3n个步骤的常规子程序。如果你想使用自己的核函数,最简单的办法是:用你核函数的代码替换两个子程序中的任何一个核函数的代码。.
</P>
<P align=right><A
href="http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#_TOP">[Go Top]</A>
</P>
<HR>
<P><A name=/Q4:_Training_and_prediction></A><A
name=f419><STRONG>问:对于多分类SVM,libsvm采用的是什么方法 ? 为什么不用"1-against-the rest" 法
?</STRONG></A> <BR></P>
<P>对于多分类,我们采用的是1against 1法.我们的选择建立在以下对比的基础上: C.-W. Hsu and C.-J. Lin. <A
href="http://www.csie.ntu.edu.tw/~cjlin/papers/multisvm.pdf">A comparison
of methods for multi-class support vector machines </A>, <EM>IEEE
Transactions on Neural Networks</EM>, 13(2002), 415-425. </P>
<P>"1agains1the
rest"是个很好的方法,而且分类效果和"1-against-1."可以相比。但是我们采用后者,因为它训练的时间更短。 </P>
<P align=right><A
href="http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#_TOP">[Go Top]</A>
</P>
<HR>
<P><A name=/Q4:_Training_and_prediction></A><A
name=f420><STRONG>:做完交叉检验以后,为什么没有模型文件输出?</STRONG></A> <BR></P>
<P>交叉检验只是为了寻找好的参数,寻找完后,你必须在不用-v选项的情况下,重新训练整个数据,才会得到模型文件。 </P>
<P align=right><A
href="http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#_TOP">[Go Top]</A>
</P>
<HR>
<P><A name=/Q4:_Training_and_prediction></A><A
name=f421><STRONG>问:对于交叉检验,我想使用随机划分,应该如何操作? </STRONG></A><BR></P>
<P>如果你用的是 GNU C库,默认的种子是1.因此你在运行svm-train -v后,总是得到相同的结果.
想用不同的种子,你可在svm-train.c中添加如下代码: </P><PRE>#include <time.h>
</PRE>
<P>在子程序 do_cross_validation()的开始部分添加, </P><PRE>srand(time(0));
</PRE>
<P align=right><A
href="http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#_TOP">[Go Top]</A>
</P>
<HR>
<P><A name=/Q4:_Training_and_prediction></A><A
name=f422><STRONG>问:如果我想解决L2-svm 问题(即二次方误差项). 我应该怎样修改代码 ?</STRONG></A>
<BR></P>
<P>这十分简单. 以c-svc为例, 在svm.cpp中只要修改两个地方即可. </P>
<P>第一, 将solve_c_svc中的: </P><PRE> s.Solve(l, SVC_Q(*prob,*param,y), minus_ones, y,
alpha, Cp, Cn, param->eps, si, param->shrinking);
</PRE>
<P>修改为: </P><PRE> s.Solve(l, SVC_Q(*prob,*param,y), minus_ones, y,
alpha, INF, INF, param->eps, si, param->shrinking);
</PRE>
<P>第二:在SVC_Q类中, 声明C为私有变量: </P><PRE> double C;
</PRE>
<P>在构造(constructor)中,将它赋给param.C: </P><PRE> this->C = param.C;
</PRE>
<P>在子程序get_Q中, 在for循环之后,添加: </P><PRE> if(i >= start && i < len)
data[i] += 1/C;
</PRE>
<P>对于一分类svm,以上修改完全一样。对于SVR,上面的if语句就没有必要了,你只要用一个简单的赋值语句即可: </P><PRE> data[real_i] += 1/C;
</PRE></DIV><BR>
<DIV class=post_footer><A class=post_permalink
href="http://whs.yculblog.com/post.669280.html" rel=follow>永久地址</A> / <A
class=post_comments
href="http://whs.yculblog.com/post.669280.html#followups"
rel=follow>评论</A> / <SPAN class=post_trackback>Trackback: <A
class=post_trackback onclick="return false;"
href="http://www.yculblog.com/trackback/4/669280"
rel=nofollow>http://www.yculblog.com/trackback/4/669280</A></SPAN>
</DIV></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=3 cellPadding=2 width="100%" border=0>
<TBODY>
<TR>
<TD colSpan=2><B>最新评论</B> </TD></TR>
<TR>
<TD colSpan=2><A name=#followups_1173801></A>
<HR SIZE=1>
<P><SPAN class=post_user>xiaosqq @ 2005-10-19 10:44</SPAN> 电邮: <A
href="mailto:qq81902@126.com" rel=nofollow>qq81902@126.com</A> </P>
<BLOCKQUOTE>
<P>海山,我想弱弱的问你一个关于libsvm的问题,就是在林智仁的网站上,提供了一个windows版本下的libsvm,然后我想用matlab下的libsvm,在他的网页上有个“matlab
interface(currently libsvm2.8 is
used)”我点击下载后,是不是直接将其放在matlab目录下,直接就可以用了,还要用到原先windows版本下的libsvm吗?
<BR>因为我对这个interface不太理解,就是说,我将那个接口直接加载到matlab下,好像就可以用了,但是我觉得接口应该还是说要和libsvm有关,但我不知道那个和windows版本下的libsvm还有没有关心呢,是不是用matlab下的话,直接用那个接口就可以了呢,这个问题困扰已久,但一直都没解决,
</P></BLOCKQUOTE></TD></TR>
<TR>
<TD colSpan=2><A name=#followups_1174215></A>
<HR SIZE=1>
<P><SPAN class=post_user>海山 @ 2005-10-19 15:17</SPAN> 电邮: <A
href="mailto:eshan110@163.com" rel=nofollow>eshan110@163.com</A> </P>
<BLOCKQUOTE>
<P>回复xiaosqq <BR>matlab下的libsvm用起来还是可以的,缺点是现在还没有matlab的参数优化程序,下载后使用方法如下:
<BR>1.下载matlab interface(currently libsvm2.8 is used)”并解压缩
<BR>2.将解压缩的文件放到matlab的toolbox下
<BR>3.打开matlab程序,依次点:file-->setpath,出来对话框,点击左边的addfolder,又弹出一对话框,找到toolbox中的libsvm2.8.1文件后确定。然后点击save-->close
<BR>按照以上操作就好了,以后用其他的外挂工具箱,方法相同。
<BR>interface可以理解为界面,matlab版本的libsvm是一个完整的软件,和windows下的版本没有关系,除非你用window版本软件优化参数
</P></BLOCKQUOTE></TD></TR>
<TR>
<TD colSpan=2><A name=#followups_1181127></A>
<HR SIZE=1>
<P><SPAN class=post_user>xiaosqq @ 2005-10-19 21:34</SPAN> </P>
<BLOCKQUOTE>
<P>谢谢海山,我今天自己琢磨了一下,已经解决问题拉,真是谢谢你啊,
<BR>不过我想问下你,你有用过windows下的libsvm吗,我现在遇到了运用easy.py的困难,我不会修改那个路径的,
<BR>还有,海山说matlab下的libsvm不是很好,海山是否可以推荐一下哪种matlab下的svm工具箱比较好呢,
</P></BLOCKQUOTE></TD></TR>
<TR>
<TD colSpan=2><A name=#followups_1181153></A>
<HR SIZE=1>
<P><SPAN class=post_user>xiaosqq @ 2005-10-19 21:49</SPAN> 电邮: <A
href="mailto:qq81902@126.com" rel=nofollow>qq81902@126.com</A> </P>
<BLOCKQUOTE>
<P>不好意思,海山,还有个问题要说明的,都说要结合自己的需要来进行svm工具箱的选择,我的任务主要是进行分类,对一个非线性的样本集,可能维数在20~30左右的样本进行两模式分类,你是否可帮我参考一下采用哪种比较合适呢?
<BR>由于我对svm原理了解的不是很多,看起来还有点困难,但又面临毕业设计的时间紧迫感,所以麻烦你帮我指点一下的
</P></BLOCKQUOTE></TD></TR>
<TR>
<TD colSpan=2><A name=#followups_1233252></A>
<HR SIZE=1>
<P><SPAN class=post_user>xiaopianzi @ 2005-11-18 16:17</SPAN> </P>
<BLOCKQUOTE>
<P>我也遇到了easy.py运行出错的问题,请教海山!!! </P></BLOCKQUOTE></TD></TR>
<TR>
<TD colSpan=2><A name=#followups_1235341></A>
<HR SIZE=1>
<P><SPAN class=post_user>海山 @ 2005-11-19 17:22</SPAN> </P>
<BLOCKQUOTE>
<P>不知道你出了什么错误,你可以和我QQ联系,我的号码是116336786,或者进入我建立的一个学习svm的群,号码是11615607
<BR>由于最近几天有事情,比较忙,不一定及时回复 </P></BLOCKQUOTE></TD></TR>
<TR>
<TD width="100%"><BR>
<TABLE cellSpacing=0 cellPadding=3 width="100%" border=0>
<FORM name=followups_form
onsubmit="javascript: check_followups(); return false; "
action=/savefollowup.php method=post>
<TBODY>
<TR>
<TD colSpan=2><A name=followups></A><STRONG>你的评论</STRONG></TD></TR>
<TR>
<TD align=right width="12%"><FONT
color=#cc0000><STRONG>*</STRONG></FONT> 姓名</TD>
<TD><INPUT onfocus="f_focus(); " maxLength=16 size=30
name=name></TD></TR>
<TR>
<TD align=right>电邮</TD>
<TD><INPUT onfocus="f_focus(); " maxLength=60 size=40
name=email></TD></TR>
<TR>
<TD align=right>个人主页</TD>
<TD><INPUT onfocus="f_focus(); " maxLength=255 size=40 value=http://
name=url></TD></TR>
<TR>
<TD align=right>不公开</TD>
<TD><INPUT type=checkbox value=1 name=is_private></TD></TR>
<TR>
<TD vAlign=top align=right><FONT
color=#cc0000><STRONG>*</STRONG></FONT> 评论</TD>
<TD><TEXTAREA onfocus="f_focus(); " name=content rows=6 cols=40></TEXTAREA></TD></TR>
<TR>
<TD vAlign=top align=right>
<DIV id=authcode_td1 style="DISPLAY: none"><FONT
color=#cc0000><STRONG>*</STRONG></FONT> 认证码</DIV>
<SCRIPT language=Javascript type=text/javascript>var authcode_td2_str = '<img src="/authcode.php?r=1aa0288305ea308a23fa89aa6a2f0500" style="vertical-align: middle"><br />';function f_focus() { if(document.getElementById('authcode_td2').innerHTML==null || document.getElementById('authcode_td2').innerHTML=='') {document.getElementById('authcode_td1').style.display='block'; document.getElementById('authcode_td2').innerHTML=authcode_td2_str; document.getElementById('authcode_td3').style.display='block';} }</SCRIPT>
</TD>
<TD>
<DIV id=authcode_td2></DIV>
<DIV id=authcode_td3 style="DISPLAY: none"><INPUT
style="WIDTH: 100px" name=authcode> 请输入你看到的数字</DIV></TD></TR>
<TR>
<TD> </TD>
<TD>
<P>请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对你不利的证据.</P>
<P><INPUT class=but type=submit value=发表评论 name=submit><INPUT
type=hidden value=669280 name=post_id></P><INPUT type=hidden
value=1aa0288305ea308a23fa89aa6a2f0500 name=r>
<P></P>
<P><A href="http://sh.feloo.com/?source=yculbp21home" target=_blank
rel=nofollow>自我修练,超凡脱俗,如何脱颖而出?</A><BR><A
href="http://sh.feloo.com/lesson/6775.html?source=yculbp22taiquandao"
target=_blank rel=nofollow>学舞蹈练武术,一流高手岂是只在网上?</A><BR><A
href="http://www.feloo.com/special/baiwanxyz/index.htm?source=yculbp23xiaoyuzhong"
target=_blank rel=nofollow>百万大奖送不学英语的人 Dell笔记本,iPod等你来拿</A><BR><A
href="http://sh.feloo.com/lesson/LessonList.jsp?typeid=122&city=021&source=yculbp24wudao"
target=_blank rel=nofollow>申城舞蹈学校大汇总 个人报名团体价格</A><BR><A
href="http://sh.feloo.com/trainOrg/301.html?source=yculbp25qiulei"
target=_blank rel=nofollow>办公室综合症爆发,羽毛球、网球缓解压力</A><BR></P></TD></TR>
<TR>
<TD> </TD>
<TD>
<P><STRONG>相关法律法规</STRONG><BR><A
href="http://www.yculblog.com/laws/2000.txt"
target=_blank>全国人大常委会关于维护互联网安全的决定</A><BR><A
href="http://www.yculblog.com/laws/0644.txt"
target=_blank>中华人民共和国计算机信息系统安全保护条例</A><BR><A
href="http://www.yculblog.com/laws/0646.txt"
target=_blank>中华人民共和国计算机信息网络国际联网管理暂行规定</A><BR><A
href="http://www.yculblog.com/laws/0650.txt"
target=_blank>计算机信息网络国际联网安全保护管理办法</A><BR><A
href="http://www.yculblog.com/laws/1482.txt"
target=_blank>计算机信息系统国际联网保密管理规定</A></P></TD></TR></FORM></TBODY></TABLE></TD>
<TD vAlign=top><BR><BR><BR><A
href="http://sh.feloo.com/sh_special/wudao/wudao.html?source=yculbp1wudao"
target=_blank rel=nofollow><IMG
src="matlab interface for libsvm.files/p1.gif" border=0></A>
</TD></TR></TBODY></TABLE></DIV></DIV>
<P style="DISPLAY: none">
<SCRIPT src="matlab interface for libsvm.files/count.php"></SCRIPT>
</P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -