Really great article. I would like to raise something that seems VERY important to me, something that is often kept under the carpet: Machine Learning is 99% of the time about classification and not about prediction.
The word “prediction” must be used with caution:
By prediction we mean predict a classification. “I bet this item X here is of type Y”. There is no time here, this is not a forecasting. We imply that the dataset contains individuals, not events. The item you classify could be discovered at any time, it does not matter.
For instance, the danger of the regression is to think the X axis represent the time. We naturally read from left to right. So inevitably you will use the term “predict” to output the Y value. In fact, in machine learning the X axis is a parameter axis, it represents a feature of an individual. Let say “the height”. So given the height, I search a mapping of any output variable, let say “the salary”. The X axis can be read in any direction, it is a mapping.
Only very few algorithm deals with time series (Hidden Markov Models is one of them).
I’m talking about that because I presented ML to my COO and he immediately did the mistake. In his mind, he could predict time series (the dataset in our company are time series, they are events) with all these wonderful algorithms. Unfortunately this will never happen. They are not designed for this. Of course we could process events to produce a dataset with individuals, but this must be clearly stated: the input of the majority of ML algorithm does not involve time. If your dataset have a column of type DATE, you will have troubles.