Sei sulla pagina 1di 30

lOMoARcPSD|3137344

Data e text mining

TECNICHE PER IL DATA MINING (Università della Calabria)

StuDocu is not sponsored or endorsed by any college or university


Scaricato da Marco Alosa (marcoalosa93@gmail.com)
lOMoARcPSD|3137344

DATA MINING

Se il termine DATA significa dati, ovvero un insieme di informazioni formalizzate per la scoperta
della conoscenza di un dato dominio, il termine TO MINE, significa estrarre da una miniera. Quindi
il termine DATA MINING viene utilizzato per estrarre informazioni di uno specifico dominio di
conoscenza ed è uno strumento utile a supportare le decisioni in ambiti strategici. Con il termine
KDD (Knowlegde Discovery in Database) si intende tutto il processo di estrazione di conoscenza
applicato ai database o anche in generale a delle informazioni o a dati non strutturati; in sintesi si
può meglio dire che `e il processo che estrae conoscenza da alcuni pattern generati dai dati.
L’information retrivial è l'insieme delle tecniche utilizzate per gestire la rappresentazione, la
memorizzazione, l'organizzazione e l'accesso ad oggetti contenenti informazioni quali documenti,
pagine web, cataloghi online e oggetti multimediali.
L’information extraction avviene dopo aver fatto information retrivial, è ha il compito di estrarre
automaticamente informazioni strutturate da documenti non strutturati e / o semi-strutturati
leggibili da una macchina. Nella maggior parte dei casi questa attività riguarda l'elaborazione di
testi in lingua umana mediante l'elaborazione del linguaggio naturale (NLP). Con queste due
tecniche stiamo preparando i dati per la loro successiva analisi.
La Statistica Inferenziale è il procedimento per cui si inducono le caratteristiche di una
popolazione dall'osservazione di una parte di essa (detta "campione"), selezionata solitamente
mediante un esperimento casuale (aleatorio). Nella statistica inferenziale, l’approccio ad un
problema avviene formulando un’ipotesi. Nella statistica inferenziale quindi abbiamo un’ipotesi
formulata e tale ipotesi deve essere confermata o smentita osservando i dati.
La prima differenza che ha il Data Mining rispetto sia alla Statistica che a i DBMS è il fatto di
approcciarsi all’analisi dei dati in maniera opposta ovvero con un approccio bottom-up.
Un utile strumento di analisi dei dati sono le tecniche di Machine Learning, l'apprendimento
automatico, nasce dalla teoria che i computer possono imparare ad eseguire compiti specifici
senza essere programmati per farlo, grazie al riconoscimento di schemi tra i dati. Il Machine
Learning utilizza algoritmi che imparano dai dati in modo iterativo. Permette, ad esempio, ai
computer di individuare informazioni anche sconosciute senza che venga loro segnalato
esplicitamente dove cercarle. L'aspetto più importante del Machine Learning è la ripetitività,
perchè più i modelli sono esposti ai dati, più sono in grado di adattarsi in modo autonomo. I
computer imparano da elaborazioni precedenti per produrre risultati e prendere decisioni che
siano affidabili e replicabili. Grazie alle nuove tecnologie di elaborazione, il Machine Learning di
oggi non è il Machine Learning del passato. Questa scienza non è nuova ma sta acquisendo un
nuovo slancio. E sebbene molti algoritmi di Machine Learning siano in circolazione da molto
tempo, la capacità di applicare calcoli matematici complessi ai big data è uno sviluppo più recente.
Se data mining indica un approccio bottom-up all’analisi dei dati, il test mining è semplicemente
l’estensione del data mining all’analisi testuale. Il data mining nasce nel ‘93/’94 nelle prime
conferenze internazionali di Knowledge discovery (scoperta della conoscenza) di cui il data mining
rappresentò da subito il cuore. Il data mining può essere definito come uno strumento privilegiato
di business intelligence orientato a produrre dei risultati utili per decisioni a livello di marketing. Da
un punto di vista disciplinare il data mining include il machine learning, tecniche proprie dei sistemi
di gestione delle basi di dati, statistica, information retrivial ed elaborazione del linguaggio
naturale. Rispetto al data mining, la statistica e la gestione delle basi di dati utilizzano un approccio
differente nelle analisi dei dati detto anche approccio dell’inferenza, mentre il data mining usa
l’approccio dell’induzione. Se un linguaggio artificiale (come SQL) permette di interrogare una base
di dati per estrarre dei dati e quindi informazioni, e perciò realizza dell’inferenza, l’induzione è un
processo di estrazione di conoscenza, cioè si parte direttamente dall’osservazione della conoscenza

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

dei dati per scoprire regole, tendenze cioè per generare pattern di conoscenza ai quali si deve
conferire una validità generale per dati dello stesso tipo. Per questo non abbiamo a priori alcuna
informazione sui dati né tanto meno su quelle che possono essere le categorie di interesse che
devono essere scoperte. Non solo, ma dovremo anche scoprire come assegnare ciascun
documento a le categorie di pertinenza e questo è un tipico problema risolvibile con il data mining.
Un altro esempio potrebbe essere “Qual è il tipico profilo di un lettore di riviste di automobili?”
L’attenzione ricade su profilo, termine con il quale si indicano una serie di caratteristiche (sesso,
età, nazionalità, ecc…), e tipico, ovvero un insieme di caratteristiche che riuniscono sotto un unico
elemento una serie di soggetti (tutti i lettori che in media hanno tra i 18 e i 30 anni). Ora
immaginiamo di voler sottoporre ad analisi di data mining alcuni dati di una base di dati e
naturalmente questo richiede diverse attività di preparazione e trasformazione dei dati.
Immaginiamo di avere un data base le cui righe sono i clienti e, gli attributi le colonne con le
proprietà di questi. TABELLA
Anzitutto, nella preparazione dei dati è utile notare la parola chiave, ovvero l’attributo o l’insieme
di attributi che consente di identificare in maniera univoca una tripla all’interno di una tabella e
verificare la correttezza dei dati inseriti, ripulendoli anche da eventuali errori di registrazione,
evitando quindi l’inconsistenza dei dati. In questo caso, due potrebbero essere le possibili
operazioni o sostituire l’ultima istanza JONSON con l’istanza JOANSON, oppure non essendo certi
della loro consistenza, nel dubbio, eliminare l’istanza ambigua. L’eliminazione è tanto più
necessaria quanto più l’attributo acquisito è probabile che sarà ritenuto un attributo importante
per la successiva analisi di questi dati, mentre se sappiamo già che un valore di una tripla non sarà
significativo per l’analisi potremmo “normalizzare” tale dato sostituendolo con un valore mediano
della colonna, non permettendo la distribuzione dei valori corrispondenti all’attributo. Nell’analisi
dei dati quasi sempre sarà presente una colonna di attributi binari, ovvero un attributo con valori 0
– 1, SI – NO; altre operazioni di preparazione dei dati per la loro analisi potrebbero riguardare gli
indirizzi come via, numero civico, piazza, trasformando il campo dell’indirizzo in un campo che
esprime un concetto più alto in termini di estrazione, ad esempio, potremmo sostituire il nome
della via o del numero civico con il nome del comune, della provincia o della regione. Ma perché
dovrebbe risultare utile tale operazione? Naturalmente anche in questo caso dipende dal profilo
tipico che stiamo cercando, ovvero dipende dall’indagine che intendiamo portare avanti. Questa
perdita di risoluzione e di astrattezza, dal particolare al generale, è utile in quanto l’indirizzo ha un
alto potere discriminante ma un basso potere caratterizzante, ovvero consente di distinguere nel
particolare i singoli soggetti ma non è significativo in base alla ricerca. Naturalmente dipenderà
nuovamente dall’indagine che intendiamo portare avanti, ma soprattutto questo ci fa capire che il
processo di conoscenza non è totalmente automatico di cui, di tale processo, il dato mining
rappresenta solo una parte del processo di scoperta della conoscenza. Un altro dato che potrebbe
essere preparato al mining è la conversione della data di nascita in età, perdendo relativamente
alcune informazioni ma aumentando la capacità di analisi per il processo di scoperta della
conoscenza, e naturalmente anche in questo caso la conversione dipende dal tipo di ricerca che si
intende attuare e realizzare. Un processo fondamentale per l’analisi dei dati è quello che sarà
realizzato prima di sottoporre gli stessi dati ad analisi ed è la normalizzazione, ovvero far si che i
valori di un dato possono risiedere all’interno di un intervallo i cui estremi non sono noti o almeno
uno dei due non è noto. Quindi, normalizzare significa trasformare i valori tale che ciascuno dei
valori è trasformato all’interno di un intervallo chiuso che per convenienza è l’intervallo numerico
tra 0 e 1. Non esiste un’unica funzione di trasformazione dei dati per la loro normalizzazione, una
soluzione potrebbe essere la divisione tra il valore interessato e il valore massimo, e alla fine il
valore massimo avrà valore 1 e tutti gli altri meno di 1. Un’altra soluzione potrebbe essere dividere
il valore singolo per la somma dei valori, fornendomi anche una distribuzione. Un’altra soluzione

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

potrebbe essere normalizzata rispetto al minimo e al massimo in modo da avere gli intervalli 0 e 1
e i valori all’interno mentre le due trasformazioni di prima non avremo i valori racchiusi
nell’intervallo 0 – 1. Se vogliamo avere il valore chiuso nell’intervallo prenderemo il valore meno il
minimo e dividere il massimo per il minimo.
Un’altra operazione è la cosiddetta uniformazione di scale realizzabili per esempio scalando di un
fattore costante pari a 1000 i valori degli attributi debito e credito e questa operazione senza
dubbio dipende nuovamente dagli obiettivi di analisi e confrontare i dati su una stessa scala.
Un ultimo processo di preparazione dei dati potrebbe riguardare la conversione dei campi booleani
del campo che individua il tipo di lettura. Immaginiamo di avere nuovi attributi, tutti binari e solo
un campo categorico. L’intera tabella deve essere binaria e perciò l’ultimo campo categorico va
trasformato in binario. Se il campo è categorico conosciamo a priori i valori del campo e
supponiamo che assume V valori.
Un primo ambito di applicazione del data mining è stato il Market Analisis ovvero “l’analisi del
carrello della spesa” che ha generato una serie di regole utili all’analisi dei dati tra cui le cosiddette
regole associative. In particolare il Market Analisis ha riguardato il target marketing, determine
customer, cross-market analisis (analisi dei dati incrociati), ustomer segmentation (gruppi di clienti
con profilo simile). Un’altra classe di applicazione del data mining è il Risk Analisis ovvero l’analisi
del rischio, oppure anche la Fraud Detenction ovvero l’identificazione delle arte di credito, a livello
energetico, assicurativo, ecc.
Il primo elemento della classe Market Analisis è il Customer profiling ovvero la profilazione
dell’acquirente, ovvero quali sono le caratteristiche in termini di composizione, attributi e valore
ovvero le caratteristiche descrittive e/o discriminanti o per singoli o per gruppi di acquirenti. Ciò è
molto utile per guidare la scoperta della conoscenza dei claster in un database oppure anche per
descrivere le classi target per un processo di classificazione e quindi anche per la descrizione dei
claster stessi. Gli obiettivi in generale sono identificare gli obiettivi dei clienti, i prodotti migliori per
i clienti e usare tecniche di predizione per scoprire quali fattori possono attrarre nuovi acquirenti.
Con analisi del rischio parliamo di rischio e pianificazione finanziaria, analisi del flusso di cassa, e
analisi principalmente di natura di data opportunità all’ambito economico. Fraud detection è un
altro ambito di appartenenza dell’analisi del data mining per le frodi realizzate in vari ambiti
d’approccio è costruire dati storici per realizzare un modello di comportamento lecito per
supportare l’identificazione delle distanze simili attraverso modelli di data mining e riuscire ad
anticipare eventuali frodi elettroniche (DMI-INTRO). Altri ambiti di applicazione del data mining
sono anche lo Sport, l’Astronomia e l’Internet Web Surf Aid.
Una delle tante varianti del processo di estrazione della conoscenza è quella del KDD process. Una
delle tante varianti perché le differenti varianti sono costruite sulla base di alcune fasi ma al di là
delle differenti modalità di rappresentazione l’obiettivo è identico. Passiamo a riconoscere
anzitutto le macro fasi ovvero all’inizio i dati e in alto i pattern di conoscenza o conoscenza fruibile
per supportare le decisioni. All’inizio abbiamo sicuramente una fase di riconoscimento dei dati
rilevanti per risolvere determinati problemi. Le sorgenti dei dati spesso sono eterogenee ovvero
per sorgenti informative eterogenee o dislocate ovvero sorgenti che si trovano fisicamente distanti.
Proprio perché eterogenee, ovvero dislocate, tali sorgenti probabilmente saranno generati da
diversi attori e in virtù di ciò i differenti attori potrebbero aver generato differenti schemi di
rappresentazione e elaborazione. Si dice che due basi di dati sono differenti quando esiste almeno
una tabella con schemi differenti ovvero differenti a causa della presenza di attributi diversi nel
nome o nel numero. Questo crea il problema chiamato di integrazione delle sorgenti. In
contrapposizione, i dati consolidati indica che sono stati raccolti dati che provengono da differenti
sorgenti li abbiamo integrati e sono stati uniformati tramite alcune regole. Ma consolidamento e
integrazione non sono sufficienti per la preparazione dei dati, che abbiamo visto essere molteplici

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

le soluzioni di preparazione. Soluzione e pre-processing si concludono con la trasformazione dei


dati in una forma struttura per essere analizzati dal data mining. Questo ci fa capire che non basta
avere delle sorgenti di dati strutturati per essere sottoposte ad analisi di data mining. Per
intenderci, se intendiamo fare data mining su dati testuali questi dovranno essere trasformati in
dati strutturali. Così l’input primario per l’analisi non saranno altro che delle tabelle segue il flusso
etichettato “data mining” e l’afflusso, l’output di pattern come per esempio modelli di
classificazione i cui pattern sono regole di classificazione. Il passo finale è l’interpretazione e la
valutazione, ovvero capire quanto sono indicativi, utili, buoni i risultati ottenuti. Per realizzare bene
questa fase abbiamo bisogno di risorse sia tecniche di valutazione qualitativa o quantitativi, per
quantificare quanto sono buoni i pattern (e si ricorre a metodi statistici). Se le altre fasi le abbiamo
analizzate c’è un elemento fondamentale da descrivere ovvero quello della selezione. Tale attività
avviene spesso nella fase di data mart ovvero una tabella che corrisponde ad un tema, un topic di
interesse ed è il risultato di un’elaborazione di dati organizzati in un dato warehouse. Il dato
warehouse è un archivio integrato che ha inoltre funzionalità di online analiticol processing,
all’interno del quale possiamo realizzare una serie di analisi volte a chiarire se esistono delle
relazioni tra variabili. Nel condurre questa analisi usiamo quello che viene chiamato cubo
multidimensionale, molto simile ad una tabella in exel. Quindi, raccolta dei dati, integrazione e
consolidamento, pre processing trasformazione dei dati, data mining e post mining interpretare
quantitativamente e qualitativamente la bontà, la significatività per i pattern di conoscenza. Così
l’analisi è costruita su tre livelli: ambito di applicazione (cross selling?, quality control?, Fraud
prevention?), operazioni che si intendono usare in relazione all’ambito di applicazione (modelli
predittivi?, link analysis?, deviation detection?) e tecniche (classificazione?, clastering?, predizione
dei valori?, associazioni?). Con i termini Garbage e Garbage out intendiamo letteralmente
spazzatura che entra ed esce. Questa espressione indica proprio che la fase di pre-processing se
non è realizzata adeguatamente, non possiamo aspettarci buoni risultati dal data mining. La qualità
dei pattern di conoscenza è strettamente legata alla qualità dei dati nativi ma anche in fase di pre-
processing. Cosi altre informazioni del consolidamento dei dati riguarda la natura delle sorgenti
eterogenee e possono essere tali perché possono essere di diversa natura per schemi, o anche non
strutturati. In generale quando parliamo di consolidamento si parla di una prima analisi degli
attributi in relazione all’interesse, eliminare gli outliers, determinare probabilità a priori delle varie
categorie, ridurre la dimensionalità degli attributi, controllando il lessico terminologico.
L’approccio computazionale è quello di selezionare anzitutto un attributo sulla base di una qualche
ipotesi sui dati che comunque resta sempre un approccio induttivo per cui non ce nessuna ipotesi
da confermare o rigettare ma navigare i dati per estrarre conoscenza. In particolare quello che
vogliamo ottenere da un algoritmo di mining è la capacità di saper predire il valore per quel
particolare campo target in relazione ad altri campi target. Quindi dato un campo target che riflette
una qualche conoscenza nella esigenza di dover ordinare i dati in gruppi di insiemi, chiedere
all’algoritmo di mining di predirne il valore di questo campo target per nuovi oggetti di cui appunto
non conosciamo il valore. Questo è possibili spiegarlo attraverso delle regole (else restituisci
questo o if vuole una certa condizione). Ci sono poi dei task di mining che chiamiamo esplorativi
dove l’obiettivo è diverso rispetto al precedente perché non abbiamo informazioni a priori su
quello che può essere l’attributo da extra su questo campo target rispetto al quale indurre delle
regole di predizione. I metodi esplorativi devono cercare dei pattern di conoscenza dei dati come
tuple, record, oggetti o attributi. Spesso ci si riferisce a queste parti esplorative come approccio di
apprendimento non supervisionato, cioè che ignori qualsiasi tipo di informazione a priori che
possano riguardare la scoperta dei pattern di conoscenza.
Un processo di clustering è un processo di identificazione di gruppi di tuple, di oggetti omogenei
rispetto ad un qualche criterio di affinità.

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

Un altro concetto è l’associazione in termini di attributi o regole di associazione dove le


osservazioni riguardano principalmente gli attributi dalle quali è possibile estrarre pattern di
conoscenza sulla co-frequenza dei termini.
L’ultima fase del processo di data mining è quella di interpretazione dei dati, selezionando
soprattutto gli errori valutiamo l’accuratezza dell’algoritmo, validità, utilità potenziale.

STATISTICA

In statistica si fa riferimento a popolazione e campioni per indicare l’insieme dei dati e quelli
soggetti ad analisi. L’approccio della statistica è un approccio di tipo inferenziale rispetto al data
mining, si parte da un’ipotesi e attraverso l’osservazione dei dati si cerca una conferma o una
smentita sulla base delle ipotesi formulate. La popolazione rispecchia un numero di entità di
interesse, mentre il campione è una parte estratta che dovrebbero essere rappresentative di tutta
la popolazione. La statistica è caratterizzabile in termini di randomizzazione, casualità, ovvero una
variabile i cui valori sono modellati tramite casualità e pertanto essi saranno casuali. Un altro
elemento tipico della statistica sono i parametri, ovvero le misure descrittive di tipo numerico.

CAMPIONAMENTO

Il problema del data mining è di identificare un modello il piu` vicino ai dati. La ricerca del modello,
quindi, `e un compito importante per questa disciplina come anche pero` la ricerca
dell’appropriatezza del modello rispetto a pochi dati iniziali. Un modello va inizialmente creato e
modellato in un insieme ristretto di dati derivanti da un campionamento; una volta che il modello
`e stato calibrato viene esteso a tutti i dati a disposizione. Caratteristica di un modello `e la capacità
di etichettare correttamente pattern mai osservati, ovvero di generalizzare. Il numero di errori per
un modello `e l’errata attribuzione di una osservazione ad un gruppo (nel caso ad esempio di
problemi di clustering). Il problema `e che se un modello `e molto flessibile si adatta al campione
osservato (overfitting) e di conseguenza perde la capacita` predittiva o di generalizzazione. Il nostro
obiettivo si basa sulla ricerca di un modello che non sia troppo flessibile ma che descriva bene i
dati. Quando sperimentiamo un modello nuovo rischiamo di commettere degli errori e ne
commettiamo di piu` se esso si adatta troppo ai dati. Per questo motivo data una popolazione
statistica si potrebbe pensare di mettere in atto una procedura di scelta di un sottoinsieme di unità
statistiche rappresentative da tale popolazione. Si definisce come tecnica di campionamento ogni
procedura di scelta di unita` da una popolazione statistica. Ad ogni campionamento restera`
associato un insieme di sottoinsiemi possibili. Tale insieme viene chiamato spazio campionario e
ogni elemento di tale spazio verrà denominato campione. Esistono diverse tecniche di
campionamento e queste tecniche nascono per permettere la creazione di un modello di data
mining in un numero ridotto di righe (campione). Diverse tecniche sono state studiate per ottenere
un campionamento il piu` possibile corrispondente alla popolazione, [99] e qui illustreremo le piu`
note partendo da un’introduzione del concetto di overfitting.
TRAINING AND TEST O HOLDOUT
Questa `e una delle tecniche piu` semplici per stimare l’errore reale: si divide l’insie- me dei
campioni in due parti; una di queste, detta training set, viene utilizzata per la costruzione del
modello mentre l’altra, il test set, viene utilizzata per la successiva verifica. Le due partizioni
dell’insieme devono essere estratte casualmente per poter ottenere campioni il piu` possibile
rappresentativi dell’insieme; inoltre i casi del test set devono essere indipendenti dai casi di
training, ovvero l’unica relazione fra i due gruppi deve essere l’appartenenza alla stessa

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

popolazione. Tipicamente l’insieme dei campioni viene diviso in due terzi per il training set e un
terzo per il test set.
K-FOLD CROSS VALIDATION
Si indichi con N il numero delle osservazioni del campione e con K il numero degli esperimenti. Nel
caso in cui si disponga di un piccolo numero di dati, l’utilizzo del metodo di Training and Test può
portare al rischio di avere una partizione non significativa dei dati o della popolazione, per ottenere
la stima del tasso di errore del modello. Un modo semplice per evitare questo, `e quello di creare
più partizioni casuali e ripetere su ciascuna di queste la procedura di Training and Test. Con la K-
fold Cross Validation si divide l’insieme dei campioni in K partizioni indipendenti tra loro delle
stesse dimensioni. A ogni ripetizione della procedura una partizione viene utilizzata per il test e le
rimanenti per il training, con cui costruire il classificatore. Otteniamo quindi N stime del tasso di
errore dei campioni di test (PE): il valore medio di questi `e chiamato tasso di errore cross-validato
(CV) e fornisce una stima del tasso di errore reale ancora più attendibile di quella ottenuta con il
Training and Test. La tecnica di stratificazione o anche di multicross-validation è una estensione
della cross-validation. Nella cross-validation stratificata, i sottoinsiemi sono partizionati in modo
tale che la distribuzione degli oggetti rispetto alla classe da predire in ogni fold, è
approssimativamente la stessa riscontrabile nei dati iniziali. Altri metodi simili alla N-fold cross-
validation includono il bootstrapping ed il leave one out, in cui vengono applicati diversi criteri di
scelta ed utilizzo dei vari sottoinsiemi. In generale la tecnica di cross-valiation stratificata è
raccomandata per stimare l’accuratezza di un classificatore, anche se la potenza computazionale
del sistema permette di usare più sottoinsiemi, a causa del suo errore e varianza relativamente
bassi. L’uso di queste tecniche per stimare l’accuratezza di un classificatore aumenta il tempo
complessivo di computazione. Tuttavia è indispensabile per poter effettuare una scelta tra vari
classificatori.
LEAVE ONE OUT
Nel caso in cui le partizioni N diventino uguali a K (dove K è il numero degli esperimenti) il
campionamento prende il nome di leave one out. Per chiarire consideriamo un data-set con N
elementi e formiamo N campioni. Per ogni campione usiamo N −1 elementi per il training e i
rimanenti per il testing. L’errore medio, in genere `e la media degli errori sugli elementi del test.
BAGGING
Dato un insieme S (Sample) di s oggetti, il bagging opera nel modo seguente: alla t-esima
iterazione, con 1 ≤ t ≤ T, un training set S t viene campionato con rimpiazzamento dall’insieme
originale S. Dato che viene impiegata la tecnica di campionamento con rimpiazzamento, alcuni
oggetti dell’insieme originale S possono non essere inclusi in S t, mentre altri possono occorrere più
di una volta. Un classificatore Ct è allenato per ogni t. Per classificare un oggetto sconosciuto X,
ogni classificatore Ct fornisce la sua classe di predizione che conta come un voto. Il classificatore
bagged conta semplicemente i voti, ed assegna ad X la classe con il maggior numero di voti. Il
bagging può essere applicato anche per la predizione di valori continui, prendendo la media dei
valori predetti da ogni classificatore.
BOOSTING
In questo caso vengono assegnati dei pesi ad ogni training sample. Una serie di classificatori viene
estratta da tali sample. Dopo che un classificatore C t è stato estratto, i pesi vengono aggiornati per
permettere al successivo classificatore, Ct+1 di fare maggior attenzione agli errori di
misclassificazione commessi da Ct. Il classificatore boosted finale combina i voti di ogni
classificatore individuale, dove il peso di ogni voto dato dal classificatore è in funzione della sua
accuratezza. Anche in questo caso questo metodo può essere esteso alla predizione di valori
continui.

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

INFERENZA

Raramente si studia un campione per descriverlo ma piuttosto l’aspirazione finale `e quella di


trarre inferenze sulla popolazione dalla quale il campione `e stato estratto. Poiché studiare una
popolazione intera `e, nella maggior parte dei casi troppo costoso, `e necessario ricorrere a
qualche metodo che consenta di generalizzare i risultati ottenuti analizzando il campione, cioè di
estenderlo alla popolazione di riferimento. Nel campo dell’inferenza statistica una importante
famiglia di distribuzioni unimodali simmetriche `e costituita dalla distribuzione gaussiana, nome
derivante dal matematico tedesco Carl Friedrich Gauss. Attualmente le distribuzioni di questo tipo
sono chiamate distribuzioni normali in quanto inizialmente si riteneva che esse rappresentassero la
norma per molti tipi di variabili.
La distribuzione normale `e una delle piu` importanti distribuzioni statistiche, soprattutto perché
molte variabili osservate hanno degli andamenti simili alla distribuzione normale, e a causa del
teorema limite centrale, i metodi di campionamento in media seguono una distribuzione normale
Pre-elaborazione dei dati
Un problema che si incontra ogni volta che si raccolgono i dati `e quello delle in- formazioni
mancanti. Questa fase aiuta anche, in maniera retroattiva, a migliorare (se necessario) la qualità
della sorgente dati. Inoltre, in alcuni casi si permette di effettuare anche una scelta tra variabili utili
e inutili al fine dell’analisi (per esempio, eliminando feature con molti valori mancanti). E `
importante percio` ricordare che esiste una fase di pre-elaborazione necessaria ad eseguire:
 data cleaning (pulitura dei dati): riempire i campi con i valori mancanti, lisciare i dati
rumorosi, rimuovere i valori non realistici;
 data integration (integrazione dei dati): integrare dati provenienti da database multipli
risolvendo le inconsistenze;
 data transformation (trasformazione dei dati): preparare i dati per l’uso di alcuni particolari
algoritmi di analisi;
 data reduction (riduzione dei dati): ridurre la mole dei dati o il numero delle variabili in
input senza compromettere la validita` delle analisi.
Data Cleaning
Le attivita` eseguite durante il passo di data cleaning sono:
 inserire dei valori stimati per gli attributi che hanno dati mancanti;
 identificare gli outliers (dati molto diversi dai valori attesi);
 eliminare il rumore presente nei dati;
 correggere le inconsistenze.
Alcuni algoritmi di analisi hanno dei meccanismi per gestire set di dati in presenza di valori
mancanti o di outliers. Essi operano pero` senza conoscenza del dominio applicativo. I risultati
migliori si ottengono con una pulizia a priori dei dati, con l’aiuto di esperti del dominio applicativo.
Data Missing
Si possono considerare varie ragioni per cui i dati mancano:
 malfunzionamento di qualche apparecchiatura;
 dati inconsistenti con altri e quindi cancellati in una fase precedente; dati non immessi
