SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Onofrio Panzarino
http://onof80.blogspot.com

             JUG Marche
          29 ottobre 2011
Perché

   Possiamo dare un importante valore
    aggiunto per l’utente

   Possiamo risparmiarci alcuni rompicapi
    implementativi
     Approcci più generici
Interazione utente
Supporto alle decisioni
   Social network
     Forse vorresti iscriverti a questo gruppo…
   E-commerce
     Forse ti interessa anche questo articolo….
     Forse vuoi visitare il sito del nostro partner…
   CMS
     Forse vuoi usare anche questo tag…
     Forse vuoi linkare questa risorsa…
   Enterprise App
     Hai utilizzato questa regola: …, forse vuoi
      impostarla come default.
Machine learning
   Machine learning
     Learning: «Generalizzare dall’esperienza»
   Generalizzare → Classificare
     Molti dei problemi si riducono a problemi di
      classificazione
     Predizione
      ○ di un comportamento
      ○ di un dato
      ○ di un evento
Supervised learning
   Training set
     un set di dati di ingresso di cui conosciamo
     già l’uscita
 Il programma «apprende» ed è in grado
  di dare una risposta per nuovi dati
  d’ingresso
 L’errore dell’algoritmo si calcola ridando
  i dati di training in ingresso all’algoritmo
k-nearest neighbor
   Quando
     Esiste (o è definibile) un concetto
      quantificabile di distanza tra gli oggetti
     Abbiamo poca memoria ma una discreta
      potenza di calcolo
   La classe di un oggetto è quella più
    frequente tra i k oggetti del training set
    più vicini ad esso.
k-NN
 All’aumentare di k siamo meno sensibili
  al «rumore»
 Ma siamo più sensibili allo «scattering»
k-NN: Pros & Cons
   Pro
     Semplicissimo da implementare
   Cons
     Può essere molto lento
     In realtà non c’è apprendimento
      ○ Le informazioni rimangono nel training set che
        dobbiamo portarci dietro ovunque
      ○ È come se per riconoscere un animale
        dovessimo confrontarlo con tutti quelli che
        conosciamo!
Bayes Classifier

Bayes: Pros & Cons
   Pros
     Semplice da implementare
     Funziona anche con pochi dati
     Niente tuning. Forse.
   Cons
     I dati devono essere dotati di caratteristiche
      il più possibile indipendenti
     Sensibile al trattamento iniziale dei dati
      (importante)
Decision Tree
   A volte non è facile prevedere il modo di
    ragionare dell’utente
     Invece di pensarli tutti, un programma potrebbe
     estrapolarlo dalle scelte pregresse
   Alberi di decisione
     Permettono di stabilire anche il «come» si è
      arrivati ad una certa classificazione
     Sono l’obbiettivo del training
     Ma portano anche molta informazione
      facilmente fruibile
ID3

Logistic regression
 Il gradino è un algoritmo di
  classificazione
 Ingressi:
     Molti possibili valori
   Uscita
     Numero finito di classi
Logistic regression:
sigmoide

Logistic regression: training
 Dobbiamo trovare un «buon» valore per w.
 Uno potrebbe essere quello che minimizza
  l’errore
 Discesa lungo il gradiente
     Si parte da un valore iniziale di w
     Per ogni elemento nel training set
      ○ Si calcola l’errore usando la funzione logistica
      ○ Si modifica opportunamente w in modo da andare
        nella «direzione» che minimizza l’errore
     Si ripete questo ultimo passo «un po’» di volte.
LR: ottimizzazioni
   Stochastic Gradient Ascent / Descent
     Invece che ricalcolare per ogni elemento nel
      training set, si calcola in modo su n elementi
      applicando una correzione via via maggiore
     Si guadagna in velocità a scapito
      dell’accuratezza
LR: Pros & Cons
   PROS
     Una volta addestrato:
      ○ Poca memoria
      ○ Funzione di classificazione semplice e rapida
     Di facile implementazione
   CONS
     I dati devono essere convertibili in floating-point
     Solo due classi (sì / no)
     Richiede tuning
Support Vector Machine
 Abbiamo l’iperspazio dei nostri oggetti
  da classificare
 Le classi possono essere viste come
  delle regioni che li racchiudono
     Posso rappresentarle con dei vettori
     Con questi vettori posso classificare nuovi
     elementi per capire in quale parte dello
     spazio si trovano
SVM: Ottimizzazioni
   Trovare questi vettori può essere molto
    gravoso
     In passato richiedeva grande potenza di calcolo
   Sequential Minimal Optimization (Platt)
     Riduce il numero di iterazioni necessarie per
      addestrare una SVM
   Problemi non lineari?
     Analisi e rimappatura su iperspazi a più
      dimensioni
      ○ Kernel
SVM: Pros & Cons
   Pros
     Robusto
     Efficiente


   Cons
     Difficile implementazione
     Sensibile a parametri di tuning ed eventuale
      rimappatura
Adaboost
 Fare il tuning di un classificatore richiede
  tempo ed energie
 Prendiamo una batteria di classificatori
     Scegliamo come risultato una media pesata dei
      risultati
     Ci servono
     ○ Pesi
     ○ Classificatori addestrati
        Come?
Adaboost: training
   Consideriamo una famiglia di classificatori
     e una funzione che ci permette di trovare il
     classificatore che minimizza l’errore su una
     distribuzione D relativa ad un training set.
 Inizializziamo D
 Ripeti N volte
     Prendi il miglior classificatore considerando D
     L’errore medio sarà il «peso» del classificatore
     Aggiorniamo D
Ora alcune demo
   Bayes
     Classificazione di documenti per argomento
   Logistic regression, Bayes, k-nn
     Riconoscimento di gesture
   ID3
     Creazione di un decision tree per un sito di
     annunci di lavoro
   Progetto scala-recog
     http://code.google.com/p/scala-recog/
Riferimenti
 Peter Harrington, Machine Learning in
  Action, Manning 2011
 Hosmer, David W.; Stanley Lemeshow
  (2000). Applied Logistic
  Regression, Wiley. ISBN 0-471-35632-8.
 Platt, John (1998), Sequential Minimal
  Optimization: A Fast Algorithm for
  Training Support Vector Machines

Weitere ähnliche Inhalte

Andere mochten auch

Come integrare strategia, innovazione e futuro - Future Value Generation de @...
Come integrare strategia, innovazione e futuro - Future Value Generation de @...Come integrare strategia, innovazione e futuro - Future Value Generation de @...
Come integrare strategia, innovazione e futuro - Future Value Generation de @...Daniel Egger
 
DECIMO SALONE D'IMPRESA Italo Benedini
DECIMO SALONE D'IMPRESA Italo BenediniDECIMO SALONE D'IMPRESA Italo Benedini
DECIMO SALONE D'IMPRESA Italo BenediniRoberto Terzi
 
Presentazione Manuel Kirschner, Phd symposium UniBZ, 12/2010
Presentazione Manuel Kirschner, Phd symposium UniBZ, 12/2010Presentazione Manuel Kirschner, Phd symposium UniBZ, 12/2010
Presentazione Manuel Kirschner, Phd symposium UniBZ, 12/2010makirs
 
Organizzazione di impresa
Organizzazione di impresaOrganizzazione di impresa
Organizzazione di impresaumberto fossali
 
Azure Machine Learning (Italian)
Azure Machine Learning (Italian)Azure Machine Learning (Italian)
Azure Machine Learning (Italian)Davide Mauri
 
Introduzione ai Big Data e alla scienza dei dati - Machine Learning
Introduzione ai Big Data e alla scienza dei dati - Machine LearningIntroduzione ai Big Data e alla scienza dei dati - Machine Learning
Introduzione ai Big Data e alla scienza dei dati - Machine LearningVincenzo Manzoni
 
Pybcn machine learning for dummies with python
Pybcn machine learning for dummies with pythonPybcn machine learning for dummies with python
Pybcn machine learning for dummies with pythonJavier Arias Losada
 
Analisi e progettazione dei processi aziendali
Analisi e progettazione dei processi aziendaliAnalisi e progettazione dei processi aziendali
Analisi e progettazione dei processi aziendaliMatteo Damiani
 
La nuova comunicazione Interna
La nuova comunicazione InternaLa nuova comunicazione Interna
La nuova comunicazione InternaGiacomo Mason
 
