Introducción
¿Cuántos de ustedes han visto este error al crear sus modelos de aprendizaje automático con «sklearn»?
¡Apuesto a que la mayoría de nosotros! Al menos en los primeros días.
Este error ocurre cuando se trata de variables categóricas (cadenas). En sklearn, debe convertir estas categorías en formato numérico.
Para realizar esta conversión, utilizamos varios métodos de preprocesamiento como «codificación de etiquetas», «codificación en caliente» y otros.
En este artículo, hablaré sobre una biblioteca de código abierto recientemente » CatBoost”Desarrollado y contribuido por Yandex. CatBoost puede usar funciones categóricas directamente y es de naturaleza escalable.
“Esta es la primera tecnología rusa de aprendizaje automático que es de código abierto”, Dijo Mikhail Bilenko, jefe de inteligencia e investigación de máquinas de Yandex.
PD También puede leer este artículo escrito por mí antes de «¿Cómo tratar con variables categóricas?».
Tabla de contenido
- ¿Qué es CatBoost?
- Ventajas de la biblioteca CatBoost
- CatBoost en comparación con otros algoritmos de impulso
- Instalación de CatBoost
- Resolviendo el desafío de ML usando CatBoost
- Notas finales
1. ¿Qué es CatBoost?
CatBoost es un algoritmo de aprendizaje automático de código abierto de Yandex. Puede integrarse fácilmente con marcos de aprendizaje profundoEl aprendizaje profundo, una subdisciplina de la inteligencia artificial, se basa en redes neuronales artificiales para analizar y procesar grandes volúmenes de datos. Esta técnica permite a las máquinas aprender patrones y realizar tareas complejas, como el reconocimiento de voz y la visión por computadora. Su capacidad para mejorar continuamente a medida que se le proporcionan más datos la convierte en una herramienta clave en diversas industrias, desde la salud... como TensorFlow de Google y Core ML de Apple. Puede trabajar con diversos tipos de datos para ayudar a resolver una amplia gama de problemas a los que se enfrentan las empresas en la actualidad. Para complementarlo, proporciona la mejor precisión de su clase.
Es especialmente poderoso de dos maneras:
- Produce resultados de vanguardia sin un entrenamientoEl entrenamiento es un proceso sistemático diseñado para mejorar habilidades, conocimientos o capacidades físicas. Se aplica en diversas áreas, como el deporte, la educación y el desarrollo profesional. Un programa de entrenamiento efectivo incluye la planificación de objetivos, la práctica regular y la evaluación del progreso. La adaptación a las necesidades individuales y la motivación son factores clave para lograr resultados exitosos y sostenibles en cualquier disciplina.... de datos extenso que normalmente requieren otros métodos de aprendizaje automático, y
- Proporciona un potente soporte listo para usar para los formatos de datos más descriptivos que acompañan a muchos problemas comerciales.
El nombre de «CatBoost» proviene de dos palabras «Gatoegory ”y“AumentarEn g».
Como se discutió, la biblioteca funciona bien con múltiples Gatoegorías de datos, como audio, texto, imagen, incluidos datos históricos.
«Aumentar”Proviene del algoritmo de aprendizaje automático que impulsa el gradienteGradiente es un término utilizado en diversos campos, como la matemática y la informática, para describir una variación continua de valores. En matemáticas, se refiere a la tasa de cambio de una función, mientras que en diseño gráfico, se aplica a la transición de colores. Este concepto es esencial para entender fenómenos como la optimización en algoritmos y la representación visual de datos, permitiendo una mejor interpretación y análisis en..., ya que esta biblioteca se basa en una biblioteca que impulsa el gradiente. El aumento de gradiente es un poderoso algoritmo de aprendizaje automático que se aplica ampliamente a múltiples tipos de desafíos comerciales, como detección de fraudes, elementos de recomendación, pronósticos y también funciona bien. También puede devolver muy buenos resultados con relativamente menos datos, a diferencia de los modelos DL que necesitan aprender de una gran cantidad de datos.
Aquí hay un mensaje de video de Mikhail Bilenko, jefe de inteligencia e investigación de máquinas de Yandex, y Anna Veronika Dorogush, directora de sistemas de aprendizaje automático de Tandex.
2. Ventajas de CatBoost Library
- Rendimiento: CatBoost proporciona resultados de vanguardia y es competitivo con cualquier algoritmo líder de aprendizaje automático en el frente del rendimiento.
- Manejo automático de características categóricas: Podemos usar CatBoost sin ningún preprocesamiento explícito para convertir categorías en números. CatBoost convierte valores categóricos en números utilizando varias estadísticas sobre combinaciones de características categóricas y combinaciones de características categóricas y numéricas. Puedes leer más sobre esto aquí.
- Robusto: Reduce la necesidad de un ajuste extensivo de hiperparámetros y reduce las posibilidades de sobreajuste, lo que también conduce a modelos más generalizados. Aunque, CatBoost tiene múltiples parámetrosLos "parámetros" son variables o criterios que se utilizan para definir, medir o evaluar un fenómeno o sistema. En diversos campos como la estadística, la informática y la investigación científica, los parámetros son fundamentales para establecer normas y estándares que guían el análisis y la interpretación de datos. Su adecuada selección y manejo son cruciales para obtener resultados precisos y relevantes en cualquier estudio o proyecto.... para ajustar y contiene parámetros como el número de árboles, la tasa de aprendizaje, la regularizaciónLa regularización es un proceso administrativo que busca formalizar la situación de personas o entidades que operan fuera del marco legal. Este procedimiento es fundamental para garantizar derechos y deberes, así como para fomentar la inclusión social y económica. En muchos países, la regularización se aplica en contextos migratorios, laborales y fiscales, permitiendo a quienes se encuentran en situaciones irregulares acceder a beneficios y protegerse de posibles sanciones...., la profundidad del árbol, el tamaño del pliegue, la temperatura de embolsado y otros. Puedes leer sobre todos estos parámetros aquí.
- Fácil de usar: Puede usar CatBoost desde la línea de comandos, utilizando una API fácil de usar tanto para Python como para R.
3. CatBoost: comparación con otras bibliotecas de impulso
Tenemos múltiples bibliotecas de impulso como XGBoost, H2O y LightGBM y todas funcionan bien en una variedad de problemas. El desarrollador de CatBoost ha comparado el rendimiento con la competencia en conjuntos de datos ML estándar:
La comparación anterior muestra el valor de pérdida de registro para los datos de prueba y es el más bajo en el caso de CatBoost en la mayoría de los casos. Significa claramente que CatBoost funciona mejor en su mayoría tanto para los modelos sintonizados como para los predeterminados.
Además de esto, CatBoost no requiere la conversión del conjunto de datos a ningún formato específico como XGBoost y LightGBM.
4. Instalación de CatBoost
CatBoost es fácil de instalar tanto para Python como para R. Necesitas tener una versión de 64 bits de Python y R.
A continuación se muestran los pasos de instalación para Python y R:
4.1 Instalación de Python:
pip install catboost
4.2 R Instalación
install.packages('devtools')
devtools::install_github('catboost/catboost', subdir="catboost/R-package")
5. Resolver el desafío de AA usando CatBoost
La biblioteca CatBoost se puede utilizar para resolver desafíos de clasificación y regresión. Para la clasificación, puede utilizar «CatBoostClassifier«Y para la regresión,»CatBoostRegressor“.
Aquí hay una ventana de codificación en vivo para que juegues con el código CatBoost y veas los resultados en tiempo real:
En este artículo, estoy resolviendo «Ventas de Big Mart”Problema de práctica con CatBoost. Es un desafío de regresión, por lo que usaremos CatBoostRegressor, primero leeré los pasos básicos (no realizaré ingeniería de características, solo construiré un modelo básico).
import pandas as pd import numpy as np from catboost import CatBoostRegressor #Read trainig and testing files train = pd.read_csv("train.csv") test = pd.read_csv("test.csv") #Identify the datatype of variables train.dtypes
#Finding the missing values train.isnull().sum()
#Imputing missing values for both train and test train.fillna(-999, inplace=True) test.fillna(-999,inplace=True)
#Creating a training set for modeling and validation set to check model performance X = train.drop(['Item_Outlet_Sales'], axis=1) y = train.Item_Outlet_Sales from sklearn.model_selection import train_test_split X_train, X_validation, y_train, y_validation = train_test_split(X, y, train_size=0.7, random_state=1234)
#Look at the data type of variables X.dtypes
Ahora, verá que solo identificaremos variables categóricas. No realizaremos ningún paso de preprocesamiento para variables categóricas:
categorical_features_indices = np.where(X.dtypes != np.float)[0]
#importing library and building model from catboost import CatBoostRegressor model=CatBoostRegressor(iterations=50, depth=3, learning_rate=0.1, loss_function='RMSE') model.fit(X_train, y_train,cat_features=categorical_features_indices,eval_set=(X_validation, y_validation),plot=True)
Como puede ver, un modelo básico ofrece una solución justa y los errores de capacitación y prueba están sincronizados. Puede ajustar los parámetros del modelo y las funciones para mejorar la solución.
Ahora, la siguiente tarea es predecir el resultado del conjunto de datos de prueba.
submission = pd.DataFrame() submission['Item_Identifier'] = test['Item_Identifier'] submission['Outlet_Identifier'] = test['Outlet_Identifier'] submission['Item_Outlet_Sales'] = model.predict(test) submission.to_csv("Submission.csv")
¡Eso es todo! Hemos construido el primer modelo con CatBoost
6. Notas finales
En este artículo, vimos una biblioteca de impulso de código abierto recientemente «CatBoost» de Yandex que puede proporcionar una solución de vanguardia para una variedad de problemas comerciales.
Una de las características clave que me entusiasma de esta biblioteca es el manejo automático de valores categóricos mediante varios métodos estadísticos.
Hemos cubierto detalles básicos sobre esta biblioteca y resuelto un desafío de regresión en este artículo. También le recomendaré que utilice esta biblioteca para resolver una solución empresarial y comparar el rendimiento con otros modelos de última generación.