Es posible que muchas personas que usan Tableau no usen el modelado predictivo, y mucho menos busquen maneras de mejorar el ajuste y la calidad de predicción. Este artículo es para usuarios avanzados que están interesados en esta área de la ciencia de datos.

Además de los argumentos predeterminados, como la expresión de destino (la medida que se va a predecir) y la expresión de predictor (la medida o las dimensiones utilizadas para realizar la predicción), puede agregar dos argumentos más para ajustar las predicciones: lambda, un parámetro de regularización y aumento. Esto implica agregar los nuevos argumentos a la sintaxis de su cálculo.

¿Qué modelos funcionan con regularización y aumento?

Como recordatorio, las funciones de modelado predictivo en Tableau admiten tres modelos: regresión lineal (también conocida como regresión de mínimos cuadrados ordinarios, u OLS), regresión lineal regularizada (o regresión ridge) y regresión del proceso gaussiano. Si está utilizando la regresión lineal o ridge, el aumento le permite aumentar la capacidad de los modelos para recoger patrones no lineales. Si utiliza la regresión ridge, el parámetro de regularización es un escalar que puede usar para ajustar el efecto de regularización en su modelo.

La regularización y el aumento no se pueden aplicar a la regresión del proceso gaussiano.

Antes de hablar más de la regularización y el aumento, hagamos un repaso de estos dos modelos:

La regresión lineal se suele utilizar cuando hay uno o más predictores que tienen una relación lineal entre la predicción y el destino de predicción, no se ven afectados por las mismas condiciones subyacentes y no representan dos instancias de los mismos datos (por ejemplo, ventas expresadas en dólares y euros).

La regresión lineal regularizada sirve para mejorar la estabilidad, reducir el impacto de la colinealidad y mejorar la eficiencia computacional y la generalización. En Tableau, se utiliza la regularización L2. Para obtener más información sobre la regularización L2, consulte esta lección sobre la regresión ridge.

¿Qué es la regularización?

La regresión ridge es un tipo específico de regresión lineal regularizada. La regularización impone una penalización sobre el tamaño de los coeficientes del modelo. La fuerza de la regularización está controlada por lambda, un escalar utilizado para ajustar el impacto general de la regularización. Cuanto mayor sea el valor, más pesada será la penalización (es decir, mayor será la regularización).

La regresión ridge aborda algunos de los problemas de la regresión lineal:

  • Elimina las patologías introducidas por la multicollinearidad entre los predictores.

  • Si el problema de mínimos cuadrados está mal condicionado, como por ejemplo si el número de puntos de datos es menor que el número de funcionalidades, entonces lambda seleccionará una solución única.

  • Proporciona una forma de mejorar la generalización del modelo lineal.

De forma predeterminada, la regresión ridge en Tableau tiene un valor lambda=0,5, porque este funciona bien en muchos casos. Para cambiar el valor lambda, simplemente edite el cálculo de tabla (ejemplos a continuación).

¿Qué es el aumento?

El aumento en MODEL_QUANTILE y MODEL_PERCENTILE es un ejemplo sencillo de aumento de datos: los predictores se expanden a polinomios de orden superior. En Tableau, hay un par de tipos de aumentos polinómicos integrados en las funciones de modelado predictivo.

  • Para las dimensiones ordenadas, los polinomios de Legendre hasta el orden 3 permiten al modelo lineal recoger relaciones cuadráticas y cúbicas entre el predictor aumentado y la respuesta.

  • Para las medidas , los polinomios de Hermite de 2º grado permiten al modelo lineal recoger relaciones cuadráticas entre el predictor aumentado y la respuesta.

En la regresión lineal, solo se aumentan las dimensiones ordenadas de forma predeterminada con augmentation=on; en la regresión ridge donde model=rl, solo se aumentan las medidas de forma predeterminada. Para invalidar la configuración y deshabilitar el aumento para cada predictor en su cálculo, utilice augmentation=off; no se agregarán polinomios de orden superior.

Desactivar los aumentos es ventajoso cuando el conjunto de datos es muy pequeño, porque los aumentos podrían sobreajustar cualquier ruido presente en los datos originales, y también porque la relación resultante es más simple e intuitiva.

Nota: El aumento se activa/desactiva por predictor (es decir, dentro del argumento predictor de su cálculo). Lambda (y modelo) se aplican en el nivel superior (fuera de cualquier expresión de predictor).

Configuración de lambda y aumento en su cálculo