Il Conversational Computing e la rivoluzione dei Chatbot!
Il Conversational Computing e la rivoluzione dei Chatbot!Il Conversational Computing e la rivoluzione dei Chatbot!
Il Conversational Computing e la rivoluzione dei Chatbot!Giorgio Robino
 
A project report on chat application
A project report on chat applicationA project report on chat application
A project report on chat applicationKumar Gaurav
 
chatbot and messenger as a platform
chatbot and messenger as a platformchatbot and messenger as a platform
chatbot and messenger as a platformDaisuke Minamide
 
Chatbots e dati sensibili
Chatbots e dati sensibiliChatbots e dati sensibili
Chatbots e dati sensibiliPaolo Montrasio
 

Andere mochten auch (19)

Come integrare strategia, innovazione e futuro - Future Value Generation de @...
Come integrare strategia, innovazione e futuro - Future Value Generation de @...Come integrare strategia, innovazione e futuro - Future Value Generation de @...
Come integrare strategia, innovazione e futuro - Future Value Generation de @...
 
DECIMO SALONE D'IMPRESA Italo Benedini
DECIMO SALONE D'IMPRESA Italo BenediniDECIMO SALONE D'IMPRESA Italo Benedini
DECIMO SALONE D'IMPRESA Italo Benedini
 
Presentazione Manuel Kirschner, Phd symposium UniBZ, 12/2010
Presentazione Manuel Kirschner, Phd symposium UniBZ, 12/2010Presentazione Manuel Kirschner, Phd symposium UniBZ, 12/2010
Presentazione Manuel Kirschner, Phd symposium UniBZ, 12/2010
 
Chatbots - An Introduction
Chatbots - An IntroductionChatbots - An Introduction
Chatbots - An Introduction
 
Organizzazione di impresa
Organizzazione di impresaOrganizzazione di impresa
Organizzazione di impresa
 
Gestione processi
Gestione processiGestione processi
Gestione processi
 
Azure Machine Learning (Italian)
Azure Machine Learning (Italian)Azure Machine Learning (Italian)
Azure Machine Learning (Italian)
 
Gestione delle emergenze
Gestione delle emergenzeGestione delle emergenze
Gestione delle emergenze
 
Introduzione ai Big Data e alla scienza dei dati - Machine Learning
Introduzione ai Big Data e alla scienza dei dati - Machine LearningIntroduzione ai Big Data e alla scienza dei dati - Machine Learning
Introduzione ai Big Data e alla scienza dei dati - Machine Learning
 
Pybcn machine learning for dummies with python
Pybcn machine learning for dummies with pythonPybcn machine learning for dummies with python
Pybcn machine learning for dummies with python
 
Motivazione e analisi di clima
Motivazione e analisi di climaMotivazione e analisi di clima
Motivazione e analisi di clima
 
Analisi e progettazione dei processi aziendali
Analisi e progettazione dei processi aziendaliAnalisi e progettazione dei processi aziendali
Analisi e progettazione dei processi aziendali
 
Strategia di sviluppo aziendale
Strategia di sviluppo aziendaleStrategia di sviluppo aziendale
Strategia di sviluppo aziendale
 
La nuova comunicazione Interna
La nuova comunicazione InternaLa nuova comunicazione Interna
La nuova comunicazione Interna
 
Il Conversational Computing e la rivoluzione dei Chatbot!
Il Conversational Computing e la rivoluzione dei Chatbot!Il Conversational Computing e la rivoluzione dei Chatbot!
Il Conversational Computing e la rivoluzione dei Chatbot!
 
A project report on chat application
A project report on chat applicationA project report on chat application
A project report on chat application
 
chatbot and messenger as a platform
chatbot and messenger as a platformchatbot and messenger as a platform
chatbot and messenger as a platform
 
Chatbots e dati sensibili
Chatbots e dati sensibiliChatbots e dati sensibili
Chatbots e dati sensibili
 
Chatbot e Conversational Agents
Chatbot e Conversational AgentsChatbot e Conversational Agents
Chatbot e Conversational Agents
 

Ähnlich wie JugMarche: Machine learning: usi pratici di supervised learning

