<p>First of all, you should study the fundamentals. I found <a href="http://videolectures.net/stanfordcs229f07_machine_learning/" rel="nofollow">this</a> Stanford University course indeed helpful. In particular, pay attention to "Lecture 11". It covers best practices for applying machine learning techniques and debugging an application, no matter what learning model you use.</p>

<p>Additionally, among the open source ML frameworks, there are GATE and RapidMiner that look suitable for the task.</p>

CC BY-SA 2.5
2010-11-21T19:41:04.600Z
2010-12-18T14:57:17.667Z
2010-12-18T14:57:17.667Z
Nikita Zhiltsov
<p>The only other thing I would add to what has been said is, if you haven't already, do a course in linear algebra.</p>

<p>It will help you understand things like what $R^n$ means and concepts like that. Sometimes courses on a topic will give you a brief background in the linear algebra concepts and ideas specific to the material at hand, but they are never very deep; and I always find that it is a lot easier to comprehend and absorb an idea if you have a good understanding of the underlying mechanics.</p>

<p>I would suggest the coursera course <a href="https://www.coursera.org/course/matrix" rel="nofollow">Coding the Matrix: Linear Algebra Through Computer Science Applications</a> from Brown University.</p>

CC BY-SA 3.0
2015-06-25T07:34:30.940Z
2015-06-25T07:34:30.940Z
guskenny83
<p>From the theory end, you should understand how SVMs work (and why they do).  For example, I like the <a href="http://www.cs.princeton.edu/courses/archive/spring03/cs511/">scribe notes from this class</a> for a quick explanation and something like <a href="http://www.svms.org/tutorials/Burges1998.pdf">this tutorial</a> for a more in-depth one.  You might also want to consider other machine learning techniques that are suited for binary classification on large data ie. boosting, random forests, ...</p>

<p>As for dealing with open source code issues and with parsing HTML, stackoverflow might be a better place to seek answers.</p>

<p>EDIT:  Given your modified question, I can address your concrete questions about SVMs directly:</p>

<ol>
<li><strong>$R^n$ "stands for"</strong> the fact that the (data) points to be classified lie in a $n$-dimensional Euclidean space.  For example, points in our familiar $2$ dimensions (with, say, latitude and longitude coordinates) lie in $R^2$ -- an $n$-dimensional space generalizes this notion.</li>
<li>A <strong>hyperplane</strong> (in $R^n$) is a flat of dimension $n-1$.  It is what an SVN uses to classify the data (after they have been mapped to the higher dimensional space by the chosen Kernel).  For example, if your space is $R^2$ (or a plane) then a hyperplane is line, and so on.</li>
<li><strong>How to transform the space</strong>? This is done via the Kernel function.  A big part of SVM design is choosing a proper Kernel for the problem at hand.</li>
</ol>

<p>To understand these three points in more detail, you can read the references above.</p>

CC BY-SA 2.5
2010-09-21T22:38:57.507Z
GREAT stuff in this post! Modified the post as per Suresh's suggestion as well.
PoorLuzer
CC BY-SA 2.5
2010-09-21T21:28:22.593Z
2010-09-22T20:04:23.713Z
2010-09-22T20:04:23.713Z
Lev Reyzin
<p>I want to teach myself enough machine learning so that I can, to begin with, understand enough to put to use <strong>available</strong> open source ML frameworks that will allow me to do things like:</p>

<ol>
<li><p>Go through the HTML source of pages
from a certain site and "understand"
which sections form the content,
which the advertisements and which
form the metadata ( neither the
content, nor the ads - for e.g. -
TOC, author bio etc )</p></li>
<li><p>Go through the HTML source of pages
from disparate sites and "classify"
whether the site belongs to a
predefined category or not ( list of
categories will be supplied
beforehand ) based on the page content derived from 1</p></li>
<li><p>... similar classification tasks on
text and pages.</p></li>
</ol>

<p>As you can see, my immediate requirements are to do with classification on <strong>disparate data sources</strong> and <strong>large</strong> amounts of data.</p>

<p>As far as my limited understanding goes, taking the neural net approach will take a lot of training and maintenance than putting SVMs to use?</p>

