I'm doing a personal project on regression and I hope I can get some advice from you on several problems. The dataset I'm having is about cuisine, shape is 180x9, and the 2 continuous variables are "prep_time" and "cook_time". I want to predict cook_time based on other variables. I one hot encoded other categorical variables and get a total of ~30 features in the end (and only prep_time is continuous). This is the dataset before processing:
The baseline model with linear regression, SVR and Random forest doesn't perform really well (The absolute r2 scores are <0.1 for all 3 models). But when I added a feature total_time = prep_time+cook_time, and used MinMaxscale on prep_time and total_time, the RF model improves to r2 of ~0.3. However, LinReg results in ~0 mse and 1.0 r2 on the test set, surprisingly.
Thus, I tried to analyze this LR model more. I used sklearn.feature_selection.SelectFromModel function to get the important features from this Linear Regression model, and it shows that only the prep_time and total_time are important for the model. In fact, the model trained using only these 2 variables perform just as well. VIF of these 2 variables are ~7.0, which implies multicollinearity. However, if I remove either of these 2 variables, and train on only the other feature, the model doesn't perform that well.
My question is, is this still a good model? What could explain/potentially be a problem with this LinReg model when it has such a low mse and high r2? Should I use another algorithm instead?