Annuncio di PyCaret 3.0: una libreria di machine learning open source a basso codice in Python
Esplorazione degli ultimi miglioramenti e funzionalità di PyCaret 3.0
In questo articolo:
- introduzione
- Modulo di previsione di serie storiche stabili
- Nuova API orientata agli oggetti
- Altre opzioni per la registrazione degli esperimenti
- Modulo di preelaborazione refactored
- Compatibilità con l'ultima versione di sklearn
- Addestramento di modelli paralleli distribuiti
- Accelera l'addestramento del modello sulla CPU
- RIP: Modulo PNL e Arules
- Maggiori informazioni
- Contributori
PyCaret è una libreria di machine learning open source a basso codice in Python che automatizza i flussi di lavoro di machine learning. È uno strumento end-to-end di machine learning e gestione dei modelli che accelera in modo esponenziale il ciclo dell'esperimento e ti rende più produttivo.
Rispetto alle altre librerie di machine learning open source, PyCaret è una libreria low-code alternativa che può essere utilizzata per sostituire centinaia di righe di codice solo con poche righe. Questo rende gli esperimenti esponenzialmente veloci ed efficienti. PyCaret è essenzialmente un wrapper Python attorno a diverse librerie e framework di machine learning in Python.
Il design e la semplicità di PyCaret sono ispirati dal ruolo emergente dei data scientist cittadini, un termine utilizzato per la prima volta da Gartner. I Citizen Data Scientist sono utenti esperti che possono eseguire attività analitiche sia semplici che moderatamente sofisticate che in precedenza avrebbero richiesto maggiori competenze tecniche.
Per saperne di più su PyCaret, dai un'occhiata al nostro GitHub o alla documentazione ufficiale .
Consulta le nostre note di rilascio complete per PyCaret 3.0
Modulo di previsione di serie temporali stabili
Il modulo Time Series di PyCaret è ora stabile e disponibile nella versione 3.0. Attualmente supporta attività di previsione, ma in futuro è previsto il rilevamento di anomalie di serie temporali e algoritmi di clustering.
# load dataset
from pycaret.datasets import get_data
data = get_data('airline')
# init setup
from pycaret.time_series import *
s = setup(data, fh = 12, session_id = 123)
# compare models
best = compare_models()
# forecast plot
plot_model(best, plot = 'forecast')
# forecast plot 36 days out in future
plot_model(best, plot = 'forecast', data_kwargs = {'fh' : 36})
Sebbene PyCaret sia uno strumento fantastico, non aderisce alle tipiche pratiche di programmazione orientate agli oggetti utilizzate dagli sviluppatori Python. Per risolvere questo problema, abbiamo dovuto riconsiderare alcune delle decisioni di progettazione iniziali prese per la versione 1.0. È importante notare che si tratta di un cambiamento significativo che richiederà uno sforzo considerevole per essere implementato. Ora, esploriamo come questo ti influenzerà.
# Functional API (Existing)
# load dataset
from pycaret.datasets import get_data
data = get_data('juice')
# init setup
from pycaret.classification import *
s = setup(data, target = 'Purchase', session_id = 123)
# compare models
best = compare_models()
Tuttavia, con la nostra nuova API orientata agli oggetti, puoi condurre facilmente più esperimenti nello stesso notebook e confrontarli senza alcuna difficoltà. Questo perché i parametri sono collegati a un oggetto e possono essere associati a varie opzioni di modellazione e pre-elaborazione.
# load dataset
from pycaret.datasets import get_data
data = get_data('juice')
# init setup 1
from pycaret.classification import ClassificationExperiment
exp1 = ClassificationExperiment()
exp1.setup(data, target = 'Purchase', session_id = 123)
# compare models init 1
best = exp1.compare_models()
# init setup 2
exp2 = ClassificationExperiment()
exp2.setup(data, target = 'Purchase', normalize = True, session_id = 123)
# compare models init 2
best2 = exp2.compare_models()
exp1.compare_models
exp2.compare_models
import pandas as pd
# generate leaderboard
leaderboard_exp1 = exp1.get_leaderboard()
leaderboard_exp2 = exp2.get_leaderboard()
lb = pd.concat([leaderboard_exp1, leaderboard_exp2])
Output truncated
# print pipeline steps
print(exp1.pipeline.steps)
print(exp2.pipeline.steps)
PyCaret 2 può registrare automaticamente gli esperimenti utilizzando MLflow. Sebbene sia ancora l'impostazione predefinita, ci sono più opzioni per la registrazione degli esperimenti in PyCaret 3. Le nuove opzioni aggiunte nell'ultima versione sono wandb, cometml, dagshub.
Per modificare il logger da MLflow predefinito ad altre opzioni disponibili, passare semplicemente uno dei seguenti nel log_experimentparametro. 'mlflow', 'wandb', 'cometml', 'dagshub'.
Modulo di preelaborazione refactored
Il modulo di preelaborazione è stato sottoposto a una completa riprogettazione per migliorarne l'efficienza e le prestazioni, nonché per garantire la compatibilità con l'ultima versione di Scikit-Learn.
PyCaret 3 include diverse nuove funzionalità di pre-elaborazione, come tecniche di codifica categorica innovative, supporto per le funzionalità di testo nella modellazione dell'apprendimento automatico, nuovi metodi di rilevamento dei valori anomali e tecniche avanzate di selezione delle funzionalità.
Alcune delle nuove funzionalità sono:
- Nuovi metodi di codifica categorica
- Gestione delle funzionalità di testo per la modellazione di machine learning
- Nuovi metodi per rilevare i valori anomali
- Nuovi metodi per la selezione delle caratteristiche
- Garantire di evitare perdite target poiché l'intera tubazione è ora montata a livello di piega.
PyCaret 2 fa molto affidamento su scikit-learn 0.23.2, il che rende impossibile utilizzare l'ultima versione di scikit-learn (1.X) contemporaneamente a PyCaret nello stesso ambiente.
PyCaret è ora compatibile con l'ultima versione di scikit-learn e vorremmo mantenerlo tale.
Allenamento a modello parallelo distribuito
Per ridimensionare set di dati di grandi dimensioni, puoi eseguire compare_modelsla funzione su un cluster in modalità distribuita. Per fare ciò, puoi usare il parallelparametro nella compare_modelsfunzione.
Ciò è stato reso possibile grazie a Fugue , un'interfaccia unificata open source per il calcolo distribuito che consente agli utenti di eseguire codice Python, Panda e SQL su Spark, Dask e Ray con riscritture minime
# load dataset
from pycaret.datasets import get_data
diabetes = get_data('diabetes')
# init setup
from pycaret.classification import *
clf1 = setup(data = diabetes, target = 'Class variable', n_jobs = 1)
# create pyspark session
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
# import parallel back-end
from pycaret.parallel import FugueBackend
# compare models
best = compare_models(parallel = FugueBackend(spark))
Puoi applicare le ottimizzazioni Intel per gli algoritmi di machine learning e velocizzare il tuo flusso di lavoro. Per addestrare i modelli con ottimizzazioni Intel use sklearnexengine, è richiesta l'installazione della libreria Intel sklearnex:
# install sklearnex
pip install scikit-learn-intelex
# Functional API (Existing)
# load dataset
from pycaret.datasets import get_data
data = get_data('bank')
# init setup
from pycaret.classification import *
s = setup(data, target = 'deposit', session_id = 123)
%%time
lr = create_model('lr')
%%time
lr2 = create_model('lr', engine = 'sklearnex')
⚰️ ️RIP: Modulo PNL e Arules
La PNL sta cambiando rapidamente e ci sono molte biblioteche e aziende dedicate che lavorano esclusivamente per risolvere compiti di PNL end-to-end. A causa della mancanza di risorse, delle competenze esistenti nel team e di nuovi collaboratori disposti a mantenere e supportare NLP e Arules, abbiamo deciso di eliminarli da PyCaret. PyCaret 3.0 non ha nlpe arulesmodule. Inoltre è stato rimosso dalla documentazione. Puoi ancora usarli con la versione precedente di PyCaret.
ℹ️ Ulteriori informazioni
Documenti Iniziare con PyCaret
Riferimento API Documenti API dettagliati
⭐ Tutorial Nuovo su PyCaret? Dai un'occhiata ai nostri taccuini ufficiali
Notebook creati e mantenuti dalla community
Blog Tutorial e articoli dei collaboratori
Video Video tutorial ed eventi
YouTube Iscriviti al nostro canale YouTube
Slack Unisciti alla nostra community di Slack
LinkedIn Segui la nostra pagina LinkedIn
Discussioni Interagisci con la community e i contributori
️ Note di rilascio
Contributori
Grazie a tutti i collaboratori che hanno partecipato a PyCaret 3.
@ngupta23
@Yard1
@tvdboom
@jinensetpal
@goodwanghan
@Alexsandruss
@daikikatsuragawa
@caron14
@sherpan
@haizadtarik
@ethanglaser
@kumar21120
@satya-pattnaik
@ltsaprounis
@sayantan1410
@AJarman
@drmario-gh
@NeptuneN
@Abonia1
@LucasSerra
@desaizeeshan2 2
@rhoboro
@jonasvdd
@PivovarA
@ykskks
@chrimaho
@AnthonyA1223
@ArtificialZeng
@cspartalis
@vladocodes
@huangzhhui
@keisuke-umezawa
@ryankarlos
@celestinoxp
@qubiit
@beckernick
@napetrov
@erwanlc
@Danpilz
@ryanxjhan
@wkuopt
@TremaMiguel
@IncubatorShokuhou
@moezali1
Ti è piaciuto il blog? Connettiti con Moez Ali
Moez Ali è un innovatore e tecnologo. Un data scientist diventato product manager dedicato alla creazione di prodotti dati moderni e all'avanguardia e alla crescita di vivaci comunità open source attorno a loro.
Creatore di PyCaret , oltre 100 pubblicazioni con oltre 500 citazioni , relatore principale e riconosciuto a livello mondiale per i contributi open source in Python .
Diventiamo amici! connettiti con me:
LinkedIn
Twitter
Medio
YouTube
Dai un'occhiata al mio nuovissimo sito web personale: https://www.moez.ai .
Per saperne di più sul mio lavoro open source: PyCaret , puoi dare un'occhiata a questo repository GitHub oppure puoi seguire la pagina LinkedIn ufficiale di PyCaret .
Ascolta il mio intervento sulla previsione delle serie temporali con PyCaret in DATA+AI SUMMIT 2022 di Databricks.

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































