CatBoost |  Κατηγορικά χαρακτηριστικά CatBoost

CatBoost | Κατηγορικά χαρακτηριστικά CatBoost

Oktober 1, 2022 0 Von admin

Εισαγωγή

Πόσοι από εσάς έχετε δει αυτό το σφάλμα κατά τη δημιουργία μοντέλων μηχανικής εκμάθησης χρησιμοποιώντας το „sklearn“;

Στοίχημα στους περισσότερους από εμάς! Τουλάχιστον τις πρώτες μέρες.

Αυτό το σφάλμα παρουσιάζεται όταν έχουμε να κάνουμε με μεταβλητές κατηγοριών (string). Στο sklearn, πρέπει να μετατρέψετε αυτές τις κατηγορίες σε αριθμητική μορφή.

Για να πραγματοποιήσουμε αυτήν τη μετατροπή, χρησιμοποιούμε διάφορες μεθόδους προεπεξεργασίας, όπως „κωδικοποίηση ετικετών“, „ένα hot encoding“ και άλλες.

Σε αυτό το άρθρο, θα συζητήσω μια πρόσφατα ανοιχτή βιβλιοθήκη “ CatBoost” που αναπτύχθηκε και συνεισέφερε η Yandex. Το CatBoost μπορεί να χρησιμοποιήσει κατηγορηματικά χαρακτηριστικά άμεσα και είναι επεκτάσιμο στη φύση.

«Αυτή είναι η πρώτη ρωσική τεχνολογία μηχανικής εκμάθησης που είναι ανοιχτού κώδικα», δήλωσε ο Mikhail Bilenko, επικεφαλής μηχανικής νοημοσύνης και έρευνας της Yandex.

ΥΣΤΕΡΟΓΡΑΦΟ Μπορείτε επίσης να διαβάσετε αυτό το άρθρο που έγραψα πριν από το «Πώς να αντιμετωπίσετε τις κατηγορικές μεταβλητές;».

Πίνακας περιεχομένων

  1. Τι είναι το CatBoost;
  2. Πλεονεκτήματα της βιβλιοθήκης CatBoost
  3. CatBoost σε σύγκριση με άλλους αλγόριθμους ενίσχυσης
  4. Εγκατάσταση CatBoost
  5. Επίλυση πρόκλησης ML χρησιμοποιώντας το CatBoost
  6. Σημειώσεις τέλους

1. Τι είναι το CatBoost;

Το CatBoost είναι ένας πρόσφατα ανοιχτός αλγόριθμος μηχανικής εκμάθησης από την Yandex. Μπορεί εύκολα να ενσωματωθεί με πλαίσια βαθιάς μάθησης όπως το TensorFlow της Google και το Core ML της Apple. Μπορεί να λειτουργήσει με διάφορους τύπους δεδομένων για να βοηθήσει στην επίλυση ενός ευρέος φάσματος προβλημάτων που αντιμετωπίζουν οι επιχειρήσεις σήμερα. Για να το συμπληρώσετε, παρέχει την καλύτερη ακρίβεια στην κατηγορία του.

Είναι ιδιαίτερα ισχυρό με δύο τρόπους:

  • Αποδίδει αποτελέσματα αιχμής χωρίς εκτενή εκπαίδευση δεδομένων που συνήθως απαιτείται από άλλες μεθόδους μηχανικής εκμάθησης και
  • Παρέχει ισχυρή υποστήριξη για τις πιο περιγραφικές μορφές δεδομένων που συνοδεύουν πολλά επιχειρηματικά προβλήματα.

Το όνομα „CatBoost“ προέρχεται από δύο λέξεις „Γάταηγορία» και «Ωθησηing”.

Όπως αναφέρθηκε, η βιβλιοθήκη λειτουργεί καλά με πολλαπλούς Γάτακατηγορίες δεδομένων, όπως ήχος, κείμενο, εικόνα συμπεριλαμβανομένων ιστορικών δεδομένων.

