# Which features should I choose to create polynomial features?

Sometimes we want to use some features in our original dataset to create polynomial features in order to add non-linearity to our model.

The question is how to choose those features? Do we choose features with a relatively high correlation with the target variable? Do we choose features that have high importance according to some model that provides a list of feature importances like random forest or Xgboost? Or what?

By the way, usage of single variable polynomial features in decision tree based algorithms sometimes might not have an impact on your performance because these transformations do not change the total ordering of the variables if odd-powered and therefore decision boundaries might be similar, i.e. $$x_1, so the boundary will be still between the two.