AutoAI prepara automáticamente datos, aplica algoritmos o estimadores y crea interconexiones de modelo que se adaptan mejor a sus datos y caso de uso.
Las secciones siguientes describen algunos de estos detalles técnicos que entran en la generación de interconexiones y proporcionan una lista de artículos de investigación que describen cómo se ha diseñado e implementado AutoAI .
- Preparación de los datos para el entrenamiento (preproceso)
- Selección automática de modelos
- Algoritmos utilizados para modelos de clasificación
- Algoritmos utilizados para modelos de regresión
- Métricas por tipo de modelo
- Transformaciones de datos
- Ingeniería de características automatizada
- Optimización de hiperparámetros
- Preguntas frecuentes sobre AutoAI
- Más información
Preparación de los datos para el entrenamiento (preproceso de datos)
Durante la preparación automática de datos, o preproceso, AutoAI analiza los datos de entrenamiento y los prepara para la selección de modelos y la generación de interconexiones. La mayoría de los conjuntos de datos contienen valores perdidos, pero los algoritmos de aprendizaje automático normalmente no esperan valores perdidos. Una excepción a esta regla se describe en la sección 3.4 de xgboost . Los algoritmos de AutoAI realizan diversas imputaciones de valores perdidos en el conjunto de datos utilizando diversas técnicas, haciendo que los datos estén listos para el aprendizaje automático. Además, AutoAI detecta y categoriza características basadas en sus tipos de datos, como categóricas o numéricas. Explora las estrategias de codificación y escalado que se basan en la categorización de características.
La preparación de datos implica estos pasos:
- Clasificación de la columna de características
- Ingeniería de características
- Preproceso (imputación y codificación de datos)
Clasificación de columnas de características
- Detecta los tipos de columnas de características y las clasifica como clase categórica o numérica
- Detecta varios tipos de valores que faltan (valor predeterminado, proporcionado por el usuario, valores atípicos)
Ingeniería de características
- Maneja filas para las que faltan valores de destino (imputación de destino o descarte (predeterminado))
- Descarta las columnas de valor exclusivas (excepto datetime y timestamps)
- Descarta columnas de valor constante
Preproceso (imputación y codificación de datos)
- Aplica las estrategias de imputación/codificación/escalado de Sklearn (por separado en cada clase de característica). Por ejemplo, el método predeterminado actual para las estrategias de imputación de valores perdidos, que se utilizan en el producto son
most frequent
para variables categóricas ymean
para variables numéricas. - Maneja etiquetas del conjunto de pruebas que no se han visto en el conjunto de entrenamiento
- Característica HPO: Optimiza las estrategias de imputación/codificación/escalado dado un conjunto de datos y un algoritmo
Selección automática de modelos
La segunda etapa en un entrenamiento de experimento AutoAI es la selección automática de modelos. El algoritmo de selección de modelo automatizado utiliza la estrategia Asignación de datos utilizando límites superiores. Este enfoque asigna secuencialmente pequeños subconjuntos de datos de entrenamiento entre un gran conjunto de algoritmos. El objetivo es seleccionar un algoritmo que proporcione una precisión casi óptima cuando se entrene en todos los datos, al tiempo que se minimiza el coste de las muestras mal asignadas. El sistema soporta actualmente todos los algoritmos Scikit-learn y los populares algoritmos XGBoost y LightGBM . La formación y evaluación de modelos en grandes conjuntos de datos es costosa. El enfoque de iniciar subconjuntos pequeños y asignar subconjuntos incrementalmente más grandes a modelos que funcionan bien en el conjunto de datos ahorra tiempo, sin sacrificar el rendimiento.Se han añadido algoritmos de aprendizaje automático al sistema para aumentar aún más el rendimiento.
Selección de algoritmos para un modelo
Los algoritmos se seleccionan para que coincidan con los datos y la naturaleza del modelo, pero también pueden equilibrar la precisión y la duración del tiempo de ejecución, si el modelo está configurado para esa opción. Por ejemplo, los algoritmos de Snap ML suelen ser más rápidos para el entrenamiento que los algoritmos de Scikit-learn. A menudo son los algoritmos preferidos que AutoAI selecciona automáticamente para los casos en los que el entrenamiento se optimiza para un tiempo de ejecución y una precisión más cortos. Puede seleccionarlos manualmente si la velocidad de entrenamiento es una prioridad. Para obtener más detalles, consulte Documentación de Snap ML. Para obtener una discusión sobre cuándo son útiles los algoritmos SnapML , consulte esta publicación de blog sobre el uso de algoritmos SnapML .
Algoritmos utilizados para modelos de clasificación
Estos algoritmos son los algoritmos predeterminados que se utilizan para la selección de modelos para problemas de clasificación.
Algoritmo | Descripción |
---|---|
Clasificador de árbol de decisiones | Correlaciona observaciones sobre un elemento (representado en ramas) con conclusiones sobre el valor de destino del elemento (representado en las hojas). Da soporte a las etiquetas binarias y multiclase, y a las características continuas y categóricas. |
Clasificador de árboles adicionales | Un algoritmo generador de promedios basado en árboles de decisiones aleatorios. |
Clasificador de árbol ampliado de gradiente | Genera un modelo de predicción de clasificación con el formato de un conjunto de árboles de decisiones. Admite etiquetas binarias y características continuas y categóricas. |
Clasificador LGBM | Infraestructura de aumento de gradiente que utiliza el algoritmo de aprendizaje basado en árbol en dirección a la hoja (horizontal). |
Regresión logística | Analiza un conjunto de datos donde una o más variables independientes determinan uno de dos resultados. Solo se da soporte a la regresión logística binaria |
Clasificador de bosque aleatorio | Crea varios árboles de decisiones para generar la etiqueta que es una modalidad de cada árbol de decisiones. Da soporte a las etiquetas binarias y multiclase, así como a las características continuas y categóricas. |
SnapDecisionTreeClassifier | Este algoritmo proporciona un clasificador de árbol de decisiones utilizando la biblioteca IBM Snap ML. |
SnapLogisticRegression | Este algoritmo proporciona una regresión logística regularizada utilizando el solucionador IBM Snap ML. |
SnapRandomForestClassifier | Este algoritmo proporciona un clasificador de bosque aleatorio utilizando la biblioteca IBM Snap ML. |
SnapSVMClassifier | Este algoritmo proporciona una máquina de vectores de soporte regularizado utilizando el solucionador IBM Snap ML. |
Clasificador XGBoost | Procedimiento seguro y preciso que se puede utilizar para problemas de clasificación. Los modelos XGBoost se utilizan en varias áreas, incluyendo la clasificación de búsqueda web y la ecología. |
SnapBoostingMachineClassifier | Máquina de aumento para tareas de clasificación binarias y de varias clases que mezclan árboles de decisión binarios con modelos lineales con características de fourier aleatorio. |
Algoritmos utilizados para los modelos de regresión
Estos algoritmos son los algoritmos predeterminados que se utilizan para la selección automática de modelos para problemas de regresión.
Algoritmo | Descripción |
---|---|
Regresión de árbol de decisión | Correlaciona las observaciones acerca de un elemento (representado en las ramas) con conclusiones acerca del valor de destino del elemento (representado en las hojas). Da soporte a características continuas y categóricas. |
Regresión de árboles adicionales | Un algoritmo generador de promedios basado en árboles de decisiones aleatorios. |
Regresión de aumento de gradiente | Genera un modelo de predicción de regresión con el formato de un conjunto de árboles de decisión. Da soporte a características continuas y categóricas. |
Regresión TLGBM | Infraestructura de aumento de gradiente que utiliza algoritmos de aprendizaje basados en árboles. |
Regresión lineal | Modelos de relación lineal entre una variable dependiente escalar y una o más variables explicativas (o variables independientes) x. |
Regresión de bosque aleatorio | Crea varios árboles de decisión para generar una predicción media de cada árbol de decisión. Da soporte a características continuas y categóricas. |
Borde | La regresión ridge es similar a cuadrados menos ordinarios pero impone una penalización en el tamaño de coeficientes. |
SnapBoostingMachineRegressor | Este algoritmo proporciona una máquina de aumento utilizando la biblioteca IBM Snap ML que se puede utilizar para construir un conjunto de árboles de decisión. |
SnapDecisionTreeRegressor | Este algoritmo proporciona un árbol de decisiones utilizando la biblioteca IBM Snap ML. |
SnapRandomForestRegressor | Este algoritmo proporciona un bosque aleatorio utilizando la biblioteca IBM Snap ML. |
Regresión XGBoost | GBRT es un procedimiento preconfigurado que se puede utilizar para problemas de regresión. Los modelos de aumento de árbol de gradiente se utilizan en varias áreas, incluyendo la clasificación de búsqueda web y la ecología. |
Métricas por tipo de modelo
Las métricas siguientes están disponibles para medir la precisión de los conductos durante el entrenamiento y para puntuar datos.
Métricas de clasificación binaria
- Precisión (valor predeterminado para la clasificación de interconexiones)
- Roc auc
- Precisión promedio
- F
- Pérdida de log negativa
- Precisión
- Exhaustividad
Métricas de clasificación de varias clases
Las métricas para modelos de varias clases generan puntuaciones sobre el rendimiento de una interconexión con respecto a la medida especificada. Por ejemplo, una puntuación F1 promedio precisión (de las predicciones realizadas, cuántas predicciones positivas eran correctas) y exhaustividad (de todas las predicciones positivas posibles, cuántas predicciones se han pronosticado correctamente).
Puede refinar más una puntuación calificándola para calcular la métrica determinada globalmente (macro), por etiqueta (micro), o para ponderar un conjunto de datos desequilibrado para favorecer a las clases con más representación.
- Las métricas con el calificador micro calculan las métricas globalmente contando el número total de verdaderos positivos, falsos negativos y falsos positivos.
- Las métricas con el calificador macro calculan las métricas para cada etiqueta y encuentran su media sin ponderar. Todas las etiquetas se ponderan por igual.
- Las métricas con el calificador ponderado calculan las métricas para cada etiqueta y encuentran su promedio ponderado por la contribución de cada clase. Por ejemplo, en un conjunto de datos que incluye categorías para manzanas, melocotones y ciruelas, si hay muchas más instancias de manzanas, la métrica ponderada otorga mayor importancia a la predicción correcta de manzanas. Esto altera la macro para tener en cuenta el desequilibrio de etiqueta. Utilice una métrica ponderada como, por ejemplo, F1-weighted para un conjunto de datos desequilibrado.
Estas son métricas de clasificación de varias clases:
- Precisión (valor predeterminado para la clasificación de interconexiones)
- F1
- F1 Micro
- F1 Macro
- F1 Ponderado
- Precisión
- Precisión Micro
- Precisión Macro
- Precisión Ponderada
- Exhaustividad
- Exhaustividad Micro
- Exhaustividad Macro
- Exhaustividad ponderada
Métricas de regresión
- Error cuadrático promedio de raíz negativo (valor predeterminado para la clasificación de interconexiones)
- Error absoluto promedio negativo
- Error cuadrático de log promedio de raíz negativo
- Varianza explicada
- Error cuadrático promedio negativo
- Error cuadrático de log promedio negativo
- Error absoluto promedio negativo
- R2
Ingeniería de características automatizada
La tercera etapa en el proceso de AutoAI es la ingeniería de características automatizada. El algoritmo de ingeniería de características automatizada se basa en Cognito, descrito en los artículos de investigación Cognito: Ingeniería de características automatizada para aprendizaje supervisado e Ingeniería de características para modelado predictivo mediante aprendizaje de refuerzo . El sistema explora varias opciones de construcción de características de una manera jerárquica y no exhaustiva, mientras maximiza progresivamente la precisión del modelo a través de una estrategia de exploración-explotación. Este método se inspira en la estrategia de "prueba y error" para la ingeniería de características, pero realizada por un agente autónomo en lugar de humano.
Métricas utilizadas para importancia de característica
Para algoritmos de regresión y clasificación basados en árboles como Decision Tree, Extra Trees, Random Forest, XGBoost, Gradient Potenciado y LGBM, las importancias de características son sus puntuaciones de importancia de características inherentes basadas en la reducción del criterio que se utiliza para seleccionar puntos de división y calculadas cuando estos algoritmos se entrenan en los datos de entrenamiento.
Para los algoritmos no arbóreos como Logistic Regression, LInear Regression, SnapSVM, y Ridge, las importancias de las características son las importancias de las características de un algoritmo Random Forest entrenado con los mismos datos de entrenamiento que el algoritmo no arbóreo.
Para cualquier algoritmo, todas las importaciones de características están en el rango entre cero y uno y se han normalizado como la proporción con respecto a la importancia máxima de la característica.
Transformaciones de datos
Para la ingeniería de características, AutoAI utiliza un enfoque novedoso que explora diversas opciones de construcción de características de forma estructurada y no exhaustiva, al tiempo que maximiza progresivamente la precisión del modelo utilizando el aprendizaje de refuerzo. Esto da como resultado una secuencia optimizada de transformaciones para los datos que mejor coinciden con los algoritmos, o algoritmos, del paso de selección de modelo. Esta tabla lista algunas de las transformaciones que se utilizan y algunas condiciones conocidas bajo las que son útiles. Esta no es una lista exhaustiva de los escenarios en los que la transformación resulta útil, ya que su interpretación puede resultar compleja y difícil. Finalmente, los escenarios listados no son una descripción de cómo se seleccionan las transformaciones. La selección de las transformaciones que se han de aplicar se realiza mediante una prueba y error, de un modo orientado al rendimiento.
Nombre | Código | Función |
---|---|---|
Análisis del componente principal | pca | Reduce las dimensiones de los datos y los vuelve a alinear en un sistema de coordenadas más adecuado. Ayuda a manejar el problema de la dimensionalidad en los datos correlacionados de forma lineal. Elimina la redundancia y separa las señales importantes en los datos. |
Escalador estándar | stdscaler | Escala las características de datos a un rango estándar. Esto ayuda a la eficacia y eficiencia de ciertos algoritmos de aprendizaje y otras transformaciones como PCA. |
Logaritmo | anotaciones | Reduce la desviación derecha en las características y las convierte en más simétricas. La simetría de las características resultante ayuda a los algoritmos a comprender mejor los datos. Incluso el escalado basado en promedio y varianza resulta más significativo en los datos simétricos. Además, puede capturar relaciones físicas específicas entre la característica y el destino que se describe mejor a través de un logaritmo. |
Raíz de cubo | cbrt | Reduce la desviación derecha en el logaritmo de tipo de datos, pero es más débil que log en su impacto, lo que puede ser más adecuado en algunos casos.También es aplicable a los valores de cero o negativos para los que no se aplica el registro.La raíz de cubo también puede cambiar unidades, tal como reducir el volumen a longitud. |
Raíz cuadrada | sqrt | Reduce la desviación derecha ligera en los datos. Es más débil que log o la raíz de cubo. Funciona con ceros y reduce las dimensiones espaciales como, por ejemplo, el área a la longitud. |
Cuadrado | cuadrado | Reduce la asimetría izquierda a un grado moderado para hacer que tales distribuciones sean más simétricas. También puede ser útil en la captura de ciertos fenómenos como el crecimiento súper lineal. |
Producto | producto | Un producto de dos características puede exponer una relación no lineal para predecir mejor el valor objetivo que los valores individuales por sí solos. Por ejemplo, el coste de artículo en número de artículos que se venden es una mejor indicación del tamaño de una empresa que cualquiera de los únicos. |
XOR numérico | nxor | Esta transformación ayuda a capturar el tipo de "disyunción exclusiva" de las relaciones entre variables, es similar a XOR a nivel de bit, pero en un contexto numérico general. |
Suma | suma | Algunas veces la suma de dos características se correlaciona mejor con el destino de predicción que las características solas. Por ejemplo, cuando se suman los préstamos de orígenes diferentes, se obtiene una idea mejor del endeudamiento total del solicitante del crédito. |
División | dividir | La división es un operando fundamental que se utiliza para expresar cantidades como el PIB bruto sobre la población (PIB per cápita), lo que representa la vida media de un país mejor que el PIB solo o la población sola. |
Máximo | máx | Tomar el valor más alto de dos valores. |
Redondeo | redondeo | Esta transformación se puede ver como perturbación o añadiendo algo de ruido para reducir el sobreajuste que podría ser resultado de observaciones inexactas. |
Valor absoluto | abs | Considerar solo la magnitud y no la señal de observación. A veces, la dirección o señal de una observación no importa tanto como su magnitud, como por ejemplo un desplazamiento físico, mientras se considera el combustible o el tiempo empleado en el desplazamiento real. |
Tangente hiperbólica | tanh | La función de activación no lineal puede mejorar la precisión de la predicción, similar a la de las funciones de activación de red neuronal. |
Seno | sin | Puede reorientar los datos para descubrir tendencias periódicos, tal como mociones armónicas simples. |
Coseno | Cos | Puede reorientar los datos para descubrir tendencias periódicos, tal como mociones armónicas simples. |
Tangente | tan | La transformación de tangente trigonométrica suele resultar útil en combinación con otras transformaciones. |
Aglomeración de características | Aglomeración de características | La agrupación en clúster de diferentes características en grupos, basándose en la distancia o la afinidad, proporciona una fácil clasificación para el algoritmo de aprendizaje. |
Sigmoideo | sigmoide | La función de activación no lineal puede mejorar la precisión de la predicción, similar a la de las funciones de activación de red neuronal. |
Bosque de aislamiento | isoforestanomaly | Realiza la agrupación en clústeres utilizando un bosque de aislamiento para crear una nueva característica que contiene una puntuación de anomalía para cada ejemplo. |
Palabra a vector | word2vec | Este algoritmo, que se utiliza para el análisis de texto, se aplica antes que todas las demás transformaciones. Toma un corpus de texto como entrada y genera un conjunto de vectores. Al convertir el texto en una representación numérica, puede detectar y comparar palabras similares. Cuando se entrena con suficientes datos, word2vec puede hacer predicciones precisas sobre el significado de una palabra o su relación con otras palabras. Las predicciones se pueden utilizar para analizar texto y pronosticar el significado en las aplicaciones de análisis de opinión. |
Optimización de hiperparámetros
La etapa final en AutoAI es la optimización de hiperparámetros. El enfoque AutoAI optimiza los parámetros de las interconexiones de mejor rendimiento de las fases anteriores. Se realiza explorando los rangos de parámetros de estas interconexiones utilizando un optimizador de hiperparámetros de caja negra denominado RBFOpt. RBFOpt se describe en el artículo de investigación RBFOpt: una biblioteca de código abierto para optimización de caja negra con evaluaciones de funciones costosas . RBFOpt es adecuado para experimentos de AutoAI porque se ha creado para optimizaciones con evaluaciones costosas, como en el caso de entrenamiento y puntuación de un algoritmo. El enfoque de RBFOpt crea y refina de forma iterativa un modelo sustituto de la función objetivo desconocida para converger rápidamente a pesar de los largos tiempos de evaluación de cada iteración.
Preguntas frecuentes de AutoAI
Las siguientes son las preguntas frecuentes acerca de cómo crear un experimento de AutoAI.
¿Cuántas interconexiones se crean?
Dos parámetros de AutoAI determinan el número de interconexiones:
max_num_daub_ensembles: Número máximo (top-K clasificado por selección de modelo DAUB) del algoritmo seleccionado, o tipos de estimador, por ejemplo LGBMClassifierEstimator, XGBoostClassifierEstimator o LogisticRegressionEstimator para utilizar en la composición de interconexión. El valor predeterminado es 1, donde solo se utiliza el que tiene la clasificación más alta por tipo de algoritmo de selección de modelo.
num_folds: número de subconjuntos del conjunto de datos completo para entrenar interconexiones además del conjunto de datos completo. El valor predeterminado es 1 para el entrenamiento del conjunto de datos completo.
Para cada tipo de pliegue y algoritmo, AutoAI crea cuatro interconexiones de mayor refinamiento, correspondientes a:
- Interconexión con parámetros sklearn para este tipo de algoritmo,
- Interconexión con algoritmo optimizado utilizando HPO
- Interconexión con ingeniería de características optimizada
- Interconexión con ingeniería de características optimizada y algoritmo optimizado utilizando HPO
El número total de interconexiones que se generan es:
TotalPipelines= max_num_daub_ensembles * 4, if num_folds = 1:
TotalPipelines= (num_folds+1) * max_num_daub_ensembles * 4, if num_folds > 1 :
¿Qué optimización de hiperparámetros se aplica a mi modelo?
AutoAI utiliza un algoritmo de búsqueda global basado en modelos y sin derivadas, denominado RBfOpt, que está adaptado para el costoso entrenamiento de modelos de aprendizaje automático y las evaluaciones de puntuación que requiere la optimización de hiperparámetros (HPO). A diferencia de la optimización bayesiana, que ajusta modelo gaussiano a la función de objetivo desconocido, RBfOpt ajusta una modalidad de función de base radial para acelerar el descubrimiento de configuraciones de hiperparámetros que maximiza la función objetivo del problema de aprendizaje de máquina dado. Esta aceleración se obtiene minimizando el número de las costosas formaciones y puntuaciones de evaluaciones de modelos de aprendizaje de máquina, eliminando la necesidad de calcular los derivativos parciales.
Para cada subconjunto del tipo de algoritmo, AutoAI crea dos interconexiones que utilizan HPO para optimizar el tipo de algoritmo.
- La primera se basa en la optimización de este tipo de algoritmo basado en el conjunto de datos preprocesado (imputado/codificado/escalado) (interconexión 2) anterior).
- El segundo está basado en la optimización de este tipo de algoritmo basándose en la ingeniería de características optimizada del conjunto de datos procesado previamente (imputado/codificado/escalado).
Los valores de parámetro de los algoritmos de todas las interconexiones generadas por AutoAI se publican en mensajes de estado.
Para obtener más detalles acerca del algoritmo RbfOpt, consulte:
¿Cómo se calcula la significación de la característica?
Cuando configura un experimento de clasificación o regresión, puede especificar opcionalmente cómo manejar las características sin ningún impacto en el modelo. Las opciones son eliminar siempre la característica, eliminarla cuando mejore la calidad del modelo o no eliminarla. La significación de la característica se calcula de la siguiente manera:
- La importancia de la característica se calcula en la muestra de datos.
- Algunos estimadores no tienen prestaciones incorporadas para devolver las importaciones de características. En estos casos, se utiliza un estimador como RandomForest para medir el impacto.
- El número de características importa: si el valor de importancia para una característica es 0.0000000001 pero hay un gran número de características de baja importancia (por ejemplo, más de 200), dejarlas o eliminarlas puede tener algún impacto en los resultados del experimento.
En la modalidad automática, se utilizan los pasos siguientes para validar que la eliminación de características de baja importancia no afecta a los resultados del experimento:
- Si la eliminación de todas las características con una importancia de 0 calculada tiene algún impacto en la precisión del modelo, el algoritmo de análisis de componentes principales se aplica a esas características y selecciona los componentes K principales que explican el 90% de la varianza entre esas características insignificantes.
- A continuación, los componentes transformados se utilizan como nuevas características en lugar de las originales y el modelo se vuelve a evaluar.
- Si todavía hay una disminución en la precisión, todas las características originales se añaden de nuevo al experimento.
Referencias de investigación
Esta lista incluye algunos de los artículos de investigación fundacional que detallan cómo AutoAI fue diseñado e implementado para promocionar la confianza y la transparencia en el proceso automatizado de generación de modelos.
Próximos pasos
Imputación de datos en experimentos de AutoAI
Tema principal: Visión general de AutoAI