Ωθηση” προέρχεται από τον αλγόριθμο μηχανικής εκμάθησης που ενισχύει την κλίση καθώς αυτή η βιβλιοθήκη βασίζεται στη βιβλιοθήκη ενίσχυσης διαβάθμισης. Η ενίσχυση κλίσης είναι ένας ισχυρός αλγόριθμος μηχανικής εκμάθησης που εφαρμόζεται ευρέως σε πολλαπλούς τύπους επιχειρηματικών προκλήσεων όπως ο εντοπισμός απάτης, τα στοιχεία συστάσεων, η πρόβλεψη και έχει επίσης καλή απόδοση. Μπορεί επίσης να επιστρέψει πολύ καλό αποτέλεσμα με σχετικά λιγότερα δεδομένα, σε αντίθεση με τα μοντέλα DL που πρέπει να μάθουν από έναν τεράστιο όγκο δεδομένων.

Ακολουθεί ένα μήνυμα βίντεο του Mikhail Bilenko, επικεφαλής μηχανικής ευφυΐας και έρευνας της Yandex και της Anna Veronika Dorogush, επικεφαλής συστημάτων μηχανικής μάθησης Tandex.

2. Πλεονεκτήματα της CatBoost Library

  • Εκτέλεση: Το CatBoost παρέχει αποτελέσματα αιχμής και είναι ανταγωνιστικό με οποιονδήποτε κορυφαίο αλγόριθμο μηχανικής εκμάθησης στο μέτωπο της απόδοσης.
  • Αυτόματος χειρισμός κατηγοριών χαρακτηριστικών: Μπορούμε να χρησιμοποιήσουμε το CatBoost χωρίς καμία ρητή προεπεξεργασία για να μετατρέψουμε κατηγορίες σε αριθμούς. Το CatBoost μετατρέπει τις κατηγορικές τιμές σε αριθμούς χρησιμοποιώντας διάφορα στατιστικά στοιχεία για συνδυασμούς κατηγορικών χαρακτηριστικών και συνδυασμούς κατηγορικών και αριθμητικών χαρακτηριστικών. Μπορείτε να διαβάσετε περισσότερα για αυτό εδώ.
  • Εύρωστος: Μειώνει την ανάγκη για εκτεταμένο συντονισμό υπερπαραμέτρων και μειώνει τις πιθανότητες υπερβολικής προσαρμογής, γεγονός που οδηγεί σε πιο γενικευμένα μοντέλα. Παρόλο που, το CatBoost έχει πολλαπλές παραμέτρους για συντονισμό και περιέχει παραμέτρους όπως ο αριθμός των δέντρων, ο ρυθμός εκμάθησης, η τακτοποίηση, το βάθος δέντρου, το μέγεθος διπλώματος, η θερμοκρασία σάκου και άλλες. Μπορείτε να διαβάσετε για όλες αυτές τις παραμέτρους εδώ.
  • Εύχρηστος: Μπορείτε να χρησιμοποιήσετε το CatBoost από τη γραμμή εντολών, χρησιμοποιώντας ένα φιλικό προς το χρήστη API τόσο για την Python όσο και για το R.

3. CatBoost – Σύγκριση με άλλες βιβλιοθήκες ενίσχυσης

Έχουμε πολλές βιβλιοθήκες ενίσχυσης όπως XGBoost, H2O και LightGBM και όλες αυτές αποδίδουν καλά σε διάφορα προβλήματα. Οι προγραμματιστές CatBoost έχουν συγκρίνει την απόδοση με τους ανταγωνιστές σε τυπικά σύνολα δεδομένων ML:

Η παραπάνω σύγκριση δείχνει την τιμή απώλειας καταγραφής για τα δεδομένα δοκιμής και είναι η χαμηλότερη στην περίπτωση CatBoost στις περισσότερες περιπτώσεις. Σημαίνει ξεκάθαρα ότι το CatBoost έχει ως επί το πλείστον καλύτερη απόδοση τόσο για συντονισμένα όσο και για προεπιλεγμένα μοντέλα.

