Scikit-Learn è una popolare libreria open source che contiene efficienti funzioni che agevolano il lavoro da Data Scientist.
Esploriamo i design principles of Scikit-Learn!
Scikit-Learn Desgin Principles
Gli oggetti che ne costuiscono le API condividono dei principi di sviluppo comuni, la cui conoscenza è utile nello sviluppare progetti complessi e metodi custom.
Consistency
Tutti gli oggetti condividono una semplcie interfaccia. Troviamo:
- Estimators (Stimatori), banalmente stimano il valore di un parametro a partire da un dato dataset. Ogni stimatore ha un metodo fit() che in ordine riceve features, labels, hyperamaters
- Tranformers (Trasformatori), alcuni stimatori possono eseguire trasformazioni sul dataset. In questo caso il metodo è transform() benché tutti i trasformatori presentino anche il metodo fit_transform() più efficiente e meglio ottimizzato
- Predictors (Predittori), alcuni stimatori sono in grado di effettuare previsioni attraverso il metodo predict(). I predittori hanno anche il metodo score() che misura la qualità delle previsioni create.
Inspection
Ogni stimatore rende accessibili i propri iper-parametri attraverso delle variabili di istanza pubblica (intese come accessibli all’esterno dell’oggetto). Distinguiamo quelli appresi (terminano con un underscore) da quelli impostati:
- imputer.strategy (impostati)
- imputer.statistics_ (appresi)
Nonproliferation of classes
Questo principio è meno evidente degli altri. Sostanzialmente Scikit-Learn è stata pensatata in modo da poter risultare compatibile con altre librerie.
Per questa ragione gli algoritmi di apprendimento (learning algortihms) sono gli unici oggetti rappresentati con classi custom. Ogni altro dato fa riferimento al type di un classico ambiente di data science:
- NumPy arrays e SciPy arrays per il dataset
- Strings o Numbers per gli iper-parametri.
Composition
Parola d’ordine modularità. L’obiettivo è evitare codice ridondante. Ecco quindi che blocchi di codice esistenti sono riutilizzati.
Questo principio tornerà particolarmente utile nella progettazione delle pipeline.
Sensible Defaults
La libreria provvede valori di default ragionevoli per la maggior parte dei parametri. In questo modo possiamo partire con un boost in più.
Se intendi approfondire, dai un occhiata qui.
Per questo post è tutto!
Prossimamente vedremo come creare una semplice funzione custom e perché sia tutile imparare a farlo!
Un caldo abbraccio, Andrea.
2 Comments
[…] API, è presente una API chiamata TF.Learn compatibile con Scikit-Learn […]
[…] di passare al codice, con la libreria di Scikit-Learn, è bene comprendere le trappe fondamentali dell’Exploratory Data […]