perch é non obbligatori.

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

Ci si puo` chiedere se queste mancanze sono casuali o no. Se un valore non `e presente perché un
determinato test non `e stato eseguito in maniera deliberata, allora la presenza di un attributo
mancante puo` implicare un’ampio spettro di possibili soluzioni.
Le possibili soluzioni quando si hanno dati con valori mancanti possono essere:
 ignorare le istanze con valori mancanti:
a) questa tecnica non `e molto efficace, in particolare se la percentuale di tuple con dati
mancanti `e alta;
b) questa tecnica si usa spesso quando il dato che manca `e il target (esempio: la classe in un
problema di classificazione);
 riempire i valori mancanti manualmente considerando quelli a disposizione:
a) questa tecnica `e noiosa, e potrebbe essere non fattibile;
 usare un valore costante come unknown oppure 0 o null (a seconda del tipo di
dati):
a) potrebbe alterare il funzionamento dell’algoritmo di analisi, meglio allora ricorrere ad
algoritmi che gestiscono la possibilità di dati mancanti;
b) `e pero utile se la mancanza di dati ha un significato particolare di cui tener conto;
 usare la media dell’attributo al posto dei valori mancanti (si veda la Sezione 2.3.4 nella
pagina seguente);
 per problemi di classificazione, usare la media dell’attributo per tutti i campioni della stessa
classe (`e una versione perfezionata del metodo della media per problemi di
classificazione);
 predire il valore dell’attributo mancante sulla base degli altri attributi noti:
a) la predizione puo` avvenire usando regressione lineare, alberi di classifica- zione, etc.;
b) si usano algoritmi di data mining per preparare i dati in input ad altri algoritmi di data
mining.
Dati inaccurati
Cause specifiche delle inesattezze possono essere:
 errori tipografici in attributi nominali: coca cola diventa coccola;
 inconsistenze: pepsi cola e pepsicola (il sistema di data mining pensa si tratti di prodotti
diversi);
 errori tipografici o di misura in attributi numerici (alcuni valori sono chiaramente poco
sensati, e possono essere facilmente riconosciuti);
 errori deliberati: durante un sondaggio, l’intervistato puo` fornire un CAP falso;
 alcuni errori causati da sistemi di input automatizzati: se il sistema insiste per un codice ZIP
(come il CAP ma negli USA) e l’utente non lo possiede?
Occorre imparare a conoscere i propri dati per capire il significato di tutti i campi e individuare gli
errori che sono stati commessi. Semplici programmi di visualizzazione grafica consentono di
identificare rapidamente dei problemi per esempio attraverso l’osservazione della distribuzione
verificando la consistenza con cio` che ci si aspetta ed eventualmente cercando di capire cosa ci sia
di sbagliato (outliers).
Discretizzazione
La discretizzazione (binning) `e una tecnica per ridurre la variabilita` (e quindi il rumore) nei dati.
Per rumore si intende un errore casuale su una variabile misurata (tipicamente numerica) ed `e
una delle possibili cause di dati inaccurati. Il rumore puo` essere dovuto a:
 apparati di misura difettosi;
 problemi con le procedure di ingresso dati;
 problemi di trasmissione;
 limitazioni tecnologiche.

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

Si considerano tutti i possibili valori (con ripetizioni) assunti dall’attributo e li si ordinino.


Chiamiamo ai con i ∈ [1,...,N] i dati input, gia` ordinati. Si fissa un valore d per la profondita`
(depth) e si divide l’intervallo [a0, . . . ,aN ] in intervalli (bin) consecutivi disgiunti, ognuno dei quali
contenente all’incirca d elementi. Quindi ci saranno circa N intervalli chiamati I 1,...,Im. Ad ogni ai
sostituiamo d un valore derivato dal corrispondente intervallo tramite la funzione di smoothing
v(i).

Analisi esplorativa
Un dataset in genere rappresenta un sottoinsieme o un campione di una serie di eventuali
osservazioni. La stima della popolazione dal campione avviene attraverso alcuni parametri
statistici. In genere non si conosce molto riguardo alla popolazione che si va a studiare e quindi per
cominciare sul dataset si raccolgono informazioni che possono essere adottate per rappresentare
l’intera popolazione. Qui di seguito illustreremo le statistiche e le caratteristiche di una
distribuzione che formano la base dalla quale partire per analizzare distribuzioni congiunte di due
o piu` variabili.
Tipi di attributi
Molti dataset possono essere rappresentati sotto forma di tabelle. Una tabella `e una matrice n ×
d, dove n `e il numero di righe e d `e il numero di colonne. Le righe denotano una raccolta di
istanze, che possono anche essere chiamate a titolo di esempio, registrazioni, transazioni, oggetti,
operazioni, features vector, ecc. Le colonne denotano una collezioni di attributi, che possono
essere anche chiamate dimensioni, variabili, caratteristiche, proprietà, campi, ecc. Ad esempio,
prendiamo in considerazione un campione di dati demografici come quelli riportati nella Tabella
2.1, che contengono informazioni come l’età, il sesso, lo stato civile, l’istruzione e il reddito per gli
individui in una popolazione. Si noti che alcuni dati possono essere mancanti (contrassegnati con
null); per esempio, non possiamo sapere l’età per i single con ID 149 (si veda la Sezione 2.3.2 nella
pagina 18). Gli attributi possono essere di diversi tipi a seconda del loro dominio, vale a dire, a
seconda dei tipi di valori che essi possono assumere. Un attributo categorico `e uno che ha un
valore di dominio composto da un insieme finito di simboli. Per esempio, sesso, stato civile, e
l’istruzione sono attributi categorici, in quanto dominio (Sesso) = (F, M), il dominio (Stato) = (Single,
Sposato), e il dominio (Istruzione) = (Superiore, Laurea, Master, Dottorato (PhD), Altro). Gli attributi
categorici possono essere di due tipi.
 Nominale. Un attributo `e chiamato nominale, se i suoi valori non possono essere ordinati.
Ogni valore `e un simbolo distinto e l’unica operazione ammessa `e la verifica se due valori
sono uguali (si veda la Sezione 3.1 nella pagina 37). Un esempio di questi tipi di attributi `e
l’attributo sesso.
 Ordinale. Un attributo `e chiamato ordinale se i suoi valori sono dei simboli ma che in piu`