Definizione e comparazione dei modelli di classificazione con Scikit-Learn
Definizione e comparazione dei modelli di classificazione con Scikit-LearnDefinizione e comparazione dei modelli di classificazione con Scikit-Learn
Definizione e comparazione dei modelli di classificazione con Scikit-LearnAlina Gnerre
 
Classificazione documenti spark_ml_ciuffa
Classificazione documenti spark_ml_ciuffaClassificazione documenti spark_ml_ciuffa
Classificazione documenti spark_ml_ciuffaDeep Learning Italia
 
Algoritmi di clustering
Algoritmi di clusteringAlgoritmi di clustering
Algoritmi di clusteringRosario Turco
 
La metodologia statistica nel data mining
La metodologia statistica nel data miningLa metodologia statistica nel data mining
La metodologia statistica nel data miningFrancesco Tamburini
 
Identificare feature significative per l’analisi nell’informatica forense uti...
Identificare feature significative per l’analisi nell’informatica forense uti...Identificare feature significative per l’analisi nell’informatica forense uti...
Identificare feature significative per l’analisi nell’informatica forense uti...Antonio Notarangelo
 
Java Symbolic Regression - Machine Learining
Java Symbolic Regression - Machine LeariningJava Symbolic Regression - Machine Learining
Java Symbolic Regression - Machine LeariningAndrea Ciccotta
 
Gestione corsi con TYPO3
Gestione corsi con TYPO3Gestione corsi con TYPO3
Gestione corsi con TYPO3Ivano Luberti
 
Corso Introduttivo alle Reti Neurali
Corso Introduttivo alle Reti NeuraliCorso Introduttivo alle Reti Neurali
Corso Introduttivo alle Reti NeuraliValerio Capozio
 
Note di Data Warehouse e Business Intelligence - Pensare "Agile"
Note di Data Warehouse e Business Intelligence - Pensare "Agile"Note di Data Warehouse e Business Intelligence - Pensare "Agile"
Note di Data Warehouse e Business Intelligence - Pensare "Agile"Massimo Cenci
 
Set Based Thinking
Set Based ThinkingSet Based Thinking
Set Based ThinkingDavide Mauri
 
Blockchain e AI: verso una nuova finanza
Blockchain e AI: verso una nuova finanzaBlockchain e AI: verso una nuova finanza
Blockchain e AI: verso una nuova finanzaAlessandro Greppi
 
Introduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big DataIntroduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big DataVincenzo Manzoni
 
Instance-based learning and Numeric prediction
Instance-based learning and Numeric predictionInstance-based learning and Numeric prediction
Instance-based learning and Numeric predictionDavide Ciambelli
 
Tecniche Di Troubleshooting Nei Sistemi Distribuiti
Tecniche Di Troubleshooting Nei Sistemi DistribuitiTecniche Di Troubleshooting Nei Sistemi Distribuiti
Tecniche Di Troubleshooting Nei Sistemi DistribuitiK-Tech Formazione
 
Presentazione "Sviluppo e implementazione di un modello di ottimizzazione per...
Presentazione "Sviluppo e implementazione di un modello di ottimizzazione per...Presentazione "Sviluppo e implementazione di un modello di ottimizzazione per...
Presentazione "Sviluppo e implementazione di un modello di ottimizzazione per...MarziaPaschini
 

Ähnlich wie JugMarche: Machine learning: usi pratici di supervised learning (20)

Definizione e comparazione dei modelli di classificazione con Scikit-Learn
Definizione e comparazione dei modelli di classificazione con Scikit-LearnDefinizione e comparazione dei modelli di classificazione con Scikit-Learn
Definizione e comparazione dei modelli di classificazione con Scikit-Learn
 
Classificazione documenti spark_ml_ciuffa
Classificazione documenti spark_ml_ciuffaClassificazione documenti spark_ml_ciuffa
Classificazione documenti spark_ml_ciuffa
 
Algoritmi di clustering
Algoritmi di clusteringAlgoritmi di clustering
Algoritmi di clustering
 
La metodologia statistica nel data mining
La metodologia statistica nel data miningLa metodologia statistica nel data mining
La metodologia statistica nel data mining
 
Presentazione ufficiale
Presentazione ufficialePresentazione ufficiale
Presentazione ufficiale
 
Machine Yelping
Machine YelpingMachine Yelping
Machine Yelping
 
