Doing Supervised Learning where output should be a probability that adds to 1
IF YOU HAVE SMALL NUMBER OF INPU_ID
Start with simples approach which is multiclass classification. Take the combination of INPUT_ID and IS_TRUE_INPUT as labels. The rest are your features. Convert categorical features to numericals (e.g. one-hot). Let the model decide.
I don't know why you need the probability distribution of predictions per INPUT_ID. You enter a new input and model gives you a probability of being member of a class. If I did not understand your use-case please comment and I will update.
Example for lines 77 and 78:
line 77 --&gt; input = feature_set, output = {is_i171:1, is_i120:0, ...}
line 78 --&gt; input = feature_set, output = {is_i171:0, is_i120:0, ...}

Depending on the model you use, probabilistic output will be a probability distribution over is_i171, is_i120, etc. e.g. a softmax decision function in NNs.
IF THERE ARE SO MANY INPUT_ID
Embedd all data into a n-dimensional vector space. Calculate the mean vector of TRUE instances for each INPUT_ID. Foe a new query (input), calculate distances from each INPUT_ID mean vector and divide distances by sum of distances. Then you get a probability distribution of a new input being true for any of your input classes.