ChatBoost | Caractéristiques catégoriques de CatBoost

Contenu

introduction

Combien d'entre vous ont vu cette erreur lors de la création de vos modèles d'apprentissage automatique avec “apprendre”?
capture d

Je parie que la plupart d'entre nous! Au moins les premiers jours.

Cette erreur se produit lors du traitement de variables catégorielles (chaînes). Et clair, vous devez convertir ces catégories au format numérique.

Pour effectuer cette conversion, nous utilisons diverses méthodes de prétraitement comme “encodage des balises”, “codage à chaud” et autres.

Dans cet article, je vais parler d'une bibliothèque open source récemment ” ChatBoost"Développé et contribué par Yandex. CatBoost peut utiliser directement des fonctions catégorielles et est de nature évolutive.

« C'est la première technologie russe d'apprentissage automatique qui est open source", Mikhaïl Bilenko a dit, Yandex responsable de l'intelligence machine et de la recherche.

PD Vous pouvez également lire cet article écrit par moi avant “Comment gérer les variables catégorielles?”.

Table des matières

  1. Qu'est-ce que CatBoost?
  2. Avantages de la bibliothèque CatBoost
  3. CatBoost comparé à d'autres algorithmes de boost
  4. Installation de CatBoost
  5. Résoudre le défi du ML à l'aide de CatBoost
  6. Remarques finales

1. Qu'est-ce que CatBoost?

CatBoost est un algorithme d'apprentissage automatique open source de Yandex. Peut être facilement intégré à des frameworks d'apprentissage en profondeur tels que TensorFlow de Google et Core ML d'Apple. Vous pouvez travailler avec différents types de données pour aider à résoudre un large éventail de problèmes rencontrés par les entreprises aujourd'hui. Pour le compléter, fournit la meilleure précision de sa catégorie.

Il est particulièrement puissant de deux manières:

  • Produit des résultats de pointe sans formation approfondie sur les données généralement requise par d'autres méthodes d'apprentissage automatique, Oui
  • Fournit une prise en charge puissante et prête à l'emploi pour les formats de données plus descriptifs qui accompagnent de nombreux problèmes commerciaux.

Le nom de “ChatBoost” vient de deux mots “Chatégorie « y »AugmenterEffrayant”.

Comme indiqué, la bibliothèque fonctionne bien avec des multiples Chatégories de données, comme audio, texte, photo, y compris les données historiques.

Augmenter« Cela vient de l'algorithme d'apprentissage automatique qui entraîne le gradient, puisque cette bibliothèque est basée sur une bibliothèque qui pilote le dégradé. L'augmentation de gradient est un puissant algorithme d'apprentissage automatique qui est largement appliqué à plusieurs types de défis commerciaux, comme la détection de fraude, éléments de recommandation, prévisions et ça marche bien aussi. Il peut également renvoyer de très bons résultats avec relativement moins de données, contrairement aux modèles DL qui ont besoin d'apprendre à partir d'une grande quantité de données.

capture d

Voici un message vidéo de Mikhail Bilenko, Yandex responsable de l'intelligence machine et de la recherche, et Anna Veronika Dorogush, Directeur des systèmes d'apprentissage automatique chez Tandex.

2. Avantages de la bibliothèque CatBoost

  • Performance: CatBoost fournit des résultats de pointe et est compétitif avec n'importe quel algorithme d'apprentissage automatique de premier plan sur le plan des performances.
  • Traitement automatique des caractéristiques catégorielles: Nous pouvons utiliser CatBoost sans aucun prétraitement explicite pour convertir les catégories en nombres. CatBoost convertit les valeurs catégorielles en nombres à l'aide de diverses statistiques sur les combinaisons de caractéristiques catégorielles et les combinaisons de caractéristiques catégorielles et numériques. Vous pouvez en savoir plus à ce sujet ici.
  • Robuste: Réduit le besoin d'un réglage étendu des hyperparamètres et réduit les risques de réglage excessif, ce qui conduit aussi à des modèles plus généralisés. Même si, CatBoost a plusieurs paramètres à ajuster et contient des paramètres tels que le nombre d'arbres, le taux d'apprentissage, régularisation, la profondeur de l'arbre, la taille du pli, température d'ensachage et autres. Vous pouvez lire sur tous ces paramètres ici.
  • Facile à utiliser: Vous pouvez utiliser CatBoost à partir de la ligne de commande, en utilisant une API facile à utiliser pour Python et R.

3. ChatBoost: comparaison avec d'autres bibliothèques boost

