Discussing the article: "MQL5 Wizard Techniques You Should Know (Part 15): Support Vector Machines with Newton's Polynomial"

 

Check out the new article: MQL5 Wizard Techniques You Should Know (Part 15): Support Vector Machines with Newton's Polynomial.

Support Vector Machines classify data based on predefined classes by exploring the effects of increasing its dimensionality. It is a supervised learning method that is fairly complex given its potential to deal with multi-dimensioned data. For this article we consider how it’s very basic implementation of 2-dimensioned data can be done more efficiently with Newton’s Polynomial when classifying price-action.

Support Vector Machines (SVM) is a machine learning classification algorithm. Classification is different from clustering which we have considered in previous articles here and here with the primary difference between the two being that classification separates data into predefined sets, with supervision, while clustering seeks to determine what and how many of these sets there are, without supervision.

In a nutshell, SVM classifies data by considering the relationship each data point will have with all the others, if a dimension were to be added to the data. Classification is achieved if a hyperplane, can be defined that cleanly dissects the predefined data sets.

Often the data sets under consideration have multiple dimensions, and it is this very attribute that makes SVM a very powerful tool in classifying such data sets, especially if the numbers in each set is small or the relative proportion of the data sets is skewed. The implementation source code for SVMs that have more than 2 dimensions is very complex and often use cases in python or C# always uses libraries, leaving the user with minimum code input to get a result.

High dimensioned data has a tendency to curve-fit training data, a lot which makes it less reliable in out of sample data and this is one main drawbacks to SVM. Lower dimensioned data, on the other hand, does cross-validate much better, and have more common use cases.

For this article we will consider a very basic SVM case that handles 2-dimensional data (also known as linear-SVM), since complete implementation source code is to be shared without reference to any 3rd party libraries. Usually, the separating hyperplane is derived from either one of two methods: a polynomial kernel or a radial kernel. The latter is more complex and will not be discussed here as we will be dealing only with the former, the polynomial kernel.

Author: Stephen Njuki

 


interested in the article, but in the compilation I have this problem:


file 'C:\Users\sxxxxx\AppData\Roaming\MetaQuotes\Terminal\4B1CE69F57770545xxxxxxxxxx2C\MQL5\Include\my\Cnewton.mqh' not found


 
SergioTForex #:


interested in the article, but in the compilation I have this problem:


file 'C:\Users\sxxxxx\AppData\Roaming\MetaQuotes\Terminal\4B1CE69F57770545xxxxxxxxxx2C\MQL5\Include\my\Cnewton.mqh' not found


Yeah, the bro didn't include that library. 

I've been reading over some of his articles, however I haven't fully read this one. 

But from what I've gathered,  he carries over work from his previous discussions. So if you just go back chronologically I'd like to believe you will find that class
 
I didn't find Cnewton.mqh
 
SergioTForex #:
I didn't find Cnewton.mqh

There is class with that name (in earlier articles) but it is not the same for this example, cannot be used and compile.

The author of this article should include this library so we can use it.

 
Milan Zivanovic #:

There is class with that name (in earlier articles) but it is not the same for this example, cannot be used and compile.

The author of this article should include this library so we can use it.

Hello,

The attachment was added and the article was sent for publishing.  It should be updated soon.

Reason: