SlideShare a Scribd company logo
1 of 51
Classificazione di documenti
con Spark ML
1
CLOUDERA
Cloudera è una piattaforma che si basa su Apache
Hadoop:
• Data engineering
• Machine Learning
• Analytics
2
CLOUDERA
3
APACHE SPARK
Elaborazione di grandi moli di dati su cluster
Supporta i linguaggi più diffusi in ambito statistico:
Python, R
Diverse librerie del mondo Java incorporate
Può essere eseguito:
• Autonomamente
• All'interno di YARN
4
APACHE SPARK - Componenti
5
Interfacce di basso livello
RDD Variabili distribuite
Interfacce strutturate
DataFrame DataSet SQL
Streaming
strutturato
Apprendimento
automatico
Librerie ed
ecosistema
APACHE SPARK – Map-Reduce
• Problema che può essere suddiviso in sotto-problemi
• Invio ai vari nodi del cluster i sotto-problemi e le operazioni
da effettuare
• I vari nodi risolvono i sotto-problemi
• Combino le soluzioni ai sotto-problemi
• Scrivo la soluzione
6
APACHE SPARK – Innovazione
Spark ha permesso di risolvere più velocemente alcuni
problemi usando di più la RAM, il cui prezzo è sceso.
7
APACHE SPARK – Linguaggi
• Nel mondo dell'analisi dei dati, Python ed R sono molto diffusi
• Spark supporta Python ed R
• L'efficienza di usare Python o R non è la stessa di Scala
8
SCALA
 Spark è scritto in Scala
 Kafka è scritto in Java e Scala
 Concetti di Scala validi per programmazione distribuita
9
SCALA
 Un linguaggio di programmazione moderno
 Tipizzazione statica
 Programmazione a oggetti e funzionale
 Gira sulla Java Virtual Machine
