Comparando diferentes codificadores categóricos

Machine LearningMachine LearningBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, compararemos el rendimiento de diferentes codificadores categóricos en un conjunto de datos de reseñas de vinos. Usaremos la columna objetivo 'points' como variable objetivo a predecir. Compararemos los siguientes codificadores: TargetEncoder, OneHotEncoder, OrdinalEncoder y eliminar la categoría. También veremos cómo usar el soporte nativo para características categóricas en HistGradientBoostingRegressor.

Consejos sobre la VM

Una vez que se haya iniciado la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje comentarios después de la sesión y resolveremos rápidamente el problema para usted.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills ml/sklearn -.-> lab-49316{{"Comparando diferentes codificadores categóricos"}} end

Carga de datos desde OpenML

Primero, cargamos el conjunto de datos de reseñas de vinos usando la función fetch_openml del módulo scikit-learn.datasets. Solo usaremos un subconjunto de las características numéricas y categóricas en los datos. Usaremos el siguiente subconjunto de características numéricas y categóricas en los datos: características_numéricas = ["price"] y características_categóricas = ["country", "province", "region_1", "region_2", "variety", "winery"].

Entrenamiento y evaluación de tuberías con diferentes codificadores

En esta sección, evaluaremos tuberías con HistGradientBoostingRegressor con diferentes estrategias de codificación. Evaluaremos los modelos usando validación cruzada y registraremos los resultados.

Soporte nativo para características categóricas

En esta sección, construimos y evaluamos una tubería que utiliza el soporte nativo para características categóricas en HistGradientBoostingRegressor, que solo admite hasta 255 categorías únicas. Agrupamos las características categóricas en características de baja cardinalidad y características de alta cardinalidad. Las características de alta cardinalidad se codificarán con el target y las características de baja cardinalidad utilizarán la característica categórica nativa en el boosting de gradiente.

Representación gráfica de los resultados

En esta sección, mostramos los resultados mediante la representación gráfica de las puntuaciones de prueba y entrenamiento.

Resumen

En este laboratorio, comparamos el rendimiento de diferentes codificadores categóricos en un conjunto de datos de reseñas de vinos. También examinamos cómo utilizar el soporte nativo para características categóricas en HistGradientBoostingRegressor. Encontramos que eliminar las categorías tiene el peor rendimiento y los codificadores de destino tienen el mejor rendimiento. La codificación ordinal impone un orden arbitrario a las características que luego son tratadas como valores numéricos por HistGradientBoostingRegressor. El esquema de codificación one-hot probablemente habría hecho que la tubería se sobreajustara ya que el número de características explota con la aparición de categorías raras que están correlacionadas con el objetivo por casualidad. Cuando se utiliza el codificador de destino, ocurre el mismo agrupamiento, pero como los valores codificados están ordenados estadísticamente por asociación marginal con la variable objetivo, el agrupamiento utilizado por HistGradientBoostingRegressor tiene sentido y conduce a buenos resultados.