Data mining e classificazione
Introduzione al data mining e al machine learning
Chi genera i big-data? Il progresso e l'innovazione non sono più ostacolati dalla capacità di raccogliere dati. Grazie a questi dati e alla capacità di gestire, analizzare, riassumere, visualizzare, possiamo ottenere conoscenza dai dati raccolti in modo tempestivo e scalabile. Sappiamo che avere molti dati è sempre un vantaggio, ma se sono troppi allora è necessario usare metodi diversi da quelli classici. In questo caso ho i dati di tutta la popolazione, quindi, non ho un problema di inferenza (perché i parametri devo solo calcolarli, dato che ho i dati della popolazione intera), ma ho solo un problema di modellizzazione. Dunque, devo solo individuare il modello più efficace per descrivere i dati.
Iot – Internet of Things
Poiché i sensori si diffondono in quasi tutti i settori, l'Internet delle cose innescherà un massiccio afflusso di big data. A seconda delle previsioni, dovrebbero esserci da 32 a 50 miliardi di dispositivi connessi a Internet entro il 2020. E il volume di dati generati è sbalorditivo. Le opportunità di utilizzo di IoT includono nuovi modelli di business, di servizi e informazioni in tempo reale per sistemi mission-critical. Esempio: Barcellona offre parchimetri intelligenti che funzionano su Wi-Fi in tutta la città, dando ai residenti aggiornamenti in tempo reale su dove parcheggiare e consentendo loro di pagare con il telefono.
La rete 5G
Il nuovo ordine di grandezza di velocità di trasmissione potrà arrivare fino a 10 Gbps, ma soprattutto con una latenza nell’ordine dei 5 ms, contro i 30 delle reti 4G. Questo aprirà le porte a tutta una serie di nuovi servizi, non solo legati all’ambito gaming. Il 5G sbarca a Venezia, la città si trasforma in un mare di dati (ultraveloci): per monitorare oltre 700.000 persone che utilizzano ogni giorno sistemi di trasporto su gomma, ferro e acqua. Interventi relativi alla sicurezza, o deviazioni del traffico in seguito a un incidente, oppure variazione dei limiti di velocità per i mezzi in transito sui canali, può essere fatto tutto in tempo reale.
Natura dei Big Data
I Big Data non sono solo grandi insiemi di dati. Si tratta spesso di tipi di dati qualitativamente nuovi: ad esempio sui comportamenti e le convinzioni delle persone. Il potere predittivo dei Big Data "sociali" viene utilizzato in molti campi come la salute pubblica, lo sviluppo economico: ad esempio Global Pulse, un'iniziativa delle Nazioni Unite, sfrutta i Big Data per l’analisi dello sviluppo. Il gruppo conduce l'analisi del sentiment dei messaggi nei social network per aiutare a prevedere perdite di posti di lavoro, riduzioni di spesa o focolai di malattie in una data regione. https://www.unglobalpulse.org/
La grande quantità di dati sul sequenziamento del genoma rende possibile scoprire i marcatori genetici di malattie rare e trovare associazioni tra malattie e varianti di sequenze rare. L’individuazione del vaccino per il Covid-19 ha richiesto l’analisi di Big-Data.
Dati non strutturati
Gli ultimi anni hanno visto un'enorme crescita di dati basati su testi, in particolari pagine web, notizie, e-mail e social media. Una caratteristica dei dati testuali è che sono generati direttamente dalle persone, piuttosto che dai sensori, e sono quindi molto utili per analizzare opinioni e preferenze. Il testo costituisce un dato non strutturato, che non si conforma a schemi ben definiti ed è relativamente complesso da analizzare. Dati non strutturati sono anche le registrazioni audio, le registrazioni video, le immagini. Le telecamere di Mosca utilizzeranno il riconoscimento facciale Ci sono più di 160.000 telecamere a circuito chiuso per le strade di Mosca. È uno dei più impressionanti sistemi di sorveglianza pubblica al mondo, utilizza anche la tecnologia di riconoscimento facciale per rilevare criminali o forze dell'ordine. Sviluppato dal russo Ntech Lab, fondato nel 2015 per creare algoritmi altrettanto intelligenti come esseri umani ed efficienti come macchine. Utilizza le tecniche più avanzate del settore delle reti neurali artificiali e machine learning. In pochi mesi, il sistema ha portato al rilevamento e alla cattura di sei criminali ricercati da tempo dalla polizia. (Vedi altri esempi)
Aspetti negativi dei Big Data
- La preparazione dei dati rappresenta circa l'80% del lavoro dei data scientist
- Questi dedicano il 60% del loro tempo alla pulizia e all'organizzazione dei dati.
- La raccolta di set di dati è seconda al 19% del loro tempo
Statistica e Big Data
La grande dimensione dei dati e l'elevata dimensionalità introducono sfide computazionali e statistiche uniche. Se non ci sono campioni, allora non ci sono errori di campionamento o variabilità campionaria. La misura dell'errore è rivolta alla valutazione della distorsione e dell'affidabilità del modello e all'analisi della qualità dei dati. In alcuni casi, le variabili sono più del numero delle osservazioni. Ad esempio, il set standard di dati microarray è tipicamente composto da migliaia di variabili (cioè i geni) con solo poche decine di unità osservate. Per prevedere la reazione dei clienti quando visitano un determinato sito web. L'azienda può avere solo millisecondi per decidere come rispondere al clic di un determinato utente.
Inconvenienti con tante variabili: quando il numero di variabili cresce, cresce anche il numero di false correlazioni. Una correlazione spuria può causare false scoperte scientifiche e inferenze statistiche errate (risulta esserci correlazione, anche se in realtà è dovuta al caso e quindi non è un’associazione vera). Esempio: consumo di margarina e tasso di divorzi -> risulta esserci una correlazione, ma è ovvio che i due fenomeni non sono legati tra loro.
Multiple testing
Quando si testano molte ipotesi, è necessario correggere i test. I test di ipotesi classici sono progettati per definire il test significativo il 5% delle volte, anche quando il valore nullo è vero. Se un test viene eseguito con un livello del 5% e l'ipotesi nulla è vera, c'è una probabilità del 5% di rifiutare erroneamente l'ipotesi nulla. Tuttavia, se vengono condotti 100 test e tutte le ipotesi nulle corrispondenti sono vere, il numero atteso di rifiuti errati (noti anche come falsi positivi o errori di tipo I) è 5. Se i test sono statisticamente indipendenti l'uno dall'altro, la probabilità di almeno un rifiuto errato è del 99,4%. Inoltre ho il problema dell’indipendenza, perché se ripeto più volte il test, allora i test non saranno indipendenti.
Una scelta comune per la correzione di test multipli consiste nell'usare il False Discovery Rate per controllare il rapporto con cui test significativi sono in realtà falsi. Le implicazioni del false discovery rate nel test di ipotesi è che se ripeti un test abbastanza volte, troverai un effetto significativo... ma quell'effetto potrebbe in realtà non esistere. Nota: il test d’ipotesi è più facile che mi venga significativo se ho molti dati, ma se lavoro con i big data avrò sempre significatività e questo non va bene.
Riduzione dimensionale
Analizzare un database di milioni di osservazioni non è un grosso problema per i metodi statistici classici (ad es. campionando le unità). Per i metodi di ML una grande numerosità delle osservazioni è una necessità e non un problema. Viceversa, se si hanno migliaia di variabili, i metodi classici sono difficilmente applicabili, mentre i metodi di ML potrebbero essere applicati con più efficacia e successo passando prima per una riduzione delle variabili di input.
Due approcci diversi:
- Sfruttare le ridondanze nei dati di input, creando un insieme più piccolo di nuove variabili (feature extraction). (non richiede una variabile target)
- Visualizza dati ad alta dimensionalità;
- Recuperare la dimensione essenziale dei dati;
- Ridurre i big data a dimensioni gestibili.
- Mantenere solo le caratteristiche più significative del set di dati originale (feature selection). (richiede una variabile target)
- Tramite la target individua le caratteristiche irrilevanti;
- Riduce i big data a dimensioni gestibili;
- Semplifica il modello per ottenere una migliore interpretazione;
- Migliora le prestazioni del modello predittivo;
Modelli applicabili
Inizialmente si usavano modelli singoli, ma sono poco efficaci. Poi si è passati ai modelli ensemble. Ensemble learning: se l'obiettivo è l'accuratezza della previsione, unisci insieme molti modelli di previsione. In generale, gli algoritmi di previsione che più frequentemente vincono le sfide su Kaggle o hanno vinto il premio Netflix fondono più modelli insieme (Töscher et al. 2009). Le Random Forests hanno esteso gli alberi decisionali con centinaia di alberi randomizzati. Il Gradient Boosting ha esteso gli alberi decisionali con centinaia di alberi deboli sequenziali. Le Reti Neurali possono essere viste come migliaia di semplici modelli che lavorano insieme. Questi modelli non richiedono alcuna ipotesi distributiva per le variabili di input e la variabile target. Il modello necessita di una quantità di dati sufficiente ad assicurare la convergenza alle corrette stime dei parametri. È molto complicato misurare l'importanza delle variabili esplicative.
Analisi dei testi dei Social Media
Web Brand Reputation, Brand Protection ed Analisi dei competitor; Ricerche di mercato; monitoraggio di fenomeni sociali; Sondaggi di opinione; Analisi e valutazione dei servizi. A differenza di una indagine tradizionale che prevede al massimo 1-2 migliaia di contatti, attraverso i social networks siamo in grado di analizzare anche milioni di post. Ogni giorno su Twitter vengono inseriti circa 140 milioni di tweets (nel mondo, rilevazione 2011).
Sentiment Analysis
Con il termine Sentiment Analysis ci si riferisce a quelle tecniche in grado di estrarre, analizzare e classificare in modo automatico le opinioni espresse a partire da un testo scritto, generalmente presente sul WEB. Noi in questa presentazione considereremo i tweet e distingueremo tra opinioni positive e opinioni negative. I tweet, a causa della loro brevità, sono poco strutturati, spesso ironici o allusivi. Utilizzano un linguaggio ricco di metafore e riferimenti. I testi spesso non contengono frasi compiute e sono molto legati ai fatti del giorno. L’utilizzo di ontologie, regole, liste di termini ‘positivi’ e ‘negativi’, è difficilmente applicabile.
Intelligenza Artificiale
Pepper robot è il robot ‘social’ di Softbank. Robot Pepper è progettato per comunicare con le persone. Questo simpatico robot con tablet sul petto invita a interagire. Non può lavare e cucinare, ma può assicurarsi che tu non dimentichi nulla. Può cercare cose per te su Internet, ricordarti i tuoi appuntamenti e giocare con te. Riconosce le tue emozioni e, ad esempio, suonerà una bella canzone quando sei triste. Può anche avere piccole conversazioni con te. Tutti i Pepper sono connessi tramite il Cloud, quindi impareranno gli uni dagli altri e miglioreranno sempre di più.
Cosa sono i database?
I database nascono per funzioni diverse da quelle statistiche e originariamente erano file testuali molto semplici che poi venivano appaiati a una guida della lettura dei database (es: da colonna 30 a 37 c’è l’informazione sul nome). I database sono file strutturati che contengono collezioni di records (contenenti i dati) ma anche informazioni ausiliarie e metadati:
- Schema - descrizione della struttura del database (rende possibile l’indipendenza dei dati dai programmi)
- Indici, report, moduli…
Vantaggi dei Database rispetto alla memorizzazione semplice su file
- Dati integrati in un unico sistema: il database
- Indipendenza del formato dei dati dall’ambiente applicativo - è il Management System ad accedere ai dati e non i programmi applicativi.
- Meno duplicazioni - un’unica memorizzazione fisica dei dati
- Gli utenti e i programmi accedono ai dati facilmente, attraverso una tecnica standard, un linguaggio indipendente dal data-base. Quindi, per accedere al database mi basta conoscere il linguaggio di programmazione che è lo stesso per tutti i database.
Il Database Management Systems diventa, quindi, l’intermediario tra l’utente e il database, quindi, non è necessario avere grandi competenze per gestire i database.
Database e granularità
Il database rappresenta una struttura in grado di memorizzare e rendere facilmente disponibile l’informazione di interesse per l’utente. La granularità dipende dal problema che si sta affrontando ed è data dal massimo livello di dettaglio raggiungibile nel database.
Componenti di un DB
- Dati: rappresentati da più tabelle una tabella di dati è composta da righe e colonne. Le colonne sono chiavi o attributi e le righe sono record.
- Metadati: descrizioni della struttura del DB. Schema: definisce i nomi delle tabelle e delle chiavi. Tabelle di sistema - contengono i nomi delle tabelle utente, # e nomi delle chiavi, e per ciascuna tabella la chiave primaria.
- Indici: usati per l’accesso rapido ai dati. Permettono di esaminare un numero ridotto di righe e non tutta la tabella. Gli indici hanno un costo: devono essere aggiornati ad ogni modifica dei dati.
- Metadati applicativi: struttura e formato dei moduli, interrogazioni e report associati al database.
Transazioni
Vi sono programmi che realizzano attività frequenti e predefinite di interrogazione e aggiornamento del database. Esempi: versamento presso uno presso sportello bancario, emissione di certificato anagrafico, dichiarazione presso l’ufficio di stato civile, prenotazione aerea. Per transazione si intende una sequenza indivisibile di operazioni (o vengono eseguite tutte o nessuna) che hanno lo scopo di interrogare e aggiornare il database, se le operazioni vanno in porto, allora abbiamo aggiornato il dbs, altrimenti dobbiamo ripetere l’operazione. Questo viene fatto per evitare il rischio di perdere informazioni nel database se qualcosa va storto durante una delle operazioni intermedie, così si mantiene l’integrità del database. Altro elemento importante è la velocità, quindi deve essere possibile aggiornare il dbs in modo veloce, ad esempio: se devo aggiornare il numero di telefono di un cliente non posso dover scorrere tutti i record, quindi, ho bisogno di un sistema di indici che mi permetta di rintracciare in fretta quel cliente. Vediamo che sono stati aggiunti degli indici nella seconda tabella (1, 3, 2,…). Altro problema è che non conviene mettere tutte le informazioni in una tabella, per non avere tabelle enormi. Quindi le tabelle vengono suddivise in modo opportuno, facendo in modo che abbiano delle relazioni che permettono di ottenere le informazioni che vogliamo accedendo a più tabelle che non ripetano la stessa informazione. Queste tabelle sono legate da una chiave primaria, che individua il soggetto in modo univoco (non può essere la stessa per più clienti). Nell’esempio la chiave primaria è il numero di partita iva, che è a sua volta una chiave secondaria nella seconda tabella.
Accesso ai dati
- Con linguaggi testuali interattivi (SQL)
- Con comandi (come quelli del linguaggio interattivo) immersi in un linguaggio ospite (C, Cobol, etc.)
- Con comandi (come quelli del linguaggio interattivo) immersi in un linguaggio ad hoc, con anche altre funzionalità (p.es. per grafici o stampe strutturate), anche con l’ausilio di strumenti di sviluppo (p. es. per la gestione di maschere)
- Con interfacce amichevoli (senza linguaggio testuale) ad esempio ACCESS
Select -> selezioni i campi. From -> tabelle da cui seleziono i campi. Where -> pongo una condizione.
Componenti del Database Management System
Tre sottosistemi:
- Progettazione: strumenti per creare tabelle, interrogazioni, moduli, report. Basato su un linguaggio.
- Run-time: esegue le richieste di operazioni da effettuare sul database.
- Engine: riceve le richieste dal Run Time in termini di tabelle, righe e colonne e le traduce in comandi al sistema operativo o all’hardware del computer.
Il DMS engine gestisce anche l’esecuzione delle transazioni. Sequenza di passi da compiere per creare il database: Creare lo schema, creare le tabelle, definire le relazioni tra tabelle attraverso le foreign key, popolare le tabelle di dati, estrarre le informazioni di interesse dalle tabelle attraverso le interrogazioni.
Uno sguardo alla logica dei dati
Un'entità è una persona, un luogo, un evento o una cosa sulla quale noi intendono raccogliere dati (equivalente delle unità statistiche, es: studente). Ogni entità ha determinate caratteristiche note come attributi (che sarebbero le variabili, es: nome, numero di matricola, data di nascita). Una tabella contiene un certo numero di entità, che compongono il set di entità. I termini tabella e set di entità spesso vengono usati come termini intercambiabili. Una tabella è chiamata anche relazione.
Keys
Per evitare una ridondanza possiamo costruire più tabelle legate da una chiave. Una ridondanza controllata (attributi in comune) permette ai database relazionali di funzionare. La primary key (PKey) di una tabella appare di nuovo come legame (foreign key) in un’altra tabella. Se la foreign key contiene valori presenti nell’altra tabella oppure valori nulli si dice che le tabelle che presentano tale foreign key posseggono l'integrità referenziale.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Appunti di Data Mining
-
Appunti completi di Data mining
-
Appunti di Analisi dei Dati e Data Mining
-
Data Mining 1 - Appunti