Blog.

Scikit-Learn Design Principles Guida | Data Science con Python


Autore
Andrea Provino
Data
Tempo di lettura
2 minuti
Categoria
machine-learning

scikit-learn-design-principles-data-science-guida-italiano-blog-machine-learning-artificial-intelligence

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.

Taggeddata sciencedata scientistguida


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum