I am working on a problem where my objective is to predict y given some features x1,x2,x3,...x8,x9 I solved this problem using some statistical and machine learning techniques like regression, trees, random forests & svm. Now that I have a prediction for y, at a given x1,x2,x3..x6 I would like to achieve an optimal value of y, by changing some values of xn which are in my control. Let us say that y was predicted to be 5, however I need a value of 10. Can I put three features aside say x1,x2,x3 and get like a range or values for the aforementioned aside features such that the value of y is 10?
Basically, it is sort of like an inverse problem, where assuming I know the predictor I need to manipulate the features to increase the value of the predictor.
y<- rnorm(100) x1<- sin(rpois(100)) x2<- cos(rnorm(100)) x3<- sin(rnorm(100))+ rnorm(100)* 3cos(rnorm(100)) x4<- rnorm(100) y.fit<- lm(y~x1+x2+x3+x4) library(caret) y.rf<- train(ROP~ .,data=training,method="rf",prox=TRUE)
So now that I have y.rf and y.fit, lets say i have control over the values of x1 & x2, hence I would like a given value of y say 0.5, and to achieve this value of y (0.5) at a fixed value of x3,x4 I would like a range for x1 and x2 or possible values for x1 & x2.
How should I proceed?