Nous avons plusieurs bibliothèques boost comme XGBoost, H2O et LightGBM et tous fonctionnent bien sur une variété de problèmes. Le développeur CatBoost a comparé les performances à la concurrence sur des ensembles de données ML standard:

capture d

La comparaison ci-dessus montre la valeur de perte de log pour les données de test et elle est la plus faible dans le cas de ChatBoost dans la majorité des cas. Cela signifie clairement que CatBoost fonctionne mieux principalement pour les modèles réglés et par défaut.

En plus de cela, CatBoost ne nécessite pas la conversion de l'ensemble de données dans un format spécifique comme XGBoost et LightGBM.

4. Installation de CatBoost

CatBoost est facile à installer pour Python et R. Vous devez avoir une version de 64 Bits Python et R.

Voici les étapes d'installation pour Python et R:

4.1 Installation de Python:

pip install catboost

4.2 R Installation

install.packages('devtools')
devtools::install_github('catboost/catboost', subdir="catboost/R-package")

5. Résolvez le défi AA en utilisant CatBoost

La bibliothèque CatBoost peut être utilisée pour résoudre les problèmes de classification et de régression. Pour le classement, vous pouvez utiliser “CatBoostClassifier“Et pour la régression,”CàBoostReturn".

Voici une fenêtre d'encodage en direct pour que vous puissiez jouer avec le code CatBoost et voir les résultats en temps réel:

Dans cet article, je résous “Grandes ventes du marché« Problème de pratique avec CatBoost. C'est un défi de régression, nous allons donc utiliser CatBoostRegressor, Je vais d'abord lire les étapes de base (Je n'effectuerai pas d'ingénierie de fonctionnalités, je vais juste construire un modèle de base).

importer des pandas au format pd
importer numpy en tant que np
de catboost importer CatBoostRegressor

#Lire les fichiers d'entraînement et de test
train = pd.read_csv("train.csv")
test = pd.read_csv("test.csv")

#Identifier le type de données des variables
train.dtypes

capture d
#Trouver les valeurs manquantes
train.isnull().somme()
capture d
#Imputation des valeurs manquantes pour le train et le test
train.fillna(-999, inplace=Vrai)
test.fillna(-999,inplace=Vrai)

#Création d'un ensemble d'entraînement pour la modélisation et d'un ensemble de validation pour vérifier les performances du modèle
X = train.drop(['Item_Outlet_Sales'], axe=1)
y = train.Item_Outlet_Sales

de sklearn.model_selection importer train_test_split
X_train, X_validation, y_train, y_validation = train_test_split(X, Oui, taille_train=0.7, état_aléatoire=1234)

#Regardez le type de données des variables
X.dtypes
capture d

À présent, vous verrez que nous n'identifierons que les variables catégorielles. Nous n'effectuerons aucune étape de prétraitement pour les variables catégorielles:

categorical_features_indices = np.where(X.dtypes != np.float)[0]

#importation d'une bibliothèque et d'un modèle de bâtiment
de catboost importer CatBoostRegressor
model=CatBoostRegressor(itérations=50, profondeur=3, taux_apprentissage=0.1, loss_function='RMSE')
model.fit(X_train, y_train,cat_features=categorical_features_indices,eval_set=(X_validation, y_validation),intrigue=Vrai)

capture d

Comme tu peux le voir, un modèle de base offre une solution équitable et les erreurs d'entraînement et de test sont synchronisées. Vous pouvez ajuster les paramètres et les fonctions du modèle pour améliorer la solution.

À présent, la tâche suivante consiste à prédire le résultat de l'ensemble de données de test.

soumission = pd.DataFrame()
soumission['Identifiant_Élément'] = tester['Identifiant_Élément']
soumission['Outlet_Identifier'] = tester['Outlet_Identifier']
soumission['Item_Outlet_Sales'] = model.predict(test)
soumission.to_csv("Soumission.csv")

C'est tout! Nous avons construit le premier modèle avec CatBoost

6. Remarques finales

Dans cet article, nous avons vu récemment une bibliothèque boost open source “ChatBoost” de Yandex qui peut fournir une solution de pointe pour une variété de problèmes commerciaux.

L'une des principales caractéristiques qui m'enthousiasme dans cette bibliothèque est la gestion automatique des valeurs catégorielles à l'aide de diverses méthodes statistiques..

Nous avons couvert les détails de base sur cette bibliothèque et résolu un problème de régression dans cet article.. Je vous recommanderai également d'utiliser cette bibliothèque pour résoudre une solution d'entreprise et comparer les performances avec d'autres modèles de nouvelle génération..

Apprendre, Engager, Concourir Oui Être embauché

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.