<p>I understand that SVMs are well suited to ( binary ) classification tasks like mine, and open source frameworks like libSVM are fairly mature?</p>

<p>Taking forward the question assuming SVMs to be a better answer to classification of the likes of mine, how do I understand things like:</p>

<ol>
<li><p>What $R^n$ stands for</p></li>
<li><p>or hyperplanes</p></li>
<li><p>or how to transform a space so that
it can be broken into two parts etc?2.</p></li>
</ol>

<blockquote>
  <p>In that case, what subjects and topics
  does a computer science graduate need
  to learn right now, so that the above
  requirements can be solved, putting
  these frameworks to use? Especially those related to SVMs.</p>
</blockquote>

<p>I am willing to learn and put in as much effort as I possibly can.</p>

<p>Recommendations from you on learning specific portions of statistics and probability theory is nothing unexpected from my side, so say that if required!</p>

<p>I will modify this question if needed, depending on all your suggestions and feedback.</p>

<hr>

<p>Cross-posted on SO:</p>

<p><a href="https://stackoverflow.com/questions/3764444/what-subjects-topics-does-a-computer-science-graduate-need-to-learn-to-apply-ava">https://stackoverflow.com/questions/3764444/what-subjects-topics-does-a-computer-science-graduate-need-to-learn-to-apply-ava</a> </p>

CC BY-SA 2.5
2010-11-22T02:29:07.130Z
You may want to try [MetaOptimize](http://metaoptimize.com/qa/) for more practical ML questions.
Kaveh
CC BY-SA 2.5
2010-11-22T02:46:02.723Z
as a supplement to theory, i find it is always incredibly useful (if not essential) to build and run lots of simple examples.  to that end ORANGE http://www.ailab.si/orange/ is a really nice, flexible ML framework which supports a wide variety of ML techniques and robust python scripting. it also includes a lot of real-world examples from the UC Irvine public data sets.
s8soj3o289
CC BY-SA 2.5
2010-09-21T21:45:04.253Z
Yes, I think you should modify the question based on Lev's answer: for this site, focus more on what principles/techniques you need to know.
Suresh Venkat
CC BY-SA 2.5
2010-09-21T22:39:29.737Z
@Suresh. Thanks! Modified the post as per suggestion :-)
PoorLuzer
CC BY-SA 2.5
2010-09-22T00:31:27.603Z
I have edited my answer to address your rephrased question (or at least the relevant parts). I would still say your question needs further rewriting as it is still mostly not pertinent to TCS -- dealing with available code, HTML, libSVM, etc.
Lev Reyzin
<machine-learning><ne.neural-evol><st.statistics>
What subjects, topics does a computer science graduate need to learn to apply available machine learning frameworks, esp. SVMs
PoorLuzer
# What subjects, topics does a computer science graduate need to learn to apply available machine learning frameworks, esp. SVMs

(Asked by: username_0 on 2010-09-21)

I want to teach myself enough machine learning so that I can, to begin with, understand enough to put to use **available** open source ML frameworks that will allow me to do things like:

1. Go through the HTML source of pages
   from a certain site and "understand"
   which sections form the content,
   which the advertisements and which
   form the metadata ( neither the
   content, nor the ads - for e.g. -
   TOC, author bio etc )
2. Go through the HTML source of pages
   from disparate sites and "classify"
   whether the site belongs to a
   predefined category or not ( list of
   categories will be supplied
   beforehand ) based on the page content derived from 1
3. ... similar classification tasks on
   text and pages.

As you can see, my immediate requirements are to do with classification on **disparate data sources** and **large** amounts of data.

As far as my limited understanding goes, taking the neural net approach will take a lot of training and maintenance than putting SVMs to use?

I understand that SVMs are well suited to ( binary ) classification tasks like mine, and open source frameworks like libSVM are fairly mature?

Taking forward the question assuming SVMs to be a better answer to classification of the likes of mine, how do I understand things like:

1. What $R^n$ stands for
2. or hyperplanes
3. or how to transform a space so that
   it can be broken into two parts etc?2.

