Different length of predictors to train a regression model
2 views (last 30 days)
Show older comments
I want to train a Gaussian regression model to predict the wind speed based on fan RPM.
I experimentally tested different d(RPM)/dt inputs and measured the wind speed for each input.
In other words the inputs are:
RPM1= 200:10:500;
RPM2=200:20:500;
RPM3=200:30:500;
and three velocity vectors (V1,V2 and V3) are measured.
Now I want to train a universal model with these predictors: RPM1, d(RPM1)/dt, d(RPM2)/dt and d(RPM3)/dt. The reponse value would be V1. But the length of the predicotrs are different. Also, they ( predictors) have different length campared to response (V1).
Question1)
What is the proper way to train the model? Examples would be exteremly helpful
Question 2)
In general, do I need to introduce d(RPM)/dt as a predictor or the algorithm is "smart" enough to figure that out? In other words, can I just feed the model with RPM1, RPM2 and RPM3?
Thanks
4 Comments
harsha001
on 21 Mar 2019
I think you need to clarify the regression model.
This means not a verbal description like wind speed, but an unambiguous mathematical definition of what you are measuring/trying to fit? Where are your velocity vectors coming from? In other words, in your plots, what is your x-axis??
- If the variables increase at different time-dependent rates, AND run for the same time, then you will reach different endpoints.
- If you want the speed to saturate at 500, just pad your vectors with enough number of 500s at the end.
A regression model needs same length of predictors and co-variates (or put NaN where missing). This means everything is sampled at the same timepoints (or your equivalent index array) such that for index i=1 to N, your co-variate Y is modelled as a function F of the predictors X1,...,Xm:
Y(i) = F( X1(i), X2(i), .... , Xm(i) )
What are your Y and X's?
Example:
a) You want to fit 3 functions:
V1[time] = F1( RPM1[time], d(RPM1)/dt [time] )
and similarly for V2 and V3
OR
b)
V1[time] = F( RPM1[time], RPM2[time], ... ,d(RPM1)/dt [time], d(RPM2)/dt [time] )
In which case clarify these vectors as a function of time, making sure you use the same timepoints /time range
Answers (0)
See Also
Categories
Find more on Gaussian Process Regression 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!