Best ML technique to suggest predictor variables Imagine the following dataset:
First 4 columns are predictor variables and the engine running index is the response variable.
   O2 level | Cylinder pressure | Fuel Flow | Engine temp | Engine running index
       5              15               3           31                7
       2              31              18            1               88
       1              22              66            4               31
      ...            ...              ...          ...             ...

Situation: An engineer comes with a similar data set and asks a question: "What should be the setting of my O2 level, cylinder pressure etc to get the best running index?"
Now one could take a statistical approach and try figure out the answer but I was looking to employ some machine learning technique. The ones Ive tried, i.e. Regression, but its used more to predict what the Engine running index will be rather than suggest what the settings should be to get the best running index.
The other one I was looking at was PCA, but not sure that it will give me an answer as well.
Note: the possible max value for Engine running index is not known.
So my question is simple: are there ML techniques to help me answer engineer's question?
Any suggestions are welcome, thanks.
 A: Regression is quite well suited for learning what settings generate the best running index (or at least a good running index). All you need is in the regression coefficients. If the regression coefficient is positive, a greater value of the corresponding regressor will tend to yield a greater value of the response*. You want to maximize the response; hence, the recipe is to increase (maximize) the regressor value. Conversely, if the regression coefficient is negative, minimize the corresponding regressor's value. That is the answer the engineer needs.
Consider a concrete example. Suppose the fitted regression equation is
$$
y=0.5+2x_1-0.5x_2+\varepsilon.
$$
Since $2>0$, an increase in $x_1$ should hopefully yield an increase in $y$. Thus the engineer should seek to increase $x_1$ as much as possible. On the other hand, since $-0.5<0$, an increase in $x_2$ would yield a decrease in $y$. Therefore the engineer should minimize $x_2$ to maximize $y$.
Edit: as Matthew Drury points out, a simple regression like this need not be a good model for your particular application. (Perhaps some feature engineering would make it better.) The important thing is that if the model has decent fit, then it can be used conveniently for finding settings in which the response is maximized.

*This requires some assumptions such as exogeneity of the regressor.
