Decision Tree o Alberi Decisionali

I Decision Tree o Alberi Decisionali sono uno strumento di apprendimento supervisionato, essi risolvono principalmente tematiche di classificazione o regressione. Sono molto facili da interpretare e da applicare, non basandosi su un modello lineare sono capaci di apprendere anche associazioni non lineari. Funzionano sia su dati numerici che categorici. I Decision Tree si categorizzano rispetto alla variabile in output come: Categorical Decision Tree Continuous Decision Tree Nella figura seguente si vede un esempio di Decision Tree sul dataset di Iris. ...

3 ottobre 2017

Stochastic Gradient Descent in Python con Sci-kit

Un modo molto semplice di implementare lo Stochastic Gradient Descent nei nostri script è quello di usare l’implementazione di Scikit. La classe SGDClassifier implementa un classificatore che utilizza lo Stochastic Gradient Descent per classificare valori. Il mio script in python applica questo classificatore sul MNIST database, un dataset contente dei numeri scritti a mano e utilizzati come dataset d’esempio nei problemi di classificazione. Ho utilizzato questo semplice script inoltre per gareggiare su Kaggle alla competizione https://www.kaggle.com/c/digit-recognizer, dove si chiede di scrivere un classificatore di cifre e fare il submit del punteggio. ...

29 settembre 2017

Gradient Descent o Discesa del Gradiente

Il Gradient Descent o Discesa del Gradiente è uno dei più popolari algoritmi di ottimizzazione. La discesa del gradiente è un algoritmo molto usato nelle reti neurali in quanto è alla base dell’algoritmo di backpropagation, attualmente sono tantissime le librerie che implementano questo algoritmo. L’idea del Gradiente Descent è quello di minimizzare una funzione obiettivo J(θ) formata da N parametri θ, aggiornando il valore dei parametri in base alla differenza con il gradiente negativo di J(θ) rispetto al parametro considerato. L’aggiornamento del parametro viene aggiornato poi passo passo, secondo un dato valore η, chiamato learning rate. ...

27 settembre 2017

Clustering Gerarchico - Parte Seconda

In questo articolo spiegherò come creare degli oggetti Clusterizzati in Python usando la libreria SciPy. SciPy mette a disposizione per noi un sacco di metodi per il Clustering, noi utilizzeremo quelli che abbiamo visto nell’articolo precedente. Il seguente file IPython fa vedere perfettamente la procedura con un metodo di collegamento fra i cluster di tipo singolo basato sulla distanza euclidea. Il file ha i commenti che indicano ogni singola operazione avvenuta. ...

27 agosto 2017