Anteprima
Vedrai una selezione di 20 pagine su 109
Appunti completi del corso di Data mining e classificazione Pag. 1 Appunti completi del corso di Data mining e classificazione Pag. 2
Anteprima di 20 pagg. su 109.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Data mining e classificazione Pag. 6
Anteprima di 20 pagg. su 109.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Data mining e classificazione Pag. 11
Anteprima di 20 pagg. su 109.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Data mining e classificazione Pag. 16
Anteprima di 20 pagg. su 109.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Data mining e classificazione Pag. 21
Anteprima di 20 pagg. su 109.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Data mining e classificazione Pag. 26
Anteprima di 20 pagg. su 109.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Data mining e classificazione Pag. 31
Anteprima di 20 pagg. su 109.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Data mining e classificazione Pag. 36
Anteprima di 20 pagg. su 109.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Data mining e classificazione Pag. 41
Anteprima di 20 pagg. su 109.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Data mining e classificazione Pag. 46
Anteprima di 20 pagg. su 109.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Data mining e classificazione Pag. 51
Anteprima di 20 pagg. su 109.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Data mining e classificazione Pag. 56
Anteprima di 20 pagg. su 109.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Data mining e classificazione Pag. 61
Anteprima di 20 pagg. su 109.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Data mining e classificazione Pag. 66
Anteprima di 20 pagg. su 109.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Data mining e classificazione Pag. 71
Anteprima di 20 pagg. su 109.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Data mining e classificazione Pag. 76
Anteprima di 20 pagg. su 109.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Data mining e classificazione Pag. 81
Anteprima di 20 pagg. su 109.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Data mining e classificazione Pag. 86
Anteprima di 20 pagg. su 109.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Data mining e classificazione Pag. 91
1 su 109
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Riduzione dimensionale

La tecnica che si utilizza di solito è la Singular Value Decomposition (SVD), che corrisponde all'analisi in componenti principali, con la differenza che abbiamo tre matrici invece di due, questo perché la radice degli autovalori presenti nella matrice centrale viene moltiplicata sia a dx che a sx. U = rappresentazione dei termini su certe dimensioni V = rappresentazione dei documenti sulle stesse dimensioni di U Potrei essere interessato solo alle dimensioni che hanno gli autovalori più ampi e quindi delle matrici U e V ne prendo solo una parte. Questo metodo mi permette di rappresentare sia i termini che i documenti nelle stesse dimensioni (e quindi nello stesso spazio) e di avere a disposizione sia i vettori dei termini che dei documenti (rappresentazione vettoriale) -> questa tecnica è chiamata Latent Semantic Analysis. A questo punto ho una rappresentazione vettoriale e quindi posso applicare qualsiasi modello. 104UlterioriSuccessivamente alla definizione dei vettori, possono essere applicate alcune tipiche tecniche di analisi:
  • Cluster analysis: attraverso tecniche non supervisionate (ad es. K medie) si analizza la matrice documenti x fattori (o vettori).
  • Sentiment analysis: attraverso un modello supervisionato (ad es. Foreste o Neural Networks) si analizza la matrice documenti x fattori.
Per svolgere queste analisi uso i vettori stimati come dizionario di riferimento, ovvero, se, ad es., voglio un modello in grado di dare un voto ai film basandosi sulle review, dopo aver ottenuto le SVD avremo i word vectors, che possono essere utilizzati per costruire un modello di assegnazione del punteggio al film e dopo aver stimato il modello otteniamo una struttura in grado di tirare fuori un punteggio a partire dalle nuove recensioni.

NOTA: esistono dei dizionari già fatti, ma non è detto che ci diano un buon risultato se i miei documenti riguardano un tema specifico, in questo caso, quello che posso

fare è stimare il modello tenendo conto delle review e del fatto che stiamo usando un dizionario esterno -> il modello compensa la disfasia tra questi due elementi.

Esercitazione 8 (text mining)

Come tipo di progetto lascio Data mining e Machine learning.

Dati: MOVIE_PLUS

Partizionamento dei dati: tolgo il test (=0) e alzo il training a 70.

Target=Made_money, rifiutiamo "budget" (ripetizione rispetto a revenue), "release_date"=ID temporale

