# Reversing the input and output of an ML algorithm to Optimize

My dataset consists of multiple input variables (X) and multiple output variables (Y).

For example:

| X1| X2 | X3 |    | Y1| Y2 | Y3 |
----------------------------------
| 1 |  1 |  0 |    | 2 |  2 |  0 |
| 2 |  2 |  1 |    | 3 |  3 |  1 |
| 3 |  3 |  3 |    | 4 |  5 |  6 |


But, I don't actually want to predict the output variables Y. I want to actually predict the input variables X given Y. I understand that switching the variables X and Y might not be 'optimal' since there could be multiple input values that yield the same output values, but I don't see how else I solve this type of problem. I was planning on using a Random Forest or simple neural net.

From the help I've been trying to get, it seems that I should keep input and output variables as is, but rather use optimization techniques to find the best input(the variable I want to predict) for a given output. I am unsure if my initial intuition on reversing the inputs and outputs would 'get the job done'.

For a more detailed breakdown on the actual problem I am trying to solve, please see this link.