How to get input values for a known output value.

5 views (last 30 days)
I have trained a Gaussian process regression machine learning model which has six input variables and one output variable. I have 50 observations. So, I have a table of 50*6 for input values and 50*1 for output values. Out of six input variables, three input variables have values between 0.4 to 1 and remaining three input variables have values between 1 to 5. Out of 50 observations, 45 observations are used for learning and remaining 5 observations for prediction. I want to find the values of input variables (within same ranges of 0.4 to 1 and 1 to 5 or different ranges) for a known value of output variable.
X = readmatrix(fullfile(matlabdrive,'an','X.xlsx'),'Range','C1:H45');
Y = readmatrix(fullfile(matlabdrive,'an','Y.xlsx'),'Range','C1:C45');
modell = fitrgp(X,Y,'Basis','linear','FitMethod','exact','PredictMethod','exact');
Xp = readmatrix(fullfile(matlabdrive,'an','Xp.xlsx'),'Range','C1:H5');
Ypl = predict(modell,Xp);
  4 Comments
Matt J
Matt J on 25 Jan 2024
So, it doesn't matter ot you that the solution may be non-unique?

Sign in to comment.

Accepted Answer

Matt J
Matt J on 25 Jan 2024
One possibility might be to use fmincon to search for a minimum norm solution,
fun=@(Xp) norm(Xp).^2;
nonlcon=@(Xp) deal([],predict(modell,Xp)-Ypl );
lb=[0.4,0.4,0.4,1,1,1];
ub=[1,1,1,5,5,5]
Xp=fmincon(fun,Xp_Initial,[],[],[],[],lb,ub,nonlcon);

More Answers (0)

Categories

Find more on Guidance, Navigation, and Control (GNC) in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!