possono essere ordinati in qualche modo (per esempio, l’istruzione, dal momento che
possiamo affermare che qualcuno che ha una laurea `e piu` istruito di qualcuno con il
diploma di scuola media superiore. Allo stesso modo, un dottorato di ricerca si ottiene
dopo un Laurea e un Master solo dopo una laurea). La distinzione tra attributi nominali ed
ordinali non `e sempre chiara.
Un attributo numerico `e un tipo di attributo che ha un dominio a valori reali o interi. Ad esempio,
l’età e il reddito nella Tabella 2.1 sono attributi numerici, in quanto dominio(eta`) =
dominio(reddito) = R+ (l’insieme di tutti i positivi reali). Gli attributi numerici possono essere di due
tipi.
1. Intervallo. Questi tipi di attributi sono confrontabili solo a differenze perch é esiste il concetto di
distanza 3.1 (somma o sottrazione). Assumono valori ordi- nati e ottenuti da precise unita` di

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

misura. Le altre operazioni aritmetiche come divisione e prodotto non hanno senso, e non esiste
un valore zero significativo. Per esempio per la temperatura, misurata in intervalli di scala ◦C o ◦F
non `e molto significativo confrontare due misurazioni fra di loro dicendo che 20 ◦C `e “due volte” il
valore di 10◦C.
atio. La maggior parte degli attributi numerici sono tali che possiamo confron- tarli fra di loro in
base ai rapporti. Questi attributi assumono valori ordinati e ottenuti da precise unita` di misura,
per cui esiste un valore zero ben definito. Tutte le operazioni aritmetiche, su questi attributi hanno
senso. Per esempio, possiamo dire che chi `e ha 20 anni `e due volte piu` vecchio di qualcuno che
ha 10 anni. In pratica, la maggior parte delle volte gli algoritmi di data mining trattano solo due
classi di attributi:
 nominali (chiamati anche categoriali o discreti);
 numerici: corrispondono ai tipi ordinale, intervallo o ratio a seconda del tipo di algoritmo;
 assumono un qualunque valore numerico;
 bisogna stare attenti al fatto che l’algoritmo non faccia delle operazioni che non hanno
senso sul tipo di dato in questione.
Analisi univariata
I dati che vengono presi in considerazione dall’analisi esplorativa si presentano come una tabella
incrociata multivariata a doppia entrata con mutua-relazione di riga. Una peculiarita` dell’analisi
multivariata rispetto alla comune statistica univariata `e la ricchezza di tecniche per la sintesi dei
dati. Ma nel caso multivariato l’esigenza di sintesi diventa molto piu` forte: in genere ci si trova di
fronte a notevoli quantita` di dati che presentano un numero spesso assai grande di variabili per
ogni caso. In questo modo tutte le semplici tecniche grafiche usate per “visualizzare” la
distribuzione dei dati univariati vengono meno. Ancora se le variabili sono solo due, o tre, si puo`
ricorrere a delle rappresentazioni dei casi come punti del piano (scatter- plot) o dello spazio (ma
qui si ha bisogno di una rappresentazione prospettica). Ma cosa fare se le variabili sono piu` di tre,
o, come spesso accade, molte piu` di tre?
Per questo nel tempo sono emerse diverse tecniche per la sintesi e l’esplorazione dei dati e
tecniche per classificare i dati in gruppi in qualche modo omogenei.
Primo obiettivo `e la costruzione della Tabella (o Distribuzione) di Frequenza. Si tratta cioè di
contare quante volte ciascuna modalità della variabile si presenta nella popolazione o nel
campione che si sta studiando.
Con l’analisi univariata si assume che dai nostri dati di una matrice di n righe che descrivono
diverse istanze, ci si concentri sull’analisi di un solo attributo nu- merico, che si tratta come una
variabile casuale x. L’insieme di valori di x `e dato dal vettore (x 1, x2, . . ., xn)T . T denota matrice
trasposta, in quanto si assume che tutti i vettori sono vettori colonna partendo dalla matrice di
dimensione n × d. Introduciamo degli indicatori associabili ad un attributo. Ciascuna di queste
misure si puo` dire robusta secondo il concetto statistico, se `e insensibile a variazioni della
numerosita` dei dati.
MISURE DI TENDENZA CENTRALE
La media aritmetica di due o più numeri, o semplicemente media, è la somma dei valori numerici
divisa per il numero di valori numerici considerati. Per calcolare la media aritmetica tra due o più
numeri ci basta sommarli e dividere il risultato ottenuto per il numero dei valori. La media
quadratica è la radice quadrata della media dei quadrati.
Il valore atteso, che viene chiamato anche media o speranza matematica della distribuzione di una
variabile casuale, è un indice di posizione. Il valore atteso è dunque una somma pesata
dei valori che la variabile casuale assume con pesi le probabilità associate.

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

In statistica, la moda (o norma) di una distribuzione di frequenza X è la modalità (o la classe di


modalità) caratterizzata dalla massima frequenza e viene spesso rappresentata con la simbologia
ν0. In altre parole, è il valore che compare più frequentemente.
In statistica, in particolare in statistica descrittiva, data una distribuzione di
un carattere quantitativo oppure qualitativo ordinabile (ovvero le cui modalità possano
essere ordinate in base a qualche criterio), si definisce la mediana (o valore mediano) come il
valore/modalità (o l'insieme di valori/modalità) assunto dalle unità statistiche che si trovano nel
mezzo della distribuzione.
Lo scarto quadratico medio (o deviazione standard o scarto tipo) è un indice di dispersione
statistico, vale a dire una stima della variabilità di una popolazione di dati o di una variabile
casuale.
In statistica e in teoria della probabilità la varianza di una variabile statistica o di una variabile
aleatoria è una funzione, indicata con o con (o semplicemente con se la variabile è sottintesa), che
fornisce una misura della variabilità dei valori assunti dalla variabile stessa; nello specifico, la
misura di quanto essi si discostino quadraticamente rispettivamente dalla media aritmetica o
dal valore atteso.
In statistica, l'indice di correlazione di Pearson(anche detto coefficiente di correlazione lineare
o coefficiente di correlazione di Pearson o coefficiente di correlazione di Bravais-Pearson) tra due
variabili statistiche è un indice che esprime un'eventuale relazione di linearità tra esse.
L'indice di eterogeneità di Gini è un indice di eterogeneità per variabili qualitative. Esso offre una
misura della eterogeneità (omogeneità) di una distribuzione statistica a partire dai valori delle
frequenze relative associate alle modalità di una generica variabile (si ricordi che quest'indice è
usato nella statistica descrittiva univariata, dove si considera una sola variabile). Ciò vuol dire che
se i dati sono distribuiti in modo eterogeneo su tutte le modalità di (cioè, se le modalità hanno
numerosità simili o, nel caso di massima eterogeneità, uguali), l'indice di Gini è elevato, viceversa,
in caso di distribuzione di frequenza omogenea l'indice sarà (percentualmente) piuttosto basso.
Normalizzazione dei dati: Spesso `e utile considerare come trasformare o riaggregare i dati in
modo che siano confrontabili e cadano in intervalli stabiliti. Una tecnica comune `e quel- la di
normalizzare e standardizzare i dati. L’obiettivo della standardizzazione o normalizzazione `e di
costruire un insieme di valori con determinate proprietà.
Riduzione della dimensionalità: Nell’elaborare grossi moli di dati esiste la necessità di effettuare
una riduzione dei dati in modo da ottenere una rappresentazione ridotta dei dati con una
occupazione molto inferiore di memoria ma che produce gli stessi (o comunque simili) risultati
analitici.
Ci sono varie strategie:
 aggregazione usando un cuboide2 al piu` alto livello di aggregazione, purché sufficiente per
il compito di analisi che dobbiamo svolgere;
 riduzione della dimensionalita` (dimensionality reduction) con la selezione di attributi
rilevanti. Si utilizzano le tecniche di analisi delle componenti principali (PCA) e analisi
fattoriale;
 riduzione della numerosita` (numerosity reduction);
 discretizzazione e generazione delle gerarchie di concetto.
Selezione degli attributi rilevanti: Questo passo opera in modo da selezionare un insieme minimo
di attributi che descrivano in maniera adeguata i dati in ingresso come ad esempio, eliminare gli
attributi irrilevanti, come puo` essere l’informazione di una chiave primaria. Questa metodologia
puo` essere effettuata da un esperto del settore sotto analisi. I possibili algoritmi euristici possono
essere:

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

 step-wise forward selection. Partiamo da un insieme vuoto di attributi e ad ogni passo


aggiungiamo l’attributo che massimizza la qualita` dell’insieme risultante. Ci fermiamo
quando si `e raggiunta una qualita` minima desiderata per l’insieme degli attributi.
L’incremento minimo di qualita` scende, in questi casi, sotto una determinata soglia;
 step-wise backward selection. Partiamo da tutti gli attributi e ad ogni passo togliamo
l’attributo che massimizza la qualita` dell’insieme. Ci fermiamo quando si `e scesi sotto la
qualità minima desiderata per l’insieme degli attributi.
Per la qualita` delle informazioni si utilizza il guadagno di informazione, information gain,
eventualmente corretto per penalizzare gli insiemi con attributi strettamente correlati.

MISURE DI DISTANZA E DI SIMILARITA’

DISTANZA EUCLIDEA
Si deve stabilire quanto sono vicine le due serie. È una distanza che intercorre tra due punti, ossia
la misura del segmento avente per estremo i due punti; ogni punto è espressione di due valori
rappresentati su un piano cartesiano, quindi è come se avessimo un oggetto con due attributi.
Quindi, in questo caso, la distanza euclidea consentirebbe di misurare la distanza tra questi due
punti in quanto coppia di valore, un valore è quello sull’asse X e un altro valore è quello sull’asse
delle Y. La misura di distanza fra due punti è sempre distanza tra due punti positivi in termine di
valore. Questi concetti sono fondamentali per l’algoritmo di classificazione K- Nearest Neighbor.
DISTANZA DI MINKOWSKI
La distanza di Minkowski è una distanza in uno spazio euclideo che può essere considerata una
generalizzazione sia della distanza euclidea che della distanza di Manhattan.
DISTANZA DI MANHATTAN
In matematica, la geometria del taxi o distanza di Manhattan(in inglese Taxicab geometry
o Manhattan distance) è un concetto geometrico introdotto da Hermann Minkowski secondo il
quale la distanza tra due punti è la somma del valore assoluto delle differenze delle loro
coordinate.

PROBABILITA’

In probabilità si considera un fenomeno osservabile esclusivamente dal punto di vista della


possibilità o meno del suo verificarsi, prescindendo dalla sua natura. Tra due estremi, detti evento
certo (ad esempio: lanciando un dado a sei facce si ottiene un numero compreso tra 1 e 6)
ed evento impossibile (ottenere 1 come somma dal lancio di due dadi), si collocano eventi più o
meno probabili (aleatori).
Si usa il linguaggio della teoria degli insiemi: un insieme non vuoto Ω (detto spazio delle
alternative) ha come elementi tutti i risultati possibili di un esperimento; l'evento che risulta
verificato da un unico risultato (un unico elemento di Ω) viene detto evento elementare; altri eventi
sono sottoinsiemi di Ω costituiti da più risultati.[4]
Gli eventi vengono normalmente indicati con lettere maiuscole. Dati due eventi A e B, si indica
con A∪B la loro unione, ovvero l'evento costituito dal verificarsi dell'evento A oppure
dell'evento B. Si indica con A∩B la loro intersezione, ovvero l'evento costituito dal verificarsi sia
dell'evento A che dell'evento B.[5] Se A∩B = ∅ i due eventi A e B vengono detti incompatibili (non
possono verificarsi simultaneamente). Il complemento di un evento A rispetto a Ω, Ω\A, è
detto negazione di A e indica il suo non verificarsi (ovvero il verificarsi dell'evento complementare).
Una distribuzione di probabilità è un modello matematico che collega i valori di una variabile alle
probabilità che tali valori possano essere osservati. Le distribuzioni di probabilità vengono utilizzate

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

per modellizzare il comportamento di un fenomeno di interesse in relazione alla popolazione di


riferimento, ovvero alla totalità dei casi di cui lo sperimentatore osserva un dato campione.
In questo contesto la variabile di interesse è vista come una variabile casuale (o variabile aleatoria,
v.a.) la cui legge di probabilità esprime il grado di incertezza con cui i suoi valori possono essere
osservati. In base alla scala di misura della variabile di interesse X, possiamo distinguere due tipi di
distribuzioni di probabilità:
 distribuzioni continue: la variabile viene espressa su una scala continua (es: il diametro del
pistone)
 distribuzioni discrete: la variabile viene misurata con valori numerici interi (es: numero di
elementi non conformi o difettosi in un circuito stampato)
Formalmente, le distribuzioni di probabilità vengono espresse da una legge matematica detta
funzione di densità di probabilità (indicata con f(x)) o funzione di probabilità (indicata con p(x))
rispettivamente per le distruzioni continue o discrete.
In matematica, una funzione di densità di probabilità (o PDF dall'inglese probability density
function) è l'analogo della funzione di probabilità di una variabile casuale nel caso in cui la variabile
casuale sia continua, cioè l'insieme dei possibili valori ha la potenza del continuo. Essa descrive la
"densità" di probabilità in ogni punto nello spazio campionario.
In statistica e teoria della probabilità, la funzione di ripartizione (o funzione cumulativa) è
una funzione di variabile reale che racchiude le informazioni su un fenomeno (un insieme di dati,
un evento casuale) riguardanti la sua presenza o la sua distribuzione prima o dopo un certo punto.
Nella teoria della probabilità la distribuzione normale, o di Gauss (o gaussiana) dal nome del
matematico tedesco Carl Friederich Gauss, è una distribuzione di probabilità continua che è spesso
usata come prima approssimazione per descrivere variabili casuali a valori reali che tendono a
concentrarsi attorno a un singolo valor medio. Il grafico della funzione di densità di
probabilità associata è simmetrico e ha una forma a campana, nota come campana di Gauss (o
anche come curva degli errori, curva a campana, ogiva).
La distribuzione normale è considerata il caso base delle distribuzioni di probabilità continue a
causa del suo ruolo nel teorema del limite centrale. Più specificamente, assumendo certe
condizioni, la somma di n variabili casuali con media e varianza finite tende a una distribuzione
normale al tendere di n all'infinito. Grazie a questo teorema, la distribuzione normale si incontra
spesso nelle applicazioni pratiche, venendo usata in statistica e nelle scienze naturali e sociali come
un semplice modello per fenomeni complessi.

CLASSIFICAZIONE E METODI DI CLASSIFICAZIONE

Con il termine classificazione si intende una procedura statistica che permette di associare ciascun
oggetto (che sia un’immagine, un pattern, un dato numerico. . . ), appartenente a un generico
spazio multidimensionale, a una o più etichette, corrispondenti alle possibili classi di cui può far
parte un oggetto; si parla di classificazione esclusiva quando ciascun oggetto può appartenere a
una sola classe, o di classificazione continua o fuzzy se un oggetto può appartenere, con un certo
grado di probabilità, a più classi. Per ottenere una classificazione si usano le informazioni
riguardanti alcuni tratti salienti (feature, caratteristiche) degli oggetti in esame, e li si confronta, in
un apposito spazio multidimensionale, con quelli di un training set: se questo training set `e
etichettato, e quindi le possibili classi sono note e ogni campione nel set è già associato alla classe
di appartenenza, si parla di apprendimento supervisionato; in caso contrario, cioè quando le
possibili classi vanno direttamente ricavate dai dati stessi, abbiamo a che fare con apprendimento
non supervisionato.

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

I metodi di classificazione sono decisamente numerosi, anche a causa del fatto che più classificatori
possono essere combinati tra loro, ma in generale possiamo identificare due tipi principali di
approcci: quello statistico e quello sintattico.
Il primo approccio cerca in genere di massimizzare la probabilità a posteriori (cioè la probabilità
che un campione appartenga a una data classe, che sarà quindi quella scelta), ad esempio a partire
dalle stime (ottenute dal trainig set) delle probabilità a priori delle classi e delle probabilità
condizionali (qual `e la probabilità che il prossimo pattern osservato sia x se la sua classe di
appartenenza `e W), come nel caso dei classificatori Bayesiani; oppure minimizzando
iterativamente l’errore di predizione, come fanno le reti neurali.
Il secondo approccio, invece, è molto più pragmatico, dato che si concentra sull’analisi di
caratteristiche distintive degli oggetti o pattern da classificare: trattando queste feature in uno
spazio multidimensionale appositamente costruito, la classificazione comporta il confronto tra le
caratteristiche strutturali delle feature del campione da testare e di quelle del training set, sia con
apprendimento supervisionato (ad esempio l’algoritmo Nearest Neighbor) che non supervisionato
(come nel caso del Clustering).
Un primo tipo di classificazione è quella lineare, espresso in termini matematici con un’equazione
lineare. Il classificatore si riduce ad essere una retta che delimita il piano degli oggetti etichettati
con la classe ad esempio rossa e quelli etichettati con la classe blu. Inoltre nei classificatori lineari è
possibile generalizzare, cioè è possibile generare un modello a più equazioni lineari per poter
discriminare le istanze quando le classi in questione sono più di due. Molto importante è il
compromesso che si raggiunge tra efficienza e accuratezza. Questo avviane quando abbiamo la
necessità di utilizzare il modello in fretta quindi teniamo meno conto dell’accuratezza, tuttavia
dipenderà dal contesto di applicazioni di tali classificatori. Nel caso in cui utilizziamo questi
classificatori che hanno poca accuratezza, e il sistema da un esito positivo rispetto all’attributo di
classe e i relativi valori, ma in realtà la predizione è sbagliata avremo un falso positivo, nel senso
che l’esito positivo in realtà è falso rispetto alla realtà. Se il sistema fornisce una risposta negativa
ma in realtà è positivo il tipo di errore si chiama falso negativo. Se il sistema fornisce una risposta
positiva e in realtà è il risultato corrisponde ad un valore vero avremo un vero positivo.
GLI ALBERI DI DECISIONE costituiscono il modo più semplice di classificare degli oggetti o pattern
in un numero finito di classi. Il principio `e la costruzione di un albero, dove i sottoinsiemi (di
record) vengono chiamati nodi e quelli finali, foglie. In particolare, i nodi sono etichettati con il
nome degli attributi, gli archi (i rami dell’albero) sono etichettati con i possibili valori dell’attributo.
Un oggetto è classificato seguendo un percorso lungo l’albero che porti dalla radice ad una foglia. I
percorsi sono rappresentati dai rami dell’albero che forniscono una serie di regole. L’entropia è una
misura dell’ordine dello spazio dei record che si considerano per la costruzione degli alberi di
decisione. Un valore elevato di entropia esprime il disordine che caratterizza lo spazio dei record,
ovvero una maggiore difficoltà nell’assegnare ciascun record alla propria classe sulla base degli
attributi che caratterizzano la classe: più l’entropia `e alta, meno informazione abbiamo
sull’attributo classe. Tale quantità è tanto maggiore quanto più elevata è la diminuzione di entropia
dopo aver partizionato i dati con l’attributo A. Dunque un criterio di scelta dei nodi di un eventuale
albero di classificazione consiste nello scegliere di volta in volta l’attributo A che dà una maggiore
diminuzione di entropia o che analogamente massimizza l’information gain. L’information gain ha
valori molto elevati in corrispondenza di attributi che sono fortemente informativi e che quindi
aiutano ad identificare con buona probabilità la classe di appartenenza dei record. Spesso, pero`,
più gli attributi sono informativi, più perdono di generalità; ad esempio, nel database di una
compagnia telefonica, il campo codice fiscale `e altamente informativo, ha dunque un alto valore di
information gain, dal momento che identifica con certezza l’utente, ma non è per nulla
generalizzabile. L’ideale `e dunque individuare campi altamente informativi con un buon grado di

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

generalizzazione. La costruzione di un albero di classificazione, detta anche generazione, avviene


attraverso un procedimento ricorsivo, in cui ad ogni passo ci si basa su euristiche o misure
statistiche, per determinare l’attributo da inserire in un nodo. Questo algoritmo è un algoritmo
greedy e lavora su attributi di tipo nominale. Per poter essere elaborati, eventuali attributi di tipo
continuo devono essere preventivamente discretizzati. Riassumendo, per la costruzione di un
albero di classificazione sono necessarie le seguenti fasi: l’approccio top-down, ed utilizzando la
tecnica divide e timpera costruisce ricorsivamente il classificatore. I concetti base dell’algoritmo
sono i seguenti:
L’albero inizia con un nodo rappresentante il training sample (passo 1).
Se le istanze appartengono tutte alla stessa classe, allora il nodo diviene una sola foglia etichettata
con la classe alla quale appartengono tutte le istanze o samples (passi 2-5).
In caso contrario l’algoritmo utilizza una misura basata sull’entropia, l’information gain, come
euristica al fine di selezionare l’attributo che meglio separerà i samples in classi individuali. Tale
attributo diventa il decision-attribute.
Un arco viene creato per ogni valore conosciuto dal test-attribute e l’insieme dei samples viene
partizionato.
L’algoritmo usa lo stesso processo ricorsivamente, per formare un albero di decisione, richiamato
sui i samples di ogni partizione ed escludendo dall’insieme degli attributi quello utilizzato nello split
corrente.
La ricorsione si ferma in una delle seguenti condizioni:
– tutti i samples di un dato nodo appartengono alla stessa classe;
– non ci sono ulteriori attributi in cui suddividere ulteriormente i samples;
– non ci sono samples per l’arco etichettato come test attribute.
Nella generazione del partizionamento dell’albero sono possibili degli split che dipendono dal tipo
di variabile.
I diversi possibili test sono:
 attributo discreto o nominale, dove è possibile un risultato per ogni valore;
 attributo discreto o nominale, dove è possibile un risultato per ogni gruppo di valori;
 attributo continuo (cardinale), due possibili risultati.
L’algoritmo C4.5 è una estensione dell’algoritmo ID3 [136]. C4.5 compie una ricerca hill-climbing
attraverso l’insieme di tutti i possibili alberi di decisione partendo dall’ipotesi più semplice e
cercandone una più complessa. C4.5 costruisce l’albero di decisione partendo da un training set
allo stesso modo dell’ID3.
Rispetto all’ID3, il C4.5 presenta diversi miglioramenti.
 Manipolazione sia di attributi continui che di discreti, Al fine di gestire attributi continui,
C4.5 crea una soglia e poi si divide l’elenco in quelli il cui valore è al di sopra della soglia e
quelli che sono pari o inferiore ad esso [137].
 Manipolazione di dati mancanti sui valori degli attributi. L’attributo con i valori mancanti è
semplicemente non utilizzato nel guadagno e di entropia nei calcoli.
 Manipolazione di attributi con costi differenti.
 Potatura alberi dopo la creazione. C4.5 risale attraverso l’albero una volta che è stato creato
e rimuovere i rami che non aiutano la comprensione dell’albero.
Un approccio molto seguito nella costruzione di un albero di decisione è quello di generare
inizialmente l’albero dal training set e in seguito effettuare una potatura o pruning. Lo scopo della
potatura consiste nell’eliminare il sovra adattamento, cioè quegli aspetti del training set che
difficilmente si possono generalizzare a record non appartenenti al training set.

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

La potatura consiste nel sostituire alcuni nodi interni dell’albero con delle foglie e nel rimuovere le
parti dell’albero che sono diventate irraggiungibili dalla radice. Numerosi metodi euristici sono stati
proposti in letteratura [89, 128, 135] insieme ad altri più analitici [120].
Tra i metodi proposti viene illustrato il Reduced Error Pruning.
 Si considera ogni nodo ν di un albero di decisione.
 Si rimuove il sottoalbero avente per radice il nodo ν, rendendolo in tal modo una foglia
dell’albero più generale.
 Si assegna a ν la classificazione più probabile del sottoinsieme di esempi affiliati al nodo.
 Si misura l’accuratezza su training set dell’albero non potato e dell’albero potato.
 Si effettua la potatura solo se la potatura sotto ν non produce un peggioramento.
 Si procede iterativamente considerando tutti i nodi finché non si misurano ulteriori
miglioramenti.
Riguardo al pruning c’è da dire un’altra cosa ovvero che è possibile distinguere il pre-pruning dal
post-pruning. Nel post-pruning lasciamo che l’albero di decisione venga sviluppato completamente
e ad algoritmo terminato procediamo al pruning; nella strategia di pre-pruning significa che
dobbiamo stare attenti nell’evoluzione dell’albero a capire se il sotto albero derivante comporta ad
un miglioramento o a un peggioramento dell’intero modello, ovvero si rischierebbe di eliminare
istanze sensibili o rappresentative del modello.
Come si intuisce dal nome, i classificatori Bayesiani fanno uso del teorema di Bayes per calcolare
le probabilità a posteriori, stimando i dati statistici necessari a partire dal training set
(addestramento supervisionato). Supponiamo di avere un insieme di possibili classi C e una serie di
attributi (o feature) A 1, A2, . . . , Ak usati per discriminare tra le classi, e indichiamo con lettere
minuscole (c, a 1 . . . ) particolari valori assunti dalle variabili. La classificazione ottimale sarà allora
quella per cui la probabilità di una certa classe, data una serie di valori assunti dagli attributi, `e
massima:
maxPr(C=c|A1 =a1∧A2 =a2∧...∧Ak =ak) Per il teorema di Bayes si ha che questa probabilità `e
uguale a:
P r(A1 = a1 ∧ A2 = a2 ∧ . . . ∧ Ak = ak | C = c) Pr(A1 =a1 ∧A2 =a2 ∧...∧Ak =ak)
max P r(C = c)
La probabilità a priori di avere una data classe c si può stimare facilmente dal training set (a patto
che sia composto in maniera da essere rappresentativo), mentre il denominatore dell’equazione `e
irrilevante, dato che `e lo stesso per tutte le classi dell’insieme C in quanto da esse indipendente.
Si tratta quindi di riuscire a stimare la probabilità condizionale a numeratore per ciascuno degli
attributi; fatto questo, si otterrebbe un classificatore Bayesiano ottimo, in grado di fornire la
classificazione migliore in assoluto. Il problema `e che tale stima `e molto complicata a causa delle
dipendenze tra attributi, e anche con poche feature rischia di diventare computazionalmente
irrealizzabile.
Per ovviare al problema si può usare un Naive Bayes Classifier che, come dice il nome, fa
un’ipotesi piuttosto naive sulle feature, ovvero che siano completamente indipendenti.
I classificatori naive sono piuttosto semplici da realizzare e non richiedono un grande carico
computazionale; le assunzioni sull’indipendenza delle feature sono il più delle volte irrealistiche,
ma ciononostante le prestazioni di questi classificatori sono piuttosto buone se ben addestrati.
Per trovare una via di mezzo tra questi due estremi (dipendenza totale tra tutte le feature/
indipendenza totale) si può usare l’approccio delle Reti Bayesiane, un particolare tipo di grafi
diretti aciclici che consentono di rappresentare relazioni di causalità tra feature, riuscendo a tenere
in considerazione solo le dipendenze effettive tra attributi alleggerendo notevolmente il calcolo
rispetto al caso di classificatore ottimale.

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

La teoria di Bayes è un fondamentale approccio statistico per il problema di classificazione. Questo


approccio si basa sulla quantificazione del problema di decisione utilizzando la probabilità e i costi
che accompagnano tale decisione. L’ipotesi che accompagna la decisione con Bayes è che il
problema sia posto in termini probabilistici e che tutti i valori di probabilità siano noti. In questa
sezione sviluppiamo gli elementi fondamentali di questa teoria, e mostriamo come possa essere
considerata semplice la formalizzazione del problema e di conseguenza quello della decisione.
Partiamo con il prendere spunto da uno specifico esempio. Il problema è quello di riuscire a
costruire un classificatore che separi due tipi di pesce: spigole e salmone. Supponiamo di essere un
osservatore che sta guardando arrivare il pesce lungo un nastro trasportatore: è difficile prevedere
quale sia il tipo di pesce che dovrà apparire successivamente. La sequenza dei tipi sarà sicuramente
casuale. Nella decisione teorica vorremmo dire e sapere qualcosa di più sulla diversa natura in
base al fatto che un pesce sia una spigola o un salmone. Indichiamo con ω la variabile che
identifica questa diversa natura, la quale assume i due valori ω 1 per spigola e ω2 per il salmone.
Questa variabile essendo non prevedibile dovrà essere descritta in termini probabilistici. Si
identifica, a priori, la probabilità P (ω 1) che il prossimo pesce sia la spigola e la probabilità P(ω 2)
che sia il salmone. Se si suppone che non ci sono altri tipi di pesce, allora P (ω 1) e P (ω2) danno
come somma 1. Questi prima probabilità ci aiuterà a capire quale probabilità avremo di vedere una
spigola o salmone per primi sul nastro trasportatore. In molte circostanze però non siamo portati a
prendere decisioni con queste poche informazioni.
Un sistema che formula le classificazioni con questo criterio è detto classificatore bayesiano
ottimale. L’aggettivo “ottimale” ha un significato preciso, di grande importanza teorica. Infatti,
qualsiasi metodo di classificazione che dispone delle stesse ipotesi, degli stessi dati e delle stesse
probabilità a priori per le ipotesi non può superare in media le prestazioni del classificatore
bayesiano ottimale. Quest’ultimo è quindi una pietra di paragone teorica per ogni metodo di
classificazione.
Per i classificatori bayesiani ottimali, deve essere nota la stima delle probabilità a priori e fornita
come dato di input del problema. Esiste, pero`, un altro approccio più semplice al problema. La
probabilità a priori di una classe può essere stimata con la frequenza della classe nel training set,
quindi con un semplice conteggio. La verosimiglianza è un prodotto di probabilità ciascuna delle
quali è stimata con la frequenza di valori di singoli attributi per ciascuna classe, quindi di nuovo con
dei semplici conteggi.
Questo conteggio si basa sul fatto che le caratteristiche siano indipendenti quando sappiamo bene
che nei casi reali questa ipotesi è palesemente falsa. Tuttavia, in modo piuttosto sorprendente, i
classificatori bayesiani indipendenti (o ingenui) danno spesso in pratica ottime prestazioni e si
rivelano competitivi rispetto ad altri metodi di classificazione anche molto più complessi e
sofisticati.
L’algoritmo Nearest Neighbor `e un metodo di classificazione supervisionato basato su feature
riconoscibili: a ciascuna feature viene assegnata una dimensione, in modo che si formi uno spazio
multidimensionale di feature. All’interno di questo spazio vengono disegnate le feature estratte da
un training set etichettato, in cui le classi sono note a priori. Completata questa fase di
apprendimento, si analizzano i campioni da classificare: anche da questi si estraggono le feature
scelte, che vengono quindi confrontate con quelle del training set nello spazio multidimensionale;
un campione sarà assegnata alla classe del “vicino più vicino”, appunto il nearest neighbor,
solitamente usando la metrica di distanza euclidea (ma altre scelte sono possibili). È chiaro che
l’algoritmo sarà tanto più oneroso quanto più grande `e il training set e quanto maggiore `e il
numero di feature considerate: si ha a che fare evidentemente con un trade-off, perché un training
set più ampio `e tendenzialmente più rappresentativo, e un alto numero di feature permette di
discriminare meglio tra le possibili classi, ma a fronte di questi vantaggi la complessità dei calcoli

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

aumenta. Sono state quindi elaborate alcune varianti dell’algoritmo, principalmente per ridurre il
numero di distanze da calcolare: ad esempio `e possibile partizionare lo spazio di feature e
misurare la distanza solo rispetto ad alcuni dei volumi cos`ı ottenuti.
K-nearest neighbor è una variante che determina i k elementi più vicini: ognuno di questi “vota”
per la classe cui appartiene, e il campione in esame verrà assegnato alla classe più votata.
L’algoritmo Nearest Neighbor (vicino più vicino) è un metodo di classificazione supervisionato
basato su feature riconoscibili: a ciascuna feature viene assegnata una dimensione, in modo che si
formi uno spazio multidimensionale di feature. All’interno di questo spazio vengono disegnate le
feature estratte da un training set etichettato, in cui le classi sono note a priori. Completata questa
fase di apprendimento, si analizzano i campioni da classificare: anche da questi si estraggono le
feature scelte, che vengono quindi confrontate con quelle del training set nello spazio
multidimensionale; un campione sarà assegnato alla classe del “vicino più vicino”, appunto il
nearest neighbor, solitamente usando la metrica di distanza euclidea (ma altre scelte sono
possibili).
È chiaro che l’algoritmo sarà tanto più oneroso quanto più grande è il training set e quanto
maggiore è il numero di feature considerate: si ha a che fare evidentemente con un trade-off,
perché un training set più ampio è tendenzialmente più rappresentativo, e un alto numero di
feature permette di discriminare meglio tra le possibili classi, ma a fronte di questi vantaggi la
complessità dei calcoli aumenta. Sono state quindi elaborate alcune varianti dell’algoritmo,
principalmente per ridurre il numero di distanze da calcolare: ad esempio è possibile partizionare
lo spazio di feature e misurare la distanza solo rispetto ad alcuni dei volumi così ottenuti. K-nearest
neighbor è una variante che determina i k elementi più vicini: ognuno di questi vota per la classe
cui appartiene, e il campione in esame verrà assegnato alla classe più votata. La complessità
dell’algoritmo Nearest Neighbor (algoritmo 5.2) `e di O(n 2), dove né il numero di elementi. Ogni
item è confrontato con ogni altro cluster. Questo algoritmo ha bisogno, in più della definizione di
una soglia θ. Non c’`e bisogno di definire, però il numero di cluster.

MATRICE DI CONFUSIONE PER PROBLEMI A DUE CLASSI


Un classificatore (detto anche modello) può essere descritto come una funzione che mappa gli
elementi di un insieme in certe classi o gruppi. Nel caso di classificazione supervisionata, l’insieme
dei dati da classificare contiene una suddivisione in classi, rispetto alla quale `e possibile valutare la
qualità del risultato prodotto.
In un problema di classificazione binaria l’insieme dei dati da classificare è suddiviso in due classi
che possiamo indicare convenzionalmente come positivi (p) o negativi (n). Gli esiti dell’applicazione
di un classificatore binario rientrano in una delle seguenti quattro categorie.

MINING DI REGOLE ASSOCIATIVE


Il problema di estrazione di regole associative rappresenta il primo problema nel data mining e il
problema è ispirato ad esigenze specifiche in ambito di marketing e in particolare il market basket
analysis, capendo quindi quali tipi di item hanno una qualche relazione con altri tipi di prodotti per
cui un prodotto da parte di un customer potrebbe essere accompagnato da una proposta, un
suggerimento all’acquisto di un prodotto che mostra un’associazione con quello che tende ad
acquistare. Il contesto da un punto di vista dei dati sono le transazioni, gli acquisti effettuati dagli
utenti cercando di determinare le preferenze di acquisto da parte dei clienti e per rispondere
quantifichiamo le associazioni tra i diversi tipi di item quindi di prodotto, presenti nelle transazioni
effettuati dagli utenti. Immaginiamo così di tradurre tali acquisti in un dataset che chiameremo
dataset transazionale e ciascuno dei record riguarda una transazione eseguita. Il dataset

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

transazionale ha già una prima differenza rispetto a quello relazionale ossia il fatto che teniamo
traccia solo degli item acquistati da un utente e ciascun item si fa corrispondere ad un attributo.
Immaginiamo così di avere si tanti attributi ma tutti dello stesso dominio, cioè un solo tipo di
attributi che sono i prodotti acquistati perciò non parliamo propriamente di attributo bensì di item
assumibili dall’attributo prodotto da acquistare. Ogni transazione avrà quindi i prodotti da
acquistare. L’ordine non è fondamentale in quanto la transazione non è altro che un insieme, non è
una lista ma un insieme di item acquistati. Un’altra cosa che non si fa, non si tiene in
considerazione la molteplicità ma solo i tipi di prodotti acquistati. L’obiettivo è trovare le
associazioni tra gli attributi ovvero trovare le associazioni tra i prodotti acquistati. La soluzione più
semplice è trovare gruppi di item che sono acquistati insieme frequentemente, che occorrono nel
dataset transazionale non nella singola transazione. In questa tipologia di analisi potrebbe crearsi
un raggruppamento di quattro, cinque o sei prodotti che sono acquistati tuttavia un numero
relativamente basso di volte e allora a quel punto ci chiediamo quanto è significativa quella
associazione. È un problema particolarmente complesso che si fa presente più volte e poi quello
che si intende fare non è stabilire un ranking delle varie combinazioni quanto considerare solo le
associazioni ritenute significative. Che cosa intendiamo per associazioni significative? Una
frequenza che sia maggiore di una determinata soglia di minima frequenza, quindi trovare gruppi
di item di varie dimensioni che ricorrono frequentemente con una frequenza almeno pari o una
soglia minima. Chiamiamo item il singolo elemento dell’insieme itemset un sotto-insieme di
itemset, che può essere anche l’intera transazione. Inoltre, per usare la terminologia appropriata
soglia minima di frequenza è chiamato come “minimo supporto”. Tale parametro deciso a priori
rappresenta la soglia di minima significatività di associazione tra gli attributi, quindi minima soglia
di co-occorrenza tra gli itemset frequenti. A questo punto gli itemset ad essere frequenti sono
dairy e fruit che più che itemset sono item e questo ci fa capire che il minimo supporto più alto è il
valore del minimo supporto più si rischia che l’insieme dei pattern di conoscenza ovvero gli itemset
frequenti da estrarre. Al contrario, più sarà alta più saranno gli itemset e quindi poco significativi.
Quindi, una regola associativa è una regola che ha un corpo, una testa e due numeri associati
identificati con S e C dove S sta per supporto della regola e C sta per confidenza della regola. Così
come abbiamo una soglia di supporto ve ne è una minima di confidenza. Il concetto di confidenza
entra in gioco solo quando si parla di regole associative e non di itemset frequenti utilizzati per
derivare le regole associative; la significatività degli itemset frequenti è data dalla soglia di minimo
supporto. La significatività è controllata da una coppia: minimo supporto e minima confidenza. La
regola è un’implicazione tra A e B dove A è un itemset e B è un itemset. Il supporto di questa
regola è la frazione delle transazioni che contengono sia A e B ovvero il supporto che contiene la
concatenazione o unione tra l’itemset A e l’itemset B cioè la frazione del dataset transazionale cioè
il numero relativo di transazioni nelle quali compare A insieme a B. Il supporto è quindi una misura
della popolarità degli item che contengono una regola. La confidenza ci indica qual è la frazione
delle transazioni che contengono l’item implicante che contengono anche l’item implicato. Quante
transazioni che contengono A contengono anche B con A? Tale è la confidenza. Quindi è il supporto
di A unito B diviso il supporto A. La regola associativa dovrà sodisfare sia la soglia di minimo
supporto sia quella di minima confidenza.
In generale possiamo dire, se (A, C) è presente, cioè se un certo itemset è frequente possiamo dire
qualcosa relativamente alla frequenza di tutti i possibili sottoinsiemi di un itemset vero che sono
anche essi frequenti, dove il sottoinsieme in questioni sono gli item (A) e (C) che in questo caso
coincidono ognuno con un itemset. Ma come spiegare la soglia di minimo supporto e minima
confidenza? Non esiste una regola propriamente rigida ma sicuramente possiamo dire che la soglia
di minima confidenza la si desidera sempre piuttosto alta proprio perché esprime la forza
dell’implicazione. Cosi una minima confidenza piuttosto alta la si intende tra il 70 e il 90 percento.

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

La soglia di minimo supporto, invece, proprio all’aumentare del numero di transazioni rispetto al
numero di item, a causa della naturale sparsità che abbiamo in un data set transazionale il minimo
supporto deve essere mantenuto con valori relativamente basso. In generale possiamo dire che più
alto è il minimo supporto, minore è il numero di itemset frequenti che estraiamo e minore anche il
numero di regole valide e questa è una caratteristica proprio dell’essere molto frequenti. D’altra
parte scegliere un valore relativamente basso di minimo supporto ha come effetto quello di avere
una proliferazione di regole che possono anche essere piuttosto rare all’interno del data set
transazionale.
Algoritmo Apriori
Un dataset formato a partire da n oggetti può contenere fino a 2 n − 1 itemset frequenti
(generalmente non si considera l’itemset vuoto tra gli itemset frequenti). Nelle applicazioni
pratiche n `e almeno nell’ordine di alcune decine e un metodo di generazione esaustivo degli
itemset `e impraticabile data la complessità esponenziale.
Può essere interessante prendere in esame la struttura dello spazio di ricerca per la generazione
degli itemset. L’insieme di tutti gli itemset 2 I forma una struttura a traliccio come illustrato nella
Figura 7.1, nella quale due itemset X e Y sono collegati da una freccia se e solo se X `e un
sottoinsieme diretto di Y (vale a dire se X ⊆ Y e ∥X∥ = ∥Y ∥ − 1). Per quanto riguarda la strategia di
ricerca che viene adottata in pratica, gli itemset del traliccio possono essere enumerati usando sia
un metodo in profondità (depth-first) che un metodo in larghezza (breadth-first). Tali metodi
operano sull’albero ottenuto considerando la relazione “essere un prefisso di” nella quale due
itemset X e Y sono collegati da una freccia in grassetto se e solo se X `e un sottoinsieme diretto ed
un prefisso di Y. Lo scopo degli algoritmi proposti `e quindi quello di visitare la minima parte
possibile dell’albero di ricerca.
L’algoritmo Apriori è un classico algoritmo di ricerca delle associazioni. È utilizzato per la
generazione degli itemset frequenti, per approssimazioni successive, a partire dagli itemset con un
solo elemento. In sintesi, il presupposto teorico su cui si basa l'algoritmo parte dalla
considerazione che se un insieme di oggetti (itemset) è frequente, allora anche tutti i suoi
sottoinsiemi sono frequenti, ma se un itemset non è frequente, allora neanche gli insiemi che lo
contengono sono frequenti (principio di anti-monotonicità).
Un ambito dove questo algoritmo trova grande applicabilità è il market/basket problem. Per
ricavare le associazioni viene impiegato un approccio bottom up, dove i sottoinsiemi frequenti sono
costruiti aggiungendo un item per volta (generazione dei candidati); i gruppi di candidati sono
successivamente verificati sui dati e l'algoritmo termina quando non ci sono ulteriori estensioni
possibili. In questo processo, il numero delle iterazioni è , dove indica la cardinalità massima di un
itemset frequente.
L’algoritmo apriori in cui K= lunghezza itemset, F= frequente e C= candidato, dove quindi F(K) e C(K)
sono due insiemi che contengono gli itemset di lunghezza K riconosciuti con frequenti mentre C(K)
è l’insieme degli itemset di lunghezza K candidati, cioè da esaminare. Il primo passo è calcolare
l’insieme F1 cioè trova gli 1 item cioè gli itemset frequenti ricordando che l’input è soglia di
minimo supporto, quindi contiamo gli 1 itemset frequenti. Al termine di questa scansione
conosciamo le frequenze per tutti gli 1 itemset, valutiamo se rispecchiano la condizione rispetto al
minimo supporto ed esce fuori F1. A questo punto partono delle iterazioni dell’algoritmo per cui
fin tanto che Fk è diverso da 0, cioè fin tanto che è possibile trovare gli itemset frequenti aumenta
K di 1. Quindi ad ogni iterazione calcoliamo l’insieme Ck +1 e lo calcoliamo a partire dagli itemset
frequenti determinati al passo precedente, e la prima iterazione significa che generiamo tutte le
coppie di itemset candidate ad essere frequenti. Questo non lo facciamo per tutti gli item ma solo
per quelli che prima abbiamo riconosciuto come frequenti. Sicuramente questi candidati analizzati
alla prima iterazione nascono a partire da combinazioni di item frequenti. Calcolando Ck+1

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

calcoliamo la frequenza per ognuno degli itemset candidati che stanno in Ck+1 a quel punto di
nuovo applichiamo la condizione sul minimo supporto e quello che rimane sono gli itemset di
lunghezza K+1 frequenti e abbiamo trovato Fk+1. L’output restituisce uni insieme di insiemi di
itemset frequenti, ovvero tutti itemset frequenti fin tanto che è stato possibile allungare gli itemset
frequenti. La massima lunghezza di itemset frequenti è al più pari alla massima lunghezza di una
transazione. È possibile rappresentare in una struttura a più nodi per quanto sono le possibili
combinazioni e prende il nome di lattice, cioè una rappresentazione grafica di ricerca dei candidati,
così al primo passo avremmo N itemset frequenti, mentre a quello successivo avremo tutte le
possibili combinazioni a coppia degli N itemset cioè si realizza una join ovvero una relazione tra gli
itemset frequenti. Successivamente al passo di pruning possiamo rimuovere gli itemset di
lunghezza K candidati che contengono un sottoinsieme di lunghezza K-1 non frequenti.
Successivamente nel post pruning valutiamo tutti i sottoinsiemi di lunghezza K-1 applicando la
condizione che se non è soddisfatta lo rimuoviamo.
L’algoritmo FP growth usa una struttura dati intelligente che prende il nome di FP free. L’approccio
è quello di “divide et impera” ovvero decomporre un problema in sotto-problemi.

CLUSTER ANALYSIS

Con Cluster Analysis, detta anche analisi dei grappoli, si intende il processo che suddivide un
insieme generico di pattern in gruppi di pattern o oggetti simili. Tali metodi si sono sviluppati fin
dalla fine del XIX secolo e si valuta che gli algoritmi che sono stati elaborati fino ad oggi siano circa
un migliaio. I motivi principali di tanto interesse per questo tipo di algoritmi sono essenzialmente
due:
 le tecniche di analisi dei gruppi sono largamente usate nei più svariati campi di ricerca
(fisica, scienze sociali, economia, medicina, ecc.), in cui la classificazione dei dati disponibili
`e un momento essenziale nella ricerca di modelli interpretativi della realtà`;
 l’evoluzione degli strumenti di calcolo automatico ha consentito di affrontare senza
difficoltà la complessità computazionale che `e insita in molti dei metodi di classificazione e
che in precedenza aveva spinto i ricercatori ad orientarsi verso quelle tecniche di analisi dei
gruppi che erano più facilmente applicabili. Si `e resa cos`ı possibile la produzione di diversi
algoritmi di classificazione, sempre più complessi dal punto di vista computazionale, ma
anche sempre più efficienti nel trarre informazioni dai dati attraverso una loro opportuna
classificazione.
Le modalità di definizione del processo di clustering si possono suddividere essenzialmente in due:
 secondo Sokal (Sokal, Michener, 1958) consiste nell’aggregare un insieme in unità
elementari in modo che la suddivisione risultante goda di alcune proprietà considerate
desiderabili;
 per altri studiosi classificare dell’unità statistiche significa formare dei gruppi di cluster il più
possibile distinti fra loro.
Modificando uno o l’altro di questi procedimenti si possono produrre una gran quantità di metodi
diversi dei quali sono state proposte diverse classificazioni, alcune basate sul tipo di algoritmo
adottato dal metodo, altre basate sul tipo di risultato da esso fornito.
Una proprietà della Cluster Analysis `e che `e esaustiva, cioè suddivide in classi tutti i dati presi in
considerazione; e mutuamente esclusiva, perché é genera delle partizioni sull’ insieme originario. Il
problema principale del cluster, nei fondamenti dei lavori della statistica multivariata di Pearson
[125], Fisher [126, 141], Mahalanobis [112] e Hotelling [122], `e quello quindi di individuare delle
classi di similarità sui pattern. Il concetto di similarità `e legato ad una misura di vicinanza per i
pattern rispetto a ogni singola classe.

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

Partendo da dei dati che indichiamo con F supponiamo di avere a disposi- zione un vettore n-
dimensionale di variabili, X, che rappresentano le misurazioni fatte sull’oggetto da classificare. La
classe identifica perciò le caratteristiche di similitudine su F.
Gli algoritmi di clustering
Una delle esigenze più comuni `e quella di raggruppare gli oggetti appartenenti ad un insieme dato,
in modo tale da definire dei sottoinsiemi il più possibile omogenei. Eseguire il clustering [148] di un
insieme assegnato, contenente oggetti descritti da un insieme di osservazioni, significa individuare
gruppi di oggetti tali che (Figura 4.1):
 elementi appartenenti ad un cluster siano omogenei tra loro ovvero simili sulla base delle
osservazioni (alta similarità intraclasse);
 elementi appartenenti a cluster diversi siano disomogenei tra loro sulla base delle
osservazioni (bassa similarità inter-classe).
La discriminazione degli oggetti avviene valutandone gli attributi in base ad una prestabilita misura
di similarità o distanza.
Gli algoritmi di clustering [91, 113], in linea di massima, possono essere suddivisi in due grandi
gruppi: quelli di tipo gerarchico, in cui si procede tipicamente per aggregazione successiva di
oggetti, costruendo pertanto delle partizioni successive, e quelli di tipo non gerarchico, in cui si
procede ad una partizione dell’insieme originale di oggetti.
Alcuni autori preferiscono utilizzare il termine clustering per indicare i soli metodi non gerarchici,
riservando il termine classificazione non supervisionata per quelli gerarchici. In questa sede,
comunque, sarà utilizzato esclusivamente il primo termine, poiché é esso `e largamente utilizzato e
compreso, indipendentemente dal contesto applicativo.
È importante sottolineare il fatto che una partizione ottenuta mediante un algoritmo di clustering
`e a tutti gli effetti un descrittore aggiuntivo (e sintetico) dell’insieme di oggetti in esame.
Gli algoritmi di clustering [113, 148] si basano sull’utilizzo di una matrice di similarità (o distanza)
fra gli oggetti come base per l’aggregazione di questi ultimi. È importante sottolineare il fatto che la
scelta del coefficiente di similarità (o distanza) risulta in molti casi addirittura più determinante di
quella dell’algoritmo di clustering ai fini del conseguimento dei risultati. Tale scelta, dunque, deve
essere preceduta da una accurata esplorazione dell’informazione disponibile e da una chiara
identificazione del tipo di relazione fra gli oggetti che si intende rappresentare.
4.4.1 Algoritmo K-Means
Questo algoritmo `e stato progettato da MacQueen (1967). L’obiettivo che l’algoritmo si propone `e
di minimizzare la varianza totale inter-cluster. Ogni cluster viene identificato mediante un centroide
(detto anche baricentro o punto medio). L’algoritmo segue una procedura iterativa. Inizialmente
crea K partizioni e assegna ad ogni partizione i punti d’ingresso o casualmente o usando alcune
informazioni euristiche. Quindi calcola il centroide di ogni gruppo. Costruisce quindi una nuova
partizione associando ogni punto d’ingresso al cluster il cui centroide `e più vicino ad esso.
Vengono ricalcolati i centroidi per i nuovi cluster e così via, finché é l’algoritmo non converge.

CLUSTERNING
Il clusterning è un insieme di tecniche che consentono di raggruppare un insieme di elementi in
gruppi omogenei. L’omogeneità può essere espressa utilizzando differenti criteri in base
all’interesse e agli strumenti utili a organizzare e suddividere tali elementi. Il problema del
clusterning è appunto quello di trovare i raggruppamenti che consentono di far si che tutti gli
oggetti di un gruppo 1 abbiano caratteristiche simili o sufficientemente diverse dalle caratteristiche
che hanno gli oggetti raggruppati nel gruppo 2. Le tecniche utilizzate nel clusterning sono
l’algoritmo K-meants e l’algoritmo gerarchico agglomerativo.

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

L’informazione è la rielaborazione del dato per estrapolare conoscenza, mentre il dato è un dato
grezzo. Tali dati vengono processati attraverso l’analisi di cluster. All’interno di un database ogni
riga rappresenta un consumatore che può avere n feautures, ciascuna di queste è un numero
specifico che rappresenta una caratteristica specifica del consumatore. L’algoritmo tirerà fuori un
insieme di raggruppamenti sulla base di una ricerca di omogeneità. Quindi all’interno del database
abbiamo n consumatori sulle righe e una serie di attributi sulle colonne o nel caso dei consumatori
i prodotti. L’obiettivo è trovare il partizionamento naturale in un certo numero di cluster. Dati non
raggruppati possono essere identificati come rumore cioè elementi non simili agli altri. Il cluster fa
parte della classificazione. La classificazione può essere supervisionata, dove conosciamo la classe
a cui i dati appartengono; non supervisionata non conosciamo le classi e quindi l’obiettivo del
cluster è trovare delle classi significative in cui i dati vengono raggruppati in base ai criteri di
similarità scelti dall’utente o calcolati dall’algoritmo. L’algoritmo è definito come una sequenza di
istruzioni finite scritte in un linguaggio di programmazione che vengono date in pasto al computer
che le esegue e restituisce l’output desiderato. Ci aspettiamo così che un metodo di cluster sia
anzitutto scalabile e deve essere abbastanza generale da poter processare varie tipologie di dati,
oltre a saper formare cluster con forma arbitraria cioè deve essere bravo a trovare similarità di
varie forme indipendentemente dalla distribuzione dei dati. Deve trattare il rumore e i autliers
(elemento anomalo rispetto all’intero insieme) e analizzare alta quantità di dati.
La similarità esprime la vicinanza che esiste tra due elementi ed è espressa in termini di una
funzione di distanza. Similarità e dissimilarità sono utilizzate dall’algoritmo di clusterning per
raggruppare i dati in gruppi significativi. Esistono degli indici di performance che indicano quanto
bene è stato fatto dal cluster in termini di qualità di raggruppamento, oltre a delle funzioni che
misurano la performance dell’analisi.

CLUSTERNING ANALISI

Nel clusterning analisi esistono varie tipologie di dati: dati nominali che sono usati per etichettare
delle variabili; dati ordinali sono dati il cui ordine è fondamentale; dati intervalli sono quelli nel
caso della temperatura; e dati ratiobased che rappresentano il peso e l’altezza.
Per calcolare la similarità o la dissimilarità tra le righe si ci basa sulla distanza. Esistono varie misure
di distanza quali euclidea, manhattan, ….

CLUSTERNING GERARCHICO

Nel clusterning gerarchico l’input è sempre il data set mentre l’output è una gerarchia di cluster in
cui all’interno di un cluster grande ci sono gli altri cluster e via. Esistono due tipi di cluster
gerarchico una agglomarativo e uno divisivo. Il cluster agglomerativo parte considerando ogni
consumatore un cluster individuale dove ogni cluster inizialmente è costituito da un singolo
consumatore. Ad ogni passo si calcola la distanza tra le coppie di cluster e quei cluster più simili,
fino a quando non resta un unico grande cluster. È naturalmente di volta in volta si calcola la
distanza tra cluster con distanza minima e man mano essi vengono fusi. Tenendo traccia di come
queste fusioni sono avvenute sarà possibile costruire la gerarchia. Nell’approccio divisivo al
contrario si parte dal cluster più grande separando di volta in volta i cluster interi fino a che ogni
consumatore sarà un cluster.
L’approccio chiave di questo algoritmo è il calcolo della distanza. Esistono diverse tecniche per
calcolare la distanza tra gruppi di punti. Vi sono le tecniche di min, in cui il minimo è la distanza che
intercorre tra due cluster i cui punti sono i più vicini reciprocamente; max è la distanza che
intercorre tra due cluster i cui punti sono più lontani reciprocamente; groupavarage, considera

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

tutte le distanze a coppia tra i consumatori che ci sono tra il primo e nel secondo cluster e somma
tutte queste distanze dividendo per il prodotto della dimensione dei cluster; distanza beatween
centroids, considera il centroide di un cluster quello di un altro cluster e si calcola la distanza tra
questi, il valore e la distanza tra i due cluster.
Introdotto da Kaufmann e Rousseeuw (1990)[119], AGNES `e un metodo di clustering gerarchico
agglomerativo che usa il single link per misurare la distanza tra cluster. AGNES fonde i nodi (cluster
o oggetti singoli) che hanno minima dissimilarità e procede in modo bottom-up fino ad ottenere un
unico cluster finale.
Introdotto da Kaufmann e Rousseeuw (1990)[119], lavora in modo inverso rispetto all’AGNES.
Inizialmente tutti gli oggetti sono collocati in un unico cluster. Questo viene in seguito suddiviso
ripetutamente fino ad avere tutti cluster con un unico elemento. Ad ogni passo, viene scelto il
cluster con il diametro massimo (quello che ha la massima dissimilarità tra qualsiasi coppia di suoi
oggetti). Per dividere il cluster selezionato, l’algoritmo cerca inizialmente gli oggetti che hanno la
massima dissimilarita` media rispetto agli altri oggetti del cluster. Questo oggetto costituisce il
primo elemento del nuovo cluster. L’algoritmo passa quindi a riassegnare gli altri oggetti che sono
più vicini al nuovo cluster rispetto al vecchio, finché si ottengono due cluster.

CLUSTERING PARTIZIONATO

Nel cluster partizionale gli elementi sono divisi in cluster che non si sovrappongono e sono
disgiunti.
Alcune caratteristiche del metodo di clusterning sono l’essere esclusivo o non esclusivo nei quali i
punti possono appartenere a uno o più cluster con un coefficiente di appartenenza, dove il calcolo
di tale coefficiente definisce una caratteristica dei clustering fuzy e non funzy.
Il cluster center based è costituito da un insieme di punti tale che ogni punto appartenente ad un
cluster è vicino al centro del proprio cluster. Il centroide è il punto medio che si può calcolare in
corrispondenza di ciascun cluster e perciò il cluster è center based. Nel caso del K-means il
centroide è una media di tutti gli elementi contenuti in un cluster, al contrario il K-medoids è un
punto particolarmente rappresentativo utilizzato in una variabile in base a una specifica funzione di
qualità.

K-MEANS

Tale metodo è un metodo che partiziona il database di D di n oggetti dove n sono i consumatori
cioè le righe in un insieme di K cluster. L’algoritmo trova un partizionamento in K cluster pe
ottimizzare il criterio di partizionamento scelto. Il partizionamento è scelto da una funzione che si
dice ottimale nel momento in cui ci ridà il minimo valore. Man mano che l’algoritmo raggruppa la
curva scende finché essa non si arresta al minimo. Man mano che l’algoritmo itera scopre nuovi
valori della funzione e allora si può imbattere o nel minimo globale che è il punto ottimale che
indica che cluster ottenuto è buono, oppure si fermerà al minimo locale ovvero il punto più alto
rispetto al minimo globale.
Nel K-means ogni cluster è rappresentato dal centro del cluster, il centroide. In tale algoritmo dato
K come numero di input dei cluster, l’algoritmo itera i dati più volte e individua i dati basati sul
centro. Si sceglie in modo casuale K punti che rappresentano i centroidi, mentre nelle successive va
a calcolare la distanza euclidea tra ogni punto e ogni centroide e assegna il punto al centroide più
vicino. Questo configura il primo partizionamento in k cluster. Successivamente si ricalcolano i
centroidi, ma questa volta sul valore medio per ogni cluster e questo consente un ricollocamento
dei cluster e si ricalcolano i nuovi centroidi. Ci si ferma quando non possono più essere assegnati

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

punti a cluster differenti cioè non consente più spostamenti dei punti in cluster. Ma è molto
probabile che si fermi in un minimo locale piuttosto che non globale. L’algoritmo K-means è dotato
di un elemento ovvero un operatore TKnd che calcola il tempo e la stima del tempo di calcolo in
base alla dimensione degli input, cioè dei dati che stiamo fornendo. N è il numero dei consumatori,
K dei clienti, T le iterazioni e d è il numero degli attributi. Questo ci fa capire che più attributi
abbiamo più impiega del tempo, più consumatori, più tempo. Ma per fortuna questo algoritmo è
lineare cioè il tempo impiegato dipende dalla dimensione degli input cioè dalla size del dataset.
Tale funzione è quindi T x K x n x d, un prodotto in definitiva. I punti deboli dell’algoritmo sono
senza dubbio il fatto che l’algoritmo molto spesso si sospende sul minimo locale (una possibile
soluzione a ciò è l’uso dei moderatori, un operatore che non rende prevedibile lo svolgimento
naturale dell’algoritmo, cioè cambia direzione improvvisamente nell’esecuzione del programma
rendendo però imprevedibile l’esecuzione). Quando il K-means ha difronte cluster in forma strana
spesso non riesce a catturare i consumatori esterni e un ultimo svantaggio è che il K-means può
essere applicato solo quando i tipi di dati permettono di definire la media. Per questi svantaggi
sono state realizzate delle varianti del K-means. Al termine dell’operazione si potrà valutare la
qualità del K-means ed anche per questo esistono funzioni di qualità ovvero la SSE (sum of the
squared error), somma degli errori quadrati. Per ciascun consumatore, l’errore è la distanza
rispetto al centro, cioè il centroide, che chiamiamo m del cluster C di appartenenza. Si calcola cosi
la distanza di ogni punto p che sarebbe il nostro consumatore con il suo centroide. Se per esempio
il consumatore è nel cluster 1 prendiamo il centroide e sommiamo le distanze elevate al quadrato
di ogni elemento con il suo centroide e sommiamo tutto in corrispondenza dello stesso cluster.
Quindi prendiamo prima il cluster 1 e calcoliamo la distanza quadrata di ogni punto con il centroide
corrispondente, sommiamo tutto e passiamo al cluster 2. Alcuni problemi critici del K-means sono
generati quando i cluster hanno dimensioni differenti, ovvero quando i cluster non sono bilanciati
nel numero degli elementi e quindi non ce una distribuzione di densità e i cluster non hanno una
forma globale. Le possibili soluzioni a questi problemi come abbiamo detto sono usare o K molto
alti, o più K centroidi iniziali oppure riiniziare l’algoritmo più volte, per verificare il suo
comportamento e come varia o se resta costante. Ricordare k è fondamentale nella fase di
iniziazione del K-means di normalizzare i dati tramite un pre-processing, ovvero per ogni attributo
della tabella consumatori bisogna realizzare la normalizzazione, quindi che i valori siano compresi
tra 0 e 1, perché se ci sono degli outliers l’algoritmo avrà un laiers. Per questo motivo sarà utile
rimuovere gli outliers con un filtro (come in Weka) perché l’algoritmo K-means calcolala la media e
perciò risente dell’outliers. Dopo aver realizzato il K-means si possono generare ulteriori operazioni
di post- processing, eliminando per esempio cluster troppo piccoli, spezzare cluster con un valore
di funzione SSE alto, questo perché se il valore della funzione è alto vuol dire che questi cluster
hanno degli errori nella clusterizzazione. Un ulteriore soluzione invece è unire i cluster piccoli con
SSE molto basso che può essere applicata anche durante l’esecuzione.
Quindi abbiamo detto che un’operazione fondamentale prima di analizzare i dati è il pre-
processing, ovvero delle attività utili a pulire i dati. Una delle attività del pre-processing è
normalizzare i dati. Considerando la matrice dei compratori, prendiamo attributo per attributo ed
ognuno di questi prendo il valore corrispondente per compratore. Al valore numerico sottraiamo il
minimo e dividiamo per massimo meno minimo. Il minimo è il minimo valore che o sulla colonna di
quell’attributo mentre il massimo è il massimo valore che ho sulla colonna di quell’attributo.
Questo tipo di normalizzazione da sempre un valore compreso tra 0 e 1. Quindi minimo e massimo
sono sempre relativo all’attributo della sola colonna di riferimento; quest’operazione è importante
in quanto ogni attributo ha il suo range di attributi di valori, ecco perché minimo e massimo sono
relativi al singolo attributo. Dopo l’esecuzione, come anticipato, è possibile realizzare le varie
tecniche di post-processing (minimizzare i valori della funzione SSE spezzando i cluster che hanno

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

valore di funzione SSE troppo alto oppure unire i cluster vicini con valore di funzione SSE troppo
basso. Tuttavia è possibile anche realizzare queste strategie durante l’esecuzione. Questo può
portare ad una variante del K-means denominante bisecting K-means un tipo di clustering che può
produrre anche un clustering anche partizionale o gerarchico).

K-MEDOIDS

Il K-medoids calcola la distanza o similarità, e si può applicare anche ai dati non numerici in quanto
ha la capacità di avere come input la matrice delle distanze. Una versione del K-meodids è la
versione PAM, che scegli in modo random un insieme iniziale di medoids e anche il K-medoids
vuole come valore iniziale il numero di clustering da restituire. I medoidi devono essere scelti tra i
nostri consumatori presenti nel data set, dopo di che l’algoritmo itera più volte sul data set e tenta
ogni volta di sostituire uno dei medoids selezionato con un consumatore che non è medoids. Se
questo scambio migliora la funzione di costo SSE, quindi l’abbassa vuol dire che è produttivo
mantenere il nuovo medoide. Questo algoritmo funziona bene su piccole basi di dati ma non su
quelle grandi in quanto non scala bene. Naturalmente lo scambio tra medoidi avviene tra i medoidi
più vicini. Dopo aver identificato i medoidi di ogni cluster, è possibile identificare un altro punto del
cluster e sostituirlo con il medoide del cluster di riferimento. L’algoritmo ricalcola la distanza o
similarità tra i punti del cluster e se il valore della funzione SSE è basso rispetto al medoide
precedente allora lo scambio è più fruttuoso in termini di clasterizzazione.

TEXT MINING

In primo luogo è importante conoscere gli aspetti principali del processo di conoscenza. Utilizzando
strumenti come clustering o di classificazione riusciamo ad estrapolare conoscenza dei dati
processati da algoritmi, estraendo conoscenza cioè informazioni elaborate a partire dai dati
analizzati. In particolare, questo processo è contestualizzato al dominio di dati testuali cioè non
strutturati, cioè un database che da una struttura che indica i vincoli che legano i dati tra loro.
L’introduzione alla motivazione dell’importanza di processare i testi è dovuto al fatto che oggi
giorno il contenuto testuale è rilevante rispetto ad altre forme di dati; il testo può essere di due tipi
digitale o digitalizzato. Le sorgenti di testo possono essere diverse e differenti tra cui e-book, e-
mail, articoli scientifici, contratti, ecc. I problemi di gestione dell’analisi dei dati se estendono
perfettamente al text mining, tra cui vi sono le dimensioni delle collezioni dei dati, alta
dimensionalità di attributi, l’overfitting ovvero un fenomeno tale per cui un classificatore si adatta
ai dati utili per addestrare il modello di classificare i dati, materiali quantità di dati che cambiano in
base alle interazioni, dati rumorosi. Inoltre, inizialmente i testi non sono nati naturalmente come
dati strutturati, come cioè basi di dati che indica il modo in cui i dati vengono rappresentati e
include alcuni vincoli che i dati devono rispettare e in più ci dice come i dati sono collegati tra loro.
Essendo assente nei testi si dice che questi sono dati non strutturati. Inoltre, i testi sono molto
ambigui per via fondamentalmente della lingua, una parola ad esempio può essere intesa in senso
ironico o meno, oppure in base al numero delle lingue usate, anche all’interno di un unico testo.
Quindi che cos’è il text mining? Il text mining molto spesso è inteso come information retrivial che
naturalmente non sono i medesimi concetti, e può essere confuso con la classificazione dei testi
supervisionati, e appunto questa è la classificazione supervisionata. Il text mining ha sicuramente
senso per estrarre testi di interesse da un’ampia collezione di documenti però il text mining risulta
superato dal data mining, quindi separato dal processo di scoperta della conoscenza. Il text mining
potrebbe occuparsi di trovare pattern all’interno di grosse collisioni di documenti, cioè cercare dei
comportamenti significativi che ricorrono all’interno dei testi e consentono di distinguere una

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

categoria di testi da un ‘altra categoria. Scoprire quindi informazioni non note, cioè creare modelli
e metodi per strapolare informazioni di vario tipo dai testi. Qual è quindi il reale significato del text
mining? E cosa significa creare un pattern nei testi? Il concetto è questo, nell’ambito del text
mining andiamo a trovare pattern all’interno di grandi collezioni di testi però più che farlo nel text
mining c’è un’area specifica che si occupa di ciò ovvero la linguistica computazionale. Quindi il text
elabora informazioni non note ma intorno al text mining ci sono una serie di discipline affini che
interagiscono con il text mining. Quindi il text mining processa il testo ed estrae l’informazione da
questo non note all’utente e a coloro che devono stabilire delle decisioni, per questo è di supporto
di decisione. Quindi al centro abbiamo text mining che processa i dati e fa estrazione di conoscenza
e intorno al text mining si pongono tutta una serie di altre analisi di cui il text mining si serve (data
mining, natural language processing, information extraction, information retrivial). In particolare,
dal data mining il text mining si serve dei classificatori supervisionati (produttori) e non
supervisionati (clustering).
I task processeranno tali testi trasformati in dati strutturati e ogni testo sarà etichettato da una
classe. Al task sarà dato successivamente un nuovo dato in input e dovrà essere in grado di
classificarlo. Questo processo è detto e-learning cioè il modello apprende come classificare dati
non noti restituendo in output la classe del nuovo testo dato in input. Nel caso del learning non
supervisionato abbiamo invece il clustering di cui non conosciamo nulla a priori, ma sarà
l’algoritmo a tirare fuori un ordine di raggruppamento. In particolare, i task supervisionati e non
supervisionati possono applicarsi o a singole parole o a interi testi, e naturalmente tali attività si
applicano in base all’utilità e ai fini. La maggior parte dei task di elaborazione del testo coinvolgono
un numero di fasi. Primo elemento è quello di trovare un modo opportuno per rappresentare
meglio il testo e quindi quali attributi utilizzare, secondo elemento è applicazione della tecnica di
learning, terzo riduzione dei testi in vettori di features, quarto il modello ci da in output il risultato
e lo valutiamo presentandolo opportunamente tramite gli indici di performance. In particolare,
vediamo fase per fase. Prima fase ovvero estrazione delle caratteristiche testuali che saranno date
al classificatore. Le funzioni principali sono quelle informativa e indicativa. Indicativa rivela
elementi del contenuto su cui si può essere decisiva la rilevanza del testo in relazione all’analisi da
svolgere. Un’altra funzione è quella informativa per cui la nostra rappresentazione testuale può
rappresentare un sostituto vero e proprio del testo originale. Il testo è quindi mantenuto in un
certo senso simile all’originale. Nell’ambito del text rappresentation esistono i sistemi di browsing
che consentono di cercare i documenti in un’ampia collezione di documenti e fanno spesso parte
del web browsing. In particolare, il document browsing systems fa parte dell’indicativa
rappresentation. Un’altra funzione è il question answering systems tipica dell’informative mojor
functions. I sistemi di question-answering sono noti per la capacità di estrapolare informazione
specifica da documenti, estraendo cioè informazioni dal testo singolo. Un altro elemento
interessante del text mining è l’information retrivial. Data una query, Keyword expression si
restituisce una serie di dati inerenti in base alla rilevanza (google). A questo punto possiamo
selezionare i K documenti più rilevanti. Questo avviene perché sulla base della parola cercata e
quelle indicizzate, il sistema effettua un matching della parola con i documenti che presentano la
parola e i documenti verranno ordinati su una base di qualche valutazione generando un ranking,
una lista dei documenti. Esistono differenti modelli di informat retrivial, di cui esso in particolare è
il modello booleano. La logica booleana è una logica costituita da 0 e 1, vero e falso e tutte le
operazioni che ne derivano si basano su questo alfabeto. Questo modello confronta la query in
formato booleano con l’insieme dei termini usati per identificare il contenuto testuale anch’essi
trasformati in valori booleani. La query è costruita su operatori booleani che saranno matchati con
quelli dei termini (gli operatori sono AND, OR, NOT). Il match potrà o non potrà esserci. In
corrispondenza delle righe abbiamo i termini chiave, delle colonne il nome delle opere. Il valore 1

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

corrisponde a si, 0 a no. La query potrebbe essere: quali sono le opere di Shakespeare che
contengono la parola BRTUS AND CAESAR but NOT California? Su tutti e 3 gli elementi hanno
valore 1 allora è 1, se uno dei tre a valore 0 allora è 0; ma avendo un NOI gli 1 diventano 0 e gli 0
diventano 1.

MODELLO SPAZIO VETTORE

Un altro modello di information retrivial è il modello spazio vettore (Vector Space Model). In
questo modello ogni documento è un insieme di attributi, in cui ogni data set è costituito da una
collezione di documenti e ogni documento è un vettore di pesi. Oltre a questo abbiamo un index
term set che identifica il nostro vocabolario, dove i termini rappresentano gli attributi e all’interno
il numero di volte che il termine è presente in quel documento sulla riga. La rilevanza è calcolata in
base alla misura di prossimità. Una prima proprietà deducibile è quella simmetrica, per cui se d1 è
vicino a d2 allora è vero anche il contrario. Se d1 è vicino a d2 e d2 è vicino a d3 allora d1 non è
lontano da d3 (detta proprietà transitiva). Se nessun documento è vicino a d, all’infuori di sé stesso
di dice riflessiva. Quindi i dati possono essere normalizzati dividendo ciascuna delle sue
componenti per la lunghezza del vettore.
Un’altra soluzione sarebbe dividere ogni peso per la lunghezza dell’intero vettore in questo modo è
come se ottenessimo una frequenza. Si possono considerare sia frequenze di occorrenza delle
parole globali relative a una specifica porzione di documento, oppure globali quando andiamo a
considerare l’intero documento. La particolarità di tale modello, fornisce una misura di score o di
punteggio, segnato dalla similarità o distanza tra le query e il documento, in cui la query diventa un
vettore. Tale modello funzione bene e gestisce la grossa quantità di documenti, ma il problema è la
mancanza di una connessione sintattica, in quanto si considera solo il numero delle frequenze dei
termini, oltre a mancare di informazioni semantiche che non fa verificare le cooccorrenze.

TECNICHE DI STORAGE

Il testo deve essere mantenuto in memoria per poterlo processare, cioè avere una struttura che sia
in grado di accedere alla collezione di documenti e a concetti specifici legati ad uno specifico
documento. Uno di questi indici si chiama indice invertito; per ogni termine è salvato
l’identificativo di tutti i documenti che contengono quel termine. Questo indice si ottiene
attraverso una relazione tra documenti-termini, per cui per ogni documento abbiamo l’insieme di
termini che sono presenti in quel documento. Ottenuta tale matrice di rappresentazione, tale
matrice è trasposta, cioè ogni riga diventano colonne e viceversa. Dopo di che i termini vengono
organizzati al loro interno, solitamente in ordine alfabetico. Inoltre, all’interno di tale struttura
potremmo cosi avere dei termini duplicati. Nel caso di termini duplicati all’interno dello stesso
documento si potrebbe ad esempio aggiungere un’altra colonna avendo cosi il termine, l’ID del
termine e la frequenza che indica quante volte il termine occorre in quel documento. Tuttavia il file
può essere diviso in un dizionario. Ottenendo una rappresentazione alternativa in cui abbiamo il
termine, il numero di volte in cui il termine compare, l’ID del documento e a questo sarà collegato
un file di posting che indica nello specifico quali sono i documenti che corrispondono alla
frequenza X, fornendo cosi la distribuzione delle frequenze.
n-grammi considerano parti di termini, dove a seguito si costruirà un vettore dove ogni attributo
corrisponde ad n-grammi estratto dal testo, con una frequenza come valore.
Signature file, dove i documenti sono divisi in blocchi logici e tali blocchi contengono un numero
fissato di termini indice e sono puttern lineari con numeri binari e naturalmente questi blocchi
sono poi concatenati per creare il descrittore del documento. In generale quello che si fa è

Scaricato da Marco Alosa (marcoalosa93@gmail.com)


lOMoARcPSD|3137344

naturalmente selezionare dei termini particolarmente rilevanti perché sarebbe impossibile


selezionare tutti i termini, ma saranno utili solo quelli più significativi che catturano al meglio la
semantica. E in generale il testo è rappresentato con un bag of words.

Scaricato da Marco Alosa (marcoalosa93@gmail.com)

Potrebbero piacerti anche