10
SCALA
11
Come acquisire un dataset con Apache Spark?
val employeesDataRaw : RDD[String] = sqlContext.read.text(filePathTraining)
.map(x => x.getString(0))
val rowEmployeesRDD: RDD[Row] = employeesDataRaw.map(_.split(";"))
.map(p => Row(p(0), p(1), p(2)))
Il risultato sarà un RDD che contiene tutte le righe del file acquisito
suddivise per colonne.
Data Preparation con Apache Spark - acquisizione dei dati
12
Acquisendo i dati in un RDD sarà possibile esplorarli,
verificarne la qualità ed effettuare operazioni di cleaning.
Gli RDD ci mettono a disposizione molte funzioni per
analizzare i dati:
https://spark.apache.org/docs/1.6.0/api/scala/index.html#org.apache.spark.rdd.R
DD
Data Preparation con Apache Spark - acquisizione dei dati
13
Feature transformation:
- trasformazione dei dati per migliorare l’accuratezza dell’algoritmo.
Feature extraction and feature engineering
- trasformazione dei dati grezzi in caratteristiche (features) indonee per il
modello.
Feature selection
- rimozione delle caratteristiche (features) non necessarie.
Estrarre, trasformare e selezionare le features
14
Il processo di Tokenization è utilizzato per acquisire da un testo dei termini
individuali (normalmente delle parole).
Un modo avanzato di eseguire il processo di tokenization è applicare le regular
expressions (regex).
Per approfondimenti: https://spark.apache.org/docs/1.6.0/ml-features.html#tokenizer
Feature Transformer - Tokenizer
15
Per approfondimenti: https://spark.apache.org/docs/1.6.0/ml-features.html#tokenizer
Feature Transformer – Tokenizer con Spark
16
Le Stop Words sono delle parole che devono essere escluse, poiché appaiono
frequentemente oppure non sono considerate importanti.
Si possono quindi utilizzare delle tecniche per rimuovere una lista di stop words.
Per approfondimenti: https://spark.apache.org/docs/1.6.0/ml-features.html#stopwordsremover
Feature Transformer - StopWordsRemover
17
Per approfondimenti: https://spark.apache.org/docs/1.6.0/ml-features.html#stopwordsremover
Feature Transformer – StopWordsRemover con Spark
18
Spark ML
Spark include delle librerie di Machine Learning:
19
Comparazione tra MLlib ML
MLlib:
- meno recenti
- RDD
ML:
- più recenti
- DataFrame
20
Spark ML Pipeline - addestramento
Il metodo fit() permette di addestrare il modello.
val model = pipeline.fit(trainingDataDF)
Il modello sarà addestrato attraverso i dati contenuti in un
DataFrame.
21
Spark ML Pipeline - addestramento
22
Spark ML Model - predizione
Il metodo transform() permette di generare un DataFrame
contenente le predizioni.
val predictionDF = model.transform(testDataDF)
Il DataFrame restituito conterrà le stesse colonne mostrando altre
informazioni tra cui la predizione (label) per ogni riga.
23
Obiettivo: classificare diverse tipologie di documenti.
Come: Utilizzando un modello di classificazione addestrato con delle
parole chiave (features) che caratterizzano una specifica tipologia di
documento.
Tecnologia:
24
ML
Supervised learning Unsupervised learning
Classification
Regression
Clustering
Collaborative
filtering
25
• Naive Bayes
• Gradient Boosting Tree
• Random Forest
Supervised learning
26
Supervised learning - Naive Bayes classifier
Il Naive Bayes classifier è un modello di classificazione che si basa sul teorema
bayesiano
Usando il teorema bayesiano, possiamo trovare la probabilità che A si verifichi
quando occorre B.
I predittori/caratteristiche devono essere indipendenti:
- la presenza di una particolare caratteristica (feature) non influisce su
un’altra.
27
Supervised learning - Naive Bayes classifier
Multinomial Naive Bayes:
Il più usato per problemi di classificazione dei documenti.
Le caratteristiche/predittori vengono usate dal classificatore come frequenza
delle parole presenti in un documento.
Bernoulli Naive Bayes:
Simile al multinomial naive bayes, ma I predittori sono variabili booleane.
Gaussian Naive Bayes:
Quando i predittori accettano soltanto valori continui (quindi non discreti),
questi valori possono essere campionati da una distribuzione gaussiana.
N.B. : Il Gaussian Naïve Bayes non è supportato da Spark 1.6.
28
Gradient Boosting Tree
29
Random Forest
30
Ensemble
Ensemble è un concetto di Machine Learning che corrisponde all’idea
di addestrare molteplici modelli usando lo stesso algoritmo di
apprendimento.
Molti learners, con lo stesso obiettivo, sono fusi tra loro per risolvere
uno specifico problema.
Bagging  Random Forest;
Boosting  Gradient Boosting.
31
Bagging
Bagging (Bootstrap Aggregation) è una tecnica utilizzata quando
abbiamo l’esigenza di ridurre la varianza di un albero decisionale.
Questo avviene tramite la creazione di molti subset di dati a partire dal
campione scelto in modo casuale.
La media di diversi alberi risulterà più robusta rispetto a un singolo
albero decisionale.
32
Boosting
Boosting è una tecnica di ensemble per creare una collezione di
predittori.
I learners vengono generati in modo sequenziale.
Ogni nuovo albero cercherà di risolvere gli errori a partire dal
precedente albero.
33
34
Bagging vs Boosting
35
Bagging vs Boosting
36
Bagging vs Boosting
37
Bagging vs Boosting
38
Classificazione dei documenti
39
Obiettivo
A, B, C, E, F, H B, D, E, F, I, N
Individuare la tipologia dei documenti attraverso delle parole chiave.
A, B, E, F, H, S
40
C, D, H, E, F, S
Training set
A B C E F H, DOCTYPE1
A C E F H S, DOCTYPE1
B C E F H S, DOCTYPE1
B D E F I N, DOCTYPE2
D E F G I U, DOCTYPE2
B D E F I N, DOCTYPE2
A B C E F H, DOCTYPE1
A B C E F H, DOCTYPE1
B D E F I N, DOCTYPE1
B D F I M N, DOCTYPE2
B D E F I N, DOCTYPE2
A B E F H S, DOCTYPE1
A B C F H S, DOCTYPE1
…
41
Estrazione delle caratteristiche
Estrazione delle
caratteristiche
Addestramento
42
Addestramento
Addestramento
Categoria "Moto"
Addestramento
Categoria "Basket"
Addestramento
Categoria "Calcio"
Considerando, nel contesto degli articoli giornalistici sportivi, 4 diverse possibili categorie:
Moto, Basket, Calcio, Formula1:
…
…
…
Training set (Moto)
Training set (Basket)
Training set (Calcio)
Addestramento
Categoria "F1"…
Training set (F1)
43
Classificazione
Classificazione
Categoria "Calcio"
Classificazione
Categoria "Moto"
Classificazione
Categoria "Basket"
Considerando, nel contesto degli articoli giornalistici sportivi, 4 diverse possibili categorie:
Moto, Basket, Calcio, Formula1:
44
45
Indicizzazione delle features
46
Addestramento (RF)
47
Addestramento (GBT)
48
Predizione
49
Naive Bayes (multinomial)
Document Probability_Basket Probability_Formula1 Probability_Moto Probability_Soccer Predicted_label
articolo_basket_10.txt 1.0 1,15E-07 5,89E-05 1,13E-01BASKET
articolo_basket_21.txt 0.9999999999929035 6,51E+02 6,24E+04 2,07E+03BASKET
articolo_basket_5.txt 0.9999999924089215 5,63E+04 4,14E+03 7,58E+06BASKET
articolo_basket_6.txt 0.9999942261846133 8,60E-01 1,55E+00 5,77E+09BASKET
articolo_basket_7.txt 0.999997463710652 2,22E+02 1,13E+01 2,54E+10BASKET
articolo_basket_8.txt 1.0 2,87E-13 4,36E-17 3,44E-06BASKET
articolo_basket_9.txt 1.0 2,24E-17 2,81E-26 1,74E-24BASKET
articolo_calcio_10.txt 9,90E+06 1,74E+07 7,98E+02 0.99999998836085CALCIO
articolo_calcio_21.txt 3,29E+08 4,81E+03 5,87E-01 0.9999996714093776CALCIO
articolo_calcio_5.txt 1,65E-02 4,35E-01 4,59E-03 0.9999999999999996CALCIO
articolo_calcio_6.txt 2,27E+09 4,05E+08 2,92E+10 0.9999944040358519CALCIO
articolo_calcio_7.txt 1,64E+08 7,79E+01 2,08E+00 0.9999999835529243CALCIO
articolo_calcio_9.txt 2,71E+00 3,11E-01 2,04E-02 0.9999999999999998CALCIO
articolo_formula_10.txt 6,31E-17 1.0 4,68E-10 4,79E-13FORMULA
articolo_formula_21.txt 3,63E-03 0.9999999999686426 3,14E+05 4,41E-04FORMULA
articolo_formula_5.txt 2,05E+03 0.9999999990000839 1,00E+04 2,31E-02FORMULA
articolo_formula_6.txt 1,96E-09 1.0 6,73E-02 3,35E-10FORMULA
articolo_formula_7.txt 1,89E-11 1.0 8,89E-06 5,00E-13FORMULA
articolo_formula_8.txt 5,38E-03 0.9999999999999958 4,17E+00 1,47E-05FORMULA
articolo_formula_9.txt 4,83E-01 0.9999999999998537 1,46E+02 3,79E-03FORMULA
articolo_moto_10.txt 8,64E-08 1,76E+00 0.9999999999999998 6,93E-05MOTO
articolo_moto_21.txt 6,65E+02 0.9083253161656492 0.09167468291159296 9,22E+05FORMULA
articolo_moto_5.txt 7,42E-02 8,91E+02 0.9999999999991083 1,17E+01MOTO
articolo_moto_6.txt 2,09E-07 2,31E+01 0.9999999999999978 4,42E-07MOTO
articolo_moto_7.txt 1,68E+08 1,24E+08 0.9999999708276324 1,26E+04MOTO
articolo_moto_8.txt 6,46E-05 3,16E+04 0.9999999999968425 6,82E-05MOTO
articolo_moto_9.txt 1,15E-14 2,69E-01 0.9999999999999998 3,26E-11MOTO
50
Random Forest
Document Probability_Basket Probability_Formula1 Probability_Moto Probability_Soccer Predicted_label
articolo_basket_10.txt 1.0 0.0 0.0 0.0 BASKET
articolo_basket_21.txt 0.5 0.0 0.022727272727272728 0.4772727272727273 BASKET
articolo_basket_5.txt 0.5 0.0 0.022727272727272728 0.4772727272727273 BASKET
articolo_basket_6.txt 0.8571428571428572 0.0 0.14285714285714285 0.0 BASKET
articolo_basket_7.txt 0.875 0.0 0.0 0.125 BASKET
articolo_basket_8.txt 0.75 0.0 0.0 0.25 BASKET
articolo_basket_9.txt 1.0 0.0 0.0 0.0 BASKET
articolo_calcio_10.txt 0.25 0.0 0.022727272727272728 0.7272727272727273 CALCIO
articolo_calcio_21.txt 0.2916666666666667 0.0 0.0 0.7083333333333334 CALCIO
articolo_calcio_5.txt 0.0 0.0 0.0 1.0 CALCIO
articolo_calcio_6.txt 0.0 0.0 0.022727272727272728 0.9772727272727273 CALCIO
articolo_calcio_7.txt 0.041666666666666664 0.0 0.0 0.9583333333333334 CALCIO
articolo_calcio_9.txt 0.041666666666666664 0.0 0.0 0.9583333333333334 CALCIO
articolo_formula_10.txt 0.041666666666666664 0.75 0.0 0.20833333333333334 FORMULA
articolo_formula_21.txt 0.0 0.75 0.25 0.0 FORMULA
articolo_formula_5.txt 0.0 0.6 0.4 0.0 FORMULA
articolo_formula_6.txt 0.0 0.85 0.15 0.0 FORMULA
articolo_formula_7.txt 0.0 1.0 0.0 0.0 FORMULA
articolo_formula_8.txt 0.0 1.0 0.0 0.0 FORMULA
articolo_formula_9.txt 0.0 1.0 0.0 0.0 FORMULA
articolo_moto_10.txt 0.0 0.0 0.7727272727272727 0.22727272727272727 MOTO
articolo_moto_21.txt 0.0 0.0 0.75 0.25 MOTO
articolo_moto_5.txt 0.0 0.0 0.7727272727272727 0.22727272727272727 MOTO
articolo_moto_6.txt 0.25 0.1 0.65 0.0 MOTO
articolo_moto_7.txt 0.0 0.0 1.0 0.0 MOTO
articolo_moto_8.txt 0.0 0.0 1.0 0.0 MOTO
articolo_moto_9.txt 0.0 0.0 1.0 0.0 MOTO
51

