CatBoost | Caratteristiche categoriche di CatBoost

Contenuti

introduzione

Quanti di voi hanno riscontrato questo errore durante la creazione dei propri modelli di machine learning con “chiaro”?
screenshot-2017-08-13-at-11-52-00-am1-5969486

Scommetto la maggior parte di noi! Almeno nei primi giorni.

Questo errore si verifica quando si tratta di variabili categoriali (Catene). E chiaro, devi convertire queste categorie in formato numerico.

Per eseguire questa conversione, usiamo vari metodi di pre-elaborazione come “codifica dei tag”, “codifica a caldo” e altri.

In questo articolo, parlerò di una libreria open source di recente ” CatBoost"Sviluppato e contribuito da Yandex. CatBoost può utilizzare direttamente le funzioni categoriali ed è di natura scalabile.

"Questa è la prima tecnologia russa di machine learning open source", Mikhail Bilenko ha detto, Yandex capo dell'intelligenza artificiale e della ricerca.

PD Puoi anche leggere questo articolo scritto da me prima “Come gestire le variabili categoriali?”.

Sommario

  1. Cos'è CatBoost??
  2. Vantaggi della libreria CatBoost
  3. CatBoost rispetto ad altri algoritmi di boost
  4. Installazione CatBoost
  5. Risolvere la sfida ML utilizzando CatBoost
  6. Note finali

1. Cos'è CatBoost??

CatBoost è un algoritmo di apprendimento automatico open source di Yandex. Puede integrarse fácilmente con marcos de apprendimento profondo como TensorFlow de Google y Core ML de Apple. Puoi lavorare con vari tipi di dati per aiutare a risolvere un'ampia gamma di problemi affrontati dalle aziende oggi. Per completarlo, fornisce la migliore precisione della categoria.

È particolarmente potente in due modi:

  • Produce resultados de vanguardia sin un addestramento de datos extenso que normalmente requieren otros métodos de aprendizaje automático, e
  • Fornisce un potente supporto immediato per i formati di dati più descrittivi che accompagnano molti problemi aziendali.

Il nome di “CatBoost” deriva da due parole “Gattoegoria "y"AumentoSinistro”.

Come discusso, la libreria funziona bene con i multipli Gattoegorie di dati, come audio, testo, Immagine, compresi i dati storici.

Aumento”Proviene del algoritmo de aprendizaje automático que impulsa el gradiente, poiché questa libreria è basata su una libreria che guida il gradiente. L'aumento del gradiente è un potente algoritmo di apprendimento automatico ampiamente applicato a più tipi di sfide aziendali, come il rilevamento delle frodi, articoli di raccomandazione, previsioni e funziona anche bene. Può anche restituire ottimi risultati con relativamente meno dati, a differenza dei modelli DL che devono imparare da una grande quantità di dati.

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

Ecco un videomessaggio di Mikhail Bilenko, Yandex capo dell'intelligenza artificiale e della ricerca, e Anna Veronika Dorogush, Direttore dei sistemi di apprendimento automatico presso Tandex.

2. Vantaggi della libreria CatBoost

  • Prestazione: CatBoost fornisce risultati all'avanguardia ed è competitivo con qualsiasi algoritmo di apprendimento automatico leader sul fronte delle prestazioni.
  • Gestione automatica delle caratteristiche categoriali: Possiamo usare CatBoost senza alcuna preelaborazione esplicita per convertire le categorie in numeri. CatBoost converte i valori categoriali in numeri utilizzando varie statistiche su combinazioni di caratteristiche categoriali e combinazioni di caratteristiche categoriali e numeriche. Puoi leggere di più su questo qui.
  • Robusto: Riduce la necessità di un'ampia ottimizzazione degli iperparametri e riduce le possibilità di over-tuning, che porta anche a modelli più generalizzati. Sebbene, CatBoost tiene múltiples parametri para ajustar y contiene parámetros como el número de árboles, il tasso di apprendimento, il regolarizzazione, la profondità dell'albero, la dimensione della piega, temperatura di insacco e altri. Puoi leggere di tutti questi parametri qui.
  • Facile da usare: Puoi usare CatBoost dalla riga di comando, utilizzando un'API facile da usare sia per Python che per R.

3. CatBoost: confronto con altre librerie boost