> In that case, what subjects and topics
> does a computer science graduate need
> to learn right now, so that the above
> requirements can be solved, putting
> these frameworks to use? Especially those related to SVMs.

I am willing to learn and put in as much effort as I possibly can.

Recommendations from you on learning specific portions of statistics and probability theory is nothing unexpected from my side, so say that if required!

I will modify this question if needed, depending on all your suggestions and feedback.

---

Cross-posted on SO:

<https://stackoverflow.com/questions/3764444/what-subjects-topics-does-a-computer-science-graduate-need-to-learn-to-apply-ava>

**Tags:** machine-learning, ne.neural-evol, st.statistics
> **Comments:**
> **username_3**: Yes, I think you should modify the question based on Lev's answer: for this site, focus more on what principles/techniques you need to know.  
> **username_0**: @Suresh. Thanks! Modified the post as per suggestion :-)  
> **username_4**: I have edited my answer to address your rephrased question (or at least the relevant parts). I would still say your question needs further rewriting as it is still mostly not pertinent to TCS -- dealing with available code, HTML, libSVM, etc.  
> **username_1**: You may want to try [MetaOptimize](http://metaoptimize.com/qa/) for more practical ML questions.  
> **username_2**: as a supplement to theory, i find it is always incredibly useful (if not essential) to build and run lots of simple examples.  to that end ORANGE http://www.ailab.si/orange/ is a really nice, flexible ML framework which supports a wide variety of ML techniques and robust python scripting. it also includes a lot of real-world examples from the UC Irvine public data sets.  

---

## 3 answers

### Answer by username_4 on 2010-09-21. Score: 9 | Accepted answer

From the theory end, you should understand how SVMs work (and why they do). For example, I like the [scribe notes from this class](http://www.cs.princeton.edu/courses/archive/spring03/cs511/) for a quick explanation and something like [this tutorial](http://www.svms.org/tutorials/Burges1998.pdf) for a more in-depth one. You might also want to consider other machine learning techniques that are suited for binary classification on large data ie. boosting, random forests, ...

As for dealing with open source code issues and with parsing HTML, stackoverflow might be a better place to seek answers.

EDIT: Given your modified question, I can address your concrete questions about SVMs directly:

1. **$R^n$ "stands for"** the fact that the (data) points to be classified lie in a $n$-dimensional Euclidean space. For example, points in our familiar $2$ dimensions (with, say, latitude and longitude coordinates) lie in $R^2$ -- an $n$-dimensional space generalizes this notion.
2. A **hyperplane** (in $R^n$) is a flat of dimension $n-1$. It is what an SVN uses to classify the data (after they have been mapped to the higher dimensional space by the chosen Kernel). For example, if your space is $R^2$ (or a plane) then a hyperplane is line, and so on.
3. **How to transform the space**? This is done via the Kernel function. A big part of SVM design is choosing a proper Kernel for the problem at hand.

To understand these three points in more detail, you can read the references above.

> **Comments:**
> **username_0**: GREAT stuff in this post! Modified the post as per Suresh's suggestion as well.  

---

### Answer by username_5 on 2010-11-21. Score: 7

First of all, you should study the fundamentals. I found [this](http://videolectures.net/stanfordcs229f07_machine_learning/) Stanford University course indeed helpful. In particular, pay attention to "Lecture 11". It covers best practices for applying machine learning techniques and debugging an application, no matter what learning model you use.

Additionally, among the open source ML frameworks, there are GATE and RapidMiner that look suitable for the task.


---

### Answer by username_6 on 2015-06-25. Score: 0

The only other thing I would add to what has been said is, if you haven't already, do a course in linear algebra.

It will help you understand things like what $R^n$ means and concepts like that. Sometimes courses on a topic will give you a brief background in the linear algebra concepts and ideas specific to the material at hand, but they are never very deep; and I always find that it is a lot easier to comprehend and absorb an idea if you have a good understanding of the underlying mechanics.

I would suggest the coursera course [Coding the Matrix: Linear Algebra Through Computer Science Applications](https://www.coursera.org/course/matrix) from Brown University.


---