More Related Content

Similar to Classificazione documenti spark_ml_ciuffa

Azure saturday pn 2018 ml
Azure saturday pn 2018 mlAzure saturday pn 2018 ml
Azure saturday pn 2018 mlMarco Zamana
 
Stack tecnologico Per Linked Data
Stack tecnologico Per Linked DataStack tecnologico Per Linked Data
Stack tecnologico Per Linked DataSynapta
 
Stack tecnologico Per Linked Data
Stack tecnologico Per Linked DataStack tecnologico Per Linked Data
Stack tecnologico Per Linked DataDavide Allavena
 
Introduzione a TypeScript
Introduzione a TypeScriptIntroduzione a TypeScript
Introduzione a TypeScriptSinergia Totale
 
Soluzioni distribuite per l’analisi di dati biomedici in ambiente Virtual Dat...
Soluzioni distribuite per l’analisi di dati biomedici in ambiente Virtual Dat...Soluzioni distribuite per l’analisi di dati biomedici in ambiente Virtual Dat...
Soluzioni distribuite per l’analisi di dati biomedici in ambiente Virtual Dat...Giuseppe Luciano
 
Digital 1nn0vation saturday pn 2019 - Azure Machine Learning Service
Digital 1nn0vation saturday pn 2019 - Azure Machine Learning ServiceDigital 1nn0vation saturday pn 2019 - Azure Machine Learning Service
Digital 1nn0vation saturday pn 2019 - Azure Machine Learning ServiceMarco Zamana
 