Επιπλέον, το CatBoost δεν απαιτεί μετατροπή του συνόλου δεδομένων σε κάποια συγκεκριμένη μορφή όπως το XGBoost και το LightGBM.

4. Εγκατάσταση του CatBoost

Το CatBoost είναι εύκολο στην εγκατάσταση τόσο για Python όσο και για R. Πρέπει να έχετε έκδοση 64 bit του python και του R.

Ακολουθούν τα βήματα εγκατάστασης για Python και R:

4.1 Εγκατάσταση Python:

pip install catboost

4.2 R Εγκατάσταση

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

5. Επίλυση πρόκλησης ML χρησιμοποιώντας το CatBoost

Η βιβλιοθήκη CatBoost μπορεί να χρησιμοποιηθεί για την επίλυση τόσο της πρόκλησης ταξινόμησης όσο και παλινδρόμησης. Για ταξινόμηση, μπορείτε να χρησιμοποιήσετε „CatBoostClassifier„και για παλινδρόμηση, „ντοστοBoostRegressor„.

Ακολουθεί ένα ζωντανό παράθυρο κωδικοποίησης για να παίξετε γύρω από τον κώδικα CatBoost και να δείτε τα αποτελέσματα σε πραγματικό χρόνο:

Σε αυτό το άρθρο, λύνω «Big Mart Sales” εξάσκηση στο πρόβλημα χρησιμοποιώντας το CatBoost. Είναι μια πρόκληση παλινδρόμησης, επομένως θα χρησιμοποιήσουμε το CatBoostRegressor, πρώτα θα διαβάσω τα βασικά βήματα (δεν θα εκτελέσω μηχανική χαρακτηριστικών, απλώς θα δημιουργήσω ένα βασικό μοντέλο).

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

Τώρα, θα δείτε ότι θα προσδιορίσουμε μόνο κατηγορικές μεταβλητές. Δεν θα εκτελέσουμε βήματα προεπεξεργασίας για κατηγορικές μεταβλητές:

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)

Όπως μπορείτε να δείτε ότι ένα βασικό μοντέλο δίνει μια δίκαιη λύση και το σφάλμα εκπαίδευσης και δοκιμής συγχρονίζονται. Μπορείτε να συντονίσετε τις παραμέτρους του μοντέλου, τις δυνατότητες για να βελτιώσετε τη λύση.

Τώρα, η επόμενη εργασία είναι να προβλέψουμε το αποτέλεσμα για το σύνολο δεδομένων δοκιμής.

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")


Αυτό είναι! Κατασκευάσαμε το πρώτο μοντέλο με το CatBoost

6. Σημειώσεις τέλους

Σε αυτό το άρθρο, είδαμε μια πρόσφατα ανοιχτού κώδικα βιβλιοθήκη ενίσχυσης „CatBoost“ από την Yandex, η οποία μπορεί να προσφέρει λύσεις τελευταίας τεχνολογίας για μια ποικιλία επιχειρηματικών προβλημάτων.

Ένα από τα βασικά χαρακτηριστικά που με ενθουσιάζει σε αυτήν τη βιβλιοθήκη είναι ο αυτόματος χειρισμός κατηγορικών τιμών χρησιμοποιώντας διάφορες στατιστικές μεθόδους.

Καλύψαμε βασικές λεπτομέρειες σχετικά με αυτήν τη βιβλιοθήκη και λύσαμε μια πρόκληση παλινδρόμησης σε αυτό το άρθρο. Θα σας προτείνω επίσης να χρησιμοποιήσετε αυτήν τη βιβλιοθήκη για να λύσετε μια επιχειρηματική λύση και να ελέγξετε την απόδοση σε σχέση με άλλα μοντέλα τελευταίας τεχνολογίας.

Μαθαίνω, Αρραβωνιάζω, Ανταγωνίζομαι & Προσλαμβάνομαι