Improved the layout of the FAQ page

This commit is contained in:
Davis King 2011-06-01 22:13:18 -04:00
parent f1ce94705a
commit 551a882ce3
2 changed files with 72 additions and 49 deletions

View File

@ -5,33 +5,72 @@
<title>Frequently Asked Questions</title>
<!-- ************************************************************************* -->
<questions>
<question text="Which machine learning method should I use?">
<questions group="General">
<question text="Why isn't serialization working?">
answer goes here
</question>
<question text="another question?">
<questions>
<question text="yet another question?">
<questions>
<question text="what is 1 + 1?">
2!
</question>
<question text="what is 1 + 6?">
7!
</question>
</questions>
</question>
<question text="yet yet YET another question?">
yet another answer goes here
</question>
</questions>
</question>
</questions>
<question text="How do I set the size of a matrix at runtime?">
</question>
</questions>
<!-- ************************************************************************* -->
<questions group="Machine Learning">
<question text="Why is RVM training is really slow?">
answer
</question>
<question text="Why is cross_validate_trainer_threaded() crashing?">
</question>
<question text="How can I define a custom kernel?">
</question>
<question text="Can you give advice on feature generation/kernel selection?">
<p>
Picking the right kernel all comes down to understanding your data, and obviously this is
highly dependent on your problem. :)
</p>
<p>
One thing that's sometimes useful is to plot each feature against the target value. You can get an idea of
what your overall feature space looks like and maybe tell if a linear kernel is the right solution. But
this still hides important information from you. For example, imagine you have two diagonal lines which
are very close together and are both the same length. One line is of the +1 class and the other is the -1
class. Each feature (the x or y coordinate values) by itself tells you almost nothing about which class
a point belongs to but together they tell you everything you need to know.
</p>
<p>
On the other hand, if you know something about the data you are working with then you can also try and
generate your own features. So for example, if your data is a bunch of images and you know that one
of your classes contains a lot of lines then you can make a feature that attempts to measure the number
of lines in an image using a hough transform or sobel edge filter or whatever. Generally, try and
think up features which should be highly correlated with your target value. A good way to do this is
to try and actually hand code N solutions to the problem using whatever you know about your data or
domain. If you do a good job then you will have N really great features and a linear or rbf kernel
will probably do very well when using them.
</p>
<p>
Or you can just try a whole bunch of kernels, kernel parameters, and training algorithm options while
using cross validation. I.e. when in doubt, use brute force :) There is an example of that kind of
thing in the <a href="model_selection_ex.cpp.html">model selection</a> example program.
</p>
</question>
<question text="Why does my decision_function always give the same output?">
</question>
<question text="Which machine learning method should I use?">
</question>
</questions>
<!-- ************************************************************************* -->
</doc>

View File

@ -295,12 +295,16 @@
</xsl:if>
<xsl:apply-templates select="body"/>
<ul>
<xsl:for-each select="questions/question">
<xsl:sort select="translate(name,$lcletters, $ucletters)"/>
<li><a href="#{@text}"><xsl:value-of select="@text"/></a></li>
<xsl:for-each select="questions">
<xsl:sort select="translate(@group,$lcletters, $ucletters)"/>
<xsl:if test="@group"><h2><xsl:value-of select="@group"/></h2></xsl:if>
<ul>
<xsl:for-each select="question">
<xsl:sort select="translate(@text,$lcletters, $ucletters)"/>
<li><a href="#{@text}"><xsl:value-of select="@text"/></a></li>
</xsl:for-each>
</ul>
</xsl:for-each>
</ul>
</td>
<!-- ************************************************************************* -->
@ -323,11 +327,6 @@
<xsl:apply-templates select="components"/>
<xsl:apply-templates select="questions"/>
<xsl:apply-templates select="questions/question/questions"/>
<xsl:apply-templates select="questions/question/questions/question/questions"/>
<xsl:apply-templates select="questions/question/questions/question/questions/question/questions"/>
<xsl:apply-templates select="questions/question/questions/question/questions/question/questions/question/questions"/>
<xsl:apply-templates select="questions/question/questions/question/questions/question/questions/question/questions/question/questions"/>
</div>
</body>
@ -474,28 +473,13 @@
<xsl:template match="questions">
<xsl:for-each select="question">
<xsl:sort select="translate(name,$lcletters, $ucletters)"/>
<xsl:variable name="checked" select="@checked"/>
<xsl:sort select="translate(@text,$lcletters, $ucletters)"/>
<a name = "{@text}">
<div id="question">
<a href="#top"><font size='2'><center>[top]</center></font></a>
<h2><xsl:value-of select="@text"/></h2>
<xsl:for-each select=".">
<xsl:if test="questions">
<ul>
<xsl:for-each select="questions/question">
<xsl:sort select="translate(name,$lcletters, $ucletters)"/>
<li><a href="#{@text}"><xsl:value-of select="@text"/></a></li>
</xsl:for-each>
</ul>
</xsl:if>
<xsl:if test="not(questions)">
<xsl:apply-templates select="."/>
</xsl:if>
</xsl:for-each>
<xsl:apply-templates select="."/>
</div>
</a>
</xsl:for-each>