Machine Learning

Linux basic commands per gestione file e dir

cat – display a txt file

cp [file origine] [file destinazione] – copia un file

mv [file origine] [ destinazione] – muovi un file

mkdir – crea una dir

rmdir – elimina una dir vuota

rm – elimina file

clear – pulisce il terminale dalle scritte dei comandi precedenti

~ (alt+5 su mac) è la dir principale –> se da qualsiasi dir corrente si fa cd ~ si salta alla dir principale

. (punto) è la dir corrente, quindi se ad es vuoi muovere un file da un’altra dir a quella in cui ti trovi: mv [path file] .

.. (due punti) è la dir al ramo superiore quindi cd .. vai al ramo superiore

sudo apt-get install [applicazione] – per installare una applicazione da internet (sudo) è per poter fare comandi da superuser

nano è l’editor di file in linea

sudo shutdown -h now – per spegnere il computer a cui ci si è collegati (-h = halt)

sudo shutdown -r now – per spegnere e riaccendere il computer a cui ci si è collegati (-r = restart)

MATLAB for Machine Learning

Appunti tratti dal webinar Tecniche di Machine Learning con Matlab – Francesca Perino http://it.mathworks.com/videos/machine-learning-with-matlab-98517.html

Il Machine Learning permette di costruire un modello predittivo partendo dall’utilizzo di un dataset di training. E’ utile quando abbiamo molti dati, molte variabili, sistemi complessi che non possono essere descritti tramite semplici equazioni.

Si utilizza, ad esempio, per la sequenziazione del DNA, per identificare frodi in ambito finanziario, in sistemi di pattern recognition.

Gli algoritmi di Machine Learning hanno un approccio del tipo seguente:fig1

  • un dataset di training viene “passato” all’algoritmo
  • l’algoritmo “mappa” una funzione di induzione “f”
  • sulla funzione “f” vengono passati i dati di test
  • Se l’algoritmo ha “imparato” correttamente, allora è in grado di generalizzare. I dati di test permettono di valutare la bontà dell’algoritmo.

Ottimo corso su EdX: https://courses.edx.org/courses/BerkeleyX/CS188x_1/1T2013/info

Ottimo libro: http://aima.cs.berkeley.edu/

Ottimo prof: http://www.cs.ubc.ca/~nando/

Tipi di algoritmi di Machine learning in MATLAB

tipiML

Algoritmi non supervisionati: i dati sono raggruppati in base ad alcune caratteristiche e similarità che li rendono coerenti fra loro (algoritmi di clustering)

Algoritmi supervisionati: abbinano i dati di ingresso ai dati di output. Possono essere suddivisi in algoritmi di classificazione (informazioni di tipo classificativo/categorico) e algoritmi di regressione (numerici)

Dati esercizio matlab http://www.mathworks.com/matlabcentral/fileexchange/42744-machine-learning-with-matlab/content//Machine%20Learning/Clustering/html/Example_Clustering.html

Algoritmo di clustering (tipo unsupervised)

I gruppi possono essere separati o parzialmente sovrapposti (un dato può appartenere a più classi). Il processo è iterativo e si avvale del concetto di trial and error. Tipici algoritmi di clustering:

Posterior: è una funzione che va a calcolare a posteriori la probabilità che appartenga a una o all’altra classe http://it.mathworks.com/help/stats/gmdistribution.posterior.html

(riprendere da 27 min il webinar)

Machine Learning

Computers can learn from data. 

Arthur Samuel (1969) defined machine learning as the field of study that gives the computer the ability tu learn without being explicitly programmed.

Tom Mitchell (1998): a computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.

Machine learning algorithms can figure out how to perform important tasks by generalizing from examples. Machine learning (also known as data mining, pattern recognition and predictive analytics) is used widely in business, industry, science and government, and  there is a great shortage of experts in it. The main supervised learning techniques include decision trees, rules, instances, Bayesian techniques, neural networks, model ensembles, and support vector machines. The two main classes of unsupervised learning methods are clustering and dimensionality reduction.

Machine learning algorithms can be distinguished in supervised or unsupervised.
Supervised: we are going to teach computer how to do something – Unsupervised: we are going to let the computer learns by itself.