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

402 views
293 views

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
402
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. How to make smarter programs.A gentle introduction to Machine LearningSimone Scardapanesimone.scardapane@uniroma1.it
  2. 2. Argomenti di oggiSimone Scardapane1. Il Machine Learning (ieri ed oggi)2. Un esempio pratico: spam detection3. Cenni su Wekasimone.scardapane@uniroma1.it
  3. 3. Cos’è il Machine Learning?Simone Scardapane«Estrazione automatica di conoscenza apartire da un insieme di dati»simone.scardapane@uniroma1.itDati «Learning» Conoscenza
  4. 4. Chi ci lavora?Simone Scardapane65 anni di ricerche da parte di:• Ingegneri• Informatici• Statistici• Matematici• Fisici• Neuroscienziati...simone.scardapane@uniroma1.it050010001500200025003000199519961997199819992000200120022003200420052006200720082009201020112012Citazioni MLCitazioni Scopus
  5. 5. Il Machine Learning oggiSimone Scardapane simone.scardapane@uniroma1.it
  6. 6. Simone Scardapane simone.scardapane@uniroma1.itPerché usare il Machine Learning?(Fonte: IDC)
  7. 7. Ma voi cosa potete farci?Simone ScardapanePossibili operazioni su una libreria musicale:simone.scardapane@uniroma1.it1. Classificazione del genere (o del mood)2. Raggruppamento automatico (clustering)3. Tagging4. Ricerca per similitudini (association rule)5. Predizione del prossimo ascolto6. …
  8. 8. Il processo di LearningSimone Scardapane simone.scardapane@uniroma1.itRaccolta datiPre-ProcessamentoScelta modelloAllenamento/ testingUtilizzo
  9. 9. VariazioniSimone Scardapane simone.scardapane@uniroma1.it• Online Learning: l’algoritmo riceve dati inreal-time e si adatta di conseguenza.• Active Learning: durante la fase dilearning, è possibile richiedere attivamentenuove informazioni.• Collaborative/Cooperative Learning…
  10. 10. Simone Scardapane simone.scardapane@uniroma1.itUn esempio pratico• Dati: insieme S di emails taggate come spam /non spam.• Obiettivo: metodo automatico per individuarespam.• Problemi:1. Come rappresentare l’email?2.Che modello utilizzare?3.Come allenarlo?
  11. 11. Simone Scardapane simone.scardapane@uniroma1.itPasso 1: Pre-processamentoParola #Viagra 2Bambino 5Macchina 0Stereo 0Cane 1…Spam?«Bag of words»Email
  12. 12. Simone Scardapane simone.scardapane@uniroma1.itPasso 2: La scelta del modelloDecision Tree:ViagraPallone SpamSpamSpamNo Sì>2≤2
  13. 13. Simone Scardapane simone.scardapane@uniroma1.itPasso 3: AllenamentoCome costruirlo?ViagraSpamNo Sì???
  14. 14. Simone Scardapane simone.scardapane@uniroma1.itAllenamento /2Consideriamo 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 sonoperfettamente divisi.(Difficoltà: gestire dati continui, mancanti…)
  15. 15. Simone Scardapane simone.scardapane@uniroma1.itAllenamento /3
  16. 16. Simone Scardapane simone.scardapane@uniroma1.itOverfittingProblema principale:overfitting!(Immagine con CopyrightTomaso Poggio)
  17. 17. Simone Scardapane simone.scardapane@uniroma1.itPruningPossibile 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.
  18. 18. Simone Scardapane simone.scardapane@uniroma1.itTestare l’algoritmoPossiamo tenere da parte un secondo insieme pertestare l’accuratezza dell’algoritmo.Dividiamo quindi i nostri dati in tre parti:Training Validation Testing
  19. 19. Simone Scardapane simone.scardapane@uniroma1.itWekaTool di data mining sviluppato dallaWaikato University in Java:1. Ampio numero di funzioni.2. Estremamente portabile.3. Interfaccia di facile utilizzo.
  20. 20. Simone Scardapane simone.scardapane@uniroma1.itSpamBaseUsiamo il dataset SpamBase dal repository UCI:http://archive.ics.uci.edu/ml/datasets/Spambase4601 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.
  21. 21. Simone Scardapane simone.scardapane@uniroma1.itInterfaccia di Weka
  22. 22. Simone Scardapane simone.scardapane@uniroma1.itApertura fileApriamo il file:
  23. 23. Simone Scardapane simone.scardapane@uniroma1.itScelta del classificatoreScegliamo il modello:
  24. 24. Simone Scardapane simone.scardapane@uniroma1.itTrainingRisultati:
  25. 25. Simone Scardapane simone.scardapane@uniroma1.itAlbero finale
  26. 26. Simone Scardapane simone.scardapane@uniroma1.itAPI di Wekahttp://weka.wikispaces.com/Use+WEKA+in+your+Java+code
  27. 27. Simone Scardapane simone.scardapane@uniroma1.itLetture consigliateProgramming Collective Intelligence, di Toby Segaran. Publisher:OReilly Media (2007).Data Mining: Practical Machine Learning Tools and Techniques, diWitten, Frank et Hall. Publisher: Morgan Kaufmann (2011).Introduction to Machine Learning, di Alpaydin. Publisher: the MITPress (2009).
  28. 28. Simone Scardapane simone.scardapane@uniroma1.itFine!Grazie per l’attenzione! 

×