Here are some papers I read today about stock price forecasting with support vector machines. The advantage of an SVM is that it is less prone to over-fitting the sample data than a neural network (another popular pattern identifier). SVM's are more bleeding edge in terms of financial applications, having only been popularized over the past decade.
A basic SVM vs Back-propogation Neural Net 2003
Another general SVM vs Neural Network 2005
A variation with adaptive parameters 2003
Another variation accounting for dynamic volatility 2004 (SVR=SVM fyi)
By the way, I have read quite a bit about SVMs, neural networks, genetic algorithms, and other AI topics, but never had the opportunity to discuss them with another person. If you are interested in this topic I'd like to get together sometime.
Subscribe to:
Post Comments (Atom)
9 comments:
Hi Max,
Here is another one to add to your list ;^)
http://www.numenta.com/
Cordially,
-Digital Dude-
“We keep moving forward, opening new doors and doing new things, because we’re curious.” -Walt Disney-
Dude,
It's good to see that you know about Numenta- they have a very interesting concept. Were you introduced to the theory by one of Jeff Hawkins's speeches? Very compelling guy.
Regards,
Max
keep up the good work.
I know I'm being lazy here, but although I'm very familiar with NNs, I haven't delved too much into SVMs.
Looking at some of the papers you referenced, however, show extremely good hit rates (saw 75% on one).
Can you clarify the basic principle of SVM as opposed to NN? Is it easier to learn to model?
Have you done any type of backtesting using SVM?
If so, what were your results?
Anon,
Here's a good video demonstration of the basic principle behind support vector machines. The mathematical understanding of how SVMs work and what they are capable of learning is better than NNs.
I haven't replicated the papers' results.
Regards,
Max
Hi, I watched the video, and didn't see much other than a graphical representation of the sifting and slicing mechanism (there was no sound nor explanation) of an SVM.
I would like to see something like a generic (basic, whatever)code of a SVM with some arbitrary inputs. Or at least a cookbook, laymen's explanation for the SVM.
It becomes tiring sifting through all the gobs of papers with hundreds of banal mathematical proofs.
I'm more of a hands on engineering type, and would just like to get a real world example running to start.
Have you ever thought of actually running one? Or better yet, if you have, could you give a quick cookbook algorithm or laymen's terms to building one?
Anon,
The video was showing how an SVM maps the inputs to a higher-dimensional space so that it can use a simple hyperplane classifier. Finding a separating hyperplane is computationally much easier than finding as separating ellipse (as in the video demo) or other complex function. The kernel function is what maps the inputs to the higher dimensional space.
The book Learning With Kernels (also listed at the right) is a good introduction and survey, starting from the basics. After you understand the math, it will be simple for you to test out a toy problem with a polynomial kernel as a hands-on exercise. That statement might not be clear now but once you familiarize yourself with the basic process and the standard kernels then it should be good as a first problem.
When I said I hadn't replicated the results I meant I hadn't copied their procedures exactly. The software I use to test data mining tools, including SVMs, is RapidMiner. I would recommend trying it or some other open package before implementing one from scratch. Thanks for your comments.
Regards,
Max
Hi Max,
I saw Jeff being interviewed on a tv show a while back... It reminded me to have another look at Numenta now that they have something to play with ;-)
Cordially,
-Digital Dude-
"For me the greatest satisfaction is always when the pictures come alive." -John Lasseter-
I'm familiar with rapidminer. Could you post an example of an applied SVM that runs (using some financial data as inputs of course)
under RM? Thanks.
Once again, I'm trying to avoid sifting through pages and pages of math.
I can understand much easier by looking at explicit code, inputs, and results of a practical example that runs.
(P.S. By simplifying the concept, using higher level programs, you lose much of the understanding that can be gleaned from looking at simple lower level code).
Anon,
Thanks again for the comments. I wrote a new entry giving sample RapidMiner code as a more detailed response to your request. I hope this helps you get started, be sure to at least check the link at the bottom to Thomas Ott's Neural Market Trends website, which was my original introduction. His video tutorials are very helpful.
Regards,
Max
Post a Comment