Ahora que conoce el parámetro de regularización (o lambda) y el aumento de datos, vamos a verlos en el contexto de un cálculo de predicción:

MODEL_QUANTILE("model=rl, lambda=0.05", 0.5, SUM([Profit]), "augmentation=off", SUM([Sales]))

A continuación se muestra una tabla que resume rápidamente si cambiar el aumento y la expresión lambda desde el valor predeterminado afecta a los modelos lineales:

  Aumento Lambda
Regresión ridge
Regresión lineal No se aplica

Consideraciones para la regularización y el aumento

  • Si tiene el modelo incorrecto para los datos, es probable que cambiar el parámetro de regularización o el aumento no produzca resultados significativamente mejores. Considere la posibilidad de revisar si los tipos de datos son correctos (medidas frente a dimensiones). Si los datos subyacentes son una serie temporal, por ejemplo, considere la posibilidad de utilizar la regresión del proceso gaussiano en su lugar, cambiando el modelo en el cálculo de tabla con model=gp.

  • Dado que la OLS no está regularizada, no hay ningún valor lambda que se pueda cambiar.

  • Si el conjunto de datos es extremadamente pequeño y tiene dimensiones (especialmente dimensiones de cardinalidad alta), considere la posibilidad de usar la regresión ridge agregando model=rl al cálculo de tabla.

  • Si todos son iguales (para el mismo conjunto de datos, dado que el aumento está activado o desactivado), un lambda bajo puede mejorar el ajuste, pero perjudicar la generalización (causar un sobreajuste).

  • Por el contrario, un lambda alto puede empujar el ajuste para ser un modelo constante, sin depender de ninguno de los predictores. Esto reducirá la capacidad del modelo (causa de subajuste).

Ejemplo 1

Este ejemplo muestra la relación entre el colesterol promedio y las enfermedades cardíacas en hombres y mujeres, donde los hombres están representados con marcas cuadradas y las mujeres están representadas con círculos.

En la primera visualización, las marcas azules indican el destino de predicción y las marcas naranjas son los valores modelados. Se puede ver que los datos son muy ruidosos, y que con el aumento activado y un pequeño valor lambda de 0,01, vemos tasas de enfermedades cardíacas poco realistas superiores a 1. Hay una dependencia demasiado pronunciada, probablemente debido a todos los valores atípicos en los datos ruidosos.

Enfermedad cardíaca por sexo con destino de predicción y un modelo de ajuste deficiente

MODEL_QUANTILE("model=rl, lambda=0.01", 0.5, AVG([Target]), ATTR([Sex]), "augmentation=on", AVG([Chol]))

En la siguiente visualización, comparamos el destino de predicción con un modelo diferente, con el aumento desactivado y un valor lambda de 10. Tenga en cuenta que este modelo es más realista, y ninguna marca excede una tasa de enfermedad de 1.

Enfermedad cardíaca por sexo con destino de predicción y un modelo mejor

MODEL_QUANTILE("model=rl, lambda=10", 0.5, AVG([Target]), ATTR([Sex]), "augmentation=off", AVG([Chol]))

Ejemplo 2

Ahora echemos un vistazo a otro ejemplo del mundo real utilizando datos sobre la cantidad de pasajeros para el sistema de uso compartido de bicicletas Bluebikes (anteriormente Hubway) de Boston. En este caso, la regresión lineal funciona bien. Compare las siguientes visualizaciones, agregadas a trimestres de 2017:

Diagrama de datos de pasajeros de Hubway sin sobreajuste

MODEL_QUANTILE('model=rl, lambda=0.05', 0.5, sum([Trip.Duration]), AVG([Temp]))

Diagrama de datos de pasajeros de Hubway sin sobreajuste

MODEL_QUANTILE('model=rl, lambda=0.05', 0.5, AVG([Speed]), AVG([Temp]))

Ninguna de las dos es propensa a sobreajustar mucho, por lo que la dependencia de lambda es débil para una pequeña expresión lambda.

Ahora observe esta última visualización:

Diagrama de datos de pasajeros de Hubway sin sobreajuste

MODEL_QUANTILE('model=rl, lambda=0.05', 0.5, sum([Trip.Duration]), AVG([Temp]))

Tenga en cuenta que a medida que aumenta lambda, el ajuste se aplana hasta anular la pendiente (es decir, se sobreregulariza o "subajusta").

¡Gracias por sus comentarios!