⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 svm_light_faq.html

📁 svm(支持向量机)分类算法本质上是二类分类器
💻 HTML
字号:
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252"><META NAME="Generator" CONTENT="Microsoft FrontPage 6.0"><TITLE>svm_light_faq</TITLE><META NAME="Version" CONTENT="8.0.3514"><META NAME="Date" CONTENT="11/26/96"><META NAME="Template" CONTENT="C:\Programme\Microsoft Office\Office\HTML.DOT"></HEAD><BODY LINK="#0000ff" VLINK="#800080" BGCOLOR="#ffffff"><TABLE CELLSPACING=0 BORDER=0 CELLPADDING=5><TR><TD WIDTH="14%" VALIGN="TOP"><H2><a TARGET="_top" HREF="javascript:if(confirm('http://www-ai.cs.uni-dortmund.de/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www-ai.cs.uni-dortmund.de/'" tppabs="http://www-ai.cs.uni-dortmund.de/"><IMG SRC="eier_graybg.gif" tppabs="http://www.cs.cornell.edu/People/tj/svm%5Flight/eier_graybg.gif" BORDER=0 WIDTH=100 HEIGHT=81></A></H2></TD><TD WIDTH="75%" VALIGN="TOP"><H1 ALIGN="CENTER">SVM<I><SUP>light</SUP> </H1></I><H1 ALIGN="CENTER">Support Vector Machine FAQ</H1><FONT COLOR="#000000"><P ALIGN="CENTER">Author: </FONT><a TARGET="_top" HREF="javascript:if(confirm('http://www.joachims.org/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.joachims.org/'" tppabs="http://www.joachims.org/">Thorsten Joachims</A><FONT COLOR="#000000"> &lt;</FONT><A HREF="mailto:thorsten@joachims.org">thorsten@joachims.org</A><FONT COLOR="#000000">&gt; <BR></FONT><a TARGET="_top" HREF="javascript:if(confirm('http://www.cornell.edu/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.cornell.edu/'" tppabs="http://www.cornell.edu/">Cornell University</A><FONT COLOR="#000000"> <BR></FONT><a TARGET="_top" HREF="javascript:if(confirm('http://www.cs.cornell.edu/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.cs.cornell.edu/'" tppabs="http://www.cs.cornell.edu/">Department of Computer Science</A><FONT COLOR="#000000"> </P><P ALIGN="CENTER">Developed at: <BR></FONT><a TARGET="_top" HREF="javascript:if(confirm('http://www.uni-dortmund.de/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.uni-dortmund.de/'" tppabs="http://www.uni-dortmund.de/">University of Dortmund</A><FONT COLOR="#000000">, </FONT><a TARGET="_top" HREF="javascript:if(confirm('http://www.informatik.uni-dortmund.de/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.informatik.uni-dortmund.de/'" tppabs="http://www.informatik.uni-dortmund.de/">Informatik</A><FONT COLOR="#000000">, </FONT><a TARGET="_top" HREF="javascript:if(confirm('http://www-ai.informatik.uni-dortmund.de/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www-ai.informatik.uni-dortmund.de/'" tppabs="http://www-ai.informatik.uni-dortmund.de/">AI-Unit</A><FONT COLOR="#000000"> <BR></FONT><a TARGET="_top" HREF="javascript:if(confirm('http://www.sfb475.uni-dortmund.de/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.sfb475.uni-dortmund.de/'" tppabs="http://www.sfb475.uni-dortmund.de/">Collaborative Research Center on 'Complexity Reduction in Multivariate Data' (SFB475)</A><FONT COLOR="#000000"> </P><P ALIGN="CENTER">Version: 6.01 <BR>Date: 03.05.05</FONT></TD><TD WIDTH="11%" VALIGN="TOP"><H2><IMG SRC="culogo_125.gif" tppabs="http://www.joachims.org/images/culogo_125.gif" WIDTH=80 HEIGHT=80></H2></TD></TR></TABLE><H2>SVM<I><SUP>light</I></SUP> does not compile properly! </H2><UL><I><LI>I want to compile SVM<SUP>light</SUP> on a Windows PC using gcc:</I> </LI><UL><LI>the easiest is to install CYGWIN and just type &quot;make&quot; at the command prompt</LI></UL><I><LI>I want to compile SVM<SUP>light</SUP> on a Windows PC using Visual C/C++:</I> </LI><UL><LI>Build the appropriate project file according to the provided <TT>"Makefile"</TT>. Make sure you do not include the file &quot;svm_loqo.c&quot; in your project, unless you want to use the PL_LOQO optimizer instead of the built-in optimizer.</LI></UL><I><LI>I want to compile SVM<SUP>light</SUP> on a PowerMac using Code Warrior:</I> </LI><UL><LI>You need to modify the source code a little (as suggested by Jewgeni Starikow). Use <TT>#include "console.h"</TT> to emulate a UNIX shell. Then add <TT>argc=ccommand(&amp;argv)</TT> as the first instruction of each <TT>main()</TT>. </LI><LI>CPU-timing might cause another problem. The timing routines are used to calculated the runtime of the program. If you do not need this feature, remove the body of <TT>get_runtime()</TT> in <TT>svm_common.c</TT>. Otherwise replace the body with the appropriate Mac routines from <TT>'time.h'</TT>. </LI></UL><I><LI>I want to integrate SVM<SUP>light</SUP> into C++ code:</I> </LI><UL><LI>Compile <TT>"svm_learn.c"</TT>, <TT>"svm_common.c"</TT>, and <TT>"svm_hideo.c"</TT> as C code.</LI><LI>The C++ program you want to call <TT>svm_learn/8</TT> and <TT>classify_example/2 </TT>(or <TT>classify_example_linear/2</TT>) from needs to include the following headers:<BR><FONT FACE="Courier New" SIZE=2>extern "C" {<BR># include "svm_common.h"<BR># include "svm_learn.h"<BR>} </FONT> </LI><LI>Link <TT>"svm_learn.o"</TT>, <TT>"svm_common.o"</TT>, and <TT>"svm_hideo.o" </TT>to your program.</LI></UL><I><LI>There are no other known compilation problems at the moment. Send me mail.</I> </LI></UL><H2>Error messages and known problems:</H2><UL><TT><LI>ERROR: terminating optimizer - choldc failed, matrix not positive definite</TT> </LI><UL><LI>If the program terminates after this message, get the lastest version of PR_LOQO and SVM-Light V2.01 (or later). </LI><LI>It the program continues after this error message, don't worry :-) </LI></UL><I><LI>The CPU-time is negative or looks bogus:</I> </LI><UL><LI>To be compatible with Windows, I used the <TT>clock/0</TT> function to measure CPU-time. This function returns a long integer and counts microseconds, so that it wraps around after about 30 minutes. You could use timing routines more appropriate for your system. For example on Solaris, you might want to use the routines from <TT>'sys/times.h'</TT>.</LI></UL></UL><H2>The program hangs when ...</H2><UL><I><LI>... reading in the examples.</I> </LI><UL><LI>Get version 3.02 or later. </LI></UL></UL><H2>Convergence during learning is very slow!</H2><UL><I><LI>In verbose mode 2 I observe that <TT>max violation</TT> bounces around and does not really converge.</I> </LI><UL><LI>Use a smaller value for the option -n (default n=q). This makes sure that only n new variables enter the working set in each iteration. This can prevent zig-zagging behavior.</LI><LI>Use a smaller or larger value for the size of the working set (option -q). Reasonable values are in the range [2:50].</LI><LI>You might be using an excessively large value of C (option -c) in relation to your data. The value of C should typically be less than 1000 times 1.0/(the maximum squared Euclidian length of your feature vectors). </LI><LI>You have weired data and the convergence simply IS very slow <FONT FACE="Wingdings">&#74;</FONT>. Sorry, not much you can do about it. </LI></UL><I><LI>Nearly all my training examples end up as support vectors.</I> </LI><UL><LI>Use a "stiffer" kernel (e g. a lower value of gamma for the RBF-kernel). If you pick a kernel which is very far away from the optimum, you will not get good generalization performance anyway. </LI><LI>Your data is really difficult to separate. Think about a better representation of your data. It is a bad idea - for example - if different features have values in very much different orders of magnitude. You might want to normalize all features to the range [-1,+1]. </LI></UL></UL><H2>It does not converge!</H2><UL><LI>If you are using the built-in HIDEO optimizer, get the version 3.50 or later. There used to be problems for low dimensional data sets for the old HIDEO optimizer.</LI><LI>It should always converge, unless there are numerical problems :-) </LI><LI>Numerical problems. </LI><UL><LI>Make sure your data is properly scaled. It is a bad idea - for example - if different features have values in different orders of magnitude. You might want to normalize all features to the range [-1,+1], especially for problems with more than 100 features. Or even better, normalize all feature vectors to Euclidian length 1.</LI></UL></UL><h2>It crashes!</h2><ul>  <li><i>It crashes during learning when using a non-linear kernel.</i>    <ul>      <li>Get version 5.00 or later. There was an initialization bug in the        kernel cache.</li>    </ul>  </li></ul><h2>The results look bogus!</h2><ul>  <li><i>When doing transductive learning, for some training set sizes it does    not obey the -p parameter and the results look bogus.</i>    <ul>      <li>Get version 5.00 or later. There was a bug introduced in version 4.00.</li>    </ul>  </li></ul><h2>Is there an option for ...</h2><ul>  <li><i>... doing multi-class classification?</i>    <ul>      <li>No. If you want to do multi-class or multi-label classification, you        need to split the task into multiple binary classification tasks. For        example, you can do one-class-against-the-rest classification, or        pairwise classification. Refer to Chapter 2 in [<a href="index.html#References" tppabs="http://www.cs.cornell.edu/People/tj/svm%5Flight/index.html#References">Joachims,        2002a</a>].</li>    </ul>  </li>  <li><i>... outputting the learned Lagrange multipliers?</i>    <ul>      <li>Yes. Use the option -a &lt;filename&gt;.</li>    </ul>  </li>  <li><i>... getting the weights of the hyperplane for a linear SVM?</i>    <ul>      <li>No. But here is a small <a href="svm2weight.pl.txt.htm" tppabs="http://www.cs.cornell.edu/People/tj/svm%5Flight/svm2weight.pl.txt">perl script to       compute the weight vector</a> based on the model file output by svm_learn.       Of course, it works only in the linear case and not for kernels. All the       script does is compute the weighted sum of the support vectors (first        element in line is alpha*y, what follows is the feature vector). For       further info, see the comment in the model file for its format. </li>    </ul>  </li></ul><FONT COLOR="#000000"><P>Last modified May 3rd, 2005 by </FONT><a TARGET="_top" HREF="javascript:if(confirm('http://www.joachims.org/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.joachims.org/'" tppabs="http://www.joachims.org/">Thorsten Joachims</A><FONT COLOR="#000000"> &lt;</FONT><a HREF="mailto:thorsten@joachims.org">thorsten@joachims.org</a><FONT COLOR="#000000">&gt;</P></FONT></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -