Estoy tratando de entender cómo puedo codificar variables categóricas usando la estimación de probabilidad, pero hasta ahora he tenido poco éxito.
Cualquier sugerencia sería muy apreciada.
feature-engineering
enano pequeño
fuente
fuente
Respuestas:
También estaba aprendiendo este tema, y esto es lo que encontré:
Este tipo de codificación se denomina codificación de probabilidad , codificación de impacto o codificación de destino
La idea es codificar su variable categórica con el uso de la variable objetivo (continua o categórica dependiendo de la tarea). Por ejemplo, si tiene una tarea de regresión, puede codificar su variable categórica con la media del objetivo. Para cada categoría, calcula la media correspondiente del objetivo (entre esta categoría) y reemplaza el valor de una categoría con esta media.
Si tiene una tarea de clasificación, calcula la frecuencia relativa de su objetivo con respecto a cada valor de categoría.
Desde un punto de vista matemático, esta codificación significa una probabilidad de su objetivo, condicional en cada valor de categoría.
Si lo hace de una manera simple, como describí anteriormente, probablemente obtendrá una estimación sesgada. Es por eso que en la comunidad de Kaggle usualmente usan 2 niveles de validación cruzada. Lea este comentario de raddar aquí . El cuaderno correspondiente está aquí .
La frase:
Otra implementación de esta codificación está aquí .
En R library vtreat tienen implementación de codificación de impacto. Ver este post .
En la biblioteca CatBoost tienen muchas opciones para la codificación de variables categóricas, incluida la codificación de destino.
No existe tal codificación en sklearn todavía.
fuente
La codificación de destino ahora está disponible en sklearn a través del paquete category_encoders.
Como señaló josh en el comentario anterior.
fuente
La codificación de probabilidad aún no está disponible en scikit learn. Puede hacerlo creando un diccionario y luego hacer una función de reemplazo.
fuente