Slide sessione Drupal Theming & CSS Framework – Drupal Camp Torino 2010
Slide sessione Drupal Theming & CSS Framework – Drupal Camp Torino 2010Slide sessione Drupal Theming & CSS Framework – Drupal Camp Torino 2010
Slide sessione Drupal Theming & CSS Framework – Drupal Camp Torino 2010Domenico Monaco
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Gian Maria Ricci
 
MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009Massimiliano Dessì
 
MongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework MeetingMongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework Meetingguest67beeb9
 
Hadoop [software architecture recovery]
Hadoop [software architecture recovery]Hadoop [software architecture recovery]
Hadoop [software architecture recovery]gioacchinolonardo
 
Database project alla riscossa
Database project alla riscossaDatabase project alla riscossa
Database project alla riscossaGian Maria Ricci
 
Business Intelligence & Analytics
Business Intelligence & AnalyticsBusiness Intelligence & Analytics
Business Intelligence & AnalyticsDavide Mauri
 
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...DavideFegez
 
Esercitazioni Ingegneria 6ed
Esercitazioni Ingegneria 6edEsercitazioni Ingegneria 6ed
Esercitazioni Ingegneria 6edbibliobioing
 
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
 

Similar to Classificazione documenti spark_ml_ciuffa (20)

Azure saturday pn 2018 ml
Azure saturday pn 2018 mlAzure saturday pn 2018 ml
Azure saturday pn 2018 ml
 
Database Data Aggregator
Database Data AggregatorDatabase Data Aggregator
Database Data Aggregator
 
TesiEtta
TesiEttaTesiEtta
TesiEtta
 
Stack tecnologico Per Linked Data
Stack tecnologico Per Linked DataStack tecnologico Per Linked Data
Stack tecnologico Per Linked Data
 
Stack tecnologico Per Linked Data
Stack tecnologico Per Linked DataStack tecnologico Per Linked Data
Stack tecnologico Per Linked Data
 
Introduzione a TypeScript
Introduzione a TypeScriptIntroduzione a TypeScript
Introduzione a TypeScript
 
Soluzioni distribuite per l’analisi di dati biomedici in ambiente Virtual Dat...
Soluzioni distribuite per l’analisi di dati biomedici in ambiente Virtual Dat...Soluzioni distribuite per l’analisi di dati biomedici in ambiente Virtual Dat...
Soluzioni distribuite per l’analisi di dati biomedici in ambiente Virtual Dat...
 
Digital 1nn0vation saturday pn 2019 - Azure Machine Learning Service
Digital 1nn0vation saturday pn 2019 - Azure Machine Learning ServiceDigital 1nn0vation saturday pn 2019 - Azure Machine Learning Service
Digital 1nn0vation saturday pn 2019 - Azure Machine Learning Service
 
Slide sessione Drupal Theming & CSS Framework – Drupal Camp Torino 2010
Slide sessione Drupal Theming & CSS Framework – Drupal Camp Torino 2010Slide sessione Drupal Theming & CSS Framework – Drupal Camp Torino 2010
Slide sessione Drupal Theming & CSS Framework – Drupal Camp Torino 2010
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010
 
Hadoop SAR
Hadoop SARHadoop SAR
Hadoop SAR
 
MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009
 
MongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework MeetingMongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework Meeting
 
Hadoop [software architecture recovery]
Hadoop [software architecture recovery]Hadoop [software architecture recovery]
Hadoop [software architecture recovery]
 
Database project alla riscossa
Database project alla riscossaDatabase project alla riscossa
Database project alla riscossa
 
Business Intelligence & Analytics
Business Intelligence & AnalyticsBusiness Intelligence & Analytics
Business Intelligence & Analytics
 
ORM Java - Hibernate
ORM Java - HibernateORM Java - Hibernate
ORM Java - Hibernate
 
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
 
Esercitazioni Ingegneria 6ed
Esercitazioni Ingegneria 6edEsercitazioni Ingegneria 6ed
Esercitazioni Ingegneria 6ed
 
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
 

More from Deep Learning Italia

Machine Learning driven Quantum Optimization for Marketing
Machine Learning driven Quantum Optimization for MarketingMachine Learning driven Quantum Optimization for Marketing
Machine Learning driven Quantum Optimization for MarketingDeep Learning Italia
 
