Linear Model to generate probability of each possible output This is related to Sports prediction (Cricket). I am new to Machine Learning and learning it through TensorFlow.

I am focusing only on one topic which is "How many runs Player A will score in today's match?"

My raw data includes all cricket player's score in all matches. It also includes more finer details like the ground the match happened, day/night match, opposition team etc., I need to use this data and predict four possible ranges for a player's score with all 4 range having equal probability.

I am planning to keep 4 simple FeatureColumn to start with:


Average of runs of the given player in the past 10 matches (relative to the match that is being trained)
Batting order (1 to 10) (in the match being trained)
Average of runs since debut (relative to the match that is being trained)
Average no. of balls faced in the past 10 matches (relative to the match that is being trained)


My actual output will be the runs scored by that player in the match being trained. 

I can consider 100 recent matches of a player for this training.

This tutorial https://www.tensorflow.org/tutorials/wide from TensorFlow seems to match with what I am approaching. But the final output is a binary value (whether salary is >50K or not). But I need to generate output with probability of a given player getting a run. For eg.

Run     | Probability of getting this run
-----------------------------------------
0 runs  :  0.01
1 run   :  0.01
2 runs  :  0.02
....
13 runs :  0.5
14 runs :  0.04
....
56 runs :  0.08
57 runs :  0.03
....


Sum of Probability should add up to 1.
I'll then group all these values into 4 ranges with each range having an equal probability (0.25 for each range) like this:



Which approach can I use for solving this problem? I read about Linear regression and that seems to be the best fit for me, but I am not clear on how to generate probability of all possible outcomes.
From what I understood - 

Train a classifier with the features as you mentioned and the output probabilities like you have shown - 


So, for Player A, you can use all the features (average runs scored overall, average score in past 10 innings etc.)
Treat the runs scored as a categorical variable and try to learn a classifier
Put it through the network with a softmax layer at the end - that will give you Sum of Probability should add up to 1


My recommendation


Each player will have scored different runs so you will not get enough data points in a particular category (so no. of people who score 83 will be really less for example)
Pre-group the ranges in your training data and then do the classifier. 
Having a softmax layer at then end won't give you the "linear model" you want, but would definitely solve the problem with a lot more clarity.