Applico il nodo "Text mining" ai dati, aggiungo la spunta a "estrai entità", numero min di documenti=numero minimo di documenti in cui deve essere incluso un termine per fare in modo che sia incluso; togliamo la spunta da "Determina automaticamente numero di topic" e mettiamo 5 topic

Risultati: possiamo vedere la tabella dei termini mantenuti: il segno "+" indica che il termine contiene anche tutte le sue declinazioni (termini simili), ruolo (N=nome, V=verbo, ADV=avverbio)

Poi abbiamo la frequenza dei termini e se sono stati mantenuti o meno (Y=yes), le ultime colonne contengono le coordinate delle parole rispetto ai 5 assi che ho indicato (colonne etichettate con le parole che hanno avuto un maggiore significato nella definizione dell'asse), ordinando i dati rispetto alla colonna di un certo asse posso vedere quali sono i termini più rilevanti di ogni asse. Andando nella tabella "Topic" vediamo meglio i 5 assi che individuano 5 tipi di film diversi. Dati di output: per ogni unità otteniamo gli score rispetto a tutte le variabili e se vogliamo fare una classificazione tenendo conto della parte testuale basta utilizzare gli score ottenuti, escludendo le variabili testuali. Se aggiungiamo un modello al text mining non possiamo scegliere le variabili da inserire nel modello, quindi aggiungo al text mining il nodo Gestione delle variabili -> eseguo -> clicco su Gestisci variabili: overview wtitle compaiono come testo, quindi i

modelli che inseriamo non le utilizzano (non importa metterle come rifiutate) -> aggiungo una Foresta al nodo Gestione variabili ed eseguo: l’errore nel validation e 0.078 (deltutto accettabile), l’AUC è 0.95 nel validation e anche questo è un buon risultato. Esercitazione 9 (sentimenti analysis) Scarico il file IMBD review da moodle che contiene delle review con il rispettivo sentiment -> lo carico su SAS; partizionamento: 70/20/10; target=”sentiment”. Aggiungo il nodo Text mining ai dati: metto la spunta su Estrai entità, numero di topic=10 -> eseguo: guardando i 10 topic vediamo che riguardano tutti il giudizio del film (che può essere positivo o negativo) invece che il contenuto del film; guardando la tabella dei termini mantenuti vediamo quali termini hanno maggiore importanza nei vari topic. Aggiungo il Gradient Boosting: tasso di apprendimento=0,05; tasso di sottocampionamento=0,6 (analizza il 60% dei casi ogni volta); tolgo la

regolarizzazione L2 (=0) -> Risultati: guardando il grafico dell’Average105Squared Error vediamo che arrivato a 100 iterazioni stava ancora diminuendo, quindi possiamo aumentareil numero di iterazioni e la curva è molto regolare (no overfitting); le curve ROC sono tutte abbastanzaregolari e nel cutoff ottimale ci dà buoni valori sia di sensitività (0,85) che di specificità (0,81); % di rispostacatturata cumulativa: quando la profondità è del 20% ho una % di risposta catturata cumulativa del 40%,questo significa che prendendo il primo 20% di positivi del campione si cattura quasi il 40% dei positivi(risultato soddisfacente).

Provo a far andare il modello in overfitting: tasso di apprendimento=0,08; tasso disottocampionamento=0,7; profondità max=5; dimensione min della foglia=3 -> Risultati: l’Average SquaredError si poteva migliorare aumentando gli alberi anche se è già migliorato (sul test e sul validation vannodiminuendo),

l'AUC è arrivata al 90% anche sul test (migliorata), curva ROC sempre regolare -> il modello è migliorato.

Se andiamo a vedere il confronto tra modelli (abbiamo un solo modello): la % di risposta cumulativa va dal 100% (alto a sx) e scende fino al 50% quando prendo tutti i dati, questo perché prendendo tutti i dati non può prendere più del 50% di positivi, mentre, se ad esempio prendo solo il primo 20% dei dati con probabilità più alta prendo quasi esclusivamente positivi (mentre su tutti i dati la % di risposta sappiamo già che è il 50%).

Nella % di risposta (non cumulata), invece, guardo come varia la % di risposta aumentando ogni volta la profondità del 5% (ho una serie di segmenti).

Nella % di risposta catturata (anche questa divisa in segmenti) puntiamo il mouse sulla fine del primo segmento e vediamo che prendendo il 5% di quelli più probabili (profondità=5) riusciamo a catturare quasi il 10% dei

positivi (se non usassi il modello catturerei il 5% dei positivi). Lift (=quanto guadagno rispetto a una situazione casuale): nel primo 5% ho un lift di 1,95 (guadagno quasi il doppio), se tirassi a caso avrei una linea orizzontale in corrispondenza del valore 1, quando va sotto 1 significa che in quel 5% (in quel segmento) ho meno della metà dei positivi. Curva accuratezza: è 0.5 quando il cutoff è 0 (ho tutti positivi e quindi la metà sono classificati male) poi aumenta all'aumentare del cutoff e quando il cutoff è 0.5 tocca il massimo (perché classi bilanciate) per poi tornare a diminuire fino a tornare ad essere 0 quando il cutoff è 1. Guardando la tabella vedo che l'AUC è intorno al 90% sia sul training che sul validation e che l'errore di classificazione è intorno al 15% per entrambi -> aumento la capacità del modello di adattarsi: numero di alberi=200 (sempre senza mettere regolarizzazioni) ->

Risultati: nel grafico dell'Average squared error vediamo che il training continua a scendere sempre di più distanziandosi dal validation, ma quest'ultimo non sale, quindi non c'è problema, tuttavia vediamo che oltrepassati i 150 alberi la curva rimane pressoché stabile (potrei fermarmi a 150); in generale, la situazione è rimasta simile -> provo a spingere ancora di più verso l'overfitting: profondità max=6, dimensione min della foglia=1 -> Risultati: sul test ricomincia a salire leggermente l'errore (lieve overfitting), errore di classificazione e AUC sono rimasti simili (migliorati un po' nel training) -> provo a togliere l'overfitting mettendo la regolarizzazione L1=1 e il riducendo il tasso di sottocampionamento=0,6 -> Risultati: l'errore si è stabilizzato sia nel test che nel validation. Una volta ottenuto il modello, quello che posso fare è applicarlo a nuovi dati. Per