Modelli linguistici da Eliza a ChatGPT P roblemi , fraintendimenti e prospettive
Modelli linguistici da Eliza a ChatGPT P roblemi , fraintendimenti e prospettiveModelli linguistici da Eliza a ChatGPT P roblemi , fraintendimenti e prospettive
Modelli linguistici da Eliza a ChatGPT P roblemi , fraintendimenti e prospettiveDeep Learning Italia
 
Transformers In Vision From Zero to Hero (DLI).pptx
Transformers In Vision From Zero to Hero (DLI).pptxTransformers In Vision From Zero to Hero (DLI).pptx
Transformers In Vision From Zero to Hero (DLI).pptxDeep Learning Italia
 
Meetup Luglio - Operations Research.pdf
Meetup Luglio - Operations Research.pdfMeetup Luglio - Operations Research.pdf
Meetup Luglio - Operations Research.pdfDeep Learning Italia
 
MEETUP APRILE - Ganomaly - Anomaly Detection.pdf
MEETUP APRILE - Ganomaly - Anomaly Detection.pdfMEETUP APRILE - Ganomaly - Anomaly Detection.pdf
MEETUP APRILE - Ganomaly - Anomaly Detection.pdfDeep Learning Italia
 
The science of can and can t e la computazione quantistica
The science of can and can t e la computazione quantisticaThe science of can and can t e la computazione quantistica
The science of can and can t e la computazione quantisticaDeep Learning Italia
 
Pi school-dli-presentation de nobili
Pi school-dli-presentation de nobiliPi school-dli-presentation de nobili
Pi school-dli-presentation de nobiliDeep Learning Italia
 
Machine Learning Explanations: LIME framework
Machine Learning Explanations: LIME framework Machine Learning Explanations: LIME framework
Machine Learning Explanations: LIME framework Deep Learning Italia
 
Explanation methods for Artificial Intelligence Models
Explanation methods for Artificial Intelligence ModelsExplanation methods for Artificial Intelligence Models
Explanation methods for Artificial Intelligence ModelsDeep Learning Italia
 
Use Cases Machine Learning for Healthcare
Use Cases Machine Learning for HealthcareUse Cases Machine Learning for Healthcare
Use Cases Machine Learning for HealthcareDeep Learning Italia
 
NLG, Training, Inference & Evaluation
NLG, Training, Inference & Evaluation NLG, Training, Inference & Evaluation
NLG, Training, Inference & Evaluation Deep Learning Italia
 
Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)
Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)
Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)Deep Learning Italia
 
Towards quantum machine learning calogero zarbo - meet up
Towards quantum machine learning  calogero zarbo - meet upTowards quantum machine learning  calogero zarbo - meet up
Towards quantum machine learning calogero zarbo - meet upDeep Learning Italia
 
Macaluso antonio meetup dli 2020-12-15
Macaluso antonio  meetup dli 2020-12-15Macaluso antonio  meetup dli 2020-12-15
Macaluso antonio meetup dli 2020-12-15Deep Learning Italia
 

More from Deep Learning Italia (20)

Machine Learning driven Quantum Optimization for Marketing
Machine Learning driven Quantum Optimization for MarketingMachine Learning driven Quantum Optimization for Marketing
Machine Learning driven Quantum Optimization for Marketing
 
Modelli linguistici da Eliza a ChatGPT P roblemi , fraintendimenti e prospettive
Modelli linguistici da Eliza a ChatGPT P roblemi , fraintendimenti e prospettiveModelli linguistici da Eliza a ChatGPT P roblemi , fraintendimenti e prospettive
Modelli linguistici da Eliza a ChatGPT P roblemi , fraintendimenti e prospettive
 
Transformers In Vision From Zero to Hero (DLI).pptx
Transformers In Vision From Zero to Hero (DLI).pptxTransformers In Vision From Zero to Hero (DLI).pptx
Transformers In Vision From Zero to Hero (DLI).pptx
 
Meetup Luglio - Operations Research.pdf
Meetup Luglio - Operations Research.pdfMeetup Luglio - Operations Research.pdf
Meetup Luglio - Operations Research.pdf
 
Meetup Giugno - c-ResUNET.pdf
Meetup Giugno - c-ResUNET.pdfMeetup Giugno - c-ResUNET.pdf
Meetup Giugno - c-ResUNET.pdf
 
MEETUP Maggio - Team Automata
MEETUP Maggio - Team AutomataMEETUP Maggio - Team Automata
MEETUP Maggio - Team Automata
 
MEETUP APRILE - Ganomaly - Anomaly Detection.pdf
MEETUP APRILE - Ganomaly - Anomaly Detection.pdfMEETUP APRILE - Ganomaly - Anomaly Detection.pdf
MEETUP APRILE - Ganomaly - Anomaly Detection.pdf
 
2022_Meetup_Mazza-Marzo.pptx
2022_Meetup_Mazza-Marzo.pptx2022_Meetup_Mazza-Marzo.pptx
2022_Meetup_Mazza-Marzo.pptx
 
Machine Learning Security
Machine Learning SecurityMachine Learning Security
Machine Learning Security
 
The science of can and can t e la computazione quantistica
The science of can and can t e la computazione quantisticaThe science of can and can t e la computazione quantistica
The science of can and can t e la computazione quantistica
 
Dli meetup moccia
Dli meetup mocciaDli meetup moccia
Dli meetup moccia
 
