Ordering of stepsSource:
In the recipes package, there are no constraints on the order in which steps are added to the recipe; you as a user are free to apply steps in the order appropriate to your data preprocessing needs. However, the order of steps matters and there are some general suggestions that you should consider.
- If using a Box-Cox transformation, don’t center the data first or do any operations that might make the data non-positive.
- Alternatively, use the Yeo-Johnson transformation so you don’t have to worry about this.
The order of steps for handling categorical levels is important, because each step sets levels for the next step to use as input. These steps create factor output, even if the input is of character type.
- Typically use
step_novel()before other steps for changing factor levels, so that the new factor level can be set as you desire rather than coerced to
NAby other factor handling steps.
- Use steps like
step_other()after other steps for changing factor levels.
- If you are creating dummy variables from a categorical variable (see below), complete handling of the categorical variable’s levels before
Recipes do not automatically create dummy variables (unlike most formula methods).
While every individual project’s needs are different, here is a suggested order of potential steps that should work for most problems:
- Handle factor levels
- Individual transformations for skewness and other issues
- Discretize (if needed and if you have no other choice)
- Create dummy variables
- Create interactions
- Normalization steps (center, scale, range, etc)
- Multivariate transformation (e.g. PCA, spatial sign, etc)
Again, your mileage may vary for your particular problem.