Identificare feature significative per l’analisi nell’informatica forense uti...
Identificare feature significative per l’analisi nell’informatica forense uti...Identificare feature significative per l’analisi nell’informatica forense uti...
Identificare feature significative per l’analisi nell’informatica forense uti...
 
Java Symbolic Regression - Machine Learining
Java Symbolic Regression - Machine LeariningJava Symbolic Regression - Machine Learining
Java Symbolic Regression - Machine Learining
 
Master Thesis
Master ThesisMaster Thesis
Master Thesis
 
Machine Yelping
Machine YelpingMachine Yelping
Machine Yelping
 
Gestione corsi con TYPO3
Gestione corsi con TYPO3Gestione corsi con TYPO3
Gestione corsi con TYPO3
 
Sentiment candida 27_may
Sentiment candida 27_maySentiment candida 27_may
Sentiment candida 27_may
 
Corso Introduttivo alle Reti Neurali
Corso Introduttivo alle Reti NeuraliCorso Introduttivo alle Reti Neurali
Corso Introduttivo alle Reti Neurali
 
Note di Data Warehouse e Business Intelligence - Pensare "Agile"
Note di Data Warehouse e Business Intelligence - Pensare "Agile"Note di Data Warehouse e Business Intelligence - Pensare "Agile"
Note di Data Warehouse e Business Intelligence - Pensare "Agile"
 
Set Based Thinking
Set Based ThinkingSet Based Thinking
Set Based Thinking
 
Blockchain e AI: verso una nuova finanza
Blockchain e AI: verso una nuova finanzaBlockchain e AI: verso una nuova finanza
Blockchain e AI: verso una nuova finanza
 
Introduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big DataIntroduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big Data
 
Instance-based learning and Numeric prediction
Instance-based learning and Numeric predictionInstance-based learning and Numeric prediction
Instance-based learning and Numeric prediction
 
Tecniche Di Troubleshooting Nei Sistemi Distribuiti
Tecniche Di Troubleshooting Nei Sistemi DistribuitiTecniche Di Troubleshooting Nei Sistemi Distribuiti
Tecniche Di Troubleshooting Nei Sistemi Distribuiti
 
Presentazione "Sviluppo e implementazione di un modello di ottimizzazione per...
Presentazione "Sviluppo e implementazione di un modello di ottimizzazione per...Presentazione "Sviluppo e implementazione di un modello di ottimizzazione per...
Presentazione "Sviluppo e implementazione di un modello di ottimizzazione per...
 

Kürzlich hochgeladen

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
ScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIinfogdgmi
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 

Kürzlich hochgeladen (9)

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
ScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AI
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 

