CatBoost | Características categóricas de CatBoost

Contenidos

Introducción

¿Cuántos de ustedes han visto este error al crear sus modelos de aprendizaje automático con «sklearn»?
screen-shot-2017-08-13-at-11-52-00-am1-5969486

¡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

  1. ¿Qué es CatBoost?
  2. Ventajas de la biblioteca CatBoost
  3. CatBoost en comparación con otros algoritmos de impulso
  4. Instalación de CatBoost
  5. Resolviendo el desafío de ML usando CatBoost
  6. 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 profundo 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 entrenamiento 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 gradiente, 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.

screen-shot-2017-08-13-at-1-19-37-pm-6074974

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ámetros para ajustar y contiene parámetros como el número de árboles, la tasa de aprendizaje, la regularización, 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:

screen-shot-2017-08-13-at-3-33-33-pm-6084320

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

screen-shot-2017-08-13-at-4-30-27-pm-2548855
#Finding the missing values
train.isnull().sum()
screen-shot-2017-08-13-at-4-32-08-pm-8777900
#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
screen-shot-2017-08-13-at-4-42-52-pm-8311816

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)

screen-shot-2017-08-13-at-4-50-52-pm-7740085

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.

Aprender, Comprometerse, Competir Y Ser contratado

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.