How to make smarter programs. A gentle introduction to Machine Learning by Simone Scardapane

Preview:

DESCRIPTION

The ability of automatically extracting relevant patterns and information from data is probably the biggest challenge that awaits in the next future. Today, mature technologies and algorithms exists for successful data mining and machine learning, but the somewhat complicated theory behind them has hindered their application for everyday programmers and small companies. In this talk we will introduce in a very gentle way the main concepts and goals of machine learning. We will then conclude by showing a realistic example, and point to dedicated material for the interested audience.

Citation preview

How to make smarter programs.A gentle introduction to Machine Learning

Simone Scardapane

simone.scardapane@uniroma1.it

Argomenti di oggi

Simone Scardapane

1. Il Machine Learning (ieri ed oggi)

2. Un esempio pratico: spam detection

3. Cenni su Weka

simone.scardapane@uniroma1.it

Cos’è il Machine Learning?

Simone Scardapane

«Estrazione automatica di conoscenza a partire da un insieme di dati»

simone.scardapane@uniroma1.it

Dati «Learning» Conoscenza

Chi ci lavora?

Simone Scardapane

65 anni di ricerche da parte di:

• Ingegneri

• Informatici

• Statistici

• Matematici

• Fisici

• Neuroscienziati...

simone.scardapane@uniroma1.it

0

500

1000

1500

2000

2500

3000

199

5

199

6

199

7

199

8

199

9

20

00

20

01

20

02

20

03

20

04

20

05

20

06

20

07

20

08

20

09

20

10

20

11

20

12

Citazioni ML

Citazioni Scopus

Il Machine Learning oggi

Simone Scardapane simone.scardapane@uniroma1.it

Simone Scardapane simone.scardapane@uniroma1.it

Perché usare il Machine Learning?

(Fonte: IDC)

Ma voi cosa potete farci?

Simone Scardapane

Possibili operazioni su una libreria musicale:

simone.scardapane@uniroma1.it

1. Classificazione del genere (o del mood)2. Raggruppamento automatico (clustering)3. Tagging4. Ricerca per similitudini (association rule)5. Predizione del prossimo ascolto6. …

Il processo di Learning

Simone Scardapane simone.scardapane@uniroma1.it

Raccolta dati

Pre-Processamento

Scelta modelloAllenamento

/ testing

Utilizzo

Variazioni

Simone Scardapane simone.scardapane@uniroma1.it

• Online Learning: l’algoritmo riceve dati in real-time e si adatta di conseguenza.

• Active Learning: durante la fase di learning, è possibile richiedere attivamente nuove informazioni.

• Collaborative/Cooperative Learning…

Simone Scardapane simone.scardapane@uniroma1.it

Un esempio pratico

• Dati: insieme S di emails taggate come spam / non spam.

• Obiettivo: metodo automatico per individuare spam.

• Problemi:1. Come rappresentare l’email?2. Che modello utilizzare?3. Come allenarlo?

Simone Scardapane simone.scardapane@uniroma1.it

Passo 1: Pre-processamento

Parola #

Viagra 2

Bambino 5

Macchina 0

Stereo 0

Cane 1

Spam?

«Bag of words»

Email

Simone Scardapane simone.scardapane@uniroma1.it

Passo 2: La scelta del modello

Decision Tree:

Viagra

Pallone Spam

SpamSpam

No Sì

>2≤2

Simone Scardapane simone.scardapane@uniroma1.it

Passo 3: Allenamento

Come costruirlo?

Viagra

Spam

No Sì

???

Simone Scardapane simone.scardapane@uniroma1.it

Allenamento /2

Consideriamo l’algoritmo C4.5:

1. Scegliamo per il nodo l’attributo a che «divide» meglio i dati.

2. Suddividiamo l’insieme lungo i nodi.3. Ci fermiamo quando i dati sono

perfettamente divisi.

(Difficoltà: gestire dati continui, mancanti…)

Simone Scardapane simone.scardapane@uniroma1.it

Allenamento /3

Simone Scardapane simone.scardapane@uniroma1.it

Overfitting

Problema principale: overfitting!

(Immagine con Copyright Tomaso Poggio)

Simone Scardapane simone.scardapane@uniroma1.it

Pruning

Possibile soluzione (per i decision trees):

• Si tiene da parte un insieme di dati.• Si eliminano i rami non necessari (pruning)

in base a quei dati (error-based pruning).

Più generalmente si usano tecniche di cross-validation.

Simone Scardapane simone.scardapane@uniroma1.it

Testare l’algoritmo

Possiamo tenere da parte un secondo insieme per testare l’accuratezza dell’algoritmo.

Dividiamo quindi i nostri dati in tre parti:

Training Validation Testing

Simone Scardapane simone.scardapane@uniroma1.it

Weka

Tool di data mining sviluppato dalla Waikato University in Java:

1. Ampio numero di funzioni.

2. Estremamente portabile.

3. Interfaccia di facile utilizzo.

Simone Scardapane simone.scardapane@uniroma1.it

SpamBase

Usiamo il dataset SpamBase dal repository UCI:http://archive.ics.uci.edu/ml/datasets/Spambase

4601 email rappresentate da 48 frequenze di parole (più qualche informazione aggiuntiva).

I dati sono salvati in formato ARFF (file di testo):

1. Header con descrizione degli attributi.2. Elenco delle email.

Simone Scardapane simone.scardapane@uniroma1.it

Interfaccia di Weka

Simone Scardapane simone.scardapane@uniroma1.it

Apertura file

Apriamo il file:

Simone Scardapane simone.scardapane@uniroma1.it

Scelta del classificatore

Scegliamo il modello:

Simone Scardapane simone.scardapane@uniroma1.it

Training

Risultati:

Simone Scardapane simone.scardapane@uniroma1.it

Albero finale

Simone Scardapane simone.scardapane@uniroma1.it

API di Weka

http://weka.wikispaces.com/Use+WEKA+in+your+Java+code

Simone Scardapane simone.scardapane@uniroma1.it

Letture consigliate

Programming Collective Intelligence, di Toby Segaran. Publisher: O'Reilly Media (2007).

Data Mining: Practical Machine Learning Tools and Techniques, di Witten, Frank et Hall. Publisher: Morgan Kaufmann (2011).

Introduction to Machine Learning, di Alpaydin. Publisher: the MIT Press (2009).

Simone Scardapane simone.scardapane@uniroma1.it

Fine!

Grazie per l’attenzione!

Recommended