Pi school-dli-presentation de nobili
Pi school-dli-presentation de nobiliPi school-dli-presentation de nobili
Pi school-dli-presentation de nobili
 
Machine Learning Explanations: LIME framework
Machine Learning Explanations: LIME framework Machine Learning Explanations: LIME framework
Machine Learning Explanations: LIME framework
 
Explanation methods for Artificial Intelligence Models
Explanation methods for Artificial Intelligence ModelsExplanation methods for Artificial Intelligence Models
Explanation methods for Artificial Intelligence Models
 
Use Cases Machine Learning for Healthcare
Use Cases Machine Learning for HealthcareUse Cases Machine Learning for Healthcare
Use Cases Machine Learning for Healthcare
 
NLG, Training, Inference & Evaluation
NLG, Training, Inference & Evaluation NLG, Training, Inference & Evaluation
NLG, Training, Inference & Evaluation
 
Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)
Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)
Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)
 
Towards quantum machine learning calogero zarbo - meet up
Towards quantum machine learning  calogero zarbo - meet upTowards quantum machine learning  calogero zarbo - meet up
Towards quantum machine learning calogero zarbo - meet up
 
Macaluso antonio meetup dli 2020-12-15
Macaluso antonio  meetup dli 2020-12-15Macaluso antonio  meetup dli 2020-12-15
Macaluso antonio meetup dli 2020-12-15
 
Data privacy e anonymization in R
Data privacy e anonymization in RData privacy e anonymization in R
Data privacy e anonymization in R
 