JugMarche: Machine learning: usi pratici di supervised learning

  • 1. Onofrio Panzarino http://onof80.blogspot.com JUG Marche 29 ottobre 2011
  • 2. Perché  Possiamo dare un importante valore aggiunto per l’utente  Possiamo risparmiarci alcuni rompicapi implementativi  Approcci più generici
  • 4. Supporto alle decisioni  Social network  Forse vorresti iscriverti a questo gruppo…  E-commerce  Forse ti interessa anche questo articolo….  Forse vuoi visitare il sito del nostro partner…  CMS  Forse vuoi usare anche questo tag…  Forse vuoi linkare questa risorsa…  Enterprise App  Hai utilizzato questa regola: …, forse vuoi impostarla come default.
  • 5. Machine learning  Machine learning  Learning: «Generalizzare dall’esperienza»  Generalizzare → Classificare  Molti dei problemi si riducono a problemi di classificazione  Predizione ○ di un comportamento ○ di un dato ○ di un evento
  • 6. Supervised learning  Training set  un set di dati di ingresso di cui conosciamo già l’uscita  Il programma «apprende» ed è in grado di dare una risposta per nuovi dati d’ingresso  L’errore dell’algoritmo si calcola ridando i dati di training in ingresso all’algoritmo
  • 7. k-nearest neighbor  Quando  Esiste (o è definibile) un concetto quantificabile di distanza tra gli oggetti  Abbiamo poca memoria ma una discreta potenza di calcolo  La classe di un oggetto è quella più frequente tra i k oggetti del training set più vicini ad esso.
  • 8. k-NN  All’aumentare di k siamo meno sensibili al «rumore»  Ma siamo più sensibili allo «scattering»
  • 9. k-NN: Pros & Cons  Pro  Semplicissimo da implementare  Cons  Può essere molto lento  In realtà non c’è apprendimento ○ Le informazioni rimangono nel training set che dobbiamo portarci dietro ovunque ○ È come se per riconoscere un animale dovessimo confrontarlo con tutti quelli che conosciamo!
  • 11. Bayes: Pros & Cons  Pros  Semplice da implementare  Funziona anche con pochi dati  Niente tuning. Forse.  Cons  I dati devono essere dotati di caratteristiche il più possibile indipendenti  Sensibile al trattamento iniziale dei dati (importante)
  • 12. Decision Tree  A volte non è facile prevedere il modo di ragionare dell’utente  Invece di pensarli tutti, un programma potrebbe estrapolarlo dalle scelte pregresse  Alberi di decisione  Permettono di stabilire anche il «come» si è arrivati ad una certa classificazione  Sono l’obbiettivo del training  Ma portano anche molta informazione facilmente fruibile
  • 14. Logistic regression  Il gradino è un algoritmo di classificazione  Ingressi:  Molti possibili valori  Uscita  Numero finito di classi
  • 16. Logistic regression: training  Dobbiamo trovare un «buon» valore per w.  Uno potrebbe essere quello che minimizza l’errore  Discesa lungo il gradiente  Si parte da un valore iniziale di w  Per ogni elemento nel training set ○ Si calcola l’errore usando la funzione logistica ○ Si modifica opportunamente w in modo da andare nella «direzione» che minimizza l’errore  Si ripete questo ultimo passo «un po’» di volte.
  • 17. LR: ottimizzazioni  Stochastic Gradient Ascent / Descent  Invece che ricalcolare per ogni elemento nel training set, si calcola in modo su n elementi applicando una correzione via via maggiore  Si guadagna in velocità a scapito dell’accuratezza
  • 18. LR: Pros & Cons  PROS  Una volta addestrato: ○ Poca memoria ○ Funzione di classificazione semplice e rapida  Di facile implementazione  CONS  I dati devono essere convertibili in floating-point  Solo due classi (sì / no)  Richiede tuning
  • 19. Support Vector Machine  Abbiamo l’iperspazio dei nostri oggetti da classificare  Le classi possono essere viste come delle regioni che li racchiudono  Posso rappresentarle con dei vettori  Con questi vettori posso classificare nuovi elementi per capire in quale parte dello spazio si trovano
  • 20. SVM: Ottimizzazioni  Trovare questi vettori può essere molto gravoso  In passato richiedeva grande potenza di calcolo  Sequential Minimal Optimization (Platt)  Riduce il numero di iterazioni necessarie per addestrare una SVM  Problemi non lineari?  Analisi e rimappatura su iperspazi a più dimensioni ○ Kernel
  • 21. SVM: Pros & Cons  Pros  Robusto  Efficiente  Cons  Difficile implementazione  Sensibile a parametri di tuning ed eventuale rimappatura
  • 22. Adaboost  Fare il tuning di un classificatore richiede tempo ed energie  Prendiamo una batteria di classificatori  Scegliamo come risultato una media pesata dei risultati  Ci servono ○ Pesi ○ Classificatori addestrati  Come?
  • 23. Adaboost: training  Consideriamo una famiglia di classificatori  e una funzione che ci permette di trovare il classificatore che minimizza l’errore su una distribuzione D relativa ad un training set.  Inizializziamo D  Ripeti N volte  Prendi il miglior classificatore considerando D  L’errore medio sarà il «peso» del classificatore  Aggiorniamo D
  • 24. Ora alcune demo  Bayes  Classificazione di documenti per argomento  Logistic regression, Bayes, k-nn  Riconoscimento di gesture  ID3  Creazione di un decision tree per un sito di annunci di lavoro  Progetto scala-recog  http://code.google.com/p/scala-recog/
  • 25. Riferimenti  Peter Harrington, Machine Learning in Action, Manning 2011  Hosmer, David W.; Stanley Lemeshow (2000). Applied Logistic Regression, Wiley. ISBN 0-471-35632-8.  Platt, John (1998), Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector Machines