All our classifiers gave reasonable results and they were consistent with what we learnt in the class. All the graphs,plots and the table show clearly how the financial forecaster should be. Apart from the error rates which we got, we also ran the data obtained from 1999 and also on 2001(so far) and it was quite amazing to find that, the error it gave was very less. Instead of leaving it in as error, we gave the intrepretation as to how many points an active dealer would win, if he did business through our classifer for one whole year, and it showed very profitable results.
In order to calculate the profit/loss for the next day if a person buys or sells the stock, we need to know what is the current NET change of that stock.
Below is an example for profit/loss calculation: Let us say that Stock A has a NET change of +10 on Nov. 20, 2001 and Nick is interested to know whether he will earn/lose money when he buys/sells the particular stock. Nick has 100 shares in his hand, and he uses the Decision Maker (classifier) to predict for the NET change of Nov. 21, 2001. Nick bought his share for US$1 per share. Since he has 100 shares now, he has the stock value of US$100 altogether (US$1 times 100).
Now, we can look at the classifier that we designed by referring to the Figure shown above. Besides of having 3 classes i.e. Buy, Sell and Do Nothing only, we can divide the Buy class into several regions. We do the same thing to the Sell class. In this way, instead of having the threshold for Buy as +30, and the threshold for Sell as -30, we can specifically define the Buy or Sell class into different smaller ranges.
In this way, if the classifier predicts the NET change to be greater than +30 points but less than +40 points, we can say the Nick's profit will be in between (30-10)xUS$100 and (40-10)xUS$100. But if we do not define the specific range like what we did in the Figure above, the classifier can only predict the NET change to be greater than +30 points, thus we only know that Nick will earn at least (30-10)xUS$100. This is a very wide range. If the ranges are not defined properly, the predictor cannot give a better estimation for the customer.
Graphically,
Nick has 100 shares x US$1 = US$100 of stock value
Stock A:
Nov. 20, 2001 (today) NET change=+10
Nov. 21, 2001 (tomorrow) +30 < NET change < +40
If Nick buys on Nov. 20, 2001,
(30-10)xUS$100 < Profit < (40-10)xUS$100
Total stock value = US$100 + Profit
Now, as discussed before, we ran the 99' data through our financial forecaster. With the Bayes, by adjusting the threshold of the input data, we got an error of 0.48 for three classes and which can be intrepreted as the total stock value, like the way shown above. Here we assumed normal distribution of the data.
The 1-NN results gave an error of 0.1667.
Neural Networks gave the least error and so we decided to run our predictor with that.The classifier was run with a very less step size, and plot is shown below.
Classifier
The MSE Vs Epochs plot is also shown below.
MSE Vs Epochs
The weights and bias obtained for the Neural Classifier
TRAINLM, Epoch 100/100, MSE 0.0775691/0, Gradient 34.0389/1e-010
step=200, functions: tansig->purelin, hidden units=50
Weights and Bias