Apéndice A — Preprocesamiento Recomendado
El tipo de preprocesamiento necesario depende del tipo de modelo que se ajuste. Por ejemplo, los modelos que utilizan funciones de distancia o productos escalares deben tener todos sus predictores en la misma escala para que la distancia se mida adecuadamente.
Para obtener más información sobre cada uno de estos modelos y otros que podrían estar disponibles, consulte https://www.tidymodels.org/find/parsnip/.
Este Apéndice proporciona recomendaciones para los niveles básicos de preprocesamiento que se necesitan para diversas funciones del modelo. En Tabla A.1, los métodos de preprocesamiento se clasifican como:
dummy: ¿Los predictores cualitativos requieren una codificación numérica (por ejemplo, mediante variables ficticias u otros métodos)?
zv: ¿Deberían eliminarse las columnas con un único valor único?
impute: Si faltan algunos predictores, ¿deberían estimarse mediante imputación?
decorrelate: Si existen predictores correlacionados, ¿debería mitigarse esta correlación? Esto podría significar filtrar los predictores, utilizar el análisis de componentes principales o una técnica basada en modelos (por ejemplo, regularización).
normalize: ¿Deben centrarse y escalarse los predictores?
transform: ¿Es útil transformar los predictores para que sean más simétricos?
La información en Tabla A.1 no es exhaustiva y depende en cierta medida de la implementación. Por ejemplo, como se indica debajo de la tabla, es posible que algunos modelos no requieran una operación de preprocesamiento particular, pero la implementación puede requerirla. En la tabla, ✔ indica que el método es necesario para el modelo y × indica que no. El símbolo ◌ significa que la técnica puede ayudar al modelo, pero no es necesario.
model | dummy | zv | impute | decorrelate | normalize | transform |
---|---|---|---|---|---|---|
C5_rules() |
× | × | × | × | × | × |
bag_mars() |
✔ | × | ✔ | ◌ | × | ◌ |
bag_tree() |
× | × | × | ◌¹ | × | × |
bart() |
× | × | × | ◌¹ | × | × |
boost_tree() |
ײ | ◌ | ✔² | ◌¹ | × | × |
cubist_rules() |
× | × | × | × | × | × |
decision_tree() |
× | × | × | ◌¹ | × | × |
discrim_flexible() |
✔ | × | ✔ | ✔ | × | ◌ |
discrim_linear() |
✔ | ✔ | ✔ | ✔ | × | ◌ |
discrim_regularized() |
✔ | ✔ | ✔ | ✔ | × | ◌ |
gen_additive_mod() |
✔ | ✔ | ✔ | ✔ | × | ◌ |
linear_reg() |
✔ | ✔ | ✔ | ✔ | × | ◌ |
logistic_reg() |
✔ | ✔ | ✔ | ✔ | × | ◌ |
mars() |
✔ | × | ✔ | ◌ | × | ◌ |
mlp() |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
multinom_reg() |
✔ | ✔ | ✔ | ✔ | ײ | ◌ |
naive_Bayes() |
× | ✔ | ✔ | ◌¹ | × | × |
nearest_neighbor() |
✔ | ✔ | ✔ | ◌ | ✔ | ✔ |
pls() |
✔ | ✔ | ✔ | × | ✔ | ✔ |
poisson_reg() |
✔ | ✔ | ✔ | ✔ | × | ◌ |
rand_forest() |
× | ◌ | ✔² | ◌¹ | × | × |
rule_fit() |
✔ | × | ✔ | ◌¹ | ✔ | × |
svm_*() |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Notas a pie de página:
- Es posible que la descorrelación de predictores no ayude a mejorar el rendimiento. Sin embargo, menos predictores correlacionados pueden mejorar la estimación de las puntuaciones de importancia de la varianza (ver Fig. 11.4 de Kuhn y Johnson (2020)). Básicamente, la selección de predictores altamente correlacionados es casi aleatoria.
- El preprocesamiento necesario para estos modelos depende de la implementación. Específicamente:
- Teóricamente, cualquier modelo basado en árboles no requiere imputación. Sin embargo, muchas implementaciones de conjuntos de árboles requieren imputación.
- Si bien los métodos de impulso basados en árboles generalmente no requieren la creación de variables ficticias, los modelos que utilizan el motor “xgboost” sí la requieren.