Applicare un modello adei nuovi dati aggiungo al nostro modello il nodo Score dei dati selezionando i dati su cui vogliamo applicare la pipeline costruita fino a quel momento.

Il trattamento dei dati mancanti

Spesso l'analisi dei dati procede con l'assunzione che il processo che ha causato i dati mancanti può essere ignorato. Prima di applicare una qualsiasi procedura per l'analisi di dati mancanti è necessario capire se un valore vero esiste e, in caso affermativo, perché è mancante.

unit nonresponse: mancano tutte le risposte relative ad una unità, ad esempio perché la persona intervistata ha rifiutato di rispondere al questionario o perché non era reperibile -> devo capire perché mancano

item nonresponse: sono disponibili solo dati parziali e mancano dati solo in corrispondenza ad alcune variabili -> posso fare imputazione.

Il caso più complicato si ha quando tutte le variabili hanno dei valori mancanti.

Per qualche unità, in questo caso, se eliminassimo tutte le unità che hanno valori mancanti mi rimarrebbero pochissime unità.

Pattern di dati mancanti univariato: Una sola variabile Y presenta, in corrispondenza di alcune unità, dei dati mancanti. In questo caso c'è una procedura molto semplice per fare imputazione: considero tutte le altre variabili come esplicative e quella variabile la considero come variabile indipendente da predire; costruisco un modello nel quale ho come dati di training tutti i dati completi, lasciando fuori quelli in cui la Y non è osservata -> stimo il modello sui dati completi e faccio previsione su quelli incompleti ottenendo dei dati imputati che tengono conto delle relazioni tra le variabili.

Monotono: le variabili Y1, ..., Yp possono essere ordinati in maniera tale che se Yj è mancante per una unità allora anche Yj+1, ..., Yp sono anch'essi mancanti (le prime variabili sono tutte complete,

poi ho una variabile con dei missing tale per cui, se un dato manca a una certa variabile, allora manca anche in tutte quelle successive) -> questo

Dettagli
Publisher
A.A. 2021-2022
109 pagine
SSD Scienze economiche e statistiche SECS-S/01 Statistica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher claudia.lon di informazioni apprese con la frequenza delle lezioni di Data mining e classificazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Roma La Sapienza o del prof Gambino Agostino.