# Create a prediction formula from data input

I have an algorithm which have as an input about 20-25 numbers. Then in every step it uses some of these numbers with a random function to calculate the local result which will lead to the final output of A, B or C.

Since every step has a random function, the formula is not deterministic. This means that with the same input, I could have either A, B or C.

My first thought was to take step by step the algorithm and calculating mathematically the probability of each output. However, it is really difficult due to the size of the core.

My next thought was to use machine learning with supervised algorithm. I can have as many labeled entries as I want.

So, I have the following questions:

1. How many labeled inputs should I need for a decent approach of the probabilities? Yes, I can have as many as I want, but it needs time to run the algorithm and I want to estimate the cost of the simulations to gather the labeled data.
2. Which technique do you suggest that works with so many inputs that can give the probability of the three possible outputs?
3. As an extra question, the algorithm run in 10 steps and there is a possibility that some of the inputs will change in one of the steps. My simple approach is to not include this option on the prediction formula, since I have to set different inputs for some of the steps. If I try the advanced methods, is there any other technique I could use?

I'm not sure if I understood your question! Probably better to plot a scheme at least. But according to what I guess from your question:

Q2- You probably need a simple MLP (Multilayer Perceptron)! it's a traditional architecture for Neural Networks where you have $n$ input neurons (here 20-25), one or more hidden layers with several neurons and 3 neurons as output layer. If you use a sigmoid activation function ranged from 0 to 1, the output for each class will be $P(Y=1|X=x)$.

Q1- So your question probably is: how many training data you need for learning a model? and to the best of my knowledge the answer is as many as possible!

and about the last question, I really could not figure out what you mean. You apparently have a very specific task so I suggest to share more insight for sake of clarification.

I hope I could help a little!

• Neural Networks was one of my options, since I have made a few other projects with them. However, I wanted to extract a formula which can be sent to a third party to use it for predictions based on the input. Since I find the prediction model I will not be able to run it every time to find the probabilities for A, B and C. – Tasos Jun 5 '15 at 15:29
• I think at the best case you can provide a third party by probabilities but not a model. If internal functions are random what would a model mean? Maybe better to run many experiment and try to fit a distribution to your empirical distribution (using maximum likelihood for instance). Then provide the third party with that distributions. – Kasra Manshaei Jun 5 '15 at 15:41