Classificazione documenti spark_ml_ciuffa

  • 2. CLOUDERA Cloudera è una piattaforma che si basa su Apache Hadoop: • Data engineering • Machine Learning • Analytics 2
  • 4. APACHE SPARK Elaborazione di grandi moli di dati su cluster Supporta i linguaggi più diffusi in ambito statistico: Python, R Diverse librerie del mondo Java incorporate Può essere eseguito: • Autonomamente • All'interno di YARN 4
  • 5. APACHE SPARK - Componenti 5 Interfacce di basso livello RDD Variabili distribuite Interfacce strutturate DataFrame DataSet SQL Streaming strutturato Apprendimento automatico Librerie ed ecosistema
  • 6. APACHE SPARK – Map-Reduce • Problema che può essere suddiviso in sotto-problemi • Invio ai vari nodi del cluster i sotto-problemi e le operazioni da effettuare • I vari nodi risolvono i sotto-problemi • Combino le soluzioni ai sotto-problemi • Scrivo la soluzione 6
  • 7. APACHE SPARK – Innovazione Spark ha permesso di risolvere più velocemente alcuni problemi usando di più la RAM, il cui prezzo è sceso. 7
  • 8. APACHE SPARK – Linguaggi • Nel mondo dell'analisi dei dati, Python ed R sono molto diffusi • Spark supporta Python ed R • L'efficienza di usare Python o R non è la stessa di Scala 8
  • 9. SCALA  Spark è scritto in Scala  Kafka è scritto in Java e Scala  Concetti di Scala validi per programmazione distribuita 9
  • 10. SCALA  Un linguaggio di programmazione moderno  Tipizzazione statica  Programmazione a oggetti e funzionale  Gira sulla Java Virtual Machine 10
  • 12. Come acquisire un dataset con Apache Spark? val employeesDataRaw : RDD[String] = sqlContext.read.text(filePathTraining) .map(x => x.getString(0)) val rowEmployeesRDD: RDD[Row] = employeesDataRaw.map(_.split(";")) .map(p => Row(p(0), p(1), p(2))) Il risultato sarà un RDD che contiene tutte le righe del file acquisito suddivise per colonne. Data Preparation con Apache Spark - acquisizione dei dati 12
  • 13. Acquisendo i dati in un RDD sarà possibile esplorarli, verificarne la qualità ed effettuare operazioni di cleaning. Gli RDD ci mettono a disposizione molte funzioni per analizzare i dati: https://spark.apache.org/docs/1.6.0/api/scala/index.html#org.apache.spark.rdd.R DD Data Preparation con Apache Spark - acquisizione dei dati 13
  • 14. Feature transformation: - trasformazione dei dati per migliorare l’accuratezza dell’algoritmo. Feature extraction and feature engineering - trasformazione dei dati grezzi in caratteristiche (features) indonee per il modello. Feature selection - rimozione delle caratteristiche (features) non necessarie. Estrarre, trasformare e selezionare le features 14
  • 15. Il processo di Tokenization è utilizzato per acquisire da un testo dei termini individuali (normalmente delle parole). Un modo avanzato di eseguire il processo di tokenization è applicare le regular expressions (regex). Per approfondimenti: https://spark.apache.org/docs/1.6.0/ml-features.html#tokenizer Feature Transformer - Tokenizer 15
  • 17. Le Stop Words sono delle parole che devono essere escluse, poiché appaiono frequentemente oppure non sono considerate importanti. Si possono quindi utilizzare delle tecniche per rimuovere una lista di stop words. Per approfondimenti: https://spark.apache.org/docs/1.6.0/ml-features.html#stopwordsremover Feature Transformer - StopWordsRemover 17
  • 19. Spark ML Spark include delle librerie di Machine Learning: 19
  • 20. Comparazione tra MLlib ML MLlib: - meno recenti - RDD ML: - più recenti - DataFrame 20
  • 21. Spark ML Pipeline - addestramento Il metodo fit() permette di addestrare il modello. val model = pipeline.fit(trainingDataDF) Il modello sarà addestrato attraverso i dati contenuti in un DataFrame. 21
  • 22. Spark ML Pipeline - addestramento 22
  • 23. Spark ML Model - predizione Il metodo transform() permette di generare un DataFrame contenente le predizioni. val predictionDF = model.transform(testDataDF) Il DataFrame restituito conterrà le stesse colonne mostrando altre informazioni tra cui la predizione (label) per ogni riga. 23
  • 24. Obiettivo: classificare diverse tipologie di documenti. Come: Utilizzando un modello di classificazione addestrato con delle parole chiave (features) che caratterizzano una specifica tipologia di documento. Tecnologia: 24
  • 25. ML Supervised learning Unsupervised learning Classification Regression Clustering Collaborative filtering 25
  • 26. • Naive Bayes • Gradient Boosting Tree • Random Forest Supervised learning 26
  • 27. Supervised learning - Naive Bayes classifier Il Naive Bayes classifier è un modello di classificazione che si basa sul teorema bayesiano Usando il teorema bayesiano, possiamo trovare la probabilità che A si verifichi quando occorre B. I predittori/caratteristiche devono essere indipendenti: - la presenza di una particolare caratteristica (feature) non influisce su un’altra. 27
  • 28. Supervised learning - Naive Bayes classifier Multinomial Naive Bayes: Il più usato per problemi di classificazione dei documenti. Le caratteristiche/predittori vengono usate dal classificatore come frequenza delle parole presenti in un documento. Bernoulli Naive Bayes: Simile al multinomial naive bayes, ma I predittori sono variabili booleane. Gaussian Naive Bayes: Quando i predittori accettano soltanto valori continui (quindi non discreti), questi valori possono essere campionati da una distribuzione gaussiana. N.B. : Il Gaussian Naïve Bayes non è supportato da Spark 1.6. 28
  • 31. Ensemble Ensemble è un concetto di Machine Learning che corrisponde all’idea di addestrare molteplici modelli usando lo stesso algoritmo di apprendimento. Molti learners, con lo stesso obiettivo, sono fusi tra loro per risolvere uno specifico problema. Bagging  Random Forest; Boosting  Gradient Boosting. 31
  • 32. Bagging Bagging (Bootstrap Aggregation) è una tecnica utilizzata quando abbiamo l’esigenza di ridurre la varianza di un albero decisionale. Questo avviene tramite la creazione di molti subset di dati a partire dal campione scelto in modo casuale. La media di diversi alberi risulterà più robusta rispetto a un singolo albero decisionale. 32
  • 33. Boosting Boosting è una tecnica di ensemble per creare una collezione di predittori. I learners vengono generati in modo sequenziale. Ogni nuovo albero cercherà di risolvere gli errori a partire dal precedente albero. 33
  • 34. 34
  • 40. Obiettivo A, B, C, E, F, H B, D, E, F, I, N Individuare la tipologia dei documenti attraverso delle parole chiave. A, B, E, F, H, S 40 C, D, H, E, F, S
  • 41. Training set A B C E F H, DOCTYPE1 A C E F H S, DOCTYPE1 B C E F H S, DOCTYPE1 B D E F I N, DOCTYPE2 D E F G I U, DOCTYPE2 B D E F I N, DOCTYPE2 A B C E F H, DOCTYPE1 A B C E F H, DOCTYPE1 B D E F I N, DOCTYPE1 B D F I M N, DOCTYPE2 B D E F I N, DOCTYPE2 A B E F H S, DOCTYPE1 A B C F H S, DOCTYPE1 … 41
  • 42. Estrazione delle caratteristiche Estrazione delle caratteristiche Addestramento 42
  • 43. Addestramento Addestramento Categoria "Moto" Addestramento Categoria "Basket" Addestramento Categoria "Calcio" Considerando, nel contesto degli articoli giornalistici sportivi, 4 diverse possibili categorie: Moto, Basket, Calcio, Formula1: … … … Training set (Moto) Training set (Basket) Training set (Calcio) Addestramento Categoria "F1"… Training set (F1) 43
  • 44. Classificazione Classificazione Categoria "Calcio" Classificazione Categoria "Moto" Classificazione Categoria "Basket" Considerando, nel contesto degli articoli giornalistici sportivi, 4 diverse possibili categorie: Moto, Basket, Calcio, Formula1: 44
  • 45. 45
  • 50. Naive Bayes (multinomial) Document Probability_Basket Probability_Formula1 Probability_Moto Probability_Soccer Predicted_label articolo_basket_10.txt 1.0 1,15E-07 5,89E-05 1,13E-01BASKET articolo_basket_21.txt 0.9999999999929035 6,51E+02 6,24E+04 2,07E+03BASKET articolo_basket_5.txt 0.9999999924089215 5,63E+04 4,14E+03 7,58E+06BASKET articolo_basket_6.txt 0.9999942261846133 8,60E-01 1,55E+00 5,77E+09BASKET articolo_basket_7.txt 0.999997463710652 2,22E+02 1,13E+01 2,54E+10BASKET articolo_basket_8.txt 1.0 2,87E-13 4,36E-17 3,44E-06BASKET articolo_basket_9.txt 1.0 2,24E-17 2,81E-26 1,74E-24BASKET articolo_calcio_10.txt 9,90E+06 1,74E+07 7,98E+02 0.99999998836085CALCIO articolo_calcio_21.txt 3,29E+08 4,81E+03 5,87E-01 0.9999996714093776CALCIO articolo_calcio_5.txt 1,65E-02 4,35E-01 4,59E-03 0.9999999999999996CALCIO articolo_calcio_6.txt 2,27E+09 4,05E+08 2,92E+10 0.9999944040358519CALCIO articolo_calcio_7.txt 1,64E+08 7,79E+01 2,08E+00 0.9999999835529243CALCIO articolo_calcio_9.txt 2,71E+00 3,11E-01 2,04E-02 0.9999999999999998CALCIO articolo_formula_10.txt 6,31E-17 1.0 4,68E-10 4,79E-13FORMULA articolo_formula_21.txt 3,63E-03 0.9999999999686426 3,14E+05 4,41E-04FORMULA articolo_formula_5.txt 2,05E+03 0.9999999990000839 1,00E+04 2,31E-02FORMULA articolo_formula_6.txt 1,96E-09 1.0 6,73E-02 3,35E-10FORMULA articolo_formula_7.txt 1,89E-11 1.0 8,89E-06 5,00E-13FORMULA articolo_formula_8.txt 5,38E-03 0.9999999999999958 4,17E+00 1,47E-05FORMULA articolo_formula_9.txt 4,83E-01 0.9999999999998537 1,46E+02 3,79E-03FORMULA articolo_moto_10.txt 8,64E-08 1,76E+00 0.9999999999999998 6,93E-05MOTO articolo_moto_21.txt 6,65E+02 0.9083253161656492 0.09167468291159296 9,22E+05FORMULA articolo_moto_5.txt 7,42E-02 8,91E+02 0.9999999999991083 1,17E+01MOTO articolo_moto_6.txt 2,09E-07 2,31E+01 0.9999999999999978 4,42E-07MOTO articolo_moto_7.txt 1,68E+08 1,24E+08 0.9999999708276324 1,26E+04MOTO articolo_moto_8.txt 6,46E-05 3,16E+04 0.9999999999968425 6,82E-05MOTO articolo_moto_9.txt 1,15E-14 2,69E-01 0.9999999999999998 3,26E-11MOTO 50
  • 51. Random Forest Document Probability_Basket Probability_Formula1 Probability_Moto Probability_Soccer Predicted_label articolo_basket_10.txt 1.0 0.0 0.0 0.0 BASKET articolo_basket_21.txt 0.5 0.0 0.022727272727272728 0.4772727272727273 BASKET articolo_basket_5.txt 0.5 0.0 0.022727272727272728 0.4772727272727273 BASKET articolo_basket_6.txt 0.8571428571428572 0.0 0.14285714285714285 0.0 BASKET articolo_basket_7.txt 0.875 0.0 0.0 0.125 BASKET articolo_basket_8.txt 0.75 0.0 0.0 0.25 BASKET articolo_basket_9.txt 1.0 0.0 0.0 0.0 BASKET articolo_calcio_10.txt 0.25 0.0 0.022727272727272728 0.7272727272727273 CALCIO articolo_calcio_21.txt 0.2916666666666667 0.0 0.0 0.7083333333333334 CALCIO articolo_calcio_5.txt 0.0 0.0 0.0 1.0 CALCIO articolo_calcio_6.txt 0.0 0.0 0.022727272727272728 0.9772727272727273 CALCIO articolo_calcio_7.txt 0.041666666666666664 0.0 0.0 0.9583333333333334 CALCIO articolo_calcio_9.txt 0.041666666666666664 0.0 0.0 0.9583333333333334 CALCIO articolo_formula_10.txt 0.041666666666666664 0.75 0.0 0.20833333333333334 FORMULA articolo_formula_21.txt 0.0 0.75 0.25 0.0 FORMULA articolo_formula_5.txt 0.0 0.6 0.4 0.0 FORMULA articolo_formula_6.txt 0.0 0.85 0.15 0.0 FORMULA articolo_formula_7.txt 0.0 1.0 0.0 0.0 FORMULA articolo_formula_8.txt 0.0 1.0 0.0 0.0 FORMULA articolo_formula_9.txt 0.0 1.0 0.0 0.0 FORMULA articolo_moto_10.txt 0.0 0.0 0.7727272727272727 0.22727272727272727 MOTO articolo_moto_21.txt 0.0 0.0 0.75 0.25 MOTO articolo_moto_5.txt 0.0 0.0 0.7727272727272727 0.22727272727272727 MOTO articolo_moto_6.txt 0.25 0.1 0.65 0.0 MOTO articolo_moto_7.txt 0.0 0.0 1.0 0.0 MOTO articolo_moto_8.txt 0.0 0.0 1.0 0.0 MOTO articolo_moto_9.txt 0.0 0.0 1.0 0.0 MOTO 51