How to get input values for a known output value.

5 次查看(过去 30 天)
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 个评论
Matt J
Matt J 2024-1-25
So, it doesn't matter ot you that the solution may be non-unique?

请先登录,再进行评论。

采纳的回答

Matt J
Matt J 2024-1-25
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);

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by