Abbiamo più librerie boost come XGBoost, H2O e LightGBM e tutti funzionano bene su una varietà di problemi. Lo sviluppatore CatBoost ha confrontato le prestazioni con la concorrenza su set di dati ML standard:

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

Il confronto sopra mostra il valore di perdita del registro per i dati del test ed è il più basso nel caso di CatBoost Nella maggior parte dei casi. Significa chiaramente che CatBoost funziona meglio principalmente per i modelli sintonizzati e predefiniti.

oltre a questo, CatBoost non richiede la conversione del set di dati in alcun formato specifico come XGBoost e LightGBM.

4. Installazione CatBoost

CatBoost è facile da installare sia per Python che per R. Devi avere una versione di 64 Python e R bit.

Di seguito sono riportati i passaggi di installazione per Python e R:

4.1 Installazione di Python:

pip install catboost

4.2 R Installazione

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

5. Risolvi la sfida AA usando CatBoost

La libreria CatBoost può essere utilizzata per risolvere problemi di classificazione e regressione. Per la classificazione, Puoi usare “CatBoostClassifier“E per la regressione,”CaBoostReturn“.

Ecco una finestra di codifica dal vivo per giocare con il codice CatBoost e vedere i risultati in tempo reale:

In questo articolo, sto risolvendo “Grandi vendite al mercato"Problema pratico con CatBoost. È una sfida di regressione, quindi useremo CatBoostRegressor, prima leggerò i passaggi di base (Non eseguirò l'ingegneria delle funzionalità, costruirò solo un modello base).

importa panda come pd
importa numpy come np
da catboost import CatBoostRegressor

#Leggi i file di addestramento e test
treno = pd.read_csv("treno.csv")
test = pd.read_csv("test.csv")

#Identificare il tipo di dati delle variabili
train.dtypes

screen-shot-2017-08-13-at-4-30-27-pm-2548855
#Trovare i valori mancanti
train.isnull().somma()
screen-shot-2017-08-13-at-4-32-08-pm-8777900
#Assegnazione dei valori mancanti sia per il training che per il test
train.fillna(-999, inplace=Vero)
test.fillna(-999,inplace=Vero)

#Creazione di un set di addestramento per la modellazione e un set di convalida per controllare le prestazioni del modello
X = train.drop(['Articolo_Outlet_Sales'], asse=1)
y = train.Item_Outlet_Sales

da sklearn.model_selection import train_test_split
X_treno, X_validazione, y_train, y_validation = train_test_split(X, e, train_size=0.7, random_state=1234)

#Guarda il tipo di dati delle variabili
X.dtypes
screen-shot-2017-08-13-at-4-42-52-pm-8311816

Ora, vedrai che identificheremo solo le variabili categoriali. Non eseguiremo alcun passaggio di pre-elaborazione per le variabili categoriali:

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

#importazione di libreria e modello di edificio
da catboost import CatBoostRegressor
model=CatBoostRegressor(iterazioni=50, profondità=3, tasso_di_apprendimento=0.1, loss_function='RMSE')
model.fit(X_treno, y_train,cat_features=categorical_features_indices,eval_set=(X_validazione, y_validation),trama=Vero)

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

Come potete vedere, un modello di base offre una soluzione equa e gli errori di addestramento e di test sono sincronizzati. È possibile regolare i parametri e le funzioni del modello per migliorare la soluzione.

Ora, il prossimo compito è prevedere il risultato del set di dati del test.

sottomissione = pd.DataFrame()
sottomissione['Item_Identifier'] = prova['Item_Identifier']
sottomissione['Identificativo_uscita'] = prova['Identificativo_uscita']
sottomissione['Articolo_Outlet_Sales'] = modello.prevedere(test)
sottomissione.to_csv("Invio.csv")

Questo è tutto! Abbiamo costruito il primo modello con CatBoost

6. Note finali

In questo articolo, abbiamo visto una libreria boost open source di recente “CatBoost” di Yandex che può fornire una soluzione all'avanguardia per una varietà di problemi aziendali.

Una delle caratteristiche chiave che mi entusiasma di questa libreria è la gestione automatica dei valori categoriali utilizzando vari metodi statistici.

Abbiamo coperto i dettagli di base su questa libreria e risolto una sfida di regressione in questo articolo.. Ti consiglio inoltre di utilizzare questa libreria per risolvere una soluzione aziendale e confrontare le prestazioni con altri modelli di prossima generazione..

Imparare, Ingaggiare, Competere E Essere assunto

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.