Nei vari test sono stati utilizzati valori di TheshP e ThreshE compresi rispettivamente fra [0.02, 0.40] e [0.8, 0.95]. Come si ricorda, questi valori significano che vengono considerati nel calcolo dell'output di un messaggio per una certa categoria (ham o spam) solo quei termini presenti almeno nello 2%-40% dei documenti di quella categoria e presenti al massimo nel 20%-5% dei messaggi dell'altra categoria.
Questi sono i valori che hanno dato i migliori risultati sia per quel che riguarda la classificazione di email ham (minimizzando il numero di falsi positivi), che in quella di messaggi spam (minimizzando il numero di falsi negativi). Altri valori avrebbero reso molto meno performante il sistema questo perchè da test effettuati in precedenza si è visto che GAME funziona meglio quando l' area di attivazione della funziona Gaussiana con cui vengono pesati i termini è stretta: se la varianza (cfr. equazione 3.20) è piccola, il sistema classifica meglio i messaggi. Oltretutto si è visto come le prestazioni decadono quando il ThreshE scende sotto 0.85-0.80: tale valore deve essere settato molto alto proprio per ``penalizzare'' quei termini che sono importanti per una categoria di messaggi ma appaiono spesso anche nell' altra. Per ciò che riguarda invece ThreshP, le prestazioni decadono generalmente invece quando esso supera il valore 0.2, ovvero quando viene data importanza solo a quei termini che compaiono in almeno il 20% dei documenti di una categoria.
L' utilizzo o meno di stop list di termini non rilevanti nella categorizzazione di testi è risultata poco influente nei risultati (differenze nell' ordine di grandezza di 1-2 punti percentuali). L 'uso o meno di essa ha portato ad ottenere prestazioni molto ravvicinate nelle percentuali di accuratezza ed anzi in media il suo non uso ha apportato a dei miglioramenti, se pur molto lievi. Utilizzare la stop list è però utile computazionalmente perchè rende il funzionamento dell' applicazione meno gravoso in termini di memoria utilizzata (e conseguentemente spazio su disco richiesto per la serializzazione delle categorie addestrate), in quanto il numero di termini da contenere è meno vasto (poichè i termini non rilevanti vengono scartati). Infatti con relazione ai test effettuati, le categorie ham e spam dopo l' addestramento sono state costituite dal seguente numero di token (Tabella 5.4).
Come si vede, con relazione all' utilizzo della stop list, i termini più presenti nelle due categorie, sono stati lug per la categoria ham e body per la categoria spam. Il primo termine (acronimo di ``linux user group'') rispecchia la mole di messaggi che personalmente ho ricevuto aventi come contesto il LUG (più che altro newsletter); il secondo termine, body, è dovuto al fatto che la stragrande maggioranza delle email spam contengono testo in formato html. Poichè il parser dell' applicazione considera come rilevanti anche i tag html, si capisce come il tag body, presente in ogni documento che contenga codice html, sia pertanto il più frequente.
La non necessità di usare un elenco di termini renderebbe pertanto fruibile l' applicazione anche da utenti che ricevono email in lingue diverse dall' italiano e dall' inglese (anche se questo ragionamento attualmente è puramento teorico, e necessiterebbe di un riscontro da parte di reali utilizzatori dell' applicazione).
Va notato come questi risultati probabilmente siano il massimo che si poteva ottenere dai messaggi personalmente raccolti nel corso delle ultime settimane. Infatti l'accuratezza di un sistema di filtraggio statistico è altamente dipendente dal come tale ambiente è stato addestrato, pertanto l'input deve essere accuratamente selezionato, cosa che è avvenuta per i test effettuati nella Sezione 5.1.
L' uso di classi di algoritmi (Original, Simple e
Another Simple) di GAME è stato importante soprattutto per vedere quale
di essi si comportasse meglio nell' ambito della classificazione di messaggi di
posta elettronica. I migliori risultati ottenuti con ognuno di essi per classificare
messaggi ham e spam si possono osservare nella Tabella 5.5.
|
Con i risultati di cui sopra, si ritiene che tutte e le tipologie di settaggio dei valori
della i-esima funzione gaussiana (3.21) siano validi per ottenere
buoni risultati, ma la configurazione Another Simple GW personalmente elaborata e sperimentata
sembrerebbe essere quella che fornisce i migliori risultati in fatto di classificazione binaria di
messaggi di posta elettronica (spam/ham). Infatti l' utilizzare come varianza della gaussiana
solo
invece che il prodotto
(come nella configurazione Original GW)
significa dare un maggior peso al termine e rispetto all' utilizzo della singola
(come nella
configurazione Simple GW) significa
dare un peso maggiore o minore rispetto ai casi
o
. Nelle Figure 5.1 e 5.2 vengono rappresentate le funzioni gaussiane
relative a due termini di esempio: il primo con
e
, il secondo con
e
.
Alla luce dei risultati ottenuti con i test, si può dire che a prescindere dalla variazione dell' algoritmo usata (Original / Simple / Another Simple GW), per avere le migliori prestazioni possibili in fase di classificazione di messaggi, per un utente è opportuno addestrare il sistema rispettando le seguenti importanti linea guida:
Un filtro statistico come GAME funziona abbastanza bene perchè la distribuzione dei termini contenuti nei messaggi spam è piuttosto differente da quella utilizzata nei messaggi ham. Uno spammer quindi potrebber far breccia dentro al filtro solo se sapesse quale è l' archivio di email spam e ham del destinatario: in questo modo potrebbe confezionare un messaggio il cui contenuto assomiglierebbe il più possibile ad un messaggio legittimo, e si discosterebbe quanto più possibile da uno non desiderato. Ma dato che l' archivio di messaggi ricevuti da ciascuno di noi rimane personale (ed è proprio in base a quello che il sistema viene addestrato), gli spammer hanno scarse possibilità di aggirare il filtro camuffando il messaggio o personalizzandolo per i vari destinatari.
Il classificatore è in questo senso adattivo: ogni qualvolta viene riaddestrato, perchè magari abbiamo ricevuto tanti nuovi messaggi, esso crea una nuova configurazione basata sulla storia dei messaggi ricevuti, tale da consentirgli poi di classificare più correttamente un nuovo messaggio in arrivo. Questa è la cosa più importante, grande miglioria rispetto ai filtri basati su parole chiave, perchè in tal modo un termine ``sospetto'' ha un coefficiente spam dipendente dalla storia dei messaggi precedenti: per un sessuologo ad esempio il termine ``sesso'' (e simili) non avrà un elevato indice di spam, cosa che invece accade per un utente comune.