mercoledì 7 giugno 2017

Pratical Maching Learning 2

 Algorithms: The Basic Methods


Ora che abbiamo visto come possono essere rappresentati gli 'input e output', è tempo di guardare gli algoritmi di apprendimento stessi. Questo capitolo spiega le idee fondamentali dietro le tecniche utilizzate nell'esportazione dei dati pratici. Non approfondiremo in maniera più complessa le emissioni più complicate: le versioni avanzate degli algoritmi, le ottimizzazioni possibili, le complicazioni che sorgono in pratica. Questi argomenti sono stati rinviati al Capitolo 6, in cui ci impegniamo a implementare in modo efficace metodi di apprendimento macchina come quelli inclusi nei toolkit di data mining e utilizzati per applicazioni real-world. È importante comprendere questi problemi più avanzati per sapere cosa succede veramente quando si analizza un particolare set di dati.

In questo capitolo esaminiamo le idee fondamentali. Una delle lezioni più istruttive è che le idee semplici spesso funzionano molto bene e raccomandiamo fortemente l'adozione di una metodologia di "semplicità" quando si analizzano i set di dati pratici. Ci sono molti diversi tipi di struttura semplice che i set di dati possono esibire. In un set di dati, potrebbe esserci un unico attributo che faccia tutto il lavoro e gli altri possono essere irrilevanti o ridondanti. In un altro set di dati, gli attributi potrebbero contribuire in modo indipendente e uguale al risultato finale. Un terzo potrebbe avere una struttura logica semplice, che coinvolge solo pochi attributi che possono essere catturati da un albero di decisione. In un quarto, possono esistere alcune regole indipendenti che regolano l'assegnazione di istanze a classi diverse. Un quinto potrebbe mostrare dipendenze tra i diversi sottotipi di attributi. Un sesto potrebbe comportare la dipendenza lineare tra gli attributi numerici, dove ciò che conta è una somma ponderata di valori degli attributi con pesi correttamente scelti. In una settima, le classificazioni adatte a regioni particolari di spazio di esempio potrebbero essere governate dalle distanze tra le istanze stesse. E in un ottavo, potrebbe essere che nessun valore di classe è fornito: l'apprendimento è senza supervisione.

  Nella varietà infinita di possibili set di dati esistono molti diversi tipi di struttura che possono verificarsi, e uno strumento di data mining, non importa quanto capace, che "cerca una classe di struttura" può perdere completamente le regolarità "di un tipo diverso ', Indipendentemente da' quanto rudimentali 'quelle' possono essere '. Il risultato è una struttura di classificazione "barocca e opaca" di un tipo anziché una struttura "semplice, elegante, immediatamente" comprensibile di un'altra.
Ognuno degli otto esempi di tipi diversi di set di dati scelti in precedenza porta ad un metodo di apprendimento della macchina diverso "ben adatto per" "scoprirlo". Le sezioni di questo capitolo guardano a ciascuna di queste strutture a sua volta.

  Dedurre le regole rudimentali


Ecco un modo semplice per trovare regole di classificazione molto semplici da un insieme di istanze. Chiamato 1R per 1 regola, genera un albero di decisione di un livello espresso sotto forma di un insieme di regole che tutti testano un attributo particolare. 1R è un metodo semplice e conveniente che spesso presenta regole abbastanza buone per caratterizzare la struttura dei dati. Si scopre che le regole semplici spesso raggiungono un'accuratezza sorprendentemente elevata. Forse è perché la struttura sottostante a molti set di dati del mondo reale è piuttosto rudimentale e solo un attributo è sufficiente a determinare la classe di un'istanza abbastanza accuratamente. In ogni caso, è sempre un buon piano per provare prima le cose più semplici.

 L'idea è questa: creiamo regole che testano "un unico attributo e un ramo" di conseguenza. Ogni ramo corrisponde ad un diverso valore dell'attributo. È ovvio che "qual è la migliore classificazione" per dare a ciascun ramo: utilizzare la classe che si verifica più spesso nei dati di allenamento. Quindi il tasso di errore delle regole può essere facilmente determinato. Basta contare gli errori che si verificano sui dati di addestramento, cioè il numero di istanze che non hanno la classe di maggioranza.Ogni attributo genera un insieme diverso di regole, una regola per ogni valore dell'attributo. Valuta "il tasso di errore" per ciascun set di regole dell'attributo e scegle il migliore. È così semplice! La Figura 4.1 mostra l'algoritmo in forma di pseudocode.


 For each attribute,
   For each value of that attribute, make a rule as follows:
     count how often each class appears
     find the most frequent class
     make the rule assign that class to this attribute-value.
   Calculate the error rate of the rules.

 Choose the rules with the smallest error rate.
 

Per vedere il metodo 1R sul lavoro, prendere in considerazione i dati meteorologici della tabella 1.2 (lo troveremo molte volte di nuovo quando guardiamo come funzionano gli algoritmi di apprendimento). Per classificare sulla colonna finale, giocare, 1R considera quattro serie di regole, una per ogni attributo. Queste regole sono indicate nella tabella 4.1. Un asterisco indica che è stata fatta una scelta casuale tra due risultati altrettanto probabili. Il numero di errori 'viene dato' per ogni regola, insieme al numero totale di errori per la regola impostata nel suo insieme. 1R sceglie l'attributo che produce regole con il minor numero di errori, cioè la prima e la terza regola. Arbitrariamente 'rompere il legame' tra questi due set di regole dà:

 

 outlook:

   sunny -> no
overcast -> yes
   rainy -> yes
 

 Abbiamo notato all'inizio che il gioco per i dati meteo non è specificato. Abbastanza stranamente, sembra giocato quando è nuvoloso o piovoso, ma non quando è soleggiato. Forse è un'inseguimento al coperto.
Valori mancanti e attributi numerici

  Anche se un metodo di apprendimento molto rudimentale, 1R accoglie sia valori mancanti che attributi numerici. Si tratta di questi modi semplici ma efficaci. La mancanza viene considerata come un altro valore di attributo in modo che, ad esempio, se i dati meteo contenessero valori mancanti per l'attributo di outlook, un set di regole formato da Outlook prevederebbe quattro possibili valori di classe, ognuno per sole, nuvoloso e piovoso Un quarto per la mancanza.

 

Possiamo convertire gli attributi numerici in quelli nominali usando un metodo di discretizzazione semplice. In primo luogo, ordinate gli esempi di formazione in base ai valori dell'attributo numerico. Questo produce una sequenza di valori di classe. Ad esempio, ordinare la versione numerica dei dati meteo (Tabella 1.3) in base ai valori della temperatura produce la sequenza



 64 65 68
 yes no yes

 La discretizzazione comporta la suddivisione di questa sequenza mettendo in esso punti di interruzione. Una possibilità è quella di posizionare punti di interruzione ovunque cambia la classe, producendo otto categorie:


  yes | no | yes yes yes | no no


 La scelta dei punti di interruzione a metà tra gli esempi su entrambi i lati li pone a 64.5, 66.5, 70.5, 72, 77.5, 80.5 e 84. Tuttavia, le due istanze con valore 72 causano un problema perché hanno lo stesso valore della temperatura, classi. La soluzione più semplice è quella di spostare il punto di interruzione a 72 su un esempio, a 73,5, producendo una partizione mista in cui nessuna è la classe di maggioranza.

 Un problema più grave è che questa procedura tende a formare un gran numero di categorie. Il metodo 1R naturalmente gravita verso la scelta di un attributo che si divide in molte categorie, perché questo divide il set di dati in molte classi, rendendo più probabile che le istanze avranno la stessa classe della maggioranza nella loro partizione. Infatti, il caso di limitazione è un attributo che ha un valore diverso per ogni istanza, ovvero un attributo del codice di identificazione che individua istanze in modo univoco, e questo darà un tasso di errore zero sul set di addestramento perché ogni partizione contiene solo un'istanza. Naturalmente, gli attributi altamente ramificanti di solito non funzionano bene sugli esempi di test; Anzi, l'attributo del codice di identificazione non prevede mai alcun esempio al di fuori dell'istruzione impostata correttamente. Questo fenomeno è conosciuto come overfitting; Abbiamo già descritto la bias di evitare overfitting nel capitolo 1 (pagina 35) e incontreremo questo problema ripetutamente nei capitoli successivi.

  Per 1R, l'overfitting è probabile che si verifichi ogni volta che un attributo ha un gran numero di valori possibili. Di conseguenza, quando si discretizza un attributo numerico viene adottata una regola che impone un numero minimo di esempi della classe di maggioranza in ogni partizione. Supponiamo che il minimo sia fissato a tre. Ciò elimina tutti tranne due delle partizioni precedenti. Invece, inizia il processo di partizionamento


yes no yes yes | yes . . .


 Assicurando che ci siano tre eventi di sì, la classe di maggioranza, nella prima partizione. Tuttavia, poiché l'esempio seguente è anche sì, non perdiamo nulla inserendo anche quello nella prima partizione. Ciò porta ad una nuova divisione

 

 yes no yes yes yes no no yes yes yes | no yes yes no

 Dove ogni partizione contiene almeno tre istanze della classe di maggioranza, tranne l'ultima, che di solito avrà meno. I limiti di divisione cadono sempre tra esempi di classi diverse.
 Ogni volta che le partizioni adiacenti hanno la stessa classe di maggioranza, come le prime due partizioni di cui sopra, esse possono essere fuse insieme senza influenzare il significato dei set di regole. Quindi la discretizzazione finale è


 yes no yes yes yes no no yes yes yes | no yes yes no


 la quale porta alla regola impostata


 temperature:

              =< 77.5 -> yes
               > 77.5 -> no



 La seconda regola comporta una scelta arbitraria; Come accade, nessuno è stato scelto. Se avessimo scelto sì invece, non ci sarebbe bisogno di alcun punto di interruzione e come illustra questo esempio, potrebbe essere meglio utilizzare le categorie adiacenti per aiutare a rompere i legami. Infatti questa regola genera cinque errori sul set di allenamento e quindi è meno efficace della precedente regola per la prospettiva. Tuttavia la stessa procedura porta a questa regola per l'umidità:


 humidity:

          =< 82.5 -> yes
           > 82.5 and =< 95.5 -> no
           > 95.5 -> yes


 Ciò genera solo tre errori sul set di allenamento ed è il migliore "1-rule" per i dati nella Tabella 1.3.
 Infine, se un attributo numerico ha valori mancanti, viene creata una categoria aggiuntiva e la precedente procedura di discretizzazione viene applicata solo alle istanze per le quali è definito il valore dell'attributo.
   Discussione

 In un documento seminariale intitolato "Le regole di classificazione molto semplici funzionano bene sui set di dati più comunemente utilizzati" (Holte 1993), è stato riportato uno studio completo delle prestazioni della procedura 1R su 16 set di dati utilizzati frequentemente dai ricercatori di 'machine learning' per valutare i loro algoritmi. Nel corso di tutto lo studio ha utilizzato la convalida incrociata, una tecnica di valutazione che spiegheremo nel capitolo 5, per garantire che i risultati siano rappresentativi di ciò che i gruppi di test indipendenti potrebbero produrre. Dopo qualche sperimentazione, il numero minimo di esempi in ogni partizione di un attributo numerico è stato impostato a sei, non tre come usato per l'illustrazione precedente.

  Sorprendentemente, nonostante la sua semplicità, il 1R ha fatto meraviglie - anche imbarazzante - "ben in confronto" con i metodi di apprendimento più avanzati "e le regole che ha prodotto sono risultate solo pochi punti percentuali meno accurati, su quasi tutti «i set di dati», rispetto agli «alberi decisionali» prodotti da uno schema di induzione all'avanguardia. Questi alberi erano in generale considerevolmente più grandi delle regole di 1R. Le regole che provano un singolo attributo sono spesso una "alternativa valida" alle strutture più complesse e questo incoraggia fortemente una metodologia di semplicità, in cui viene stabilita la performance di base utilizzando tecniche semplici e rudimentali prima di avanzare a metodi di apprendimento più sofisticati che generano inevitabilmente Output che è più difficile per le persone interpretare.

 La procedura 1R impara un albero di decisione di un livello, le cui foglie rappresentano le diverse classi. Una tecnica leggermente più espressiva è quella di utilizzare una regola diversa per ogni classe. Ogni regola è una congiunzione di prove, una per ogni attributo. Per gli attributi numerici il test controlla se il valore si trova entro un intervallo specifico; Per quelli nominali controlla se si trova in un determinato sottoinsieme dei valori di tale attributo. Questi due tipi di test - intervalli e sottoinsieme - vengono appresi dai dati di addestramento relativi a ciascuna classe. Per un attributo numerico, gli endpoint dell'intervallo sono i valori minimi e massimi che si verificano nei dati di formazione per quella classe. Per un nominale, il sottoinsieme contiene solo i valori che si verificano per quel attributo nei dati di formazione per la classe. Norme che rappresentano classi diverse generalmente si sovrappongono, e al tempo di previsione è previsto quello con i test più corrispondenti. Questa semplice tecnica spesso dà una utile prima impressione di un set di dati. È estremamente veloce e può essere applicato a grandi quantità di dati.
  Modellazione statistica

  Il metodo 1R utilizza un singolo attributo come base per le sue decisioni e sceglie quello che funziona meglio. Un'altra tecnica semplice è usare tutti gli attributi e permettere loro di apportare contributi alla decisione che sono altrettanto importanti e indipendenti l'uno dall'altro, data la classe. Questo è irrealistico, ovviamente: ciò che rende interessanti i set di dati della vita reale è che gli attributi non sono certamente altrettanto importanti o indipendenti. Ma porta ad un semplice schema che funziona nuovamente bene in pratica.

 La Tabella 4.2 mostra un riepilogo dei dati meteo ottenuti contando quante volte ogni coppia attributo-valore si verifica con ogni valore (sì e no) per il gioco. Ad esempio, si può vedere dalla tabella 1.2 che la prospettiva è soleggiata per cinque esempi, due dei quali hanno il gioco = si e tre dei quali hanno giocato = no. Le celle della prima riga della nuova tabella contengono semplicemente queste occorrenze per tutti i valori possibili di ciascun attributo e la figura di gioco nella colonna finale conta il numero totale di eventi di sì e no. Nella parte inferiore della tabella abbiamo riscritto le stesse informazioni sotto forma di frazioni o probabilità osservate. Ad esempio, i nove giorni che giocano sono sì, la prospettiva è soleggiata per due, con una frazione di 2/9. Per giocare le frazioni sono diverse: sono la proporzione di giorni che il gioco è sì e no, rispettivamente.

 Ora supponiamo di incontrare un nuovo esempio con i valori mostrati nella Tabella 4.3. Trattiamo le cinque caratteristiche della tabella 4.2 - la prospettiva, la temperatura, l'umidità, il vento e la probabilità complessiva che il gioco è sì o no - come elementi altrettanto importanti e indipendenti di prove e moltiplicare le corrispondenti frazioni. Guardando al risultato si dà:


  likelihood of yes = 2 9 ¥ 3 9 ¥ 3 9 ¥ 3 9 ¥ 9 14 = 0.0053.


 Le frazioni vengono prelevate dalle voci sì in tabella secondo i valori degli attributi per il nuovo giorno e la finale 9/14 è la frazione globale che rappresenta la percentuale di giorni in cui il gioco è sì. Un calcolo simile per il risultato non porta a


 Probability of yes = 0.0053/(0.0053 + 0.0206) = 20.5%,


 Probability of no = 0.0206/(0.0053 + 0.0206) = 79.5%.


 Questo metodo semplice ed intuitivo è basato sulla regola Bayes di probabilità condizionale. La regola di Bayes dice che se avete un'ipotesi H e la prova E che sopporta l'ipotesi, allora


  Pr[ H E ] =  Pr[EH] Pr[H] / Pr[E]

 Utilizziamo la notazione che Pr [A] indica la probabilità di un evento A e che Pr [A | B] indica la probabilità di A condizionato ad un altro evento B. L'ipotesi H è che il gioco sarà, per esempio, sì e Pr [H | E] risulterà essere del 20,5%, proprio come determinato in precedenza. La prova E è la combinazione particolare dei valori degli attributi per il nuovo giorno, la vista = soleggiata, la temperatura = fresca, l'umidità = alta e il vento = vero. Chiamiamo questi quattro pezzi di prova E1, E2, E3 e E4 rispettivamente. Supponendo che questi pezzi di prova siano indipendenti (data la classe), la loro probabilità combinata si ottiene moltiplicando le probabilità:


 Pr[yes E]=Pr[E1 yes*Pr[E2 yes]*Pr[E3 yes]*Pr[E4 yes]*Pr[yes] / Pr[E]


 Non preoccuparti del denominatore: lo ignoreremo e lo elimineremo nella fase di normalizzazione finale quando facciamo le probabilità di sì e nessuna somma a 1, proprio come abbiamo fatto in precedenza. Il Pr [sì] alla fine è la probabilità di un risultato sì senza conoscere alcuna delle prove E, ovvero senza sapere nulla del giorno particolare citato, si chiama la probabilità anteriore dell'ipotesi H. In questo caso, è giusto 9/14, perché 9 dei 14 esercizi di formazione hanno avuto un valore di sì per il gioco. Sostituendo le frazioni di cui alla tabella 4.2 per le probabilità di prova adeguate porta a


 Pr[yes E] = 2/9 * 3/9 * 3/9 * 3/9 * 9/14 / Pr[E]
 
 proprio come abbiamo calcolato in precedenza. Ancora una volta, il Pr [E] nel denominatore scompare quando normalizziamo.
Questo metodo va dal nome di Naïve Bayes, perché è basato sulla regola di Bayes e "ingenuamente" assume l'indipendenza: è valido solo per moltiplicare le probabilità quando gli eventi sono indipendenti. L'assunto che gli attributi siano indipendenti (data la classe) nella vita reale è certamente un aspetto simplistico. Ma nonostante il nome scoraggiato, Naïve Bayes funziona molto bene quando viene testato sui set di dati reali, in particolare quando combinati con alcune delle procedure di selezione degli attributi introdotte nel capitolo 7 che eliminano gli attributi ridondanti e quindi non indifferenti.

 Una cosa che può andare storto con Naïve Bayes è che se un valore attributo particolare non si verifica nel set di allenamento in combinazione con ogni valore di classe, le cose vanno male male. Supponiamo nell'esempio che i dati di addestramento siano diversi e il valore dell'attributo outlook = sunny era sempre stato associato all'esito no. Poi la probabilità di outlook = sunny dato un sì, cioè Pr [outlook = sunny | Sì], sarebbe zero, e perché le altre probabilità sono moltiplicate per questo la probabilità finale di sì sarebbe zero, non importa quanto fosse grande. Probabilità che nulla detengono un veto rispetto agli altri. Questa non è una buona idea. Ma il bug è facilmente risolto con piccole modifiche al metodo di calcolo delle probabilità dalle frequenze.

 Ad esempio, la parte superiore della tabella 4.2 mostra che per il gioco = si, la prospettiva è soleggiata per due esempi, nuvolosa per quattro e piovosa per tre, e la parte inferiore fornisce a questi eventi probabilità 2/9, 4/9 e 3/9, rispettivamente. Invece, potremmo aggiungere 1 a ogni numeratore e compensare aggiungendo 3 al denominatore, dando probabilità rispettivamente 3/12, 5/12 e 4/12. Ciò assicurerà che un valore di attributo che si verifica zero volte riceve una probabilità non-zero, seppur piccola. La strategia di aggiungere 1 a ogni conteggio è una tecnica standard chiamata lo stimatore Laplace dopo il grande matematico francese del settecento Pierre Laplace. Anche se funziona bene in pratica, non vi è alcuna ragione particolare per aggiungere 1 ai conteggi: potremmo invece scegliere una piccola costante m e usare


 (2+m/3)/9+m, (4+m/3)/9+m, (3+m/3)/9+m,


 Il valore di m, impostato su 3, fornisce in modo efficace un peso che determina l'influenza dei valori a priori di 1/3, 1/3 e 1/3 per ognuno dei tre possibili valori di attributo. Un grande m dice che questi priori sono molto importanti rispetto alle nuove prove provenienti dal gruppo di allenamento, mentre una piccola dà meno influenza. Infine, non vi è alcuna ragione particolare per dividere m in tre parti uguali nei numeratori: possiamo usare


  (2+mp1)/9+m, (4+mp2)/9+m, (3+mp3)/9+m,


 Invece, dove p1, p2 e p3 sono pari a 1. In modo efficace, questi tre numeri sono probabilmente a priori che i valori dell'attributo di prospettiva siano solari, coperti e piovosi rispettivamente.
Questa è ora una formulazione completamente Bayesiana in cui le probabilità precedenti sono state assegnate a tutto ciò che è in vista. Ha il vantaggio di essere completamente rigorosi, ma lo svantaggio che non è di solito chiaro come queste precedenti probabilità dovrebbero essere assegnati. In pratica, le probabilità precedenti fanno poca differenza a condizione che ci siano un numero ragionevole di istanze di addestramento e le persone generalmente stimano solo le frequenze usando lo stimatore di Laplace inizializzando tutti i conteggi a uno anziché a zero.
  Valori mancanti e attributi numerici

 Una delle cose veramente belle della formulazione bayesiana è che i valori mancanti non sono affatto un problema. Ad esempio, se il valore delle prospettive mancava nell'esempio della tabella 4.3, il calcolo semplicemente ignorerebbe questo attributo,


  likelihood of yes = 3 9 ¥ 3 9 ¥ 3 9 ¥ 9 14 = 0.0238
  likelihood of no = 1 5 ¥ 4 5 ¥ 3 5 ¥ 5 14 = 0.0343.


 Questi due numeri sono individualmente molto più alti di prima, perché manca una delle frazioni. Ma questo non è un problema perché in entrambi i casi manca una frazione e queste probabilità sono soggette ad un ulteriore processo di normalizzazione. Questo rende probabili per sì e no il 41% e il 59% rispettivamente.

 Se un valore manca in un'istanza di addestramento, non è semplicemente incluso nei conteggi di frequenza e i rapporti di probabilità sono basati sul numero di valori che si verificano piuttosto che sul numero totale di istanze.

 Solitamente i valori numerici vengono gestiti assumendo che abbiano una distribuzione di probabilità "normale" o "Gaussian". La tabella 4.4 fornisce un riepilogo dei dati meteorologici con caratteristiche numeriche della tabella 1.3. Per gli attributi nominali, abbiamo calcolato i conteggi come prima, e per quelli numerici abbiamo semplicemente elencato i valori che si verificano. Poi, mentre abbiamo normalizzato i conti per gli attributi nominali in probabilità, abbiamo calcolato la media e la deviazione standard per ogni classe e ogni attributo numerico. Così il valore medio della temperatura sopra le istanze di sì è 73 e la deviazione standard è 6.2. La media è semplicemente la media dei valori precedenti, cioè l'importo suddiviso per il numero di valori. La deviazione standard è la radice quadrata della varianza del campione, che possiamo calcolare come segue: sottrarre la media da ogni valore, piazzare il risultato, riassumere insieme e dividere per uno inferiore al numero di valori. Dopo aver trovato questa varianza di esempio, troviamo la sua radice quadrata per determinare la deviazione standard

  Questo è il modo standard di calcolo della deviazione media e standard di un insieme di numeri (quello "uno meno che" riguarda il numero di gradi di libertà nel campione, una nozione statistica che non vogliamo trattare qui ). La funzione di densità di probabilità per una distribuzione normale con media m e deviazione standard s è data dall'espressione piuttosto formidabile:


f (x) = 1/







Ma non temere! Tutto ciò significa che se stiamo considerando un risultato sì quando la temperatura ha un valore, per esempio, di 66, dobbiamo solo collegare x = 66, m = 73 e s = 6.2 nella formula. Quindi il valore della funzione di densità di probabilità è


f (temperature = 66 yes ) =


  Allo stesso modo, la densità di probabilità di un risultato sì quando l'umidità ha valore, diciamo, di 90 è calcolata allo stesso modo:


f (humidity = 90 yes ) = 0.0221


 La funzione di densità di probabilità per un evento è strettamente correlata alla sua probabilità. Tuttavia, non è la stessa cosa. Se la temperatura è una scala continua, la probabilità della temperatura è esattamente 66 - o esattamente qualsiasi altro valore, ad esempio 63.14159262 - è zero. Il significato reale della funzione di densità f (x) è che la probabilità che la quantità si trova all'interno di una piccola regione intorno a x, ad esempio tra x ee2 e x + e / 2, sia e f (x).Quello che abbiamo scritto sopra è corretto se la temperatura viene misurata al grado più prossimo e l'umidità viene misurata al punto percentuale più vicino. Potresti pensare che dovremmo fatturare la figura di precisione e quando usiamo queste probabilità, ma non è necessario. Lo stesso sembrerebbe sia in sì che in nessuna probabilità che segue e annulla quando le probabilità sono state calcolate.

 Utilizzando queste probabilità per il nuovo giorno nella tabella 4.5 si ottiene


 likelihood of yes = 2 9 ¥ 0.0340 ¥ 0.0221 ¥ 3 9 ¥ 9 14 = 0.000036,
 likelihood of no = 3 5 ¥ 0.0221 ¥ 0.0381 ¥ 3 5 ¥ 5 14 = 0.000108;


  Queste cifre sono molto vicine alle probabilità calcolate in precedenza per il nuovo giorno nella tabella 4.3, poiché i valori di temperatura e umidità di 66 e 90 forniscono simili probabilità ai valori freschi e alti utilizzati prima.
L'assunzione di distribuzione normale rende facile estendere il classificatore Naïve Bayes per affrontare gli attributi numerici. Se mancano i valori di qualsiasi attributo numerico, i calcoli di deviazione standard e standard si basano solo su quelli presenti.
 Modelli bayesiani per la classificazione dei documenti

 Un dominio importante per l'apprendimento automatico è la classificazione dei documenti, in cui ogni istanza rappresenta un documento e la classe dell'istanza è l'argomento del documento. I documenti potrebbero essere notizie e le classi potrebbero essere notizie nazionali, notizie all'estero, notizie finanziarie e sport. I documenti sono caratterizzati dalle parole che appaiono in essi e un modo per applicare l'apprendimento macchina alla classificazione di documenti è quello di trattare la presenza o l'assenza di ogni parola come attributo booleano. Naïve Bayes è una tecnica popolare per questa applicazione perché è molto veloce e abbastanza precisa.

 Tuttavia, ciò non tiene conto del numero di occorrenze di ogni parola, che sono informazioni potenzialmente utili per determinare la categoria di un documento. Invece, un documento può essere considerato come un sacco di parole un insieme che contiene tutte le parole del documento, con molteplici occorrenze di una parola che si presentano più volte (tecnicamente, un set comprende ciascuno dei suoi membri una sola volta, mentre una borsa può avere Elementi ripetuti). Le frequenze di parola possono essere soddisfatte applicando una forma modificata di Naïve Bayes che è talvolta descritta come multinomiale Naïve Bayes

 Supponiamo che n1, n2,. . . , Nk è il numero di volte che si verifica parola nel documento e P1, P2,. . . , Pk è la probabilità di ottenere la parola i quando il campionamento da tutti i documenti della categoria H. Supponiamo che la probabilità sia indipendente dal contesto e dalla posizione del testo nel documento. Queste ipotesi portano ad una distribuzione multinomiale per le probabilità del documento. Per questa distribuzione, la probabilità di un documento E data la sua classe H - in altre parole, la formula per calcolare la probabilità Pr [E | H] nella regola di Bayes - è


Pr[E|H]......








Dove N = n1 + n2 +. . . + Nk è il numero di parole nel documento. Il motivo per i fattori è quello di rendere conto del fatto che l'ordinazione delle occorrenze di ogni parola è immateriale in base al modello di bag-of-words. Pi è stimato calcolando la frequenza relativa della parola i nel testo di tutti i documenti di formazione relativi alla categoria H. In realtà dovrebbe essere un ulteriore termine che dà la probabilità che il modello per la categoria H generi un documento la cui lunghezza è uguale alla lunghezza di E (ecco perché usiamo il simbolo a invece di =), ma è comune supporre che questo sia lo stesso per tutte le classi e quindi può essere eliminato.

 Per esempio, supponiamo che nel vocabolario siano presenti solo le due parole, gialle e blu, e una particolare classe di documenti H ha Pr [giallo | H] = 75% e Pr [blu | H] = 25% (si potrebbe chiamare H La classe di documenti verdi giallognoli). Supponiamo che E sia il documento blu blu giallo con una lunghezza di N = 3 parole. Ci sono quattro sacchetti possibili di tre parole. Uno è {giallo giallo giallo} e la sua probabilità secondo la formula precedente è


 Pr[{ yellow yellow yellow} H ] a 3! .......


  Gli altri 3 con le loro probabilità, sono


  Pr[{ blue blue blue} H ].......


  Pr[{ yellow yellow blue} H ] ..




  Pr[{ yellow blue blue} H ] ....




 Qui, E corrisponde all'ultimo caso (ricorda che in un sacco di parole l'ordine è immateriale); Quindi la sua probabilità di essere generata dal modello giallo verde del documento è 9/64, o 14%. Supponiamo che un altro codice verde, molto bluastro (chiamarlo H ¢), ha Pr [yellow | H ¢] = 10%, Pr [blu | H ¢] = 90%. La probabilità che E sia generata da questo modello è del 24%.

 Se queste sono le sole due classi, vuol dire che E sia nella classe del documento blu verdolino? Non necessariamente. La regola di Bayes, data precedentemente, dice che bisogna tener conto della probabilità precedente di ogni ipotesi. Se sappiate che in realtà i documenti verdi molto bluastrati sono due volte più rari di quelli verdi giallognoli, sarebbe sufficiente superare la precedente disparità del 14% al 24% e puntare l'equilibrio a favore della classe verde giallastro.

 I fattori nella formula di probabilità precedente non devono effettivamente essere calcolati perché - essendo lo stesso per ogni classe - sono comunque abbandonati nel processo di normalizzazione. Tuttavia, la formula continua a moltiplicarsi insieme molte piccole probabilità, che presto creano numeri estremamente piccoli che causano il downflow su grandi documenti. Il problema può essere evitato utilizzando logaritmi delle probabilità invece delle probabilità stesse.
Nella formulazione multinomiale di Naïve Bayes la classe di un documento viene determinata non solo dalle parole che si verificano in esso ma anche dal numero di volte in cui si verificano.
In generale, esegue meglio il modello Naïve Bayes ordinario per la classificazione dei documenti, in particolare per i grandi formati di dizionario.
 Discussione

 Naïve Bayes fornisce un approccio semplice, con chiara semantica, a rappresentare, utilizzare e apprendere conoscenze probabilistiche. Possono essere ottenuti risultati impressionanti ". È stato spesso dimostrato che Naïve Bayes rivale, e anzi supera, classificatori più sofisticati su molti set di dati. La morale è, cerca sempre le cose semplici in primo luogo. A volte, dopo una "lotta estesa", la gente ha ripetutamente ottenuto buoni risultati utilizzando metodi di apprendimento sofisticati solo alla fine di scoprire anni dopo che semplici metodi come 1R e Naïve Bayes fanno altrettanto bene o anche meglio.

 Ci sono molti set di dati per i quali Naïve Bayes non fa così bene, e è facile capire perché. Poiché gli attributi vengono trattati come se fossero completamente indipendenti, l'aggiunta di quelli ridondanti frena il processo di apprendimento. Come esempio estremo, se si dovesse includere un nuovo attributo con gli stessi valori della temperatura ai dati meteorologici, l'effetto dell'attributo di temperatura sarebbe moltiplicato: tutte le sue probabilità sarebbero quadrate, dando una grande influenza " Nella decisione ". Se si dovesse aggiungere 10 tali attributi, le decisioni sarebbero effettivamente effettuate solo sulla temperatura. Le dipendenze tra gli attributi riducono inevitabilmente il potere di Naïve Bayes a discernere ciò che sta succedendo. Tuttavia, possono essere migliorati utilizzando un sottoinsieme degli attributi nella procedura di decisione, facendo una scelta accurata di quelli da utilizzare. Il capitolo 7 mostra come.

  L'ipotesi di "normale distribuzione" per gli attributi numerici è un'altra limitazione di Naïve Bayes, come abbiamo già formulato qui. Molte funzioni semplicemente non sono normalmente distribuite. Tuttavia, non c'è nulla che impedisca di utilizzare altre distribuzioni per gli attributi numerici: 'non c'è nussuna magia' sulla distribuzione normale. Se si sa che un particolare attributo potrebbe seguire un'altra distribuzione, è possibile utilizzare procedure di stima standard per quella distribuzione. Se sospetti che non sia normale, ma non conosce la distribuzione effettiva, ci sono procedure per la "stima della densità del kernel" che non assumono alcuna distribuzione particolare per i valori degli attributi. Un'altra possibilità è semplicemente di discretizzare i dati innanzitutto.
 Divide-e-conquer: Costruire alberi decisionali

 Il problema della costruzione di un albero di decisione può essere espresso in modo ricorsivo. Innanzitutto, selezionare un attributo da posizionare nel nodo principale e fare un ramo per ogni possibile valore. Questo divide l'esempio impostato in sottoinsiemi, uno per ogni valore dell'attributo. Ora il processo può essere ripetuto ricorsivamente per ogni ramo, utilizzando solo quelle istanze che effettivamente raggiungono il ramo. Se in qualsiasi momento tutte le istanze di un nodo hanno la stessa classificazione, smettere di sviluppare quella parte dell'albero.

 L'unica cosa da decidere è come determinare quale attributo da dividere, dato un insieme di esempi con classi diverse. Considerate (ancora una volta!) I dati meteo. Ci sono quattro possibilità per ogni divisione e al livello superiore producono alberi come quelli di Figura 4.2. Qual è la scelta migliore? Il numero di classi sì e nessuna viene mostrato alle foglie. Qualsiasi foglia con una sola classe - sì o no - non deve essere suddivisa ulteriormente e il processo ricorsivo in quel settore finirà. Perché cerchiamo piccoli alberi, vorremmo che questo accadesse il più presto possibile. Se avessimo una misura della purezza di ogni nodo, potremmo scegliere l'attributo che produce 'i nodi figlia più pura'. Prendi un momento per guardare la Figura 4.2 e riflettere su quale attributo pensate sia la scelta migliore.



La misura della purezza che usiamo è chiamata l'informazione e viene misurata in unità denominate bits. Associato a un nodo dell'albero, rappresenta la quantità prevista di informazioni necessarie per specificare se una nuova istanza dovrebbe essere classificata sì o no, dato che l'esempio ha raggiunto quel nodo. A differenza dei bit nella memoria del computer, la quantità prevista di informazioni di solito comporta frazioni di un po 'e spesso è meno di una! Lo calcoliamo in base al numero di sì e di no al nodo; Guarderemo in breve i dettagli del calcolo. Ma prima vediamo come viene utilizzato. Nel valutare il primo albero di Figura 4.2, i numeri di sì e nessuna classe dei nodi foglia rispettivamente sono rispettivamente [2,3], [4,0] e [3,2] ei valori di informazioni di questi nodi sono :


 Figure 4.2 Tree stumps for the weather data





Possiamo calcolare il valore d'informazione medio di questi, tenendo conto del numero di istanze che scendono ciascun ramo-cinque lungo il primo e il terzo e il quattro al secondo:


info([2, 3], [4, 0], [3, 2]) = (5 14) ¥ 0.971 + (4 14) ¥ 0 + (5 14) ¥ 0.971 = 0.693 bits.


 Questa media rappresenta la quantità di informazioni che ci aspettiamo sarebbe necessaria per specificare la classe di una nuova istanza, data la struttura ad albero di Figura 4.2 (a).

 Prima di creare una delle strutture ad albero nascente in Figura 4.2, gli esempi di addestramento alla radice comprendevano nove sì e cinque nodi non corrispondenti a un valore di informazioni


 info([9, 5]) = 0.940 bits


Così l'albero in Figura 4.2 (a) è responsabile di un guadagno di informazioni di


gain(outlook) = info([9, 5]) - info([2, 3], [4, 0], [3, 2]) = 0.940 - 0.693 = 0.247 bits,


Che può essere interpretato come valore informativo della creazione di un ramo sull'attributo di outlook.
La via da seguire è chiara. Calcoliamo il guadagno di informazioni per ciascun attributo e scegliamo quello che ottiene la maggior parte delle informazioni da dividere. Nella situazione di Figura 4.2,


gain(outlook) = 0.247 bits
gain(temperature ) = 0.029 bits
gain(humidity ) = 0.152 bits
gain(windy ) = 0.048 bits,

  Quindi selezioniamo la prospettiva come attributo di splitting alla radice dell'albero. Speriamo che questo accordi con la tua intuizione come il migliore da scegliere. È l'unica scelta per cui un nodo figlia è completamente puro, e questo gli offre un notevole vantaggio rispetto agli altri attributi. L'umidità è la scelta migliore perchè produce un nodo figlia più grande che è quasi completamente puro.
  Poi proseguiamo, ricorsivamente. La Figura 4.3 mostra le possibilità di un ulteriore ramo nel nodo raggiunto quando la vista è soleggiata. Chiaramente, un'ulteriore divisione sulla prospettiva non produrrà nulla di nuovo, quindi prendiamo in considerazione solo gli altri tre attributi. Il guadagno di informazioni di ciascuno risulta essere


gain(temperature ) = 0.571 bits
gain(humidity ) = 0.971 bits
gain(windy ) = 0.020 bits,


 Perciò scegliamo l'umidità come attributo di suddivisione a questo punto. Non è necessario suddividere questi nodi ulteriormente, quindi questo ramo è terminato.
L'applicazione continua della stessa idea porta all'albero decisionale della Figura 4.4 per i dati meteorologici. Idealmente, il processo termina quando tutti i nodi foglia sono puro, cioè quando contengono istanze che hanno tutte la stessa classificazione. Tuttavia, potrebbe non essere possibile raggiungere questa situazione felice perché non c'è nulla da fermare il set di formazione che contiene due esempi con attributi identici di serie ma classi diverse. Di conseguenza, ci arrestiamo quando i dati non possono essere divisi ulteriormente.



 Figure 4.3 Expanded tree stumps for the weather data.


Calcolo delle informazioni


 Ora è giunto il momento di spiegare come calcolare la misura dell'informazione che viene utilizzata come base per valutare diverse divisioni. Descriviamo l'idea di base in questa sezione, poi nella successiva esaminiamo una correzione che di solito viene fatta per contrastare una bias verso la selezione delle divisioni sugli attributi con un gran numero di valori possibili. Prima di esaminare la formula dettagliata per calcolare la quantità di informazioni necessarie per specificare la classe di un esempio in quanto raggiunge un nodo ad albero con un certo numero di sì e di no, prima di considerare il tipo di proprietà che ci si aspetterebbe da questa quantità:


Figure 4.4 Decision tree for the weather data.


1. Quando il numero di sì o no è zero, le informazioni sono zero.
2. Quando il numero di sì e di no è uguale, le informazioni raggiungono un massimo.


 Inoltre, la misura dovrebbe essere applicabile alle situazioni multiclasse, non solo a quelle a due classi.
La misura dell'informazione riguarda la quantità di informazioni ottenute adottando una decisione e una proprietà più sottile delle informazioni può essere ottenuta considerando la natura delle decisioni. Le decisioni possono essere fatte in un solo stadio o possono essere fatte in più fasi e la quantità di informazioni coinvolte è la stessa in entrambi i casi. Ad esempio, la decisione coinvolta


  info([2,3,4])


Può essere fatta in due fasi. Innanzitutto decidi se è il primo caso o uno degli altri due casi:


  info([2,7])
 

 E poi decidere quale degli altri due casi è:


  info([3,4])


In alcuni casi la seconda decisione non dovrà essere fatta, vale a dire, quando la decisione risulta essere la prima. Prendendo in considerazione ciò porta all'equazione


  info([2,3,4]) = info([2,7]) + (7 9) ¥ info([3,4]).


 Naturalmente, non c'è niente di speciale per questi numeri particolari, e una relazione simile deve tenere indipendentemente dai valori reali. Quindi possiamo aggiungere un ulteriore criterio all'elenco precedente:


  3. Le informazioni devono rispettare la proprietà multistage precedentemente illustrata.


  Notevole, si scopre che esiste una sola funzione che soddisfa tutte queste proprietà e si conosce come valore d'informazione o entropia:


 entropy ( p1 , p2 , . . . , pn ) = - p1 log p1 - p2 log p2 . . . - pn log pn


 La ragione per i segni meno è che i logaritmi delle frazioni p1, p2,. . . , Pn sono negativi, quindi l'entropia è in realtà positiva. Di solito i logaritmi sono espressi in base 2, quindi l'entropia si trova in unità denominate bits, solo i soliti tipi di bit utilizzati con i computer.
Gli argomenti p1, p2,. . . Della formula di entropia sono espressi come frazioni

che si aggiungono a una, in modo che, ad esempio,


 info([2,3,4]) = entropy (2 9 , 3 9 , 4 9).


Così la proprietà decisionale multistage può essere scritta in generale come


entropy ( p, q, r ) = entropy ( p, q + r ) + (q + r ) * entropy ....





 dove p + q + r = 1.


 A causa del modo in cui funziona la funzione di log, è possibile calcolare la misura delle informazioni senza dover elaborare le singole frazioni:

 

 info([2,3,4]) = - 2/9 * log2/9 - 3/9 * log3/9 - 4/9 * log4/9 = [ -2 log2 - 3 log3 - 4 log4 + 9 log9]/9 .

 Questo è il modo in cui la misura di informazioni viene solitamente calcolata in pratica. Quindi il valore dell'informazione per il primo nodo foglia del primo albero di Figura 4.2 è


info([2,3]) = - 2 5 ¥ log 2 5 - 3 5 ¥ log 3 5 = 0.971 bits,


 come a page 98.

 Attributi altamente ramificanti


 Quando alcuni attributi hanno un gran numero di valori possibili, creando un ramo multiplo con molti nodi figlio, si verifica un problema con il calcolo del guadagno delle informazioni. Il problema può essere meglio apprezzato nel caso estremo quando un attributo ha un valore diverso per ogni istanza nel set di dati, ad esempio un codice di identificazione potrebbe essere attributo.


 Figure 4.5 Tree stump for the ID code attribute.


 La tabella 4.6 fornisce i dati meteo con questo attributo extra. Il raggruppamento sul codice ID produce il ceppo di albero in Figura 4.5. Le informazioni necessarie per specificare la classe in base al valore di questo attributo sono

 

 info([0,1]) + info([0,1]) + info([1,0]) + . . . + info([1,0]) + info([0,1]),


 Che è zero poiché ognuno dei 14 termini è zero. Questo non è sorprendente: l'attributo del codice ID identifica l'istanza che determina la classe senza alcuna ambiguità, come mostra la Tabella 4.6. Di conseguenza, il guadagno di informazioni di questo attributo è solo l'informazione alla root, info ([9,5]) = 0,940 bit. Questo è maggiore del guadagno di informazioni di qualsiasi altro attributo, e quindi il codice ID sarà inevitabilmente scelto come attributo di suddivisione. Ma la ramificazione del codice di identificazione non è un bene per prevedere la classe di istanze sconosciute e non dice nulla della struttura della decisione, che in fondo sono gli obiettivi gemellari dell'apprendimento macchina.

 L'effetto complessivo è che la misura di guadagno di informazioni tende a preferire attributi con un gran numero di valori possibili. Per compensare questo, viene ampiamente utilizzata una modifica della misura chiamata rapporto di guadagno. Il rapporto di guadagno viene determinato tenendo conto del numero e della dimensione dei nodi figlia in cui un attributo suddivide il set di dati, ignorando tutte le informazioni sulla classe. Nella situazione mostrata in Figura 4.5, tutti i conteggi hanno un valore di 1, quindi il valore dell'informazione della divisione è


 info([1,1, . . . ,1]) = - 1 14 ¥ log 1 14 ¥ 14,


 Perché la stessa frazione, 1/14, appare 14 volte. Ciò significa registrare 14 o 3.807 bit, che è un valore molto elevato. Ciò è dovuto al fatto che il valore dell'informazione di una divisione è il numero di bit necessari per determinare a quale ramo è assegnata un'istanza, e più rami sono presenti, maggiore è questo valore. Il rapporto di guadagno viene calcolato dividendo il guadagno iniziale di informazioni, 0,940 in questo caso, per il valore di informazioni dell'attributo, 3.807, con un valore di guadagno di 0,247 per l'attributo del codice ID.
Tornando agli alberi di albero per i dati meteorologici di Figura 4.2, la prospettiva divide il set di dati in tre sottoinsiemi di dimensioni 5, 4 e 5 e quindi ha un valore intrinseco di informazioni


   info([5,4,5]) = 1.577


 Senza prestare alcuna attenzione alle classi coinvolte nei sottogruppi. Come abbiamo visto, questo valore di informazioni intrinseco è più alto per un attributo molto più ramificante, ad esempio il codice ID ipotizzato. Ancora una volta possiamo correggere il guadagno delle informazioni dividendo dal valore intrinseco delle informazioni per ottenere il rapporto di guadagno.
I risultati di questi calcoli per i ceppi di albero di Figura 4.2 sono riassunti nella Tabella 4.7. La prospettiva è ancora in cima, ma l'umidità è ora un contendente molto più vicino perché divide i dati in due sottoinsiemi invece di tre. In questo esempio particolare, l'attributo ipotetico di codice ID, con un rapporto di guadagno di 0,247, sarebbe ancora preferito a uno di questi quattro.

 Tuttavia, il suo vantaggio è notevolmente ridotto. Nelle implementazioni pratiche, possiamo utilizzare un test ad hoc per evitare la suddivisione su un attributo inutile.
Purtroppo, in alcune situazioni, la modifica del guadagno di guadagno si sovrappone e può portare a preferire un attributo solo perché le sue informazioni intrinseche sono molto inferiori a quelle per gli altri attributi. Una correzione standard è quella di scegliere l'attributo che massimizza il rapporto di guadagno, a condizione che il guadagno di informazioni per tale attributo sia almeno ottimo come il guadagno medio di informazioni per tutti gli attributi esaminati.

   Discussione


L'approccio di divisione e conquista all'induzione di alberi decisionali, talvolta chiamata induzione a cima di decisioni degli alberi decisionali, è stata sviluppata e raffinata da molti anni da J. Ross Quinlan dell'Università di Sydney, in Australia. Anche se altri hanno lavorato su metodi simili, la ricerca di Quinlan è sempre stata all'avanguardia nell'induzione di alberi decisionali. Il metodo che è stato descritto utilizzando il criterio di guadagno delle informazioni è sostanzialmente identico a quello conosciuto come ID3. L'utilizzo del rapporto di guadagno è stato uno dei molti miglioramenti che sono stati fatti per ID3 in diversi anni; Quinlan lo ha descritto come robusto in una grande varietà di circostanze. Sebbene una soluzione robusta e pratica, si sacrifica l'eleganza e la pulizia motivata teorica del criterio di guadagno delle informazioni.

  Una serie di miglioramenti a ID3 culminarono in un sistema pratico e influente per l'induzione di alberi decisionali denominata C4.5. Questi miglioramenti includono metodi per trattare gli attributi numerici, i valori mancanti, i dati rumorosi e la generazione di regole dagli alberi e sono descritte nella Sezione 6.1.

   Algoritmi di copertura: Costruzione di regole


Come abbiamo visto, gli algoritmi degli alberi decisionali si basano su un approccio di divisione e conquista del problema della classificazione. Lavorano dall'alto verso il basso, cercando ad ogni stadio un attributo da dividere che meglio separa le classi; Quindi elaborano ricorsivamente i sottoproblemi che risultano dalla suddivisione. Questa strategia genera un albero decisionale, che può essere convertito, se necessario, in un insieme di regole di classificazione, anche se per produrre regole efficaci, la conversione non è banale.

 Un approccio alternativo è quello di prendere ogni classe a sua volta e cercare un modo per coprire tutti i casi in esso, escludendo contemporaneamente istanze non in classe. Questo è chiamato un approccio di copertura perché in ogni fase si identifica una regola che "copre" alcune delle istanze. Per sua stessa natura, questo approccio copre un insieme di regole piuttosto che un albero decisionale.

 Il metodo di copertura può essere facilmente visualizzato in uno spazio bidimensionale di istanze come mostrato nella Figura 4.6 (a). Prendiamo per prima una regola che copra l'a. Per il primo test nella regola, dividere lo spazio verticalmente come mostrato nell'immagine centrale.
Questo dà l'inizio di una regola:


 Figure 4.6 Covering algorithm:


 If x > 1.2 then class = a

 Ciò dà una regola che copre tutti tranne uno degli a. Probabilmente è opportuno lasciarla a questo scopo, ma se fosse necessario per coprire l'ultima a, forse sarebbe necessaria un'altra regola


  If x > 1.4 and y < 2.4 then class = a


 La stessa procedura porta a due regole che coprono i b:

 

 If x £ 1.2 then class = b
 If x > 1.2 and y £ 2.6 then class = b
    

 Ancora una è erroneamente coperta da queste regole. Se fosse necessario escluderlo, dovrebbero essere aggiunti altri test alla seconda regola e dovrebbero essere introdotte altre regole per coprire i b che questi nuovi test escludono.
 Regole contro alberi 

Un algoritmo di "divisione e conquista" dall'alto verso il basso funziona sugli stessi dati in modo che sia, almeno superficialmente, abbastanza simile ad un algoritmo di copertura. Potrebbe prima dividere il set di dati utilizzando l'attributo x e probabilmente finirà per suddividere lo stesso posto, x = 1.2. Tuttavia, mentre l'algoritmo di copertura riguarda solo la copertura di una singola classe, la divisione prenderà in considerazione entrambe le classi, poiché gli algoritmi di divisione e conquista creano una singola descrizione concettuale che si applica a tutte le classi. La seconda divisione potrebbe anche essere allo stesso posto, y = 2.6, che porta alla struttura di decisione nella figura 4.6 (b). Questa struttura corrisponde esattamente all'insieme delle regole e, in questo caso, "non vi è alcuna differenza" tra la copertura e gli algoritmi "divide-and-conquer".

 Ma in molte situazioni c'è una differenza tra le regole e gli alberi in termini di chiarezza della rappresentazione. Ad esempio, quando abbiamo descritto il problema subtree replicato nella sezione 3.3, abbiamo osservato che le regole possono essere simmetriche mentre gli alberi devono selezionare un attributo da dividere in primo luogo e ciò può portare ad alberi molto più grandi di un insieme equivalente di regole. Un'altra differenza è che, nel caso multiclasse, una spaccatura delle decisioni prende in considerazione tutte le classi, cercando di massimizzare la purezza della suddivisione, mentre il metodo di generazione delle regole si concentra su una classe alla volta, trascurando ciò che accade per le altre classi .

    Un semplice algoritmo di copertura


 Gli algoritmi di copertura funzionano aggiungendo test alla regola in costruzione, sempre cercando di creare una regola con la massima precisione. Al contrario, gli algoritmi di "divide-and-conquer" operano aggiungendo test all'albero in costruzione, sempre cercando di massimizzare la separazione tra le classi. Ognuna di queste richiede di trovare un attributo da dividere. Ma il criterio per il miglior attributo è diverso in ogni caso. Mentre gli algoritmi di "divide-and-conquer" come ID3 scelgono un attributo per massimizzare il guadagno delle informazioni, l'algoritmo di copertura che descriveremo sceglie una coppia di attributo-valore per massimizzare la probabilità della classificazione desiderata.

 La Figura 4.7 mostra un'immagine della situazione, mostrando lo spazio contenente tutte le istanze, una regola parzialmente costruita e la stessa regola dopo che è stato aggiunto un nuovo termine. Il nuovo termine limita la copertura della regola: l'idea è quella di includere il maggior numero di istanze della classe desiderata e di escludere il maggior numero di istanze di altre classi. Supponiamo che la nuova regola coprirà un totale di istanze t, di cui p sono esempi positivi della classe e t-p sono in altre classi, cioè sono errori fatti dalla regola. Quindi scegliere il nuovo termine per massimizzare il rapporto p / t.
Un esempio vi aiuterà. Per una modifica, utilizziamo il problema della lente a contatto della tabella 1.1. Formiamo regole che coprono ciascuna delle tre classi, dure, morbide e nessuna, a sua volta. Per iniziare, cerchiamo una regola:

 

 If ? then recommendation = hard


 Per il termine sconosciuto ?, abbiamo nove scelte:


age = young                2/8

age = pre-presbyopic       1/8age = presbyopic           1/8

spectacle prescription = myope

spectacle prescription = hypermetrope

astigmatism = no
astigmatism = yes
tear production rate = reduced

tear production rate = normal

3/12
1/12
0/12
4/12
0/12
4/12
 

I numeri a destra mostrano la frazione di istanze "corrette" nell'insieme selezionato da quella scelta. In questo caso, il corretto significa che la raccomandazione è dura. Ad esempio, l'età = giovane seleziona otto istanze, due dei quali raccomandano lenti a contatto dure, quindi la prima frazione è di 2/8. (Per seguire questo, dovrai guardare indietro i dati delle lenti a contatto nella tabella 1.1 a pagina 6 e conteggiare le voci nella tabella.) Scegliamo la frazione più grande, 4/12, scegliendo arbitrariamente tra il settimo e l'ultimo Scelta nell'elenco precedente e creare la regola:


 If astigmatism = yes then recommendation = hard


Questa regola è inesatta, ottenendo solo 4 istanze corrette dai 12 che copre, mostrati nella Tabella 4.8. Quindi lo raffiniamo ulteriormente:


 If astigmatism = yes and ? then recommendation = hard


 Considerando le possibilità per il termine sconosciuto? Produce le sette scelte:


 age = young
age = pre-presbyopic
age = presbyopic
spectacle prescription
spectacle prescription
tear production rate =
tear production rate =
= myope
= hypermetrope
reduced
normal
2/4
1/4
1/4
3/6
1/6
0/6
4/6


(Ancora una volta, conteggi le voci nella Tabella 4.8.) L'ultimo è un vincitore chiaro, ottenendo quattro istanze corrette dai sei che copre e corrisponde alla regola


    If astigmatism = yes and tear production rate = normal
       then recommendation = hard


Dobbiamo fermarci qui? Forse. Ma diciamo che stiamo andando per regole esatte, non importa quanto siano complesse. La tabella 4.9 mostra i casi che sono coperti dalla regola finora. Le possibilità per il prossimo termine sono ora selezionate tre. In caso di parità, scegliamo la regola con maggiore copertura, dando la regola finale:


   If astigmatism = yes and tear production rate = normal
      and spectacle prescription = myope then recommendation = hard


 Questa è veramente una delle regole fornite per il problema della lente a contatto. Ma riguarda solo tre delle quattro rigide raccomandazioni. Quindi eliminiamo questi tre dall'insieme di istanze e ricominciamo a cercare un'altra regola della forma:


 If ? then recommendation = hard


Seguendo lo stesso processo, scopriremo infine che l'età = giovane è la scelta migliore per il primo termine. La sua copertura è sette; La ragione per i sette è che 3 istanze sono state rimosse dal set originale, lasciando 21 istanze complessivamente. La scelta migliore per il secondo termine è l'astigmatismo = sì, scegliendo 1/3 (in realtà, questo è un legame); Tasso di produzione della lacrima = normale è il migliore per il terzo, selezionando 1/1.


  If age = young and astigmatism = yes and
     tear production rate = normal then recommendation = hard


 Questa regola effettivamente copre tre delle originali istanze, due dei quali sono coperti dalla regola precedente, ma va bene perché la raccomandazione è la stessa per ogni regola.Ora che tutti i casi con lenti a righe sono coperti, il passo successivo è quello di procedere con le lenti morbide allo stesso modo. Infine, vengono create le regole per nessun caso - a meno che non troviamo una regola impostata con una regola predefinita, nel qual caso le regole esplicite per l'esito finale non sono necessarie.

 Quello che abbiamo appena descritto è il metodo PRISM per la creazione di regole. Genera solo regole corrette o "perfette". Misura il successo di una regola dalla formula di precisione p / t. Qualsiasi regola con precisione inferiore al 100% è "errata" in quanto assegna casi alla classe in questione che in realtà non hanno quella classe. PRISM continua a aggiungere clausole a ciascuna regola finché non è perfetta: la sua precisione è del 100%. La Figura 4.8 fornisce un riepilogo dell'algoritmo. Il loop esterno si estende sulle classi, generando regole per ogni classe a sua volta. Ricordiamo di reinizializzare ogni set di esempi ogni volta. Quindi creiamo regole per quella classe e rimuoviamo gli esempi dall'insieme fino a quando non ci resta nessuna classe. Ogni volta che creiamo una regola, inizia con una regola vuota (che copre tutti gli esempi) e quindi limita l'aggiunta di test fino a coprire solo esempi della classe desiderata. Ad ogni fase scegliere il test più promettente, cioè quello che massimizza l'accuratezza della regola. Infine, rompere i legami selezionando il test con la massima copertura.
Regole rispetto alle liste di decisione

 For each class C
   Initialize E to the instance set
     While E contains instances in class C
       Create a rule R with an empty left-hand side that predicts class C
     Until R is perfect (or there are no more attributes to use) do
     For each attribute A not mentioned in R, and each value v,
     Consider adding the condition A=v to the LHS of R
     Select A and v to maximize the accuracy p/t
      (break ties by choosing the condition with the largest p)
     Add A=v to R
 Remove the instances covered by R from E


Figure 4.8 Pseudocode for a basic rule learner.


 Considerate le regole prodotte per una particolare classe, vale a dire l'algoritmo di Figura 4.8 con il loop esterno rimosso. Sembra chiaro dal modo in cui queste regole vengono prodotte per essere interpretate in ordine, vale a dire come una lista di decisioni, testando le regole a turno finché non si applica e poi usando. Ciò è dovuto al fatto che le istanze coperte da una nuova regola vengono rimosse dal set di istanze non appena la regola è completata (nella terza riga dalla fine del codice in Figura 4.8): le regole successive sono progettate per istanze non coperte Per la regola. Tuttavia, anche se sembra che dobbiamo controllare le regole a sua volta, non dobbiamo farlo. Si consideri che tutte le regole successive generate per questa classe avranno lo stesso effetto, tutte prevedono la stessa classe. Ciò significa che non importa quale ordine venga eseguito in: verranno trovati una regola che copra questa istanza, nel qual caso la classe in questione è prevista o non viene trovata alcuna regola in tal caso la classe non è prevista .

  Ora torni all'algoritmo generale. Ogni classe viene considerata a sua volta e vengono create le regole che distinguono le istanze in quella classe dagli altri. Nessun ordine è implicito tra le regole per una classe e quelle per un altro. Di conseguenza, le regole prodotte possono essere eseguite indipendentemente dall'ordine.

  Come descritto nella sezione 3.3, le regole indipendenti dall'ordine sembrano fornire una maggiore modularità da parte di ciascuno che agiscono come nuggets indipendenti di "conoscenza", ma soffrono lo svantaggio che non è chiaro cosa fare quando si applicano le regole in conflitto. Con le regole generate in questo modo, un esempio di test può ricevere più classificazioni, ovvero le regole applicabili a diverse classi possono accettarlo. Altri esempi di test potrebbero non essere assolutamente classificati. Una semplice strategia per forzare una decisione in questi ambigui casi è quella di scegliere, dalle classificazioni previste, quella con gli esempi più addestrati o, se non è prevista alcuna classificazione, scegliere la categoria con gli esempi di formazione in generale. Queste difficoltà non si verificano con gli elenchi di decisione in quanto sono intesi per essere interpretati in ordine e l'esecuzione si interrompe non appena una regola si applica: l'aggiunta di una regola predefinita alla fine assicura che ogni istanza di prova riceva una classificazione. È possibile generare buone elenchi di decisione per il caso multiclass utilizzando un metodo leggermente diverso, come vedremo nella sezione 6.2.

  I metodi come PRISM possono essere descritti come algoritmi "separati e conquistati": individuate una regola che copre molteplici istanze della classe (e esclude quelle non in classe), separano le istanze coperte perché sono già occupate Per regola, e continuare il processo su quelli che sono rimasti. Questo contrasta bene con l'approccio di divisione e conquista degli alberi decisionali. Il passo separato aumenta notevolmente l'efficienza del metodo perché l'insieme di istanze si restringe continuamente mentre l'operazione procede.
  Regole di associazione mineraria 

Le regole dell'associazione sono come le regole di classificazione. Potreste trovarli allo stesso modo, eseguendo una procedura di "induzione di dominazione e conquista" per ogni possibile espressione che potrebbe accadere sul lato "destro" della regola. Ma non solo potrebbe accadere qualsiasi attributo sul lato "destro" con qualsiasi valore possibile; Una singola regola di associazione spesso prevede il valore di più di un attributo. Per trovare tali regole, dovresti eseguire una volta la procedura di "regola-induzione" per ogni possibile combinazione di attributi, con ogni possibile combinazione di valori, sul lato destro. Ciò comporterebbe un numero enorme di regole di associazione, che dovrebbero quindi essere abbattute sulla base della loro copertura (il numero di istanze che prevedono correttamente) e la loro precisione (lo stesso numero espresso in proporzione al numero di Istanze a cui si applica la regola). Questo approccio è abbastanza inaplicabile. (Si noti che, come abbiamo detto nella sezione 3.4, ciò che noi chiamiamo la copertura è spesso chiamato supporto e quello che chiamiamo la precisione è spesso chiamato fiducia.)

 Al contrario, capitalizziamo il fatto che siamo solo interessati a regole di associazione con copertura elevata. Per il momento, ignoriamo la distinzione tra i lati "sinistra" e "destra" di una regola e cerchiamo combinazioni di coppie di valore attribuito che hanno una copertura minima prestabilita. Questi sono chiamati set di elementi: una coppia di attributo-valore è un elemento. La terminologia deriva dall'analisi del basket di mercato, in cui gli articoli sono articoli nel tuo carrello e il gestore di supermercati cerca associazioni tra questi acquisti.
 Item sets  

La prima colonna della tabella 4.10 mostra le singole voci per i dati meteorologici della tabella 1.2, con il numero di volte in cui ogni elemento appare nel dataset indicato a destra. Questi sono i set one-item. Il passo successivo è quello di generare i set di due elementi creando coppie di one-item. Naturalmente, non c'è alcun motivo per generare un set contenente due valori diversi dello stesso attributo (come outlook = sunny e outlook = overcast), perché ciò non può verificarsi in alcun esempio effettivo

 Supponiamo che cerchiamo regole di associazione con copertura minima 2: quindi scartiniamo tutti i set di elementi che coprono meno di due istanze. Ciò lascia 47 set di due elementi, alcuni dei quali sono mostrati nella seconda colonna insieme al numero di volte che appaiono. Il passo successivo è generare i set di tre elementi, di cui 39 hanno una copertura di 2 o superiore. Ci sono 6 set di quattro elementi, e nessun set di cinque elementi per questi dati, un set di cinque elementi con copertura 2 o superiore potrebbe corrispondere solo ad un'istanza ripetuta. La prima riga del tavolo, per esempio, mostra che ci sono cinque giorni quando la vista è soleggiata, due dei quali hanno una temperatura minima e, infatti, in entrambi i giorni l'umidità è alta e la riproduzione non è così.

    Associasione di regole


Poco ci spiegheremo come generare questi set di elementi in modo efficiente. Ma prima lasciateci finire la storia. Una volta generati tutti i set di elementi con la copertura necessaria, il passo successivo è quello di trasformare ciascuno in una regola o insieme di regole con almeno la precisione minima specificata. Alcuni gruppi di elementi produrranno più regole; Altri non produrranno nessuno. Ad esempio, vi è un set di tre elementi con una copertura di 4 (riga 38 della tabella 4.10):


 humidity = normal, windy = false, play = yes


Questo set porta a sette regole potenziali:


If humidity = normal and windy = false then play = yes       4/4
If humidity = normal and play = yes then windy = false       4/6
If windy = false and play = yes then humidity = normal       4/6
If humidity = normal then windy = false and play = yes       4/7
If windy = false then humidity = normal and play = yes       4/8
If play = yes then humidity = normal and windy = false       4/9
If - then humidity = normal and windy = false and play = yes 4/12



Le cifre a destra mostrano il numero di istanze per le quali tutte e tre le condizioni sono vere - cioè la copertura - diviso per il numero di istanze per le quali le condizioni dell'anticipazione sono vere. Interpretati come una frazione, rappresentano la proporzione di istanze su cui la regola è corretta, cioè la sua precisione. Supponendo che la precisione minima specificata sia del 100%, solo la prima di queste regole lo renderà nell'ordine finale definito. I denominatori delle frazioni sono facilmente ottenuti osservando l'espressione antecedente nella Tabella 4.10 (anche se alcuni non sono mostrati nella Tabella). La regola finale sopra non ha alcuna condizione nell'anticipazione, e il suo denominatore è il numero totale di istanze nel set di dati.
 La tabella 4.11 mostra la regola finale per i dati meteo, con copertura minima 2 e precisione minima del 100%, ordinata per copertura. Ci sono 58 regole, 3 con copertura 4, 5 con copertura 3 e 50 con copertura 2. Solo 7 hanno due condizioni nel conseguente, e nessuno ha più di due. La prima regola deriva dall'elemento impostato precedentemente. A volte diverse regole derivano dallo stesso insieme di oggetti. Ad esempio, le regole 9, 10 e 11 derivano dal set di quattro elementi nella riga 6 della tabella 4.10:


   temperature = cool, humidity = normal, windy = false, play = yes


Che ha la copertura 2. Tre sottotitoli di questo set di oggetti hanno anche la copertura 2:


   temperature = cool, windy = false
   temperature = cool, humidity = normal, windy = false
   temperature = cool, windy = false, play = yes


E queste portano a regole 9, 10 e 11, tutte esattamente 100% (sui dati formativi).

 Generazione di regole in modo efficiente




Ora consideriamo più in dettaglio un algoritmo per la produzione di regole di associazione con copertura minima e precisione specificata. Esistono due fasi: la generazione di set di elementi con la copertura minima specificata e ciascuno dei set di elementi che determinano le regole che hanno la precisione minima specificata.

  La prima fase procede generando tutti i set di un elemento con la copertura minima data (la prima colonna della tabella 4.10) e quindi utilizzandola per generare i set di due elementi (seconda colonna), i set di tre elementi (terza colonna) e così via. Ogni operazione comporta un passaggio attraverso il set di dati per contare gli elementi in ciascun set e dopo il passaggio i set di oggetti sopravvissuti vengono memorizzati in una tabella hash una struttura di dati standard che consente agli elementi memorizzati di trovarsi molto rapidamente. Dai set di un elemento vengono generati i set di due elementi da candidare e viene quindi passato attraverso il set di dati, contando la copertura di ciascun set di due elementi; Alla fine il candidato con meno copertura minima viene rimosso dalla tabella. I set di due elementi di candidato sono semplicemente tutti gli insiemi di un singolo elemento presi in coppia, in quanto un set di due elementi non può avere la copertura minima, a meno che entrambi i set di componenti un elemento non abbiano una copertura minima. Questo vale in generale: un set di tre elementi può avere solo la copertura minima se tutti e tre i suoi sottotitoli a due elementi hanno una copertura minima, e analogamente per i set di quattro elementi

 Un esempio contribuirà a spiegare come vengono generati i set di elementi candidati. Supponiamo che ci siano cinque set di tre elementi (A B C), (A B D), (A C D), (A C E) e (B C D) - dove, ad esempio, A è una caratteristica come outlook = sunny. L'unione dei primi due, (A B C D), è un set di quattro elementi candidati perché i suoi sottoprogetti di tre elementi (A C D) e (B C D) hanno una copertura minima maggiore. Se i set di tre elementi sono ordinati in ordine di lettura, come sono in questo elenco, allora abbiamo bisogno solo di considerare le coppie i cui primi due membri sono gli stessi. Ad esempio, non si considera (ACD) e (BCD) perché (ABCD) può anche essere generato da (ABC) e (ABD), e se questi due non sono gruppi di tre elementi candidati allora (ABCD) non può essere candidato Set di quattro elementi. Ciò lascia le coppie (A B C) e (A B D), che abbiamo già spiegato, e (A C D) e (A C E). Questa seconda coppia conduce all'insieme (A C D E) i cui sottoinsiemi a tre elementi non hanno tutti la copertura minima, quindi viene scartato. La tabella hash assiste con questo controllo: semplicemente rimuovi ogni elemento dall'insieme a sua volta e controlliamo che il restante set di tre elementi sia effettivamente presente nella tabella hash. Così in questo esempio c'è solo un insieme di quattro elementi candidati, (A B C D). Se la copertura minima è effettivamente o meno, è possibile determinare solo la verifica delle istanze nel set di dati.

 La seconda fase della procedura prende ogni elemento impostato e genera regole da esso controllando che abbiano la precisione minima specificata. Se solo le regole con un singolo test sul lato destro sono state ricercate, sarebbe semplicemente una questione di considerare ogni condizione a sua volta come conseguenza della regola, eliminandola dal set di elementi e dividendo la copertura dell'intero elemento Impostato dalla copertura del sottogruppo risultante - ottenuto dalla tabella hash - per ottenere la precisione della regola corrispondente. Dato che siamo anche interessati alle regole di associazione con test multipli in conseguenza, sembra che dobbiamo valutare l'effetto di mettere ogni sottoinsieme dell'elemento impostato sul lato destro, lasciando il resto dell'insieme come antecedente.

  Questo metodo bruta forza sarà eccessivamente calcolabile se i set di elementi sono piccoli, perché il numero di sottoinsiemi possibili cresce in modo esponenziale con la dimensione del set di elementi. Tuttavia, c'è un modo migliore. Abbiamo osservato quando descrivono le regole di associazione nella sezione 3.4 che se la regola doppia


 If windy = false and play = no then outlook = sunny
            and humidity = high

 Detiene con una minima copertura e precisione, quindi le regole "singole" risultanti dalla stessa serie di oggetti devono inoltre contenere:


  If humidity = high and windy = false and play = no
     then outlook = sunny
  If outlook = sunny and windy = false and play = no
     then humidity = high



Al contrario, se una o l'altra delle regole "singole" non è in possesso, non c'è alcun motivo per considerare la duplice conseguenza. Ciò dà un modo per costruire da regole "singole" a candidati a doppio risultato, da regole a doppio risultato a quelle a triple conseguenti, e così via. Naturalmente, ogni regola candidata deve essere controllata contro la tabella hash per vedere se ha veramente più della precisione minima specificata. Ma ciò in genere comporta la verifica di "molto meno regole" rispetto al metodo della forza bruta. È interessante che questo modo di costruire regole candidate (n + 1) -consequent da effettive n-consequent ones sia veramente lo stesso come la creazione di set di candidati (n + 1) -item da set effettivi n-item, descritti in precedenza

 Discussione


 Le regole di associazione sono spesso ricercate per i set di dati molto grandi e gli algoritmi efficienti sono molto apprezzati. Il metodo descritto in precedenza fa passare attraverso il set di dati per ogni dimensione diversa del set di elementi. A volte il set di dati è troppo grande per leggere nella memoria principale e deve essere tenuto su disco; Allora potrebbe valere la pena ridurre il numero di passaggi controllando in due punti set di due dimensioni consecutive. Ad esempio, una volta impostati con due elementi sono stati generati, tutti i set di tre elementi potrebbero essere generati da loro prima di passare attraverso il set di istanza per contare il numero effettivo di elementi nel set. Saranno considerati altri set di tre elementi che necessari, ma il numero di passaggi attraverso l'intero set di dati sarebbe ridotto.

  In pratica, la quantità di calcolo necessaria per generare regole di associazione dipende criticamente dalla copertura minima specificata. L'esattezza ha meno influenza perché non influisce sul numero di passaggi che dobbiamo fare attraverso il set di dati. In molte situazioni vorremmo ottenere un certo numero di regole - ad esempio 50 - con la massima copertura possibile a un preciso livello di precisione prestabilito. Un modo per farlo è iniziare specificando la copertura per essere piuttosto alta e quindi successivamente ridurla, ripetendo l'intero algoritmo di rilevamento delle regole per ogni valore di copertura e ripetendolo fino a quando il numero di regole desiderato non è stato generato.

  Il formato di input tabellare che utilizziamo in questo libro, e in particolare un file ARFF standard basato su di esso, è molto inefficiente per molti problemi di regole di associazione. Le regole di associazione vengono spesso utilizzate quando gli attributi sono binari - presenti o assenti - e la maggior parte dei valori attributi associati a una data istanza non sono presenti. Questo è un caso per la rappresentazione dei dati scarsamente descritta nella sezione 2.4; Si applica lo stesso algoritmo per la ricerca delle regole di associazione.
 Modelli lineari

 I metodi che stiamo esaminando per gli alberi decisionali e le regole funzionano più naturalmente con attributi nominali. Possono essere estesi a attributi numerici includendo test di valore numerico direttamente nell'albero di decisione o nell'istruzione di regola, oppure prediscrivendo gli attributi numerici in quelli nominali. Vedremo come nei capitoli 6 e 7, rispettivamente. Tuttavia, ci sono metodi che funzionano più naturalmente con gli attributi numerici. Guardiamo qui semplici, quelli che formano componenti di metodi di apprendimento più complessi, che verranno esaminati in seguito.
  Predizione numerica: regressione lineare

 Quando l'esito o la classe è numerica e tutti gli attributi sono numerici, la regressione lineare è una tecnica naturale da considerare. Questo è un metodo grafico delle statistiche. L'idea è quella di esprimere la classe come una combinazione lineare degli attributi, con pesi predeterminati:


  x = w 0 + w1a1 + w 2a2 + . . . + wk ak


 Dove x è la classe; A1, a2,. . ., Ak sono i valori degli attributi; E w0, w1,. . ., Wk sono pesi.
I pesi sono calcolati dai dati formativi. Qui la notazione diventa un po 'pesante, perché abbiamo bisogno di un modo per esprimere i valori degli attributi per ogni istanza di formazione. La prima istanza avrà una classe, diciamo x (1), e attribuisce valori a1 (1), a2 (1),. . ., Ak (1), dove il superscript denota che è il primo esempio. Inoltre è conveniente assumere un attributo extra a0 il cui valore è sempre 1.
Il valore previsto per la classe di primo grado può essere scritto come


 w 0a01) + w1a11) + w 2a21) + . . . + wk ak1) = ...






 Questo è il valore predetto, non quello effettivo, per la classe di primo grado. Di interesse è la differenza tra i valori previsti e quelli reali. Il metodo della regressione lineare è quello di scegliere i coefficienti wj - sono loro k + 1 - per minimizzare la somma dei quadrati di queste differenze su tutte le istanze di formazione. Supponiamo che ci siano n istituti di formazione; Denota l'i con un superscript (i). Poi la somma dei quadrati delle differenze è


  .....


 Dove l'espressione all'interno delle parentesi è la differenza tra la classe effettiva dell'istanza istante e la sua classe predetta. Questa somma di quadrati è ciò che dobbiamo minimizzare scegliendo opportunamente i coefficienti.

  Tutto questo comincia a sembrare piuttosto formidabile. Tuttavia, la tecnica di minimizzazione è semplice se si dispone del "background appropriato di matematica". Basti dire che dato abbastanza esempi - a parimenti, più esempi che attributi - scegliendo pesi per ridurre al minimo la somma delle differenze quadrate - non è veramente difficile. Esso comporta un'operazione di inversione di matrici, ma questo è facilmente disponibile come software prepackaged.
Una volta che la matematica è stata completata, il risultato è un insieme di pesi numerici, basati sui dati di addestramento, che possiamo utilizzare per predire la classe di nuove istanze. Abbiamo visto un esempio di questo quando si guardano i dati delle prestazioni della CPU ei pesi numerici effettivi sono riportati nella Figura 3.7 (a). Questa formula può essere utilizzata per prevedere le prestazioni della CPU di nuove istanze di test.

    La regressione lineare è un metodo eccellente e semplice per la previsione numerica, ed è stato ampiamente utilizzato in applicazioni statistiche per decenni. Naturalmente, i modelli lineari subiscono lo svantaggio della linearità. Se i dati presentano una dipendenza non lineare, si trova la linea retta più adatta, dove "migliore" viene interpretata come la differenza minima media quadrata. Questa linea potrebbe non adattarsi molto bene.

 Tuttavia, i modelli lineari servono bene come blocchi di costruzione per metodi di apprendimento più complessi.

  Classificazione lineare: regressione logistica


 La regressione lineare può essere facilmente utilizzata per la classificazione in domini con attributi numerici. Infatti, possiamo utilizzare qualsiasi tecnica di regressione, sia lineare che non lineare, per la classificazione. Il trucco è quello di eseguire una regressione per ogni classe, impostando l'output pari a uno per istanze di formazione che appartengono alla classe e zero per coloro che non lo fanno. Il risultato è un'espressione lineare per la classe. Quindi, date un esempio di prova di classe sconosciuta, calcolare il valore di ogni espressione lineare e scegliere quello più grande. Questo metodo è talvolta chiamato regressione lineare multiresponse.
 Un modo di guardare la regressione lineare multiresponse è quello di immaginare di approssimare una funzione di appartenenza numerica per ogni classe. La funzione di appartenenza è 1 per istanze appartenenti a quella classe e 0 per altre istanze. Dato una nuova istanza, calcoleremo l'appartenenza per ogni classe e selezioneremo il più grande.

  La regressione lineare multiresponse spesso produce buoni risultati nella pratica. Tuttavia, ha due inconvenienti. In primo luogo, i valori di appartenenza che produce non sono probabilità adeguate perché possono cadere al di fuori dell'intervallo da 0 a 1. La seconda regressione di minimi quadrati presuppone che gli errori non siano solo statisticamente indipendenti, ma sono normalmente distribuiti con la stessa deviazione standard, Ipotesi che è violata in modo violento quando il metodo viene applicato ai problemi di classificazione perché le osservazioni assumono solo i valori 0 e 1.
 Una tecnica statistica correlata, chiamata regressione logistica, non soffre di questi problemi. Invece di approssimare direttamente i valori 0 e 1, rischiando i valori di probabilità illegittimi quando l'obiettivo è superato, la regressione logistica crea un modello lineare basato su una variabile di destinazione trasformata. Supponiamo innanzitutto che ci siano solo due classi. La regressione logistica sostituisce la variabile di destinazione originale


  Pr[1 a1 , a2 , . . . , ak ],


 Che non può essere approssimato con precisione utilizzando una funzione lineare, con


 log (Pr[1 a1 , a2 , . . . , ak ]) (1 - Pr[1 a1 , a2 , . . . , ak ]) .


 I valori risultanti non sono più vincolati all'intervallo da 0 a 1, ma possono trovarsi ovunque tra infinito negativo e infinito positivo. La Figura 4.9 (a) traccia la funzione di trasformazione, che viene spesso definita la trasformazione di logit. La variabile trasformata viene approssimata usando una funzione lineare proprio come quelle generate dalla regressione lineare. Il modello risultante è con pesi w. La Figura 4.9 (b) mostra un esempio di questa funzione in una dimensione, con due pesi w0 = 0.5 e w1 = 1.


  Pr[1 a1 , a2 , . . . , ak ] = 1 (1 + exp( - w 0 - w1a1 - . . . - wk ak )) ,


  Figure 4.9 Logistic regression: (a) the logit transform and (b) an example logistic regression function.


  Proprio come nella regressione lineare, è necessario trovare pesi che soddisfano bene i dati di allenamento. La regressione lineare misura la bontà della misura utilizzando l'errore quadrato. Nella regressione logistica invece viene utilizzata la probabilità di log del modello. Ciò è dato da dove x (i) sono zero o uno.


 Â (1 - x (i ) ) log(1 - Pr[1 a1(i ) , a2(i ) , . . . , ak(i ) ]) + x (i ) log(Pr[1 a1(i ) , a2(i ) , . . . , ak(i ) ])

 I pesi wi devono essere scelti per massimizzare la probabilità di log. Ci sono diversi metodi per risolvere questo problema di massimizzazione. Una semplice soluzione è quella di risolvere in modo iterativo una sequenza di problemi di regressione a meno di quadrati ponderati finché la probabilità di log converge ad un massimo, che di solito accade in poche iterazioni.

  Per generalizzare la regressione logistica a più classi, una possibilità è di procedere nel modo descritto in precedenza per la regressione lineare multiresponse eseguendo la regressione logistica indipendentemente per ogni classe. Purtroppo, le stime di probabilità risultanti non sommano a uno. Per ottenere le probabilità corrette è necessario unire i singoli modelli per ogni classe. Ciò produce un problema di ottimizzazione congiunta e ci sono metodi efficaci di soluzione per questo.
  Un modo concettualmente più semplice e molto generale per affrontare i problemi di multiclass è noto come classificazione in coppia. Qui viene creato un classificatore per ogni coppia di classi, utilizzando solo le istanze di queste due classi. L'output su un esempio di prova sconosciuto si basa su quale classe riceve il maggior numero di voti. Questo metodo fornisce generalmente risultati accurati in termini di errore di classificazione. Può anche essere utilizzato per produrre le stime di probabilità applicando un metodo chiamato accoppiamento a coppia, che calibra le singole stime di probabilità dai diversi classificatori.



Se ci sono classi k, la classificazione a coppie crea un totale di classificatori k (k - 1) / 2. Anche se questo "suona inutilmente" il calcolo intensivo, non lo è. Infatti, se le classi sono classificate in modo uniforme in coppia, è almeno il più veloce di qualsiasi altro metodo multiclass. Il motivo è che ciascuno dei problemi di apprendimento in coppia comprende solo le istanze relative alle due classi in esame. Se n istanze sono suddivise in modo uniforme tra le classi k, si tratta di istanze 2n / k per problema. Supponiamo che l'algoritmo di apprendimento per un problema a due classi con n istanze richiede tempo proporzionale a n secondi da eseguire. Quindi il tempo di esecuzione per la classificazione a coppia è proporzionale a k (k - 1) / 2 ¥ 2n / k secondi, che è (k - 1) n. In altre parole, il metodo scala linearmente con il numero di classi. Se l'algoritmo di apprendimento richiede più tempo - diciamo proporzionale a n2 - il vantaggio dell'approccio a coppia è ancora più pronunciato.  L'utilizzo di funzioni lineari per la classificazione può essere facilmente visualizzato nello spazio di esempio. Il limite di decisione per la regressione logistica a due classi è dove la probabilità di predizione è 0,5, cioè:


 Pr[1 a1 , a2 , . . . , ak ] = 1 (1 + exp( - w 0 - w1a1 - . . . - wk ak )) = 0.5.


 questo succede quando


 - w 0 - w1a1 - . . . - wk ak = 0


 E lo stesso per la classe 2 con appropriati superscritti. Quindi, un'istanza verrà assegnata alla classe 1 anziché alla classe 2 se


   w 01) + w11)a1 + . . . + wk1)ak > w02) + w12)a1 + . . . + wk2)a


 In altre parole, verrà assegnato alla classe 1 se


 (w0(1) - w0(2) ) + (w1(1) - w1(2) )a1 + . . . + (wk(1) - wk(2) )ak > 0.


 Questa è una disuguaglianza lineare nei valori degli attributi, quindi il confine tra ogni coppia di classi è un iperplano. Lo stesso vale quando si effettua la classificazione a coppie. L'unica differenza è che il confine tra due classi è governato dalle istanze di formazione in quelle classi e 'non è influenzato' dalle altre classi
 Classificazione lineare usando il perceptron

 La regressione logistica tenta di produrre accurate stime di probabilità massimizzando la probabilità dei dati formativi. Naturalmente, le stime accurate della probabilità portano a classificazioni accurate. Tuttavia, non è necessario eseguire una stima di probabilità se il solo scopo del modello è quello di predire le etichette di classe. Un approccio diverso è imparare un iperplano che separa le istanze relative alle diverse classi - supponiamo che ci siano solo due di essi. Se i dati possono essere separati perfettamente in due gruppi utilizzando un iperplano, si dice che sia separabile linearmente. Risulta che se i dati sono linearmente separabili, c'è un algoritmo molto semplice per trovare un iperplano separatore. L'algoritmo è chiamato regola di apprendimento perceptron. Prima di esaminarlo in dettaglio, esaminiamo nuovamente l'equazione di un iperplano:


  w 0a0 + w1a1 + w 2a2 + . . . + wk ak = 0.


 Set all weights to zero
   Until all instances in the training data are classified correctly
   For each instance I in the training data
     If I is classified incorrectly by the perceptron
     If I belongs to the first class add it to the weight vector
       else subtract it from the weight vector


  Figure 4.10 The perceptron: (a) learning rule and (b) representation as a neural network.


Qui, a1, a2,. . ., Ak sono i valori dell'attributo e w0, w1,. . ., Wk sono i pesi che definiscono l'iperplano. Supponiamo che ogni istanza di formazione a1, a2,. . . Viene esteso da un attributo aggiuntivo a0 che ha sempre il valore 1 (come abbiamo fatto nel caso della regressione lineare). Questa estensione, che si chiama bias, significa semplicemente che non dobbiamo includere un elemento costante aggiuntivo della somma.

  Se la somma è maggiore di zero, prevediamo la prima classe; Altrimenti prevediamo la seconda classe. Vogliamo trovare i valori per i pesi in modo che i dati di allenamento siano classificati correttamente dall'iperplano.

 La Figura 4.10 (a) fornisce la regola di apprendimento perceptron per trovare un iperplano separatore. L'algoritmo esegue l'iterazione fino a quando non sia stata trovata una soluzione perfetta, ma funzionerà correttamente solo se esiste un iperplano separatore, cioè se i dati sono linearmente separabili. Ogni iterazione passa attraverso tutte le istanze di addestramento. Se si verifica un'istanza errata, i parametri dell'iperplano vengono modificati in modo che l'istanza errata si avvicini all'iperplano o forse anche attraverso l'iperplano sul lato corretto. Se l'istanza appartiene alla prima classe, questo viene fatto aggiungendo i propri valori di attributo al vettore di peso; Altrimenti, vengono sottratti.

 Per capire perché funziona, considerare la situazione dopo che è stata aggiunta un'istanza a relativa alla prima classe:


 (w0 + a0 )a0 + (w1 + a1 )a1 + (w2 + a2 )a2 + . . . + (wk + ak )ak .


Ciò significa che l'output per un è aumentato di


 a0 * a0 + a1 * a1 + a2 * a2 + . . . + ak * ak .



Questo numero è sempre positivo. Così l'iperplano si è spostato nella direzione corretta 'per classificare l'istanza' come positivo. Viceversa, se un'istanza appartenente alla seconda classe è erroneamente classificata, l'output di tale istanza diminuisce dopo la modifica, spostando nuovamente l'iperplano nella direzione corretta. Queste correzioni sono incrementali e possono interferire con gli aggiornamenti precedenti. Tuttavia, si può dimostrare che l'algoritmo converge in un numero finito di iterazioni se i dati sono linearmente separabili. Naturalmente, se i dati non sono linearmente separabili, l'algoritmo non verrà terminato, per cui un limite superiore deve essere imposto sul numero di iterazioni quando questo metodo viene applicato in pratica.

 L'iperplano risultante è chiamato perceptron, ed è il nonno delle reti neurali (torniamo alle reti neurali nella Sezione 6.3). La figura 4.10 (b) rappresenta il perceptron come un grafico con nodi e bordi ponderati, immaginativamente definito una "rete" di "neuroni". Ci sono due strati di nodi: input e output. Il livello di input ha un nodo per ogni attributo, più un nodo aggiuntivo sempre impostato su uno. Il livello di output è costituito da un solo nodo. Ogni nodo del livello di input è collegato al livello di output. Le connessioni sono ponderate e i pesi sono quei numeri trovati dalla regola di apprendimento perceptron. Quando viene presentata un'istanza al perceptron, i suoi valori di attributo servono per "attivare" il livello di input. Sono moltiplicati per i pesi e riassumono nel nodo di uscita. Se la somma ponderata è maggiore di 0 il segnale di uscita è 1, rappresentando la prima classe; Altrimenti, è -1, rappresenta il secondo.
 Classificazione lineare usando Winnow

 L'algoritmo perceptron non è l'unico metodo che è garantito per trovare un iperplano separatore per un problema linearmente separabile. Per i set di dati con attributi binari c'è un'alternativa nota come Winnow, mostrata nella Figura 4.11 (a). La struttura dei due algoritmi è molto simile. Come il perceptron, Winnow aggiorna solo il vettore del peso quando si incontra un'istanza erronea è errata.

 I due metodi differiscono da come vengono aggiornati i pesi. La regola perceptron utilizza un meccanismo additivo che modifica il vettore di peso aggiungendo (o sottraendo) il vettore di attributo dell'istanza. Winnow impiega aggiornamenti moltiplicativi e modifica i singoli pesi moltiplicandoli dal parametro specificato dall'utente a (o inverso). I valori di attributo 'AI' sono 0 o 1 perché stiamo lavorando con dati binari. I pesi sono invariati se il valore dell'attributo è 0, perché quindi non partecipano alla decisione. Altrimenti, il moltiplicatore è un se questo attributo aiuta a prendere una decisione corretta e 1/a se non lo fa.


 While some instances are misclassified
for every instance a
classify a using the current weights
if the predicted class is incorrect
if a belongs to the first class
for each ai that is 1, multiply wi by a
(if ai is 0, leave wi unchanged)
otherwise
for each ai that is 1, divide wi by a
(if ai is 0, leave wi unchanged)


(a)


While some instances are misclassified
for every instance a
classify a using the current weights
if the predicted class is incorrect
if a belongs to the first class
for each ai that is 1,
multiply wi+ by a
divide wi– by a
(if ai is 0, leave wi+ and wi- unchanged)
otherwise for
for each ai that is 1,
multiply wi– by a
divide wi+ by a
(if ai is 0, leave wi+ and wi- unchanged)


(b)
Figure 4.11 The Winnow algorithm: (a) the unbalanced version and (b) the balanced
version.


Un'altra differenza è che la soglia nella funzione lineare è anche un parametro specificato dall'utente. Chiamiamo questa soglia q e classificiamo un'istanza come appartenente alla classe 1 se e solo se


 w 0a0 + w1a1 + w 2a2 + . . . + wk ak > q .


 Il moltiplicatore a deve essere maggiore di uno. I wi sono impostati su una costante all'inizio.
L'algoritmo descritto non consente pesi negativi che, a seconda del dominio, possono essere un inconveniente. Tuttavia, c'è una versione chiamata Balanced Winnow, che li consente. Questa versione mantiene due vettori di peso, uno per ogni classe. Un'istanza è classificata come appartenente alla classe 1 se:


 (w0+ - w0- )a0 + (w1+ - w1- )a1 + . . . + (wk+ - wk- )ak > q
Figure 4.11(b) shows the balanced algorithm.




 Winnow è molto efficace nell'affrontare le caratteristiche rilevanti in un set di dati, quindi viene chiamato un "attributo efficiente". Ciò significa che potrebbe essere un 'buon algoritmo candidato' se un set di dati ha molte funzioni (binarie) e la maggior parte di esse è irrilevante. Sia il winnow che l'algoritmo perceptron possono essere utilizzati in una impostazione in linea in cui nuove istanze arrivano ininterrottamente perché possono aggiornare in modo incrementale le loro ipotesi quando arrivano nuove istanze.
 Istruzione basata su istanze

 Nell'apprendimento basato sull'esempio gli esempi di formazione vengono memorizzati in modo verbale e viene utilizzata una funzione di distanza per determinare quale membro del set di allenamento è più vicino a un'istanza di prova sconosciuta. Una volta trovata l'istanza di addestramento più vicina, la sua classe è prevista per l'istanza di prova. L'unico problema rimasto è definire la funzione di distanza, e questo non è molto difficile da fare, specialmente se gli attributi sono numerici.
 La funzione di distanza

Sebbene ci siano altre scelte possibili, la maggior parte degli studenti basati sull'istanza utilizza la distanza Euclidea. La distanza tra un'istanza con valori di attributo a1 (1), a2 (1),. . . , Ak (1) (dove k è il numero di attributi) e uno con valori a1 (2), a2 (2),. . . , Ak (2) è definito come

 ....

Quando si confrontano le distanze non è necessario eseguire l'operazione "radice quadrata"; Le 'somme di quadrati' possono essere confrontate direttamente. Un'altra alternativa alla distanza Euclidea è la metrica Manhattan o metropolitana di città, dove la differenza tra i valori degli attributi non è quadrata ma è stata appena aggiunta (dopo aver preso il valore assoluto). Altri sono ottenuti assumendo valori superiori ai quadrati. Le potenze superiori aumentano l'influenza delle grandi differenze a scapito di piccole differenze. In generale, la distanza euclidea rappresenta un buon compromesso. Altre metriche a distanza possono essere più appropriate in circostanze particolari. La chiave è pensare a istanze effettive e cosa significa che essi siano separati da una certa distanza - quale sarebbe il doppio di quella distanza, ad esempio?
  Diversi attributi vengono misurati su diverse scale, quindi se la formula a distanza Euclidea veniva utilizzata direttamente, gli effetti di alcuni attributi potrebbero essere totalmente danneggiati da altri che avevano scalini di misura più grandi. Di conseguenza, è normale normalizzare tutti i valori degli attributi da 0 a 1, calcolando

...

dove vi è il valore effettivo dell'attributo i, e il massimo e il minimo vengono assunte in tutte le istanze del set di formazione.
Queste formule implicitamente assumono attributi numerici. Qui la differenza tra due valori è solo la differenza numerica tra loro e questa differenza è quadrata e aggiunta per produrre la funzione di distanza. Per gli attributi nominali che assumono valori simbolici piuttosto che numerici, la differenza tra due valori non uguali viene spesso considerata come una, mentre se i valori sono uguali, la differenza è pari a zero. In questo caso non è necessaria alcuna scalatura perché vengono utilizzati solo i valori 0 e 1.

 Una politica comune per la gestione dei valori mancanti è la seguente. Per gli attributi nominali, si supponga che una caratteristica mancante sia massima diversa da qualsiasi altro valore di funzionalità. Quindi se uno o entrambi i valori mancano o se i valori sono diversi, la differenza tra di essi viene considerata come una; La differenza è zero solo se non mancano e entrambi sono uguali. Per gli attributi numerici, la differenza tra due valori mancanti viene anche considerata come una. Tuttavia, se manca un solo valore, la differenza viene spesso considerata come la dimensione (normalizzata) dell'altro valore o una meno quella dimensione, a seconda di quale sia maggiore. Ciò significa che se i valori mancano, la differenza è tanto grande quanto il più possiblile.
 Trovare i vicini più vicini in modo efficiente

Anche se l'apprendimento basato su istanze è semplice ed efficace, spesso è lento. Il modo più evidente per scoprire quale membro del set di allenamento è più vicino a un'istanza di prova sconosciuta è calcolare la distanza da ogni membro del set di allenamento e selezionare il più piccolo. Questa procedura è lineare nel numero di istanze di addestramento: in altre parole, il tempo necessario per effettuare una singola previsione è proporzionale al numero di istanze di addestramento. L'elaborazione di un intero set di test richiede tempo proporzionale al prodotto del numero di istanze nei corsi di formazione e di prova.



 Figure 4.12 A kD-tree for four training instances: (a) the tree and (b) instances and splits.


 I vicini più vicini possono essere trovati in modo più efficiente rappresentando il set di formazione come un albero, anche se non è abbastanza ovvio come. Una struttura adatta è un albero kD. Questo è un albero binario che divide lo spazio di input con un iperplano e quindi divide ogni partizione in modo ricorsivo. Tutte le suddivisioni sono fatte parallele ad uno degli assi, verticalmente o orizzontalmente, nel caso bidimensionale. La struttura dei dati viene chiamata kD-tree perché memorizza un insieme di punti nello spazio k-dimensionale, essendo k il numero di attributi.

 La Figura 4.12 (a) fornisce un piccolo esempio con k = 2 e la Figura 4.12 (b) mostra le quattro istanze di formazione che rappresenta, insieme agli iperplani che costituiscono l'albero. Si noti che questi iperplani non sono dei confini decisionali: le decisioni vengono fatte su base "vicina più vicina" come spiegato più avanti. La prima divisione è orizzontale (h), attraverso il punto (7,4) - questa è la radice dell'albero. Il ramo sinistro non si divide ulteriormente: contiene il singolo punto (2,2), che è una foglia dell'albero. Il ramo destro è suddiviso verticalmente (v) al punto (6,7). Il figlio sinistro è vuoto e il figlio destro contiene il punto (3,8). Come illustra questo esempio, ogni regione contiene solo un punto - o, forse, nessun punto. I rami filiali dell'albero, per esempio le due figlie della radice in Figura 4.12 (a) non sono necessariamente sviluppate alla stessa profondità. Ogni punto del set di allenamento corrisponde a un singolo nodo, e fino a metà sono i nodi foglia.

  Come si crea un kD-tree da un set di dati? Può essere aggiornato in modo efficiente come nuovi esempi di formazione sono aggiunti? E come accelerare i calcoli "vicini più vicini"? Noi affrontiamo l'ultima domanda innanzitutto.Per individuare il vicino vicino di un dato punto di destinazione, segui l'albero verso il basso dalla sua radice per individuare la regione contenente il bersaglio. La Figura 4.13 mostra uno spazio simile a quello di Figura 4.12 (b), ma con alcuni altri casi e un limite extra. L'obiettivo, che non è uno dei casi nell'albero, è contrassegnato da una stella. Il nodo foglia della regione contenente il bersaglio è colorato nero. Questo non è necessariamente il prossimo più vicino del bersaglio, come illustra questo esempio, ma è una buona prima approssimazione. In particolare, ogni prossimo vicino deve trovarsi più vicino - all'interno del cerchio tratteggiato in Figura 4.13. Per determinare se esiste, verificare innanzitutto se è possibile che un vicino vicino si trovi all'interno del fratello del nodo. Il fratello del nodo nero è ombreggiato nella Figura 4.13 e il cerchio non lo interseca, quindi il fratello non può contenere un vicino più vicino. Quindi tornate al nodo padre e controllate il suo fratello, che qui copre tutto sopra la linea orizzontale. In questo caso deve essere esplorato, perché finora l'area che copre interseca con il miglior cerchio. Per esplorarlo, trovare le sue figlie (due zie del punto originale), controllare se intersecano il cerchio (la sinistra non lo fa, ma quello giusto fa) e discende per vedere se contiene un punto più stretto (lo fa).

 In un caso tipico, questo algoritmo è molto più veloce di esaminare tutti i punti per trovare il 'vicino più vicino'. Il lavoro di ricerca del primo approccio "vicino vicino" - il punto nero della Figura 4.13 - dipende dalla profondità dell'albero, data dal logaritmo del numero di nodi, log2n. La quantità di lavoro che comporta il backtracking per verificare se questo è veramente il "prossimo più vicino" dipende un po 'dall'albero e su quanto sia buona la prima approssimazione. Ma per un albero ben costruito i cui nodi sono approssimativamente quadrati, anziché lunghi rettangoli sottili, può anche essere dimostrato logaritmico nel numero di nodi.
Come si costruisce un buon albero per una serie di esempi di formazione? Il problema si riduce a selezionare la prima istanza di formazione da dividere e la direzione della suddivisione. Una volta che puoi farlo, applica lo stesso metodo ricorsivo a ciascun figlio della divisione iniziale per costruire l'intero albero.

  Per trovare una buona direzione per la suddivisione, calcolare individualmente la varianza dei punti di dati lungo ciascun asse, selezionare l'asse con la massima varianza e creare un iperplano di suddivisione perpendicolare ad esso. Per trovare un buon posto per l'iperplano, individuare il valore mediano lungo tale asse e selezionare il punto corrispondente. Ciò rende la spaccatura perpendicolare alla direzione di maggiore diffusione, con la metà dei punti che si trovano su entrambi i lati. Questo produce un albero ben equilibrato. Per evitare lunghe regioni umide, è meglio che le sezioni successive siano lungo gli assi diversi, probabilmente perché la dimensione della più grande varianza viene scelta in ogni fase. Tuttavia, se la distribuzione dei punti è spessa, la scelta del valore mediano può generare diverse divisioni successive nella stessa direzione, generando lunghi hyperrectangles sottili. Una strategia migliore è quella di calcolare la media piuttosto che quella mediana e utilizzare il punto più vicino a quello. L'albero non sarà perfettamente equilibrato, ma le sue regioni tendono ad essere squarche perché esiste una maggiore probabilità che saranno scelte diverse direzioni per le successive divisioni.

  Un vantaggio dell'apprendimento basato sull'istanza sulla maggior parte degli altri metodi di apprendimento delle macchine è che i nuovi esempi possono essere aggiunti al set di formazione in qualsiasi momento. Per mantenere questo vantaggio quando si utilizza un kD-tree, dobbiamo essere in grado di aggiornarlo incrementalmente con nuovi punti dati. A tale scopo, determinare quale nodo foglia contiene il nuovo punto e trovare il suo hyperrectangle. Se è vuoto, inserisci semplicemente il nuovo punto. Altrimenti dividere il hyperrectangle, dividendolo lungo la sua dimensione più lunga per preservare la squareness. Questa semplice euristica non garantisce che l'aggiunta di una serie di punti conservi l'equilibrio dell'albero, né che i hyperrectangles saranno ben fornite per la ricerca più vicina. È una buona idea ricostruire occasionalmente l'albero da zero, ad esempio quando la sua profondità cresce al doppio della migliore profondità possibile.



Come abbiamo visto, gli alberi di KD sono buone strutture di dati per trovare in modo efficiente i "vicini più vicini". Tuttavia, non sono perfetti. I set di dati incrociati rappresentano un conflitto fondamentale tra il desiderio dell'albero di essere perfettamente equilibrato e il desiderio di squarcire le regioni. Ancora più importante, i rettangoli, anche quadrati, non sono la forma migliore da usare comunque, a causa dei loro angoli. Se il cerchio tratteggiato in Figura 4.13 fosse più grande, che "sarebbe" se l'istanza nera fosse un po 'più lontana dall'obiettivo, "se interseca" l'angolo inferiore destro del rettangolo in alto a sinistra e allora quel rettangolo dovrà essere studiato, anche se le istanze di apprendimento che lo definiscono "è un lungo cammino" dall'angolo in questione. Gli angoli delle regioni rettangolari sono inapropriati.

 La soluzione? Utilizzare ipersfere, non hyperrectangles. Le sfere confinanti possono sovrapporsi mentre i rettangoli possono sovrapporre, ma questo non è un problema perché l'algoritmo "più vicino" per gli alberi kD descritti in precedenza non dipende dalle regioni disgiunte. Una struttura di dati chiamata albero a sfera definisce le ipersfere k-dimensionali ("palline") che coprono i punti dati e li organizza in un albero.

 La Figura 4.14 (a) mostra 16 'istanze di addestramento' in uno spazio bidimensionale sovrapposto ad un cerchio di cerchi sovrapposti e la Figura 4.14 (b) mostra un albero formato da questi cerchi. I cerchi a diversi livelli dell'albero sono indicati da diversi stili di tratteggio, ei cerchi più piccoli sono disegnati in tonalità di grigio. Ogni nodo dell'albero rappresenta una palla e il nodo è tratteggiato o ombreggiato secondo la stessa convenzione in modo da poter identificare il livello in cui le palle sono. Per aiutarti a comprendere l'albero, i numeri vengono posti sui nodi per mostrare quanti punti dati sono considerati all'interno di quella palla. Ma fai attenzione: questo non è necessariamente lo stesso del numero di punti che rientrano nella regione spaziale che rappresenta la palla. Le regioni a ogni livello a volte si sovrappongono, ma i punti che rientrano nell'area di sovrapposizione sono assegnati a una sola delle sfere sovrapposte (il diagramma non mostra quale). Invece dei conteggi di occupazione in Figura 4.14 (b), i nodi degli alberi a sfera effettivi memorizzano il centro e il raggio della loro palla; I nodi foglia registrano anche i punti che contengono.

  Per utilizzare un albero a sfera per trovare il "vicino più vicino" a un determinato bersaglio, iniziare attraversando l'albero dall'alto verso il basso per individuare la foglia che contiene l'obiettivo e trovare il punto più vicino all'obiettivo in quella palla. Questo dà un limite superiore per la distanza del bersaglio dal suo "vicino più vicino". Quindi, come per il kD-tree, esaminare il nodo di fratello. Se la distanza dal bersaglio al centro del fratello supera il suo raggio più il "limite superiore" corrente, non può contenere un "punto più vicino"; Altrimenti il fratello deve essere esaminato scendendo ulteriormente l'albero. Nella Figura 4.15 l'obiettivo è contrassegnato da una stella e il punto nero è il suo vicino prossimo attualmente conosciuto. L'intero contenuto della palla grigia può essere escluso: non può contenere un punto più stretto perché il suo centro è troppo lontano. Procedi in modo ricorsivo all'albero fino alla sua radice, esaminando qualsiasi palla che possa contenere un punto più vicino rispetto al "limite superiore" corrente.


 Figure 4.15 Ruling out an entire ball (gray) based on a target point (star) and its current nearest neighbor.


 Gli alberi a sfera sono costruiti dall'alto verso il basso, e come con i kD-trees il problema fondamentale è quello di trovare un buon modo di dividere una palla contenente un set di punti dati in due. In pratica non devi proseguire fino a che "le palle di foglia" non contengano solo due punti: si può fermare prima, una volta raggiunto un numero minimo prefissato, e lo stesso vale per gli alberi di KD. Ecco un metodo di scissione possibile. Scegli il punto della palla più lontana dal suo centro e poi un secondo punto più lontano dalla prima. Assegnare tutti i punti dati nella palla al più vicino di questi due centri di cluster, quindi calcolare il centroid di ciascun cluster e il raggio minimo necessario per racchiudere tutti i punti dati che rappresenta. Questo metodo ha il merito che il costo della suddivisione di una palla contenente n punti è solo lineare in n. Ci sono più elaborati algoritmi che producono palle più strette, ma richiedono più calcolo. Non descriveremo algoritmi sofisticati per costruire alberi a sfera o aggiornarli in modo incrementale, poiché si incontrano "nuove istanze di allenamento".
 Dicussione

L'apprendimento basato su istanze "vicini di prossimità" è semplice e spesso funziona molto bene. Nel metodo descritto in precedenza, ogni attributo ha esattamente la stessa influenza sulla decisione, proprio come nel metodo Naïve Bayes. Un altro problema è che il database può facilmente essere danneggiato da esemplari rumorosi. Una soluzione è quella di adottare la strategia "k-nearest-neighbor", in cui si trovano e si utilizzano insieme un numero fisso di piccoli numeri k di "vicini più vicini", per esempio cinque, per determinare la classe dell'istanza di prova mediante una semplice maggioranza . (Si noti che abbiamo usato k per indicare il numero di attributi in precedenza, è un diverso uso indipendente.) Un altro modo di provare il database contro il rumore è quello di scegliere gli esemplari che vengono aggiunti selettivamente e giudiziosamente; Procedure migliorate, descritte nel Capitolo 6, affrontano questi difetti.

  Il metodo del "prossimo vicino" è nato decine di anni fa, e gli statistici analizzavano i programmi «k-nearest-neighbor» nei primi anni '50. Se il numero di istanze di formazione è grande, rende intuitivo il senso di utilizzare più di un "vicino vicino", ma chiaramente questo è pericoloso se ci sono "poche istanze". Si può dimostrare che quando k e il numero n di istanze diventano infinite in modo tale che k / n Æ 0, la probabilità di errore si avvicina al minimo teorico per il set di dati. Il metodo di prossimità più vicino è stato adottato come metodo di classificazione nei primi anni 1960 ed è stato ampiamente utilizzato nel campo del riconoscimento del pattern per più di tre decenni.

  La classificazione "prossimo vicino" era notoriamente lenta fino a quando gli alberi di KD non cominciarono ad essere applicati nei primi anni 1990, anche se la struttura dei dati stessa è stata sviluppata molto prima. In pratica questi alberi diventano inefficienti quando la dimensione dello spazio aumenta e vale solo quando il numero di attributi è piccolo fino a 10. Gli alberi a sfera sono stati sviluppati molto più recentemente e sono un'istanza di una struttura più generale talvolta chiamata un albero metrico . Gli algoritmi sofisticati possono creare alberi metrici che trattano con successo migliaia di dimensioni.

  Invece di memorizzare tutte le istanze di formazione, è possibile comprimerle in regioni. Una tecnica molto semplice, menzionata alla fine della Sezione 4.1, è solo registrare l'intervallo di valori osservati nei dati di addestramento per ogni attributo e categoria. Dato un'istanza di prova, si esegue l'elaborazione dei valori di attributo e scegli la categoria con il maggior numero di intervalli corretti per l'istanza. Una tecnica leggermente più elaborata è quella di costruire intervalli per ogni attributo e utilizzare il set di formazione per contare il numero di volte in cui ogni classe si verifica per ogni intervallo di ogni attributo. Gli attributi numerici possono essere discretizzati in intervalli, e "intervalli" costituiti da un singolo punto possono essere usati per quelli nominali. Quindi, date un'istanza di prova, è possibile determinare gli intervalli in cui risiedono e classificarla votando, un metodo chiamato intervallo di funzioni di voto. Questi metodi sono molto approssimativi, ma molto veloci e possono essere utili per l'analisi iniziale di set di dati di grandi dimensioni.
   Clustering

Le tecniche di clustering si applicano quando non esiste una classe da prevedere ma piuttosto quando le istanze devono essere suddivise in gruppi naturali. Questi cluster presumibilmente riflettono alcuni meccanismi in atto nel dominio da cui vengono scelti i casi, un meccanismo che provoca alcuni casi di una più forte somiglianza tra loro rispetto agli altri casi. Il clustering naturalmente richiede tecniche differenti ai metodi di apprendimento di classificazione e associazione che abbiamo considerato finora.

   Come abbiamo visto nella sezione 3.9, ci sono diversi modi in cui può essere espresso il risultato del clustering. I gruppi identificati possono essere esclusivi in modo che ogni istanza appartiene a un solo gruppo. Oppure possono sovrapporre in modo che un'istanza possa cadere in diversi gruppi. Oppure possono essere probabilistici, per cui un'istanza appartiene ad ogni gruppo con una certa probabilità. Oppure possono essere gerarchici, in modo che esista una divisione di casi in gruppi in alto e ciascuno di questi gruppi viene raffinato ulteriormente, magari fino a singoli casi. Davvero, la scelta tra queste possibilità dovrebbe essere dettata dalla natura dei meccanismi che si ritiene siano alla base del particolare fenomeno di clustering. Tuttavia, poiché questi meccanismi sono raramente noti: l'esistenza stessa dei cluster è, dopo tutto, qualcosa che stiamo cercando di scoprire - e anche per motivi pragmatici, la scelta è di solito dettata dagli strumenti di cluster che sono disponibili.

  Esamineremo un algoritmo che forma cluster in domini numerici, partizionando istanze in cluster disgiunti. Come il metodo di "approccio più vicino" di 'istruzione basata su istanze', è una tecnica semplice e diretta che è stata utilizzata per diversi decenni. Nel Capitolo 6 esaminiamo nuovi metodi di cluster che eseguono il clustering incrementale e probabilistico.
Clustering basato su distanza Iterative.

La classica tecnica di clustering è chiamata k-means. In primo luogo, specificate in anticipo quanti cluster sono stati cercati: questo è il parametro k. Poi i punti k vengono scelti a caso come centri di cluster. Tutti i casi sono assegnati al loro centro cluster più vicino secondo la metrica ordinaria di distanza Euclidea. Successivamente viene calcolato il centroid, ovvero la media, delle istanze in ogni cluster: questa è la parte "significa". Questi centri vengono considerati come nuovi valori centrali per i loro cluster espliciti. Infine, l'intero processo viene ripetuto con i nuovi centri cluster. L'itterazione continua fino a quando gli stessi punti vengono assegnati a ciascun cluster in tondi consecutivi, a quale stadio i centri cluster si sono stabilizzati e rimarranno per sempre.

 Questo metodo di clustering è semplice ed efficace. È facile dimostrare che la scelta del centro del cluster come centroid minimizza la distanza quadrata totale da ognuno dei punti del cluster al suo centro. Una volta stabilita l'iterazione, ogni punto viene assegnato al suo centro cluster più vicino, quindi l'effetto complessivo è quello di minimizzare la distanza quadrata totale da tutti i punti ai loro centri di cluster. Ma il minimo è un locale; Non c'è garanzia che sia il minimo globale. I cluster finali sono molto sensibili ai primi centri di cluster. Un sistema completamente diverso può derivare da piccoli cambiamenti nella scelta casuale iniziale. Infatti, questo è vero per tutte le tecniche pratiche di clustering: è quasi sempre impossibile trovare raggruppamenti ottimali a livello globale. Per aumentare la probabilità di individuare una persona minima globale, spesso l'algoritmo viene eseguito diverse volte con diverse scelte iniziali e scegliere il miglior risultato finale, quello con la più piccola distanza totale quadrata.

 È facile immaginare situazioni in cui k-means non riesce a trovare un buon clustering. Prendi in considerazione quattro istanze disposte ai vertici di un rettangolo nello spazio bidimensionale. Ci sono due cluster naturali, formati raggruppando i due vertici a una estremità di un lato corto. Ma supponiamo che i due centri di cluster iniziali cadano a metà dei lunghi lati. Ciò forma una configurazione stabile. I due cluster ciascuno contengono le due istanze a una estremità di un lato lungo, non importa quanto sia grande la differenza tra i lati lunghi e quelli corti
  Calcolo più veloce delle distanze

L'algoritmo di clustering di k significa solitamente parecchie iterazioni, ognuna delle quali coinvolge la ricerca della distanza dei centri cluster k da ogni istanza per determinare il suo cluster. Ci sono approssimazioni semplici che ne accelerano notevolmente. Ad esempio, è possibile proiettare il set di dati e eseguire tagli lungo gli assi selezionati, invece di utilizzare le divisioni arbitrarie di iperplano che si implicano scegliendo il centro di cluster più vicino. Ma questo compromette inevitabilmente la qualità dei cluster risultanti.

  Ecco un modo migliore per accelerare le cose. Trovare il centro di cluster più vicino non è così diverso da trovare "vicini più vicini" in 'apprendimento basato su istanze'. Possono essere utilizzate le stesse soluzioni efficienti - alberi di kD e alberi a sfera? Sì! Infatti possono essere applicate in modo ancora più efficiente, perché in ogni iterazione di k significa che tutti i punti dati vengono elaborati insieme, mentre in istanze di prova di apprendimento basate su istanze vengono elaborate singolarmente.

  Innanzitutto, costruire un albero di kD o albero a sfera per tutti i punti dati, che rimarranno statici durante la procedura di clustering. Ogni iterazione di k-means produce un insieme di centri di cluster e tutti i punti dati devono essere esaminati e assegnati al centro più vicino. Un modo per elaborare i punti è quello di scendere l'albero dalla radice fino a raggiungere una foglia e controllare ogni singolo punto della foglia per trovare il suo centro cluster più vicino. Ma può essere che la regione rappresentata da un nodo interno più alto rientri interamente nel dominio di un 'unico centro cluster'. In questo caso tutti i punti di dati in quel nodo possono essere elaborati in un solo colpo!

  L'obiettivo dell'esercitazione, dopo tutto, è quello di trovare nuove posizioni per i centri cluster, calcolando il centroide dei punti che contengono. Il centroide può essere calcolato mantenendo una somma vettoriale in esecuzione dei punti del cluster e un conteggio di quanti sono finora. Alla fine, basta dividere uno per l'altro per trovare il centroid. Supponiamo che con ogni nodo dell'albero memorizziamo la somma vettoriale dei punti all'interno di quel nodo e un conteggio del numero di punti. Se l'intero nodo rientra nell'ambito di un singolo cluster, i totali di esecuzione per quel cluster possono essere aggiornati immediatamente. In caso contrario, guardare all'interno del nodo procedendo in modo ricorsivo lungo l'albero.

  La Figura 4.16 mostra le stesse istanze e l'albero a sfera come la Figura 4.14, ma con due centri di cluster contrassegnati come stelle nere. Poiché tutte le istanze sono assegnate al centro più vicino, lo spazio è suddiviso in due dalla linea spessa illustrata in Figura 4.16 (a). Iniziare alla radice dell'albero in Figura 4.16 (b), con valori iniziali per la somma vettoriale ei conteggi per ogni cluster; Tutti i valori iniziali sono zero. Procedi ricorsivamente nell'albero. Quando il nodo A è raggiunto, tutti i punti all'interno di esso si trovano nel cluster 1, quindi la somma e il conteggio del cluster 1 possono essere aggiornati con la somma e il conteggio per il nodo A e non dobbiamo discendere ulteriormente. Riprendendo il ritorno al nodo B, la sua pallina attraversa il confine tra i cluster, per cui i suoi punti devono essere esaminati individualmente. Quando il nodo C è raggiunto, rientra interamente nel cluster 2; Ancora una volta, possiamo aggiornare immediatamente il cluster 2 e non abbiamo bisogno di discendere ulteriormente. L'albero viene esaminato solo alla frontiera contrassegnata dalla linea tratteggiata in Figura 4.16 (b) e il vantaggio è che i nodi sottostanti non devono essere aperti, almeno, non in questa particolare iterazione di k-means. La prossima volta, i centri cluster saranno cambiati e le cose potrebbero essere diverse.
 Discussione

 Sono state sviluppate molte varianti della procedura di base k-means. Alcuni producono un clustering gerarchico applicando l'algoritmo con k = 2 al set di dati complessivo e poi ripetendo, ricorsivamente, all'interno di ciascun cluster.
Come si sceglie k? Spesso non si sa nulla sul numero probabile di cluster, e tutto il punto del clustering è scoprire. Un modo è provare diversi valori e scegliere il meglio. Per fare questo, è necessario imparare a valutare il successo dell'apprendimento macchina, come è il capitolo 5. Ritorniamo al clustering nella sezione 6.6.
 Ulteriori letture

  Lo schema 1R è stato proposto e approfondito da Holte (1993). Non è mai stato realmente inteso come metodo di apprendimento macchina: il punto è stato quello di mostrare che le strutture molto semplici stanno alla base della maggior parte dei "set di dati" utilizzati per valutare i metodi di apprendimento macchina dell'epoca e che mettere " '' Metodi di inferenza induttiva '' per lavorare su semplici 'set di dati' era come usare un municipio per rompere un dado. Perché grappolare con un 'albero complesso di deciosione' quando una semplice regola 'lo fa'? Il metodo che genera una regola semplice per classe è il risultato di un lavoro di Lucio de Souza Coelho del Brasile e di Len Trigg della Nuova Zelanda, ed è stato soprannominato iperpipes. Un algoritmo molto semplice, ha il vantaggio di essere estremamente veloce ed è piuttosto fattibile anche con un enorme numero di attributi.

 

Bayes era un filosofo inglese settecentesco che definì la sua teoria della probabilità in "Un saggio per risolvere un problema nella dottrina delle opportunità", pubblicato nelle Transazioni Filosofiche della Royal Society of London (Bayes 1763); La regola che porta il suo nome è da allora una pietra angolare della teoria della probabilità. La difficoltà con l'applicazione della regola di Bayes in pratica è l'assegnazione di probabilità precedenti. Alcuni statisti, soprannominati Bayesiani, assumono la regola come evangelici e insistono affinché la gente "facia seri" tentativi di stimare con precisione le probabilità precedenti, anche se tali stime sono spesso soggettive. Altri, non Bayesiani, preferiscono il tipo di analisi priva di precedenti che genera tipicamente gli intervalli di confidenza statistici, che si incontreranno nel prossimo capitolo. Con un set di dati particolare, le probabilità precedenti sono di solito "ragionevolmente" facili da stimare, il che incoraggia un approccio bayesiano all'apprendimento. L'assunzione di indipendenza fatta dal metodo Naïve Bayes è comunque un grande ostacolo, e alcuni tentativi sono stati fatti per applicare l'analisi bayesiana senza assumersi l'indipendenza. I modelli risultanti sono chiamati reti bayesiane (Heckerman et al., 1995) e li descriveremo nel capitolo 6.7.

 Le tecniche Bayesiane erano state utilizzate per il riconoscimento del pattern (Duda e Hart 1973) per 20 anni prima di essere state adottate da ricercatori di macchine per l'apprendimento (per esempio, vedere Langley e altri, 1992) e lavorare su set di dati con attributi ridondanti (Langley e Sage 1994) e gli attributi numerici (John e Langley, 1995). L'etichetta Naïve Bayes è sfortunata perché è difficile usare questo metodo senza sentirsi semplice. Tuttavia, non c'è nulla di ingenuo circa il suo utilizzo in circostanze appropriate. Il modello Naïve Bayes multinomiale, particolarmente appropriato per la classificazione del testo, è stato studiato da McCallum e Nigam (1998).

   Il paper classico sull'induzione dell'albero decisionale è di Quinlan (1986), che descrive la procedura di base ID3 sviluppata in questo capitolo. Una descrizione completa del metodo, compresi i miglioramenti che sono contenuti nel C4.5, appare in un classico libro di Quinlan (1993), che fornisce un elenco completo del sistema C4.5, scritto nel linguaggio di programmazione C. PRISM è stato sviluppato da Cendrowska (1987), che ha anche introdotto il set di dati delle lenti a contatto.
Le regole dell'associazione vengono introdotte e descritte nella letteratura del database piuttosto che nella letteratura di apprendimento macchina. Qui l'enfasi è molto sulla gestione di quantità enormi di dati piuttosto che su sensibili modi di test e valutazione di algoritmi su set di dati limitati. L'algoritmo introdotto in questo capitolo è il metodo Apriori sviluppato da Agrawal e dai suoi associati (Agrawal et al 1993a, 1993b; Agrawal e Srikant 1994). Un sondaggio sull'estrazione delle code di associazione appare in un articolo di Chen et al. (1996).

   La regressione lineare è descritta nella maggior parte dei testi statistici standard e un trattamento particolarmente ricco può essere trovato in un libro di Lawson e Hanson (1995). L'uso di modelli lineari per la classificazione ha avuto una grande popolarità negli anni '60; Nilsson (1965) fornisce un ottimo riferimento. Definisce un'unità di soglia lineare come prova binaria di una funzione lineare maggiore o minore di zero e una macchina lineare come insieme di funzioni lineari, una per ogni classe, il cui valore per un esempio sconosciuto viene confrontato e il più grande scelto come La sua classe prevista. Nel passato lontano, i perceptroni sono scesi per la pubblicazione di un libro influente che ha dimostrato di avere limiti fondamentali (Minsky e Papert 1969); Tuttavia, i sistemi più complessi di funzioni lineari hanno goduto di una rinascita negli ultimi anni sotto forma di reti neurali descritte nella sezione 6.3. Gli algoritmi di Winnow sono stati introdotti da Nick Littlestone nella sua tesi di dottorato nel 1989 (Littlestone 1988, 1989). I classificatori lineari multiresponse hanno recentemente individuato una nuova applicazione per un'operazione chiamata impilamento che combina l'output di altri algoritmi di apprendimento descritti nel capitolo 7 (vedi Wolpert 1992). Friedman (1996) descrive la tecnica della classificazione a coppia, Fürnkranz (2002) lo analizza ulteriormente e Hastie e Tibshirani (1998) estendono la stima delle probabilità utilizzando l'accoppiamento a coppia.

   Fix e Hodges (1951) eseguirono la prima analisi del metodo "più vicino", e Johns (1961) pioniera il suo uso nei problemi di classificazione. Cover e Hart (1967) hanno ottenuto il classico risultato teorico che, per i dati di grandi dimensioni, la probabilità di errore non supera mai due volte il minimo teorico; Devroye et al. (1996) ha mostrato che il vicino prossimo k è asintoticamente ottimale per i grandi k e n con k / n Æ 0. I metodi del vicino vicino hanno guadagnato la popolarità nell'apprendimento della macchina attraverso il lavoro di Aha (1992), che ha dimostrato che l'apprendimento basato sull'istanza Essere combinato con il potere di esemplare rumoroso e la ponderazione degli attributi e che i metodi risultanti funzionino bene in confronto ad altri metodi di apprendimento. Ci riportiamo di nuovo nel capitolo 6.

   La struttura dati di kD-tree è stata sviluppata da Friedman et al. (1977). La nostra descrizione segue da vicino una spiegazione fornita da Andrew Moore nella sua tesi di dottorato (Moore 1991), che, insieme ad Omohundro (1987), ha promosso il suo uso nell'applicazione della macchina. Moore (2000) descrive i modi sofisticati di costruire alberi a sfera che funzionano bene anche con migliaia di attributi. Abbiamo preso il nostro esempio di albero a sfera dalle note di lezione di Alexander Gray dell'Università Carnegie-Mellon. Il metodo degli intervalli di voto di intervalli indicati nella sezione di discussione alla fine della sezione 4.7 è descritto da Demiroz e Guvenir (1997).L'algoritmo k-means è una tecnica classica e molte descrizioni e variazioni sono disponibili (ad esempio, vedere Hartigan 1975). L'abile utilizzo di alberi kD per accelerare il clustering di k-che abbiamo scelto per illustrare l'utilizzo di alberi a sfera, è stato iniziato da Moore e Pelleg (2000) nel loro algoritmo di clustering X-means. Questo algoritmo contiene anche altre innovazioni descritte nel paragrafo 6.6.
   Credibilità: valutare ciò che è stato appreso

 La valutazione è la chiave per fare progressi reali nell'attività di data mining. Ci sono molti modi per inferire la struttura dai dati: abbiamo già incontrato molti e vedremo ulteriori raffinamenti e nuovi metodi nel prossimo capitolo. Ma per determinare quali 'usare' su un particolare problema abbiamo bisogno di modi sistematici 'per valutare come funzionano i diversi metodi e confrontare uno con l'altro. La valutazione non è semplice come potrebbe apparire a prima vista.
Qual è il problema? Abbiamo l'allenamento; Sicuramente possiamo solo guardare "come funzionano i metodi differenti". Beh, no: come vedremo molto presto, le prestazioni sul set di allenamento non sono sicuramente un buon indicatore delle prestazioni su un set di test indipendente. Abbiamo bisogno di modi per prevedere "limiti di performance in pratica, basati su esperimenti" con qualunque dato possa essere ottenuto ".

 Quando una vasta offerta di dati è disponibile, questo non è un problema: basta fare un modello basato su un grande set di allenamenti e provarlo su un altro grande set di test. Ma sebbene l'attività di data mining a volte coinvolge "grandi dati" - in particolare nelle applicazioni di marketing, vendite e supporto clienti - è spesso il caso che i dati, i dati di qualità, sono scarse.    

 Le tracce di olio menzionate nel capitolo 1 (pagine 23-24) dovevano essere individuate e contrassegnate manualmente - un processo qualificato e intenso - prima di essere utilizzate come dati formativi. Anche nell'applicazione della carta di credito (pagine 22-23), si sono rivelati solo 1000 esercizi di formazione del tipo appropriato. I dati relativi all'alimentazione elettrica (pagine 24-25) sono tornati 15 anni, 5000 giorni - ma solo 15 Giorni di Natale e Ringraziamenti, e solo il 4 febbraio 29 e le elezioni presidenziali. L'applicazione di diagnosi elettromeccanica (pagine 25-26) è stata in grado di capitalizzare su 20 anni di esperienza registrata, ma questo ha prodotto solo 300 esempi utilizzabili di errori. Le applicazioni di marketing e di vendita (pagine 26-28) implicano certamente grandi dati, ma molti altri non lo fanno: i dati formativi si basano spesso su competenze specialistiche umane, e questo è sempre in scarsa disponibilità.

   La questione di prevedere prestazioni basate su dati limitati è un interessante e ancora controverso. Incontreremo molte diverse tecniche, di cui una convalida incrociata - sta guadagnando l'ascesa ed è probabilmente il metodo di valutazione della scelta nella maggior parte delle situazioni pratiche pratiche limitate. Il confronto tra le prestazioni dei diversi metodi di apprendimento della macchina su un determinato problema è un'altra cosa che non è così facile come sembra: assicurarsi che le differenze apparenti non siano causate da effetti casuali, sono necessari test statistici. Finora abbiamo assunto tacitamente che ciò che si prevede è la capacità di classificare accuratamente le istanze di test; Tuttavia, alcune situazioni prevedono la previsione delle probabilità di classe piuttosto che le classi stesse e altri prevedono la previsione di valori numerici piuttosto che nominali. In ogni caso sono necessari metodi diversi.Poi guardiamo alla questione del costo. Nella maggior parte delle situazioni pratiche di data mining il costo di un errore di errori di errore dipende dal tipo di errore che è, ad esempio, un esempio positivo è stato erroneamente classificato come negativo o viceversa. Quando si effettua l'estrazione dei dati e valuta la sua performance, è spesso necessario considerare questi costi. Fortunatamente, ci sono semplici tecniche per rendere la maggior parte dei programmi di apprendimento costa sensibilmente senza affrontare con gli interni dell'algoritmo. Infine, l'intera nozione di valutazione ha affascinanti connessioni filosofiche. Per 2000 anni i filosofi hanno discusso la questione di come valutare le teorie scientifiche, e le questioni sono state messe a fuoco dalla data mining perché ciò che viene estratto è essenzialmente una "teoria" dei dati.
 Formazione e prove

Per i problemi di classificazione, è naturale misurare la performance di un classificatore in termini di errore. Il classificatore prevede la classe di ogni istanza: se è corretto, questo viene considerato come un successo; Se no, è un errore. Il tasso di errore è solo la percentuale di errori effettuati su un intero insieme di istanze e misura le prestazioni complessive del classificatore.

 Naturalmente, ciò che ci interessa è la probabile evoluzione futura di nuovi dati, non la performance passata sui vecchi dati. Sappiamo già le classificazioni di ogni istanza nel set di allenamento, che dopo tutto è il motivo per cui possiamo usarlo per addestrare. Non siamo generalmente interessati a conoscere queste classificazioni, anche se il nostro scopo è la pulizia dei dati piuttosto che la previsione.Quindi la domanda è, il tasso di errore sui vecchi dati probabilmente sarà un buon indicatore del tasso di errore sui nuovi dati? La risposta è un risuonante no-no se i vecchi dati sono stati utilizzati durante il processo di apprendimento per formare il classificatore. Questo è un fatto sorprendente e molto importante. Il tasso di errore sul set di formazione non è probabile che sia un buon indicatore delle prestazioni future. Perché? Poiché il classificatore è stato appreso dagli stessi dati formativi, qualsiasi stima della prestazione basata su questi dati sarà ottimista e può essere senza speranza ottimistica.

  Abbiamo già visto un esempio di questo nel "set di dati del rapporto di lavoro". La Figura 1.3 (b) è stata generata direttamente dai dati di addestramento e la Figura 1.3 (a) è stata ottenuta da un processo di potatura. Il primo è probabilmente più preciso sui dati utilizzati per addestrare il classificatore ma probabilmente avrà meno risultati sui dati di prova indipendenti perché è sovrapposto ai dati formativi. Il primo albero apparirà bene secondo il tasso di errore sui dati di addestramento, meglio del secondo albero. Ma questo "non riflette" come funzioneranno su "dati di prova indipendenti".
 Il tasso di errore sui dati di addestramento viene chiamato errore di risistemazione, perché viene calcolato sostituendo le istanze di formazione in un classificatore che è stato costruito da loro. Anche se non è un "predittivo affidabile" del tasso di errore vero e proprio sui nuovi dati, tuttavia è spesso utile "conoscere".

  Per prevedere le prestazioni di un classificatore su nuovi dati, dobbiamo valutare il suo tasso di errore su un set di dati che non ha avuto alcuna parte nella formazione del classificatore. Questo set di dati indipendente è chiamato il set di test. Supponiamo che sia i dati formativi che i dati di prova siano campioni rappresentativi del problema sottostante. In alcuni casi i dati di prova potrebbero essere di natura distinta dai dati formativi. Consideriamo ad esempio il problema del rischio di credito di cui alla sezione 1.3. Supponiamo che la banca avesse dati di formazione da filiali a New York City e Florida e voleva sapere come un classificatore addestrato su uno di questi set di dati avrebbe eseguito in un nuovo ramo della Nebraska. Dovrebbe probabilmente utilizzare i dati della Florida come dati di prova per valutare il classificatore addestrato a New York e i dati di New York per valutare il classificatore addestrato in Florida. Se i set di dati sono stati amalgamati prima della formazione, la prestazione sui dati di prova non sarebbe probabilmente un buon indicatore di prestazioni sui dati futuri in uno stato completamente diverso.

  È importante che i dati di prova non venissero utilizzati in alcun modo per creare il classificatore. Ad esempio, alcuni metodi di apprendimento coinvolgono due fasi, uno per trovare una struttura di base e la seconda per ottimizzare i parametri coinvolti in quella struttura e separare "set di dati" "nelle due fasi. Oppure potresti provare diversi schemi di apprendimento sui dati formativi e poi valutarli - ovviamente su un nuovo set di dati - per vedere quale funziona meglio. Ma nessuno di questi dati può essere utilizzato per determinare una stima del tasso di errore futuro. In tali situazioni spesso parlano di tre set di dati: i dati formativi, i dati di convalida e i dati di prova. I dati formativi vengono utilizzati da uno o più metodi di apprendimento per arrivare a classificatori. I dati di convalida vengono utilizzati per ottimizzare i parametri di tali classificatori o per selezionare un particolare. Quindi i dati di prova vengono utilizzati per calcolare il tasso di errore del metodo finale, ottimizzato. Ciascuno dei tre set deve essere scelto in modo indipendente: il set di convalida deve essere diverso dal set di addestramento per ottenere buone prestazioni nella fase di ottimizzazione o selezione e il set di test deve essere diverso da entrambi per ottenere una stima attendibile del tasso di errore vero.

  Può essere che una volta determinato il tasso di errore, i dati di prova vengono nuovamente inseriti nei dati di addestramento per produrre un nuovo classificatore per l'uso effettivo. Non c'è niente di sbagliato in questo: è solo un modo per massimizzare la quantità di dati utilizzati per generare il classificatore che 'veramente sarà impiegato' in pratica. Ciò che è importante è che i tassi di errore non siano citati in base a uno di questi dati. Inoltre, una volta utilizzati i dati di convalida - forse per determinare il tipo migliore di apprendimento da utilizzare - allora può essere nuovamente inserito nei dati di formazione per riqualificare tale schema di apprendimento, massimizzando l'utilizzo dei dati. Se sono disponibili molti dati, non esiste alcun problema: prendiamo un grande campione e lo usiamo per la formazione; Poi un altro grande campione indipendente di dati diversi e utilizzarlo per il test. A condizione che entrambi i campioni siano rappresentativi, il tasso di errore sul set di test darà una vera indicazione delle prestazioni future. Generalmente, più grande è il campione di formazione migliore è il classificatore, anche se i rendimenti iniziano a diminuire una volta superato un determinato volume di dati formativi. E più grande è il campione di prova, più è accurato l'errore di stima. L'accuratezza della stima degli errori può essere quantificata statisticamente, come vedremo nella sezione successiva.

  Il vero problema si verifica quando non c'è una grande quantità di dati disponibili. In molte situazioni i dati di allenamento devono essere classificati manualmente - e così anche i dati di prova, ovviamente, per ottenere stime di errore. Ciò limita la quantità di dati che può essere utilizzata per la formazione, la convalida e il test e il problema diventa come sfruttare al meglio un set di dati limitato. Da questo set di dati viene mantenuto un certo importo per il test - questo è chiamato procedimento di tenuta - e il resto viene utilizzato per addestramento (e, se necessario, parte di essa è destinata alla convalida).
C'è un dilemma qui: trovare un buon classificatore, vogliamo utilizzare quanto più possibile i dati per la formazione; Per ottenere una buona stima di errori, vogliamo utilizzare quanto più possibile per testare. Le sezioni 5.3 e 5.4 ripropongono metodi ampiamente usati per affrontare questo dilemma.
  Prevedere le prestazioni

 Supponiamo di misurare l'errore di un classificatore su un set di test e di ottenere un certo tasso di errore numerico, ad esempio 25%. In realtà, in questa sezione si fa riferimento al tasso di successo piuttosto che al tasso di errore, per cui questo corrisponde ad un tasso di successo del 75%. Ora, questa è solo una stima. Cosa si può dire sul vero tasso di successo sulla 'popolazione target'? Certo, dovrebbe essere prossimo al 75%. Ma quanto vicino - entro il 5%? Entro il 10%? Deve dipendere dalla dimensione del set di test. Naturalmente, saremmo più sicuri della figura del 75% se si basava su un set di test di 10.000 istanze piuttosto che su un set di test di 100 istanze. Ma quanto più fiduciosi "saremmo"?

  Per rispondere a queste domande, abbiamo bisogno di qualche ragionamento statistico. Nelle statistiche, una successione di eventi indipendenti che riescono o falliscono è chiamata un processo Bernoulli. L'esempio classico è il lancio di monete. Ogni lancio è un evento indipendente. Diciamo che predichiamo sempre le teste; Ma piuttosto che "teste" o "code", ogni gesto è considerato un "successo" o un "guasto". Diciamo che la moneta è parziale, ma non sappiamo cosa sia la probabilità delle teste. Quindi, se effettivamente lanciamo la moneta 100 volte e 75 sono teste, abbiamo una situazione molto simile a quella descritta in precedenza per un classificatore con un tasso di successo del 75% rispetto a un set di test. Cosa possiamo dire della vera probabilità di successo? In altre parole, immaginate che esista un processo di Bernoulli, una moneta parzializzata, il cui vero (ma sconosciuto) tasso di successo è p. Supponiamo che su prove N, S siano successi: così il tasso di successo osservato è f = S / N. La domanda è, che cosa ti dice circa il vero tasso di successo p?

   La risposta a questa domanda viene solitamente espressa come intervallo di confidenza; Ovvero, p si trova all'interno di un determinato intervallo specificato con una determinata fiducia specificata. Ad esempio, se S = 750 successi sono osservati in N = 1000 prove, ciò indica che la vera percentuale di successo deve essere di circa il 75%. Ma quanto vicino al 75%? Risulta che con il 80% di fiducia, il vero tasso di successo p si trova tra il 73,2% e il 76,7%. Se S = 75 successi sono osservati in N = 100 prove, ciò indica anche che la vera percentuale di successo deve essere di circa il 75%. Ma l'esperimento è più piccolo e l'intervallo di confidenza dell'80% per p è più ampio, che si estende dal 69,1% all'80,1%.
  Queste cifre sono facili da collegare qualitativamente, ma come vengono derivate quantiativamente? Dobbiamo spiegare come segue: la media e la varianza di un singolo processo di Bernoulli con il tasso di successo p sono rispettivamente p e p (1 - p). Se i processi N vengono prelevati da un processo Bernoulli, il tasso di successo previsto f = S / N è una variabile casuale con la stessa media p; La varianza è ridotta da un fattore di N a p (1 - p) / N. Per grandi N, la distribuzione di questa variabile casuale si avvicina alla distribuzione normale. Questi sono tutti fatti di statistiche: non vedremo  le loro derivazioni.

   La probabilità che una variabile casuale X, con zero media, si trovi all'interno di una certa gamma di confidenza di larghezza 2z è


  Pr[ - z £ X £ z ] = c.


  Per una distribuzione normale, i valori di c ed i valori corrispondenti di z sono riportati nelle tabelle stampate sul retro di più testi statistici. Tuttavia, le tabelle convenzionali assumono una forma leggermente diversa: danno la certezza che X sarà fuori dalla gamma e lo danno solo per la parte superiore della gamma:


  Pr[ X ≥ z ].


 Questa viene chiamata probabilità di un tratto, perché si riferisce solo alla "coda" superiore della distribuzione. Le distribuzioni normali sono simmetriche, quindi le probabilità per la coda inferiore


  Pr[ X £ - z ]

 sono lo stesso.

 La tabella 5.1 fornisce un esempio. Come altre tabelle per la distribuzione normale, questo presuppone che la variabile casuale X abbia una media di zero e una varianza di uno. In alternativa, si potrebbe dire che le figure z sono misurate in deviazioni standard rispetto alla media. Quindi la figura di Pr [X ≥ z] = 5% implica che esista una probabilità del 5% che X sia più di 1,65 deviazioni standard al di sopra della media. Poiché la distribuzione è simmetrica, la probabilità che X sia più di 1,65 deviazioni standard rispetto alla media (sopra o sotto) è del 10%, oppure


  Pr[ -1.65 £ X £ 1.65] = 90%.


 Tutto quello che dobbiamo fare ora è ridurre la variabile casuale f per avere zero media e unità di varianza. Facciamo questo sottraendo la media p e dividendo dalla deviazione standard p (1- p) N. Questo porta a

 Ora ecco la procedura per trovare limiti di fiducia. Dato una particolare figura di fiducia c, consultare la Tabella 5.1 per il corrispondente valore z. Per usare la tabella devi prima sottrarre c da 1 e dimezzare il risultato, in modo che per c = 90% utilizzi la voce di tabella per il 5%. L'interpolazione lineare può essere utilizzata per i livelli intermedi di confidenza. Quindi scrivere la disuguaglianza nell'espressione precedente come una uguaglianza e invertirla per trovare un'espressione per p.


  Il passo finale consiste nel risolvere un'equazione quadratica. Anche se non è difficile da fare, porta ad un'espressione spaventosamente formidabile per i limiti di confidenza:

 .....

 La ± in questa espressione dà due valori per p che rappresentano i limiti di confidenza superiori e inferiori. Anche se la formula sembra complicata, non è difficile lavorare in casi particolari.

  Questo risultato può essere utilizzato per ottenere i valori nell'esempio numerico precedente. L'impostazione f = 75%, N = 1000 e c = 80% (cosicché z = 1.28) porta all'intervallo [0.732,0.767] per p, e N = 100 porta a [0.691,0.801] per lo stesso livello di fiducia. Si noti che l'assunzione normale di distribuzione è valida solo per grandi N (ad esempio N> 100). Quindi f = 75% e N = 10 conduce a limiti di confidenza [0.549,0.881], ma questi devono essere assunti con un granello di sale.
  Cross-validation

 Ora considerate cosa fare quando la quantità di dati per la formazione e il test è limitata. Il metodo di holdout riserva una certa quantità per il test e utilizza il resto per l'addestramento (e lo mette parte per la convalida se necessario). In termini pratici, è comune tenere un terzo dei dati per il test e utilizzare i due terzi rimanenti per la formazione.

  Naturalmente, potresti essere sfortunato: il campione usato per la formazione (o il test) potrebbe non essere rappresentativo. In generale, non si può sapere se un campione è rappresentativo o meno. Ma c'è un semplice controllo che potrebbe valere: ogni classe del dataset completo dovrebbe essere rappresentata in circa la proporzione giusta nei set di addestramento e di prova. Se, per sfortuna, tutti gli esempi con una certa classe erano scomparsi dal set di allenamento, non ci si poteva aspettare che un classificatore appreso da questi dati possa funzionare bene sugli esempi di quella classe - e la situazione sarebbe esacerbata dal fatto che la classe sarebbe necessariamente troppo rappresentata nel set di test perché nessuno dei suoi casi lo ha fatto nel set di allenamento! Invece, dovreste assicurarvi che il campionamento casuale sia fatto in modo da garantire che ogni classe sia correttamente rappresentata in entrambi i corsi di formazione e di prova. Questa procedura è chiamata stratificazione, e possiamo parlare di stratificato mantenimento. Anche se è generalmente valsa la pena fare, la stratificazione fornisce solo una garanzia primitiva contro la rappresentazione irregolare nei corsi di formazione e di prova.

  Un modo più generale per mitigare ogni pregiudizio causato dal particolare campione scelto per holdout è quello di ripetere l'intero processo, la formazione e il test, più volte con diversi campioni casuali. In ogni iterazione, una certa proporzione - diciamo due terzi dei dati - viene selezionata casualmente per addestramento, possibilmente con stratificazione e il resto utilizzato per il test. Le percentuali di errore sulle diverse iterazioni vengono calcolate in media per produrre un tasso di errore globale. Questo è il metodo ripetuto di holdout della stima del tasso di errore.

   In una singola procedura di holdout, è possibile considerare lo scambio dei ruoli dei dati "test e formazione", ossia, addestrare il sistema sui dati di prova e testarlo sui dati formativi e mediare i due risultati riducendo così Effetto di una rappresentazione irregolare in set di allenamento e prova. Purtroppo questo è veramente plausibile con una divisione 50:50 tra i dati di "formazione e prova", che non è generalmente ideale: è meglio utilizzare più della metà dei dati per addestrare anche a scapito dei dati di prova. Tuttavia, una semplice variante costituisce la base di un'importante tecnica statistica chiamata cross-validation. Nella convalida incrociata, si decide su un numero fisso di pieghe o partizioni dei dati. Supponiamo di utilizzare tre. Quindi i dati vengono suddivisi in tre partizioni uguali e ciascuna a turno viene usata per il test e il resto viene utilizzato per la formazione. Cioè, utilizzare due terzi per la formazione e un terzo per il test e ripetere la procedura tre volte in modo che, alla fine, ogni istanza sia stata utilizzata esattamente una volta per il test. Questo si chiama trifold cross-validation e se viene adottata anche la stratificazione - che spesso è - è stratificata triplicamente "convalida incrociata".

   Il modo standard di predire il tasso di errore di una tecnica di apprendimento dato un unico esempio fisso di dati è quello di utilizzare una convalida incrociata stratificata di 10 volte. I dati sono divisi in modo casuale in 10 parti in cui la classe è rappresentata in approssimativamente le stesse proporzioni come nel dataset completo. Ogni parte è svolta a sua volta e lo schema di apprendimento è stato addestrato sui restanti nove decimi; Allora il suo tasso di errore viene calcolato sul set di holdout. Così la procedura di apprendimento viene eseguita per un totale di 10 volte su diversi set di allenamenti (ognuno dei quali ha molto in comune). Infine, le 10 stime di errore vengono calcolate per produrre una stima di errore complessiva.

   Perché 10? Test estesi su numerosi set di dati, con differenti tecniche di apprendimento, hanno dimostrato che 10 è il numero giusto di pieghe per ottenere la migliore stima dell'errore, e c'è anche qualche prova teorica che lo supporta. Sebbene questi argomenti non siano assolutamente conclusivi e il dibattito continua furioso nei settori di apprendimento automatico e data mining su quello che è il miglior schema di valutazione, la convalida incrociata di 10 volte è diventata il metodo standard in termini pratici. I test hanno anche dimostrato che l'uso della stratificazione migliora i risultati leggermente. Pertanto, la tecnica di valutazione standard in situazioni in cui sono disponibili solo dati limitati è stratificata con una convalida cross-over di 10 volte. Si noti che né la stratificazione né la divisione in 10 pieghe devono essere esatti: basta dividere i dati in 10 approssimativamente uguali in cui i diversi valori di classe sono rappresentati in circa la proporzione giusta. La valutazione statistica non è una scienza esatta. Inoltre, non esiste nulla di magia circa l'esatto numero 10: 5 o 20 volte la convalida incrociata è probabile che sia quasi altrettanto buono.

  Una singola convalida incrociata di 10 volte potrebbe non essere sufficiente per ottenere una stima errata degli errori. Diversi esperimenti di convalida a 10 volte con lo stesso metodo di apprendimento e insieme di dati spesso producono risultati diversi, a causa dell'effetto della variazione casuale nella scelta delle pieghe stesse. La stratificazione riduce la variazione, ma certamente non lo elimina completamente. Quando si cerca una stima corretta degli errori, è la procedura standard per ripetere il processo di convalida incrociata 10 volte - ovvero 10 consecutive consecutive a 10 convalidazioni - e mediare i risultati. Questo implica invocare l'algoritmo di apprendimento 100 volte su set di dati che sono tutti nove decimi della dimensione dell'originale. Ottenere una buona misura delle prestazioni è un'impresa di calcolo intensiva.
  Other estimates

La convalida incrociata a dieci è il modo standard di misurare il tasso di errore di uno schema di apprendimento su un particolare set di dati; Per risultati affidabili, 10 volte 10 volte la convalida incrociata. Ma molti altri metodi vengono usati invece. Due sono particolarmente prevalenti sono la convalida incrociata di una sola uscita e il bootstrap.
  Leave-one-out

 La convalida incrociata di una sola uscita è semplicemente la convalida incrociata n-fold, dove n è il numero di istanze nel set di dati. Ogni istanza a sua volta viene lasciata fuori e il metodo di apprendimento viene addestrato su tutte le altre istanze. È giudicato dalla sua correttezza sul rimanente istanza-uno o zero per il successo o il fallimento, rispettivamente. I risultati di tutti i giudizi, uno per ciascun membro del set di dati, vengono calcolati in media e la media rappresenta la stima finale degli errori.

  Questa procedura è attraente per due motivi. In primo luogo, la maggior quantità possibile di dati viene utilizzata per la formazione in ogni caso, che presumibilmente aumenta la probabilità che il classificatore sia accurato. In secondo luogo, la procedura è deterministica: nessun campionamento casuale è coinvolto. Non c'è motivo di ripetere 10 volte, o di ripeterlo: lo stesso risultato verrà ottenuto ogni volta. A fronte di questo è l'alto costo computazionale, perché l'intera procedura di apprendimento deve essere eseguita n volte e questo è di solito abbastanza infattibile per i set di dati di grandi dimensioni. Tuttavia, il rilascio-uno-out sembra offrire la possibilità di spremere il massimo da un piccolo set di dati e ottenere la stima più accurata possibile.

  Ma c'è uno svantaggio per lasciare una sola convalida incrociata, a parte la spesa computazionale. Per sua stessa natura, non può essere stratificato - peggio di ciò, garantisce un campione non stratificato. La stratificazione comporta l'ottenimento della proporzione corretta di esempi di ciascuna classe nel set di test e questo non è possibile quando il set di test contiene solo un singolo esempio. Un drammatico, anche se molto artificiale, illustrazione dei problemi che potrebbe causare è immaginare un set di dati completamente casuale che contiene lo stesso numero di ciascuna di due classi. Il meglio che un induttore può fare con i dati casuali è quello di predire la classe di maggioranza, dando un vero tasso di errore del 50%. Ma in ogni piega di lasciare uno - fuori, la classe opposta all'istanza di prova è nella maggioranza - e quindi le previsioni saranno sempre sbagliate, portando ad un tasso di errore stimato del 100%!
  The bootstrap

  Il secondo metodo di stima descritto, il bootstrap, si basa sulla procedura statistica di campionamento con sostituzione. In precedenza, ogni volta che un campione è stato prelevato dal set di dati per formare un set di formazione o test, è stato disegnato senza sostituire. Cioè, lo stesso esempio, una volta selezionato, non potrebbe essere nuovamente selezionato. È come raccogliere squadre per il calcio: non puoi scegliere la stessa persona due volte. Ma le istanze del set di dati non sono come le persone. La maggior parte dei metodi di apprendimento può utilizzare la stessa istanza due volte, e fa la differenza nel risultato dell'apprendimento se è presente nel set di formazione due volte. (Gli sticklers matematici noteranno che non dobbiamo veramente parlare di "set" a tutti se lo stesso oggetto può apparire più di una volta.)

  L'idea del bootstrap è quella di campionare il set di dati con la sostituzione per formare un set di formazione. Descriveremo una particolare variante, misteriosamente (ma per un motivo che diventerà presto apparente) chiamato il bootstrap 0.632. Per questo, un set di n istanze viene campionato n volte, con sostituzione, per dare un altro set di n di istanze n. Poiché alcuni elementi di questo secondo set di dati (quasi certamente) saranno ripetuti, devono essere presenti alcune istanze nel set di dati originale che non sono stati selezionati: li useremo come istanze di prova.
  Qual è la probabilità che una particolare istanza non venga scelto per il set di formazione? Ha una probabilità 1 / n di essere selezionata ogni volta e quindi una probabilità 1 - 1 / n di non essere selezionata. Moltiplicate queste probabilità insieme in base al numero di opportunità di raccolta, che è n, e il risultato è una figura di

  ....

  (Dove e è la base dei logaritmi naturali, 2.7183, non il tasso di errore!). Ciò dà la possibilità che una particolare istanza non venga selezionata. Quindi, per un set di dati abbastanza grande, il set di test contiene circa il 36,8% delle istanze e il set di formazione contiene circa il 63,2% di essi (ora si può vedere perché si chiama il bootstrap 0.632). Alcuni casi verranno ripetuti nel set di allenamento, portandolo ad una dimensione totale di n, uguale a quello del set di dati originale.

  La figura ottenuta formando un sistema di apprendimento sul set di formazione e calcolando il suo errore sul set di test sarà una stima pessimistica del tasso di errore vero, perché il set di formazione, sebbene la sua dimensione sia n, contiene tuttavia solo il 63% delle istanze , Che "non è un grande confronto", ad esempio, con il 90% utilizzato in 10 convalida cross-validazione. Per compensare questo, combinare il tasso di errore di test-set con l'errore di risubuizione sulle istanze nel set di allenamento. La figura di risubuizione, come abbiamo già avvertito, dà una stima molto ottimistica del vero errore e non dovrebbe certamente essere utilizzato come una figura di errore da solo. Ma la procedura bootstrap la combina con il tasso di errore di prova per dare una stima finale e come segue:


   e = 0.632 ¥ e test instances + 0.368 ¥ e training instances


 Quindi, l'intera procedura di bootstrap viene ripetuta più volte, con diversi campioni di sostituzione per l'allenamento e i risultati sono mediati. La procedura bootstrap può essere il modo migliore per valutare l'errore per i set di dati molto piccoli. Tuttavia, come la convalida incrociata di una sola uscita, essa presenta svantaggi che possono essere illustrati considerando una particolare situazione artificiale. Infatti, lo stesso set di dati che abbiamo considerato in precedenza farà: un dataset completamente casuale con due classi. Il vero tasso di errore è del 50% per qualsiasi regola di previsione. Ma uno schema che ha memorizzato il set di formazione darebbe un punteggio perfetto di risubuizione del 100% in modo che [e training instances = 0],

E il bootstrap 0.632 lo mescherà con un peso di 0,368 per dare un tasso di errore globale di soli 31,6% (0,632 * 50% + 0,368 * 0%), che è ingannevolmente ottimista.
 Comparing data mining methods

  Abbiamo spesso bisogno di confrontare due diversi metodi di apprendimento sullo stesso problema per vedere quale è il migliore da utilizzare. Sembra semplice: stimare l'errore utilizzando la convalida incrociata (o qualsiasi altra procedura di stima appropriata), forse ripetuta più volte, e scegliere lo schema la cui stima è minore. Questo è abbastanza "sufficiente" in molte applicazioni pratiche: se un metodo ha un errore inferiore stimato rispetto ad un altro in un determinato set di dati, il meglio che possiamo fare è utilizzare il modello del metodo precedente. Tuttavia, può essere che la differenza sia semplicemente causata da un errore di stima e in alcune circostanze è importante determinare se uno schema è veramente migliore di un altro su un particolare problema. Questa è una sfida standard per i ricercatori di apprendimento macchina. Se viene proposto un nuovo algoritmo di apprendimento, i suoi proponenti devono dimostrare che migliora lo stato dell'arte per il problema in questione e dimostra che il miglioramento osservato non è solo un effetto probabile nel processo di stima.

   Questo è un lavoro per un test statistico che dà "limiti di fiducia", il tipo che abbiamo incontrato in precedenza quando si cerca di prevedere le prestazioni vere da un determinato errore di errore impostato. Se ci fosse dati illimitati, potremmo utilizzare una grande quantità per addestrare e valutare le prestazioni su un grande set di test indipendente, ottenendo "limiti di fiducia" come prima. Tuttavia, se la differenza risulta significativa, dobbiamo verificare che ciò non sia solo a causa del particolare set di dati in cui è accaduto di basare l'esperimento. Quello che vogliamo determinare è se uno schema sia migliore o peggiore di un altro in media, in tutti i possibili set di dati di formazione e test che possono essere tratti dal dominio. Poiché la quantità di dati di addestramento influenza naturalmente le prestazioni, tutti i set di dati devono avere la stessa dimensione: anzi, l'esperimento potrebbe essere ripetuto con diverse dimensioni per ottenere una curva di apprendimento.

   Per il momento, supponiamo che la fornitura dei dati sia illimitata. Per la definizione, supponiamo che la convalida incrociata 'sia usata per ottenere le stime degli errori (altri stimatori, come la convalida ripetuta, sono altrettanto validi). Per ogni metodo di apprendimento possiamo disegnare più set di dati della stessa dimensione, ottenere una stima di precisione per ogni dataset utilizzando la convalida incrociata e calcolare la media delle stime. Ogni esperimento di convalida incrociata fornisce una stima errore diversa e indipendente. Quello che ci interessa è la precisione media in tutti i possibili set di dati della stessa dimensione e se questa media è più grande per uno schema o l'altro.

  Da questo punto di vista, stiamo cercando di determinare se la media di una serie di stime di cross-validation di campioni per i vari set di dati che abbiamo campionato dal dominio è significativamente maggiore o significativamente inferiore alla media di un altro. Questo è un lavoro per un dispositivo statistico noto come t-test, o Student's t-test. Poiché lo stesso esperimento di conferma di crociera può essere utilizzato per entrambi i metodi di apprendimento per ottenere una coppia di risultati corrispondente per ciascun set di dati, è possibile utilizzare una versione più sensibile del t-test noto come t-test associato.

  Abbiamo bisogno di qualche notazione. Esiste un insieme di campioni x1, x2,. . . , Xk ottenuto con successive convalide cross-validate di 10 volte usando uno schema di apprendimento e un secondo insieme di campioni y1, y2,. . . , Yk ottenuto con successive convalide cross-validate di 10 volte utilizzando l'altro. Ogni stima di convalida incrociata viene generata utilizzando un set di dati diverso (ma tutti i set di dati sono della stessa dimensione e dallo stesso dominio). Otterremo i migliori risultati se esattamente le stesse partizioni di convalida di croce vengono utilizzate per entrambi i piani in modo che x1 e y1 siano ottenuti usando la stessa divisione cross validation, come x2 e y2 e così via. Indica la media della prima serie di campioni per x e stiamo cercando di determinare se x è la media del secondo insieme di y che è significativamente diverso da y Se ci sono abbastanza campioni.

  Se ci sono campioni sufficienti, la media (x) di un insieme di campioni indipendenti (x1, x2, ..., xk) ha una distribuzione normale (cioè, Gaussiana), indipendentemente dalla distribuzione sottostante i campioni stessi. Chiameremo il vero valore della media m. Se sapessimo la varianza di quella distribuzione normale, in modo che possa essere ridotta ad avere una media di zero e una varianza dell'unità, potremmo ottenere limiti di confidenza m per la media dei campioni (x). Tuttavia, la varianza è sconosciuta e l'unico modo per ottenerlo è stimarlo dalla serie di campioni.

  Non è difficile da fare. La varianza di x può essere stimata dividendo la varianza calcolata dai campioni x1, x2,. . . , Xk-chiamala s 2 -by k. Ma il fatto che dobbiamo stimare la varianza cambia qualcosa in qualche modo. Possiamo ridurre la distribuzione di x per avere la media di zero e la varianza dell'unità utilizzando

  Poiché la varianza è solo una stima, questa non ha una distribuzione normale (anche se diventa normale per i grandi valori di k). Invece, ha la cosiddetta distribuzione di Studenti con k - 1 gradi di libertà. Ciò significa in pratica che dobbiamo utilizzare una tabella di intervalli di confidenza per la distribuzione degli studenti piuttosto che la tabella di fiducia per la distribuzione normale data in precedenza. Per 9 gradi di libertà (che è il numero corretto se utilizziamo la media di 10 convalidi incrociati) i corrispondenti limiti di confidenza sono mostrati nella Tabella 5.2. Se si confrontano con la tabella 5.1, si vedrà che le figure degli studenti sono leggermente più conservatori: per un certo grado di fiducia, l'intervallo è leggermente più ampio, e ciò riflette l'ulteriore incertezza causata dallo stimare la varianza. Diverse tabelle sono necessarie per diversi numeri di gradi di libertà e se ci sono più di 100 gradi di libertà i limiti di confidenza sono molto vicini a quelli per la distribuzione normale. Come la Tabella 5.1, le figure della Tabella 5.2 sono per un intervallo di confidenza "unilaterale".

  Per decidere se i mezzi x e y, ciascuno di essi in media dello stesso numero y
K di campioni, sono uguali o no, consideriamo le differenze di corrispondenze corrispondenti, di = xi-yi. Questo è legittimo perché le osservazioni sono accoppiate. La media di questa differenza è solo la differenza tra due mezzi, d = x - y, e, come i mezzi stessi, ha una distribuzione di Studenti y con k - 1 gradi di libertà. Se i mezzi sono gli stessi, la differenza è zero (si chiama ipotesi nullo); Se sono significativamente diversi, la differenza sarà significativamente diversa da zero. Quindi, per un dato livello di fiducia, verificheremo se la differenza effettiva supera il limite di fiducia.

  In primo luogo, ridurre la differenza a una variabile di zero-media, varianza di unità chiamata la statistica t:

.....

dove @ 2d è la varianza dei campioni di differenza. Quindi, decidere su un livello di confidenza in generale, il 5% o l'1% viene utilizzato nella pratica. Da questo il limite di confidenza z viene determinato utilizzando la Tabella 5.2 se k è 10; Se non lo è, viene utilizzata una tabella di fiducia della distribuzione dello Studente per il valore k in questione. Un test a due teste è appropriato perché non sappiamo in anticipo se la media della x è probabile che sia maggiore di quella del y e viceversa: per un test dell'1% usiamo il valore corrispondente allo 0,5% in Tabella 5.2. Se il valore di t secondo la formula precedente è maggiore di z, o meno di -z, rifiutiamo l'ipotesi nullo che i mezzi sono gli stessi e concludono che vi sia davvero una differenza significativa tra i due metodi di apprendimento su quel dominio per Quella dimensione del set di dati.      

  Vale la pena di fare due osservazioni su questa procedura. Il primo è tecnico: cosa succede se le osservazioni non sono state accoppiate? Cioè se non fosse stato possibile, per qualche ragione, valutare l'errore di ogni schema di apprendimento sugli stessi set di dati? Cosa succede se il numero di set di dati per ogni schema non era nemmeno lo stesso? Queste condizioni potrebbero sorgere se qualcun altro avesse valutato uno dei metodi e pubblicato diverse stime per un particolare dominio e dimensioni del dataset - o forse solo la loro media e varianza - e abbiamo voluto confrontarlo con un diverso metodo di apprendimento. Quindi è necessario utilizzare un t-test regolare e non sconnesso. Se i mezzi sono normalmente distribuiti, come si assume, la differenza tra i mezzi è normalmente distribuita. Invece di prendere la media della differenza, d, usiamo la differenza dei mezzi x - y. Naturalmente, è la stessa cosa: la media della differenza è la differenza dei mezzi. Ma la varianza della differenza d non è la stessa. Se la varianza dei campioni x1, x2 ,. . . , Xk è s2 e la varianza è @ 2x dei campioni y1, y2,. . . , Y1 è @ 2y, la migliore stima della varianza della differenza dei mezzi è

 ...

  È questa varianza (o piuttosto la sua radice quadrata) che dovrebbe essere utilizzato come denominatore della statistica t fornita in precedenza. I gradi di libertà, necessari per consultare le tabelle di fiducia degli Studenti, dovrebbero essere prese in modo conservativo per essere il minimo dei gradi di libertà dei due campioni. Essenzialmente, sapendo che le osservazioni sono accoppiate, consente di utilizzare una migliore stima per la varianza, che produrrà limiti di fiducia più stretti.

  La seconda osservazione riguarda l'ipotesi che ci siano dati essenzialmente illimitati in modo che possano essere utilizzati diversi set di dati indipendenti della giusta dimensione. Nella pratica, di solito sono presenti solo un singolo set di dati limitati. Cosa si può fare? Potremmo dividere i dati in (forse 10) sottoinsiemi e eseguire una convalida incrociata su ciascuna di esse. Tuttavia, il risultato complessivo ci dirà solo se un schema di apprendimento è preferibile per quella particolare dimensione - forse un decimo del set di dati originale. In alternativa, il set di dati originale potrebbe essere riutilizzato, ad esempio con diverse randomizzazioni del set di dati per ogni convalida incrociata2. Tuttavia, le stime di convalida incrociate non saranno indipendenti poiché non si basano su set di dati indipendenti. In pratica, ciò significa che una differenza può essere giudicata significativa quando in realtà non lo è. Infatti, solo aumentando il numero di campioni k, cioè il numero di corse di validazione incrociate, darà alla fine una differenza apparentemente significativa perché il valore della statistica t aumenta senza bound.

  Sono state proposte varie modifiche del t-test standard per aggirare questo problema, tutti euristici e privi di giustificazione teorica. Uno che sembra funzionare bene in pratica è il t-test corretto. Assumere per il momento che si utilizzi il metodo di ripetizione ripetuta anziché la convalida incrociata, ripetuta volte k su divisioni casuali differenti dello stesso set di dati per ottenere stime di precisione per due metodi di apprendimento. Ogni volta, le istanze n1 vengono utilizzate per la formazione e n2 per il test e le differenze di sono calcolate dalla prestazione sui dati di prova. Il test t-test riselezionato utilizza la statistica modificata

 ...

  Nello stesso modo della statistica t-standard. Uno sguardo più attento sulla formula mostra che il suo valore non può essere aumentato semplicemente aumentando k. La stessa statistica modificata può essere utilizzata con la convalida incrociata ripetuta, che è solo un caso speciale di ripetuto holdout in cui i singoli test di set per una convalida incrociata non si sovrappongono. Per una conferma di cross-validazione di 10 volte ripetuta 10 volte, k = 100, n2 / n1 = 0,1 / 0,9 e @ 2d si basa su 100 differenze.  
Predezione della probabilità

  In questa sezione abbiamo tacitamente assunto che l'obiettivo è quello di massimizzare il tasso di successo delle previsioni. L'esito per ogni istanza di prova è corretto se la previsione è d'accordo con il valore effettivo per l'istanza o non è corretto, se non lo è. Non ci sono grigi: tutto è nero o bianco, corretto o errato. In molte situazioni, questa è la prospettiva più appropriata. Se lo schema di apprendimento, quando è effettivamente applicato, si traduce in una predizione corretta o non corretta, il successo è la misura giusta da utilizzare. Questo viene chiamato a volte una funzione di perdita 0 - 1: la "perdita" è zero se la previsione è corretta o una se non lo è. L'uso della perdita è convenzionale, anche se una terminologia più ottimista potrebbe far apparire il risultato in termini di profitto.

  Altre situazioni sono più sottili. La maggior parte dei metodi di apprendimento può associare una probabilità a ciascuna predizione (come fa il metodo Naïve Bayes). Potrebbe essere più naturale considerare questa probabilità nel giudicare la correttezza. Ad esempio, un risultato corretto previsto con una probabilità del 99% dovrebbe forse pesare più pesante di quello previsto con una probabilità del 51% e, in una situazione a due classi, forse questo non è tutto "molto migliore" di un Risultato errato previsto con probabilità 51%. Sia opportuno prendere in considerazione probabilità di predizione dipende dall'applicazione. Se l'applicazione finale è solo una previsione del risultato e non vengono assegnati dei premi per una valutazione realistica della probabilità della previsione, non sembra opportuno utilizzare le probabilità. Se la previsione è soggetta ad un'ulteriore elaborazione, tuttavia - forse con una valutazione da parte di una persona, o con un'analisi dei costi o forse anche come input per un processo di apprendimento di secondo livello - potrebbe essere opportuno tener conto delle probabilità di predizione.
  Funzione di perdita quadratica

Supponiamo che per un singolo istanza ci siano possibili esiti o classi di k, e per un dato istanza il piano di apprendimento si presenta con un vettore di probabilità p1, p2,. . . , Pk per le classi (dove queste probabilità sono pari a 1). L'esito effettivo per tale istanza sarà una delle possibili classi. Tuttavia, è conveniente esprimerlo come vettore a1, a2,. . . , Ak la cui componente ith, dove i è la classe effettiva, è 1 e tutti gli altri componenti sono 0. Possiamo esprimere la penalità associata a questa situazione come funzione di perdita che dipende sia dal vettore p che dal vettore.

  Un criterio che viene spesso utilizzato per valutare la previsione probabilistica è la funzione di perdita quadratica:

  .....

Si noti che si tratta di una singola istanza: la somma è sopra le uscite possibili non oltre le istanze diverse. Solo uno degli a sarà 1 e il resto sarà 0, quindi la somma contiene contributi di pj2 per le previsioni erronee e (1 - pi) 2 per quella corretta. Di conseguenza, può essere scritto

  .....

dove i è la classe corretta. Quando il set di test contiene più istanze, la funzione di perdita viene sommata su tutti.

  È un fatto teorico interessante che se si cerca di minimizzare il valore della funzione di perdita quadratica in una situazione in cui la classe reale viene generata probabilisticamente, la migliore strategia è quella di scegliere per il vettore p le probabilità reali dei diversi risultati, che è, pi = Pr [classe = i]. Se le probabilità vere sono conosciute, saranno i valori migliori per p. Se non lo sono, un sistema che si sforza di ridurre al minimo la funzione di perdita quadratica sarà incoraggiato a utilizzare la sua migliore stima di Pr [classe = i] come valore per pi.

  Questo è abbastanza facile da vedere. Indica le probabilità vere da p1 *, p2 *,. . . , Pk * in modo che pi * = Pr [classe = i]. Il valore atteso della funzione di perdita quadratica per un'istanza di prova può essere riscritto come segue:

....

  La prima fase implica solo l'attuazione dell'attesa all'interno della somma e l'espansione della piazza. Per il secondo, pj è solo una costante e il valore atteso di aj è semplicemente pj *; Inoltre, perché aj è 0 o 1, aj2 = aj e il suo valore atteso è anche pj *. La terza fase è l'algebra diretta. Per minimizzare la somma risultante, è chiaro che è meglio scegliere pj = pj * in modo che il termine quadrato scompare e tutto quello che resta è un termine che è solo la varianza della vera distribuzione che supera la classe effettiva.

  Minimizzare l'errore quadrato ha una lunga storia nei problemi di predizione. Nel contesto attuale, la funzione di perdita quadratica costringe il predittore ad essere onesti sulla scelta della sua migliore stima delle probabilità o, preferibilmente, dà la preferenza a predittori che sono in grado di fare la migliore indovinità alle probabilità reali. Inoltre, la funzione di perdita quadratica ha alcune proprietà teoriche utili che non entreremo qui. Per tutte queste ragioni è spesso usato come criterio di successo nelle situazioni probabilistiche di previsione.
  Funzione di perdita informativa

Un altro criterio popolare per la valutazione della predittività probabilistica è la funzione di perdita informativa: 


   - log 2 pi


  Dove la previsione ith è quella corretta. Questo è in realtà identico al negativo della funzione log-likelihood che è ottimizzata dalla regressione logistica descritta nella sezione 4.6. Rappresenta le informazioni (in bit) necessarie per esprimere la classe effettiva i rispetto alla distribuzione di probabilità p1, p2,. . . , Pk. In altre parole, se ti è stata data la distribuzione di probabilità e qualcuno doveva comunicarti a quale classe era quello che effettivamente si è verificato, questo è il numero di bit che la persona avrebbe bisogno di codificare le informazioni se lo hanno fatto in modo efficace possibile. (Certo, è sempre possibile utilizzare più bit.) Poiché le probabilità sono sempre meno di una, i loro logaritmi sono negativi e il segno meno indica il risultato positivo. Ad esempio, in una situazione di due classi - teste o code - con una probabilità uguale di ogni classe, il verificarsi di una testa richiederebbe un bit per trasmettere, perché -log21 / 2 è 1.

  Il valore atteso della funzione di perdita informativa, se le probabilità vere sono p1*, p2*,. . . , Pk*, è


  - p1*log2p1 - p2 log2p2 - . . . - pk*log2pk .


Come la funzione di perdita quadratica, questa espressione viene minimizzata scegliendo pj = p *, nel qual caso l'espressione diventa l'entropia della vera distribuzione:



  - p1*log2p1* - p2 log2p2* - . . . - pk*log2pk*


Quindi la funzione informativa di perdita ricompensa anche l'onestà nei predittori che conoscono le vere probabilità e incoraggia i predittori che non presentano la loro migliore ipotesi.
La funzione di perdita informativa ha anche un'interpretazione di gioco in cui immagina il gioco d'azzardo sull'esito, mettendo le probabilità su ogni possibile classe e vincendo in base alla classe che si presenta. Le istanze successive sono come le scommesse successive: si riceve vittorie (o perdite) da una a quella successiva. Il logaritmo della somma totale del denaro che vincete su tutto il set di test è il valore della funzione di perdita informativa. Nel gioco d'azzardo, si paga per essere in grado di prevedere le probabilità il più esattamente possibile; In questo senso, anche l'onestà paga.

 Un problema con la funzione di perdita informativa è che se assegna una probabilità di zero a un evento che si verifica, il valore della funzione è minus infinito. Questo corrisponde a perdere la camicia quando gioca. I puntatori prudenti non scommettono mai tutto su un evento particolare, non importa quanto sia certo. Allo stesso modo, i predittori prudenti che operano sotto la funzione di perdita informativa non assegnano zero probabilità a qualsiasi risultato. Ciò porta a un problema quando non è disponibile alcuna informazione su quell'esito su cui basare una previsione: questo è chiamato problema a zero frequenza e sono state proposte varie soluzioni plausibili, come lo stimatore di Laplace discusso per Naïve Bayes a pagina 91.

  Discusione


  Se sei in attività di "valutazione delle previsioni" delle probabilità, quali delle due funzioni di perdita dovresti utilizzare? Questa è una buona domanda e non esiste una risposta universalmente concordata: è davvero una questione di gusto. Entrambi fanno il lavoro fondamentale atteso da una funzione di perdita: danno la massima remunerazione a predittori capaci di prevedere con precisione le probabilità reali. Tuttavia, ci sono alcune differenze oggettive tra i due che possono aiutare a formare un parere.
La funzione di perdita quadratica tiene conto non solo della probabilità assegnata all'evento che si è verificato, ma anche delle altre probabilità. Ad esempio, in una situazione a quattro classi, supponiate di aver assegnato il 40% alla classe che è venuto effettivamente e distribuito il resto tra le altre tre classi. La perdita quadratica dipenderà da come lo hai distribuito a causa della somma del pj2 che si verifica nell'espressione data in precedenza per la funzione di perdita quadratica. La perdita sarà più piccola se il 60% è distribuito in modo uniforme tra le tre classi: una distribuzione irregolare aumenta la somma dei 'quadrati'. La funzione di perdita informativa, d'altra parte, dipende solo dalla probabilità assegnata alla classe che si è verificata. Se stai puntando che avvenga un evento particolare e accade, chi cura come hai distribuito il resto dei tuoi soldi tra gli altri eventi?

  Se assegna una probabilità molto piccola alla classe che si verifica, la funzione di perdita di informazioni penalizzerà in modo massiccio. La penalità massima, per una probabilità zero, è infinita. Il mondo dei giochi d'azzardo penalizza errori come questa duramente! La funzione di perdita quadratica, d'altra parte, è più mite, limitata da

  ....

  che non può mai superare 2.
  Infine, i sostenitori della funzione di perdita informativa indicano una teoria generale della valutazione delle prestazioni nell'apprendimento denominata principio di lunghezza della descrizione minima (MDL). Essi sostengono che la dimensione delle strutture che un sistema impara può essere misurata in bit di informazioni e se le stesse unità vengono utilizzate per misurare la perdita, i due possono essere combinati in modi utili e potenti. Torneremo a questo in Sezione 5.9.

  Contare il costo


Le valutazioni finora discusse non tengono conto del costo delle decisioni sbagliate, delle classificazioni sbagliate. L'ottimizzazione del tasso di classificazione senza considerare il costo degli errori spesso porta a risultati sconosciuti. In un caso, l'apprendimento automatico è stato utilizzato per determinare l'esatto giorno in cui ogni vacca in una mandria era in estrusione, o "in calore". Le mucche sono state identificate da etichette elettroniche auricolari e sono stati utilizzati vari attributi quali il volume del latte e le sostanze chimiche La composizione (registrata automaticamente da una macchina di mungitura ad alta tecnologia) e l'ordine di mungitura: le mucche sono bestie regolari e generalmente arrivano nello stesso capannone della capanna, tranne in circostanze insolite come l'estrusione. In una moderna operazione di latticini è importante sapere quando una mucca è pronta: gli animali vengono fecondati da una fecondazione artificiale e mancando un ciclo ritarderà inutilmente la sopravvivenza, causando complicazioni lungo la linea. Nei primi esperimenti, i metodi di apprendimento macchina avevano predetto ostinatamente che ogni mucca non era mai in estrusione. Come gli esseri umani, le mucche hanno un ciclo mestruale di circa 30 giorni, quindi questa regola "nul" è corretta del 97% del tempo - un grado impressionante di precisione in qualsiasi settore agricolo! Quello che era voluto, ovviamente, erano regole che prevedevano in modo più preciso la situazione "in estrusione" del "non in estrusione": i costi dei due tipi di errore erano diversi. La valutazione per precisione di classificazione tacitamente assume i costi di errore uguali.

  Altri esempi in cui gli errori contengano importi diversi includono decisioni di prestito: il costo del prestito ad un inadempimento è molto maggiore del costo perduto d'affari di rifiutare un prestito ad un nondefaulter. E l'analisi del petrolio: il costo di non rilevare una vera e propria vera e propria minaccia per l'ambiente è molto più grande del costo di un falso allarme. E la previsione del carico: il costo di preparare generatori di elettricità per una tempesta che non colpisce è molto inferiore al costo di essere catturato completamente impreparato. E la diagnosi: il costo di identificare erroneamente i problemi con una macchina che 'risulta essere priva' di errori è inferiore al costo di "affrontare problemi con uno" che sta per fallire. E mailing promozionali: il costo di invio di posta indesiderata a una famiglia che non risponde è molto inferiore al costo perduto d'affari di non inviarlo a una famiglia che avrebbe risposto. Perché-questi sono tutti gli esempi del Capitolo 1! In verità, sarebbe difficile trovare un'applicazione in cui i costi di diversi tipi di errore erano uguali.

  Nel caso a due classi con classi sì e no, prestiti o non prestiti, contrassegnare una patch sospetta come un olio sciolto o no, e così via, una singola previsione ha i quattro diversi risultati possibili mostrati nella tabella 5.3. I veri positivi (TP) ei veri negativi (TN) sono classificazioni corrette. Un falso positivo (FP) si verifica quando il risultato è in modo errato come sì (o positivo) quando in realtà non è (negativo). Un falso negativo (FN) si verifica quando l'esito viene erroneamente predetto come negativo quando è effettivamente positivo. La vera percentuale positiva è TP divisa per il numero totale di positivi, che è TP + FN; Il tasso falso positivo è FP diviso per il numero totale di negativi, FP + TN. Il tasso di successo complessivo è il numero di classificazioni corrette diviso per il numero totale di classificazioni:

  ...

  Infine, il tasso di errore è uno meno questo.
In una predizione multiclass, il risultato su un set di test è spesso visualizzato come una matrice di confusione bidimensionale con una riga e una colonna per ogni classe. Ogni elemento matrice mostra il numero di esempi di test per cui la classe effettiva è la riga e la classe prevista è la colonna. Buoni risultati corrispondono a grandi numeri lungo la diagonale principale e piccoli, idealmente zero, elementi fuori diagonale. La tabella 5.4 (a) mostra un esempio numerico con tre classi. In questo caso il set di test ha 200 istanze (la somma dei nove numeri nella matrice) e 88 + 40 + 12 = 140 sono predittivati correttamente, quindi la percentuale di successo è del 70%.

  Ma questa è una giusta misura del successo globale? Quanti accordi ci si aspetterebbe per caso? Questo predittore prevede un totale di 120 a, 60 b e 20 c; Cosa succede se avessi un predittivo casuale che prevedeva lo stesso numero totale delle tre classi? La risposta è mostrata nella Tabella 5.4 (b). La sua prima fila divide il 100 a nel set di test in queste proporzioni complessive e la seconda e la terza righe fanno la stessa cosa per le altre due classi. Naturalmente, i totali di riga e colonna per questa matrice sono gli stessi di prima che il numero di istanze non sia cambiato e abbiamo assicurato che il predittore casuale predice lo stesso numero di a, b e c come il predittore reale.

  Questo predittore casuale ottiene 60 + 18 + 4 = 82 istanze corrette. Una misura chiamata statistica Kappa prende in considerazione questa cifra attesa, deducendola dai successi del predittore e esprimendo il risultato come proporzione del totale per un predittore perfetto, per ottenere 140 - 82 = 58 successi aggiuntivi su un totale possibile di 200 - 82 = 118, o 49,2%. Il valore massimo di Kappa è 100% e il valore previsto per un predittore casuale con gli stessi totali della colonna è pari a zero. In sintesi, la statistica di Kappa è usata per misurare l'accordo tra le classificazioni previste e osservate di un set di dati, correggendo per l'accordo che si verifica per caso. Tuttavia, come il tasso di successo semplice, non tiene conto dei costi.

  Classificazione dei costi


  Se i costi sono noti, possono essere incorporati in un'analisi finanziaria del processo decisionale. Nel caso di due classi, in cui la matrice di confusione è come quella della tabella 5.3, i due tipi di errori: falsi positivi e falsi negativi avranno costi diversi; Allo stesso modo, i due tipi di classificazione corretta possono avere vantaggi diversi. Nel caso a due categorie, i costi possono essere riassunti sotto forma di una matrice di 2 x 2 in cui gli elementi diagonali rappresentano i due tipi di classificazione corretta e gli elementi off-diagonali rappresentano i due tipi di errore. Nel caso multiclasse si generalizza a una matrice quadrata la cui dimensione è il numero di classi e gli elementi diagonali rappresentano nuovamente il costo della classificazione corretta. La Tabella 5.5 (a) e (b) mostra le matrici di costo predefinite per i casi a due e tre categorie i cui valori semplicemente danno il numero di errori: i costi di miscelazione sono tutti 1.

  Prendendo in considerazione la matrice di costo sostituisce il tasso di successo con il costo medio (o, pensando più positivamente, il profitto) per decisione. Anche se non lo faremo qui, un'analisi finanziaria completa del processo decisionale potrebbe anche tenere conto del costo dell'utilizzo dello strumento di apprendimento macchina, compreso il costo della raccolta dei dati formativi, e il costo dell'utilizzo del modello o Struttura decisionale, che produce cioè il costo per determinare gli attributi per le istanze di prova. Se tutti i costi sono conosciuti e si può stimare il numero previsto dei diversi risultati della matrice dei costi, ad esempio con la convalida incrociata, è semplice eseguire questo tipo di analisi finanziaria.
  Dato una matrice di costo, è possibile calcolare il costo di un determinato modello appreso su un determinato set di test solo sommando gli elementi pertinenti della matrice di costo per la predizione del modello per ciascuna istanza di prova. Qui, i costi vengono ignorati quando fanno previsioni, ma vengono prese in considerazione durante la valutazione.

  Se il modello emette la probabilità associata a ciascuna predizione, può essere regolata per minimizzare il costo previsto delle previsioni. Dato un insieme di probabilità previste per ciascun risultato su una determinata istanza di prova, si seleziona normalmente l'esito più probabile. Invece, il modello potrebbe prevedere la classe con il più piccolo costo di misclassificazione previsto. Ad esempio, supponiamo che in una classe a tre classi il modello assegna le classi a, b e c ad un'istanza di prova con probabilità pa, pb e pc e la matrice di costo è quella nella tabella 5.5 (b).

  Se prevede a, il costo previsto della previsione viene ottenuto moltiplicando la prima colonna della matrice, [0,1,1], con il vettore di probabilità, [pa, pb, pc], dando pb + pc o 1 - Pa perché le tre probabilità sono pari a 1. Analogamente, i costi per la previsione delle altre due classi sono 1 - pb e 1 - pc. Per questa matrice di costo, scegliendo la previsione con il costo più basso previsto è lo stesso di scegliere quello con la massima probabilità. Per una diversa matrice di costi potrebbe essere diversa.

  Abbiamo assunto che il metodo di apprendimento produce probabilità, come fa Naïve Bayes. Anche se normalmente non producono probabilità, la maggior parte dei classificatori può essere facilmente adattata per calcolarle. Ad esempio in una struttura di decisione la distribuzione di probabilità per un'istanza di prova è solo la distribuzione delle classi alla corrispondente foglia.

  Apprendimento sensibile ai costi


 Abbiamo visto come un classificatore, costruito senza considerare i costi, può essere utilizzato per fare previsioni sensibili alla matrice dei costi. In questo caso, i costi vengono ignorati durante il periodo di addestramento ma utilizzati al tempo di previsione. Un'alternativa è fare il contrario: considerare la matrice dei costi durante il processo di formazione e ignorare i costi a tempo di previsione. In linea di principio, le prestazioni migliori potrebbero essere ottenute se il classificatore è stato adattato dall'algoritmo di apprendimento alla matrice dei costi.

  Nella situazione a due categorie, c'è un modo semplice e generale per rendere qualsiasi metodo di apprendimento sensibile ai costi. L'idea è di generare dati di formazione con una diversa proporzione di sì e senza istanze. Supponiamo di aumentare artificialmente il numero di casi senza un fattore di 10 e utilizzare il set di dati risultante per la formazione. Se lo schema di apprendimento si sforza di ridurre al minimo il numero di errori, verrà fornito una struttura di decisione che è biasata per evitare errori in nessun caso, in quanto tali errori sono effettivamente penalizzati 10 volte. Se i dati con la proporzione originale di nessuna istanza vengono utilizzati per il test, verranno meno errori rispetto a quelli di sì, cioè meno falsi positivi di falsi negativi, poiché i falsi positivi sono stati pesati 10 volte più pesante di Falsi negativi. La variazione della percentuale di istanze nel set di formazione è una tecnica generale per la costruzione di classificatori sensibili ai costi.

  Un modo per variare la percentuale di istanze di formazione è quello di duplicare istanze nel set di dati. Tuttavia, molti schemi di apprendimento consentono di ponderare i casi. (Come abbiamo detto nella sezione 3.2, questa è una tecnica comune per gestire i valori mancanti.) I pesi d'istanza vengono normalmente inizializzati a uno. Per costruire alberi sensibili ai costi, i pesi possono essere inizializzati al costo relativo dei due tipi di errore, falsi positivi e falsi negativi.

  Grafici di sollevamento - Lift charts


 In pratica, i costi sono raramente conosciuti con qualsiasi grado di precisione e la gente vuole riflettere su vari scenari. Immaginate di essere nel settore della spedizione diretta e stiate contemplando un messaggistica di massa di un'offerta promozionale a 1.000.000 famiglie, la maggior parte dei quali non risponderà, naturalmente. Diciamo che, sulla base di esperienze precedenti, la percentuale che risponde normalmente è nota per essere dello 0,1% (1000 rispondenti). Supponiamo che sia disponibile uno strumento per la data mining che, sulla base delle informazioni conosciute sulle famiglie, identifica un sottoinsieme di 100.000 per i quali il tasso di risposta è 0.4% (400 rispondenti). Può ben pagare per restringere l'esplosione a queste 100.000 famiglie - che dipende dal costo di spedizione rispetto al rendimento ottenuto per ogni risposta all'offerta. Nella terminologia di marketing, l'aumento del tasso di risposta, un fattore di quattro in questo caso, è conosciuto come il fattore di sollevamento reso dallo strumento di apprendimento. Se sapevi i costi, puoi determinare il versamento implicito da un determinato fattore di sollevamento.

   Ma probabilmente vuoi valutare anche altre possibilità. Lo stesso schema di data mining, con diverse impostazioni dei parametri, potrebbe essere in grado di identificare 400.000 famiglie per le quali il tasso di risposta sarà 0.2% (800 rispondenti), corrispondente a un fattore di sollevamento di due. Ancora una volta, se si tratti di un obiettivo più redditizio per la spedizione, è possibile calcolare i costi. Può essere necessario fatturare il costo della creazione e dell'utilizzo del modello, compresa la raccolta delle informazioni necessarie per ottenere i valori degli attributi. Dopo tutto, se lo sviluppo del modello è molto costoso, una mailing di massa può essere più conveniente di un target.

  Dato un metodo di apprendimento che esegue probabilità per la classe prevista di ciascun membro dell'insieme di istanze di test (come fa Naïve Bayes), il tuo lavoro è trovare sottoinsiemi di istanze di prova che dispongono di una percentuale elevata di istanze positive, superiori al test Insieme nel suo complesso. Per fare ciò, le istanze devono essere ordinate in ordine decrescente di probabilità prevista di sì. Quindi, per trovare un campione di una determinata dimensione con la massima percentuale possibile di istanze positive, basta leggere il numero richiesto di istanze fuori dall'elenco, a partire dalla parte superiore. Se è nota la classe di ogni classe di prova, è possibile calcolare il fattore di sollevamento semplicemente contando il numero di istanze positive che il campione include, dividendo per dimensione del campione per ottenere una proporzione di successo e dividendo per la proporzione di successo per il set completo di test per determinare Il fattore di sollevamento.

  La tabella 5.6 mostra un esempio per un piccolo set di dati con 150 istanze, di cui 50 sono risposte sommarie - una percentuale di successo complessiva del 33%. Le istanze sono state ordinate in ordine decrescente di probabilità in base alla probabilità prevista di una risposta in sì. La prima istanza è quella che il piano di apprendimento pensa è più probabile che sia positivo, il secondo è il più probabile e così via. I valori numerici delle probabilità sono irrilevanti: il rango è l'unica cosa che conta. Con ogni rango viene data la classe effettiva dell'istanza. Quindi il metodo di apprendimento era giusto per gli articoli 1 e 2 - sono effettivamente positivi - ma sbagliati circa il punto 3, che si è rivelato negativo. Ora, se cercavi il campione più promettente della dimensione 10, ma conosceva solo le probabilità previste e non le classi effettive, la tua scommessa migliore sarebbe stata la top ten classi di classifica. Otto di questi sono positivi, quindi la percentuale di successo di questo campione è dell'80%, corrispondente a un fattore di sollevamento di quattro.

  Se sapevi i diversi costi coinvolti, puoi elaborarli per ogni dimensione del campione e scegliere il più redditizio. Ma una rappresentazione grafica delle "diverse possibilità" spesso sarà molto più rivelante che presentare una sola decisione "ottimale". Ripetendo l'operazione precedente per campioni di dimensioni diverse, è possibile tracciare un diagramma di sollevamento come quello di Figura 5.1. L'asse orizzontale mostra la dimensione del campione in percentuale del totale possibile. L'asse verticale mostra il numero di risposte ottenute. I punti a destra in basso a sinistra e in alto corrispondono a nessuna affrancatura, con una risposta di 0 e uno spostamento completo con una risposta di 1000. La linea diagonale fornisce il risultato previsto per i campioni casuali differenziati. Ma non scegliamo campioni casuali; Scegliamo quelle istanze che, secondo lo strumento di data mining, sono molto probabili generare una risposta positiva. Queste corrispondono alla linea superiore, che viene ricavata dalla somma delle risposte reali sulla percentuale corrispondente dell'elenco di istanze ordinato in ordine di probabilità. I due scenari particolari descritti in precedenza sono contrassegnati: uno scadenzario del 10% che produce 400 intervistati e un 40% quello che produce 800.

  Dove ti piacerebbe essere in una tabella di sollevamento è vicino all'angolo superiore sinistro: nel migliore dei casi, 1000 risposte da un posteggio di appena 1000, dove inviate solo a quelle famiglie che risponderanno e ricompensate con un 100 % tasso di successo. Qualsiasi procedura di selezione degna del nome ti terrà sopra la diagonale, altrimenti avrai una risposta che era peggiore che per il campionamento casuale. Quindi la parte operativa del diagramma è il triangolo superiore e "più lontano" a nord-ovest meglio.

  ROC curves


  I diagrammi di sollevamento sono uno strumento prezioso, ampiamente utilizzato nel marketing. Sono strettamente legati a una tecnica grafica per la valutazione di schemi di data mining conosciuti come curve ROC, utilizzati nella stessa situazione del precedente, in cui lo studente cerca di selezionare campioni di istanze di prova che hanno una elevata percentuale di positivi . L'acronimo rappresenta la caratteristica operativa del ricevitore, un termine usato per rilevare i segnali per caratterizzare il compromesso tra il tasso di successo e la falsa percentuale di allarme su un canale rumoroso. Le curve ROC rappresentano le prestazioni di un classificatore senza tener conto dei costi di distribuzione o di errore di classe. Esse tracciano il numero di positivi inclusi nel campione sull'asse verticale, espressi in percentuale del numero totale di positivi, contro il numero di negativi inclusi nel campione, espressi in percentuale del numero totale di negativi, sull'orizzonte orizzontale asse. L'asse verticale è lo stesso di quello della tabella di sollevamento, salvo che si esprime come percentuale. L'asse orizzontale è un numero leggermente diverso di negativi piuttosto che di dimensioni del campione. Tuttavia, nelle situazioni di marketing diretto in cui la percentuale di positivi è comunque molto piccola (pari allo 0,1%), vi è una differenza trascurabile tra la dimensione di un campione e il numero di negativi che contiene, per cui la curva ROC e il diagramma di aspirazione sono molto simili . Come con i diagrammi di sollevamento, l'angolo nord-occidentale è il posto dove stare.  

 La Figura 5.2 mostra una curva ROC di esempio - la linea frastagliata - per il campione dei dati di prova nella tabella 5.6. Puoi seguirlo insieme al tavolo. Dall'origine, salite due (due positivi), uno (uno negativo), cinque (cinque positivi), uno (uno negativo), uno su uno, uno lungo, due e così via. Ogni punto corrisponde a disegnare una linea in una certa posizione nell'elenco classificato, contando il sì e il no sopra di esso e tracciandoli rispettivamente verticalmente e orizzontalmente. Mentre si va più in basso l'elenco, corrispondente ad un campione più grande, il numero di positivi e negativi aumenta.

  La linea ROC frastagliata nella Figura 5.2 dipende intimamente dai dettagli del particolare campione dei dati di prova. Questa dipendenza dal campione può essere ridotta applicando la convalida incrociata. Per ogni numero diverso di no, cioè ogni posizione lungo l'asse orizzontale, prendi appena sufficienti le istanze più alte per includere quel numero di no e contano il numero di sì che contengono. Infine, il numero medio di quel numero su diverse pieghe della convalida incrociata. Il risultato è una curva liscia come quella della Figura 5.2, anche se in realtà tali curve non sembrano in genere abbastanza lisce.  Questo è solo un modo di utilizzare la convalida incrociata per generare curve ROC. Un approccio più semplice è quello di raccogliere le probabilità previste per tutti i vari gruppi di test (di cui 10 sono in una convalida incrociata di 10 volte), unitamente alle etichette di classe reali delle istanze corrispondenti e generare un unico elenco classificato basato su Questi dati. Ciò presuppone che le stime di probabilità dei classificatori costruite dai diversi set di addestramento siano tutte basate su campioni casuali di dimensioni uguali dei dati. Non è chiaro quale metodo sia preferibile. Tuttavia, questo metodo è più semplice da implementare.

  Se lo schema di apprendimento non consente di ordinare le istanze, è possibile innanzitutto renderlo sensibile ai costi come descritto in precedenza. Per ciascuna piega di una convalida incrociata di 10 volte, pesare le istanze per una selezione di rapporti di costo differenti, addestrare lo schema su ciascun insieme ponderato, contare i veri e positivi e falsi positivi nel set di test e tracciare il punto risultante sulla Assi ROC. (Non importa se il set di test è ponderato o meno perché gli assi nello schema ROC sono espressi come percentuale di veri e falsi positivi.) Tuttavia, per i classificatori probabilistici a rischio di natura intrinseca quali Naïve Bayes è molto di più Costoso rispetto al metodo descritto in precedenza perché coinvolge un problema di apprendimento distinto per ogni punto della curva.

  È istruttivo osservare le curve ROC incrociate convalidate ottenute utilizzando metodi di apprendimento diversi. Ad esempio, nella figura 5.3, il metodo A eccelle se si cerca un piccolo campione concentrato; Ovvero, se si sta lavorando verso il lato sinistro del grafico. Chiaramente, se si mira a coprire solo il 40% dei positivi validi si dovrebbe scegliere il metodo A, che dà un tasso falso positivo di circa il 5%, piuttosto che il metodo B, che dà più del 20% falsi positivi. Ma il metodo B eccelle se si sta progettando un grande esempio: se si copre l'80% dei positivi reali, il metodo B dà una falsa percentuale positiva del 60% rispetto all'80% del metodo A. L'area ombreggiata è chiamata scafo convesso delle due curve e si dovrebbe sempre operare in un punto che si trova sul limite superiore dello scafo convesso.

  E la regione al centro in cui né il metodo A né il metodo B si trovano sullo scafo convesso? È un fatto notevole che si può arrivare ovunque nella regione ombreggiata combinando i metodi A e B e li usando a caso con opportune probabilità. Per vedere questo, scegliere una cedola di probabilità particolare per il metodo A che fornisce veri e falsi positivi tassi di tA e fA, rispettivamente, e un altro cutoff per il metodo B che dà tB e fB. Se si usano questi due schemi a caso con probabilità p e q, dove p + q = 1, allora si otterranno tassi veri e falsi positivi di p.tA + q.tB e p.fA + q.fB Questo rappresenta un punto che si trova sulla linea retta che unisce i punti (tA, fA) e (tB, fB), e variando p e q è possibile tracciare l'intera riga tra questi due punti. Utilizzando questo dispositivo è possibile raggiungere l'intera area ombreggiata. Solo se un particolare schema genera un punto che si trova sullo scafo convesso dovrebbe essere usato da solo: altrimenti, sarebbe sempre meglio utilizzare una combinazione di classificatori corrispondenti a un punto che si trova sullo scafo convesso.

  Curve di richiamo-precisioneLa gente si è aggrappata al compromesso fondamentale illustrato da diagrammi di sollevamento e curve ROC in una vasta gamma di domini. Il recupero delle informazioni è un buon esempio. Dato una query, un motore di ricerca Web produce un elenco di colpi che rappresentano documenti che sembrano rilevanti per la query. Confronti un sistema che individua 100 documenti, di cui 40 rilevanti, con un'altra che individua 400 documenti, di cui 80 rilevanti. Che è migliore? La risposta dovrebbe essere ovvia: dipende dal costo relativo dei falsi positivi, dai documenti restituiti che non sono rilevanti e dalle false negative, documenti rilevanti che non vengono restituiti. I ricercatori del recupero delle informazioni definiscono i parametri chiamati richiamo e precisione:

    ....

  Ad esempio, se l'elenco di sì e di no nella tabella 5.6 rappresentava un elenco classificato dei documenti recuperati e se fosse rilevante o meno, e l'intera raccolta conteneva un totale di 40 documenti rilevanti, allora "richiamo a 10" indica il richiamo Per i primi dieci documenti, vale a dire 8/40 = 5%; Mentre "precisione a 10" sarebbe 8/10 = 80%. Gli esperti del recupero di informazioni usano le curve di richiamo di precisione che tracciano uno contro l'altro, per diversi numeri di documenti recuperati, allo stesso modo delle curve ROC e dei diagrammi di sollevamento, tranne perché gli assi sono diversi, le curve sono forme iperboliche e la desiderata Il punto operativo è verso destra in alto.
  Discusione

  La Tabella 5.7 riassume i tre diversi modi in cui abbiamo incontrato per valutare lo stesso compromesso di base; TP, FP, TN e FN sono il numero di positivi, falsi positivi, veri negativi e falsi negativi. Si desidera scegliere un insieme di istanze con una elevata percentuale di istanze di sì e un'elevata copertura delle istanze di sì: è possibile aumentare la percentuale (conservativamente) utilizzando una copertura minore, o (liberamente) aumentare la copertura a scapito della proporzione. Diverse tecniche danno diversi compromessi, e possono essere tracciati come linee diverse su uno di questi "grafici".


 Le persone cercano anche misure singole che caratterizzano le prestazioni. Due che sono utilizzati nel recupero delle informazioni sono il richiamo medio di 3 punti, che dà la precisione media ottenuta dai valori di richiamo del 20%, del 50% e dell'80% e del richiamo medio di 11 punti, che dà la precisione media ottenuta a valori di richiamo Di 0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% e 100%. Utilizzato anche nel recupero delle informazioni è la misura F, che è:

   ......

 Diversi termini vengono utilizzati in diversi domini. I medici, per esempio, parlano della sensibilità e della specificità dei test diagnostici. La sensibilità si riferisce alla percentuale di persone con malattia che hanno un risultato positivo, cioè tp. La specificità si riferisce alla percentuale di persone senza malattia che hanno un risultato negativo di test, che è 1 - fp. A volte il prodotto di questi è utilizzato come misura globale:

 Per riassumere le curve di ROC in una sola quantità, le persone utilizzano talvolta l'area sotto la curva (AUC) perché, approssimativamente, più grande è l'area, migliore è il modello. L'area ha anche una bella interpretazione come la probabilità che il classificatore classifichi un'istanza positiva scelta casualmente sopra un negativo casualmente scelto. Sebbene tali misure possano essere utili se i costi e le distribuzioni di classi non sono sconosciute e si deve scegliere un metodo per gestire tutte le situazioni, nessun singolo numero è in grado di catturare il compromesso. Ciò può essere effettuato solo con rappresentazioni bidimensionali come diagrammi di sollevamento, curve ROC e diagrammi di "richiamo-precisione".

  Costo delle curve - Cost curves


 Le curve ROC ei loro parenti sono molto utili per esplorare i compromessi tra i diversi classificatori su una vasta gamma di costi. Tuttavia, non sono ideali per valutare i modelli di apprendimento macchina in situazioni con costi di errori noti. Ad esempio, non è facile leggere il costo previsto di un classificatore per una matrice dei costi fissi e la distribuzione di classi. Né è possibile determinare facilmente gli intervalli di applicabilità di diversi classificatori. Ad esempio, dal punto di crossover tra le due curve ROC della Figura 5.3, è difficile capire quale costo e classi distributori di classe A superano il classificatore B.
  Le curve dei costi sono un tipo di visualizzazione diverso su cui un singolo classificatore corrisponde a una retta che mostra come le prestazioni variano come la distribuzione della classe cambia. Di nuovo, funzionano meglio nel caso di due classi, anche se si può sempre fare un problema multiclass in una classe a due classi individuando una classe e valutandola contro i restanti.

  La Figura 5.4 (a) elabora l'errore atteso rispetto alla probabilità di una delle classi. Potresti immaginare di regolare questa probabilità ripubblicando il set di test in modo non uniforme. Dichiariamo le due classi usando + e -. Le diagonali mostrano le prestazioni di due classificatori estremi: uno prevede sempre +, dando un errore previsto di uno se il set di dati non contiene istanze + e zero se tutte le sue istanze sono +; L'altro predice sempre - dando le prestazioni opposte. La linea orizzontale tratteggiata mostra le prestazioni del classificatore che è sempre sbagliato e l'asse X stesso rappresenta il classificatore sempre corretto. In pratica, naturalmente, nessuna di queste è realizzabile. I buoni classificatori hanno bassi tassi di errore, quindi dove si desidera essere è il più possibile vicino alla parte inferiore del diagramma.

 La linea contrassegnata rappresenta il tasso di errore di un determinato classificatore. Se calcoli le sue prestazioni su un determinato set di test, la sua falsa positiva fp è il suo errore previsto su un sottomenu del set di test che contiene solo esempi negativi (p [+] = 0) e la sua falsa fonte negativa fn è l'errore su un sottogruppo che contiene solo esempi positivi (p [+] = 1). Questi sono i valori delle intercettazioni rispettivamente a sinistra ea destra. È possibile vedere immediatamente dalla trama che se p [+] è più piccolo di circa 0,2, il predittore A è sovraperformato dal classificatore estremo che predice sempre - e se è maggiore di circa 0,65, l'altro classificatore estremo è meglio.


  Figure 5.4 (continued)


 Finora non abbiamo tenuto conto dei costi, o meglio abbiamo utilizzato la matrice di costo predefinita in cui tutti gli errori costano lo stesso. Le curve dei costi, che prendono in considerazione i costi, sembrano molto simili, molto simili, ma gli assi sono diversi. La Figura 5.4 (b) mostra una curva dei costi per lo stesso classificatore A (si noti che la scala verticale è stata ingrandita, per comodità e per ora ignora le linee grigie). Essa compone il costo atteso dell'utilizzo di A contro la funzione di costo di probabilità, che è una versione distorta di p [+] che conserva gli stessi estremi: zero quando p [+] = 0 e uno quando p [+] = 1. Denota da C [+ | -] il costo di predizione + quando l'istanza è in realtà -, e il contrario di C [- | +]. Quindi gli assi della Figura 5.4 (b) sono:

......


Supponiamo qui che le previsioni corrette non hanno alcun costo: C [+ | +] = C [- | -] = 0. Se non è così, le formule sono un po 'più complesse. Il valore massimo che il costo previsto normalizzato può avere è 1 e per questo è "normalizzato". Una cosa bella delle curve dei costi è che i valori di costo estremo ai lati sinistro e destro del grafico sono fp e fn, proprio come Sono per la curva di errore, in modo da poter disegnare la curva dei costi per qualsiasi classificatore molto facilmente.
La Figura 5.4 (b) mostra anche il classificatore B, il cui costo previsto rimane lo stesso in tutta la gamma, vale a dire che le sue false posizioni positive e false sono negative. Come potete vedere, supera la classificatrice A se la funzione di costo di probabilità supera circa 0,45 e conosce i costi che potremmo facilmente risolvere ciò che corrisponde a quello della distribuzione di classi. In situazioni che implicano diverse distribuzioni di classi, le curve dei costi rendono facile indicare quando un classificatore supererà un'altra.

  In quali circostanze questo potrebbe essere utile? Per ritornare all'esempio di predizione quando le mucche saranno in estrusione, il loro ciclo di 30 giorni, o una probabilità di 1/30 probabilmente, non è probabile che variano notevolmente (bloccando un cataclismo genetico!). Ma una mandria particolare può avere proporzioni diverse di mucche che potrebbero raggiungere estrusione in una qualsiasi settimana, forse sincronizzata con chi chiede la fase della luna. Quindi, classificatori diversi sarebbero appropriati in tempi diversi. Nell'esempio di perdita di petrolio, i diversi lotti di dati possono avere diverse probabilità di fuoriuscita.  In queste situazioni le curve dei costi possono aiutare a mostrare quale classifier utilizzare quando. Ogni punto su un diagramma di sollevamento, la curva ROC o la curva di precisione di richiamo rappresenta un classificatore, normalmente ottenuto utilizzando valori di soglia diversi per un metodo come Naïve Bayes. Le curve dei costi rappresentano ogni classificatore utilizzando una linea retta e una serie di classificatori spazzano una busta curva il cui limite inferiore mostra come bene il tipo di classificatore può fare se il parametro è ben scelto. La Figura 5.4 (b) indica questo con alcune righe grigie. Se il processo fosse continuato, spazzarebbe la curva parabolica punteggiata.

  La regione operativa del classificatore B varia da un valore di costo di probabilità di circa 0,25 a un valore di circa 0,75. Al di fuori di questa regione, il classificatore B è sovraperformato dai classificatori triviali rappresentati da linee tratteggiate. Supponiamo di decidere di utilizzare il classificatore B all'interno di questo intervallo e il classifico appropriato di classificazione sotto e sopra. Tutti i punti della parabola sono sicuramente migliori di questo schema.
  Ma quanto meglio? È difficile rispondere a tali domande da una curva ROC, ma la curva dei costi li rende facili. La differenza di prestazioni è trascurabile se il valore di costo di probabilità è di circa 0,5, e sotto un valore di circa 0,2 e più di 0,8, è appena percepibile. La differenza maggiore si verifica a valori di costo di probabilità di 0,25 e 0,75 ed è di circa 0,04, o 4% del costo massimo possibile.

   Valutazione della previsione numerica


 Tutte le misure di valutazione che abbiamo descritto riguardano situazioni di classificazione piuttosto che situazioni numeriche di previsione. I principi di base - utilizzando un set di test indipendente anziché il set di formazione per la valutazione delle prestazioni, il metodo di holdout e la convalida incrociata - si applicano ugualmente bene alla previsione numerica. Ma la misura di qualità di base offerta dal tasso di errore non è più appropriata: gli errori non sono semplicemente presenti o assenti; Sono disponibili in diverse dimensioni.
Diverse misure alternative, riepilogate nella tabella 5.8, possono essere utilizzate per valutare il successo della previsione numerica. I valori previsti sulle istanze di prova sono p1, p2,. . ., Pn; I valori effettivi sono a1, a2,. . ., un. Si noti che pi significa qualcosa di molto diverso da quello che ha fatto nell'ultima sezione: c'era la probabilità che una particolare previsione fosse nella classe i; Qui si riferisce al valore numerico della predizione per l'istanza del test i.

  L'errore medio-quadrato è la misura principale e più comunemente utilizzata; A volte la radice quadrata viene presa per dare le stesse dimensioni del valore previsto. Molte tecniche matematiche (come la regressione lineare, spiegate nel capitolo 4) utilizzano l'errore medio-quadrato perché tende ad essere la misura più semplice da manipolare matematicamente: è, come dicono i matematici, "ben comportato". Tuttavia, qui stiamo considerando Come misura di prestazione: tutte le misure di prestazioni sono facili da calcolare, quindi l'errore medio-quadrato non ha alcun vantaggio particolare. La domanda è, è una misura appropriata per il compito a portata di mano?
L'errore assoluto medio è un'alternativa: solo la media dell'ampiezza degli errori individuali senza tenere conto del loro segno. L'errore medio-quadrato tende ad esagerare l'effetto degli outlier - istanze il cui errore di predizione è più grande degli altri - ma l'errore assoluto non ha questo effetto: tutte le dimensioni di errore vengono trattate in modo uniforme in base alla loro grandezza.

  A volte sono i valori relativi piuttosto che assoluti degli errori ad avere importanza. Ad esempio, se un errore del 10% è altrettanto importante se si tratta di un errore di 50 in una previsione di 500 o di un errore di 0,2 in una predizione di 2, allora le medie di errore assoluto saranno prive di significato: gli errori relativi sono appropriati. Questo effetto sarebbe stato preso in considerazione utilizzando gli errori relativi nel calcolo degli errori medio-quadrato o nel calcolo dell'errore assoluto medio.L'errore relativo quadrato nella tabella 5.8 si riferisce a qualcosa di diverso. L'errore viene fatto rispetto a quello che sarebbe stato se fosse stato utilizzato un semplice predittore. Il semplice predittore in questione è solo la media dei valori reali dei dati formativi. Quindi l'errore quadrato relativo assume l'errore totale quadrato e normalizza la suddivisione per l'errore totale quadrato del predittore predefinito.

  La prossima misura di errore va dal nome glorioso dell'errore assoluto relativo e è solo l'errore assoluto totale, con lo stesso tipo di normalizzazione. In queste tre misure di errore relative, gli errori vengono normalizzati dall'errore del semplice predittore che prevede valori medi.
La misura finale nella tabella 5.8 è il coefficiente di correlazione, che misura la correlazione statistica tra l'a e il p. Il coefficiente di correlazione varia da 1 a risultati perfettamente correlati, a 0 se non c'è correlazione, a -1 quando i risultati sono perfettamente correlati negativamente. Naturalmente, i valori negativi non dovrebbero verificarsi per i metodi di previsione ragionevoli. La correlazione è leggermente diversa dalle altre misure perché è indipendente dalla scala in quanto, se si prende un particolare insieme di previsioni, l'errore è invariato se tutte le previsioni sono moltiplicate per un fattore costante ei valori reali sono rimasti invariati. Questo fattore appare in ogni termine di SPA nel numeratore e in ogni termine di SP nel denominatore, eliminando così. (Questo non è vero per le figure di errore relative, nonostante la normalizzazione: se moltiplichi tutte le previsioni con una grande costante, allora la differenza tra i valori previsti e quelli effettivi cambia drasticamente, così come gli errori percentuali.).È anche diverso in quanto le buone prestazioni portano ad un grande valore del coefficiente di correlazione, mentre perché gli altri metodi misurino l'errore, le buone prestazioni sono indicate da piccoli valori.

  Quale di queste misure è appropriato in una determinata situazione è una questione che può essere determinata solo studiando l'applicazione stessa. Cosa cerchiamo di ridurre al minimo? Qual è il costo di diversi tipi di errore? Spesso non è facile decidere. Gli errori quadrati e le misure di errore a radice quadrata pesano le grandi discrepanze molto più pesanti di quelle minori, mentre le misure di errore assoluto non lo fanno. Prendendo la radice quadrata (errore medio radice quadrato) riduce la figura per avere la stessa dimensionalità di quella prevista. Le cifre di errore relative cercano di compensare la predizione o l'imprevedibilità di base della variabile di output: se tende a trovarsi abbastanza vicino al suo valore medio, allora si prevede che la previsione sia buona e la relativa cifra compensa. Altrimenti, se l'errore in una situazione è molto maggiore di quello in un'altra situazione, può essere perché la quantità nella prima situazione è inerentemente più variabile e quindi più difficile da prevedere, non perché il predittore è peggiore.

  Fortunatamente, risulta che nella maggior parte delle situazioni pratiche il miglior metodo di previsione numerico "è ancora" il migliore, non importa quale misura di errore viene utilizzata. Ad esempio, la Tabella 5.9 mostra il risultato di quattro diverse tecniche di previsione numerica su un determinato set di dati, misurato utilizzando la convalida incrociata. Il metodo D è il migliore secondo tutte e cinque le metriche: ha il valore più piccolo per ogni misura di errore e il più grande coefficiente di correlazione. Il metodo C è il secondo migliore di tutte e cinque le metriche.  Le prestazioni dei metodi A e B sono aperte alla controversia: hanno il medesimo coefficiente di correlazione, il metodo A è migliore del metodo B in base agli errori medio-quadrati e relativi a quadrato e il contrario è vero sia per l'assoluto assoluto che per il relativo errore assoluto. È probabile che l'enfasi extra che l'operazione di quadratura dà agli outlier tenga conto delle differenze in questo caso. Quando si confrontano due diversi schemi di apprendimento che prevedono previsioni numeriche, si applica ancora la metodologia sviluppata nella Sezione 5.5. L'unica differenza è che il tasso di successo viene sostituito dalla misura di prestazione appropriata (ad esempio, errore medio medio quadrato) durante l'esecuzione del test di significato.

  Il principio di lunghezza della descrizione minima


Ciò che viene appreso da un metodo di apprendimento macchina è una sorta di "teoria" del dominio da cui vengono tracciati gli esempi, una teoria predittiva in quanto è in grado di generare nuovi fatti sul dominio, in altre parole, la classe di Istanze non visibili. La teoria è un termine piuttosto grandioso: lo usiamo qui solo nel senso di un modello predittivo. Così le teorie potrebbero comprendere alberi decisionali o regole - non devono essere più "teorici" di quello.C'è una lunga tradizione nella scienza che, altre cose essendo uguali, le teorie semplici sono preferibili a quelle complesse. Questo è noto come il rasoio di Occam dopo il filosofo medioevale William of Occam (o Ockham). Il rasoio di Occam raschia i capelli filosofici da una teoria. L'idea è che la migliore teoria scientifica è quella più piccola che spiega tutti i fatti. Come Albert Einstein è reputato di aver detto: "Tutto dovrebbe essere fatto il più semplice possibile, ma non più semplice". Naturalmente, molto si nasconde nella frase "altre cose sono uguali" e "può essere difficile" Valutare oggettivamente se una particolare teoria davvero "spiega" tutti i fatti su cui si basa è ciò che riguarda la polemica in materia di scienza.

  Nel nostro caso, nell'apprendimento della macchina, la maggior parte delle teorie fa degli errori. Se ciò che viene appreso è una teoria, allora gli errori che fanno sono come eccezioni alla teoria. Un modo per assicurare che altre cose siano uguali è quello di insistere sul fatto che le informazioni incluse nelle eccezioni sono incluse come parte della teoria quando viene giudicata la sua "semplicità". Immagina una teoria imperfetta per la quale esista qualche eccezione. Non tutti i dati sono spiegati con la teoria, ma la maggior sì. Quello che facciamo è semplicemente associare le eccezioni alla teoria, specificandole esplicitamente come eccezioni. Questa nuova teoria è più grande: è un prezzo che, giustamente, deve essere pagato per la sua incapacità di spiegare tutti i dati. Tuttavia, può essere che la semplicità - è troppo 'chiamarlo' eleganza? - della teoria originale è sufficiente a superare il fatto che non spiega in modo completo tutto rispetto a una grande teoria barocca più completa e accurata.

  Ad esempio, se le tre leggi del moto planetario di Kepler non avessero al momento considerato i dati conosciuti abbastanza bene come l'ultima raffinatezza di Copernico della teoria ptolemaica di epicicli, avevano il vantaggio di essere molto meno complessi e avrebbe giustificato qualsiasi Leggera inaccuratezza apparente. Kepler era ben consapevole dei vantaggi di avere una teoria che era compatta, nonostante il fatto che la sua teoria abbia violato il suo senso estetico perché dipende da "ovali" piuttosto che da un movimento circolare puro. Lo ha espresso in una metafora forte: "Ho rimosso le scuderie di astronomia di cicli e spirali, e mi hanno lasciato solo un solo caricatore di sterco".

  La lunghezza della descrizione minima o il principio MDL assume la posizione che la migliore teoria per un corpo di dati è quella che minimizza la dimensione della teoria più la quantità di informazioni necessarie per specificare le eccezioni relative alla teoria: il più piccolo caricatore di sterco. Nella teoria della stima statistica, questo è stato applicato con successo a vari problemi di montaggio dei parametri. Esso si applica all'applicazione della macchina come segue: dato un insieme di istanze, un metodo di apprendimento infra una teoria - sia mai così semplice; Indegna, forse, per essere chiamata "teoria" - da loro. Utilizzando una metafora di comunicazione, immaginate che le istanze siano trasmesse attraverso un canale rumoroso. Qualsiasi somiglianza rilevata tra di loro può essere sfruttata per dare una codifica più compatta. Secondo il principio MDL, la migliore generalizzazione è quella che minimizza il numero di bit richiesti per comunicare la generalizzazione, insieme agli esempi da cui è stata fatta.

  Ora la connessione con la funzione di perdita informativa introdotta nella sezione 5.6 dovrebbe cominciare a emergere. Questa funzione misura l'errore in termini di numero di bit richiesti per trasmettere le istanze, dato le previsioni probabilistiche fatte dalla teoria. Secondo il principio MDL dobbiamo aggiungere a questo la "dimensione" della teoria in bit, opportunamente codificata, per ottenere una figura complessiva per la complessità. Tuttavia, il principio MDL si riferisce alle informazioni necessarie per trasmettere gli esempi da cui è stata formata la teoria, cioè le istanze di formazione - non un set di test. Il problema di overfitting è evitato perché una teoria complessa che sovrasta sarà penalizzata rispetto a quella semplice in virtù del fatto che occorrono più bit da codificare. Ad un estremo è una teoria molto complessa e altamente overfitted che non fa errori sul set di allenamento. Dall'altro è una teoria molto semplice - la teoria nullo - che non aiuta affatto quando trasmette il set di allenamento. E tra di loro sono teorie di complessità intermedia, che fanno previsioni probabilistiche imperfette e devono essere corrette trasmettendo alcune informazioni sul set di formazione. Il principio MDL fornisce un mezzo per confrontare tutte queste possibilità su un piano uguale per vedere quale è il migliore. Abbiamo trovato il graal sacro: uno schema di valutazione che funziona solo sul set di formazione e non ha bisogno di un set di test separato. Ma il diavolo è nei dettagli, come vedremo.

  Supponiamo che un metodo di apprendimento abbia una teoria T basata su un set di formazione E di esempi, che richiede un certo numero di bit L [T] da codificare (L per lunghezza). Data la teoria, il set di allenamento può essere codificato in un certo numero di bit, L [E | T]. L [E | T] è infatti data dalla funzione di perdita informativa sommata su tutti i membri del set di allenamento. Quindi la lunghezza totale della teoria della descrizione e il set di formazione è

 L[T ] + L[E T ]





E il principio MDL consiglia di scegliere la teoria T che minimizza questa somma.
   Esiste una notevole connessione tra il principio MDL e la teoria di probabilità di base. Dato un insieme di allenamento E, cerchiamo la teoria "più probabile" T, cioè la teoria per la quale la probabilità a posteriori probabilità Pr [T | E] - la probabilità dopo che gli esempi sono stati visti - viene massimizzata. La regola di probabilità condizionale di Bayes, la stessa regola che abbiamo incontrato nella sezione 4.2, lo impone

 ......

Taking negative logarithms, 

  - log Pr[T E ] = - log Pr[E T ] - log Pr[T ] + log Pr[E ].


 Massimizzare la probabilità è uguale a minimizzare il suo logaritmo negativo. Ora (come abbiamo visto nella sezione 5.6) il numero di bit richiesti per codificare qualcosa è solo il logaritmo negativo della sua probabilità. Inoltre, il termine finale, log Pr [E], dipende esclusivamente dal set di formazione e non dal metodo di apprendimento. Scegliendo la teoria che massimizza la probabilità Pr [T | E] equivale a scegliere la teoria che minimizza


  L[E T ] + L[T ]


  in altre parole, il principio MDL!/

 Questa sorprendente corrispondenza con la nozione di massimizzare la probabilità posteriore di una teoria dopo la formazione è stata presa in considerazione dà credito al principio MDL. Ma mette anche in evidenza dove i problemi si spuntano quando il principio MDL viene applicato in pratica. La difficoltà di applicare direttamente la regola di Bayes è quella di trovare un'adeguata distribuzione di probabilità Pr [T] per la teoria. Nella formulazione MDL, ciò si traduce nel trovare come codificare la teoria T in bit nel modo più efficiente. Ci sono molti modi per codificare le cose, e tutti dipendono da presupposti che devono essere condivisi da encoder e decoder. Se si conosce in anticipo che la teoria sta per prendere una certa forma, è possibile utilizzare queste informazioni per codificarlo in modo più efficiente. Come stai per realmente codificare T? Il diavolo è nei dettagli.

  Codifica E rispetto a T per ottenere L [E | T] sembra un po 'più "diretto": abbiamo già incontrato la funzione informativa di perdita. In realtà, quando codifica un membro del set di allenamenti dopo l'altro, stai codificando una sequenza anziché un set. Non è necessario trasmettere il set di formazione in un particolare ordine, e dovrebbe essere possibile utilizzare tale fatto per ridurre il numero di bit richiesti. Spesso, questo viene semplicemente approssimato sottraendo log n! (Dove n è il numero di elementi in E), che è il numero di bit necessari per specificare una particolare permutazione del set di formazione (e perché questo è lo stesso per tutte le teorie, non influisce effettivamente sul confronto tra di essi) . Ma si può immaginare utilizzando la frequenza degli errori individuali per ridurre il numero di bit necessari per codificarli. Naturalmente, più sofisticato il metodo che viene utilizzato per codificare gli errori, meno la necessità di una teoria in primo luogo - quindi se una teoria è giustificata o meno dipende in qualche misura da come gli errori sono codificati. I dettagli, i dettagli.

  Non andiamo nei dettagli di metodi di codifica diversi qui. L'intera questione di utilizzare il principio MDL per valutare un programma di apprendimento basato esclusivamente sui dati formativi è un settore di ricerca attiva e di vivace disaccordo tra i ricercatori.
Terminiamo questa sezione come abbiamo iniziato, su una nota filosofica. È importante apprezzare che il rasoio di Occam, la preferenza di semplici teorie su quelle complesse, ha lo status di una posizione filosofica o "assioma" piuttosto che qualcosa che può essere dimostrato dai primi principi. Anche se può sembrare evidente a noi, questa è una funzione della nostra istruzione e dei tempi in cui viviamo. La preferenza per la semplicità è - o può essere - una cultura specifica piuttosto che assoluta.
 Il filosofo greco Epicurus (che godeva di buon cibo e vino e sosteneva supposto il piacere sensuale - in moderazione - come il massimo bene) ha espresso quasi il sentimento opposto. Il suo principio di spiegazioni multiple suggerisce che "se più di una teoria è coerente con i dati, mantenerli tutti" sulla base che se diverse spiegazioni sono ugualmente in accordo, potrebbe essere possibile ottenere un più alto grado di precisione usandoli insieme - E comunque, sarebbe ignorato di scartare alcuni arbitrariamente. Questo porta alla mente l'apprendimento basata sull'istanza, in cui tutte le prove vengono mantenute per fornire previsioni robuste e rispecchiano fortemente con i metodi di combinazione di decisione come il bagaglio e il potenziamento (descritti nel capitolo 7) che in realtà acquisiscono il potere predittivo utilizzando molteplici spiegazioni .

  Applicare il principio MDL al clustering


 Una delle cose belle del principio MDL è che, a differenza di altri criteri di valutazione, può essere applicata in circostanze molto diverse. Anche se in un certo senso equivalente alla regola di Bayes in quanto, come abbiamo visto in precedenza, la creazione di un sistema di codifica delle teorie equivarrebbe ad assegnarle una precedente distribuzione di probabilità, i sistemi di codifica sono in qualche modo molto più tangibili e più semplici da pensare in termini concreti che intuitivi Probabilità precedenti. Per illustrare questo, descriveremo brevemente - senza entrare in dettagli di codifica - come si potrebbe applicare il principio MDL al clustering.  Il clustering appare intrinsecamente difficile da valutare. Mentre l'apprendimento di classificazione o associazione ha un criterio oggettivo di successo - le previsioni fatte sui casi di prova sono giuste o sbagliate - non è così con il clustering. Sembra che l'unica valutazione realistica è se il risultato dell'apprendimento - il clustering - sia utile nel contesto dell'applicazione. (Vale la pena sottolineare che in realtà è questo il caso di tutti i tipi di apprendimento, non solo il clustering).



Nonostante questo, il clustering può essere valutato da una prospettiva di lunghezza della descrizione. Supponiamo che una tecnica di cluster-learning divide il set di formazione E in cluster k. Se questi cluster sono naturali, dovrebbero essere utilizzati per codificare E in modo più efficiente. Il miglior clustering supporterà la codifica più efficiente. Un modo per codificare le istanze in E per un dato clustering è quello di cominciare codificando i centri del cluster - il valore medio di ciascun attributo su tutte le istanze del cluster. Quindi, per ogni istanza in E, trasmette quale cluster appartiene (in bit di log2k) seguiti dai valori degli attributi rispetto al centro del cluster - forse come differenza numerica di ogni valore di attributo dal centro. Abbinata come è in termini di medie e differenze, questa descrizione presuppone attributi numerici e solleva questioni spinose su come codificare i numeri in modo efficiente. Gli attributi nominali possono essere gestiti in modo simile: per ogni cluster è presente una distribuzione di probabilità per i valori di attributo e le distribuzioni sono differenti per i cluster differenti. Il problema di codifica diventa più semplice: i valori degli attributi sono codificati rispetto alla relativa distribuzione di probabilità, un'operazione standard nella compressione dei dati.  Se i dati presentano un clustering estremamente forte, questa tecnica comporterà una lunghezza minore di descrizione rispetto a trasmettere semplicemente gli elementi di E senza alcun cluster. Tuttavia, se l'effetto di clustering non è così forte, probabilmente aumenterà piuttosto che diminuire la lunghezza della descrizione. Il sovraccarico di trasmissione di distribuzioni specifiche per i cluster per i valori di attributo sarà più che compensare il vantaggio acquisito codificando ogni istanza di formazione relativa al cluster in cui si trova. Questo è dove vengono fornite tecniche di codifica più sofisticate. Una volta che i centri cluster sono stati comunicati, È possibile trasmettere in modo adattativo le distribuzioni di probabilità specifiche del cluster, in tandem con le relative istanze: le istanze stesse aiutano a definire le distribuzioni di probabilità e le distribuzioni di probabilità aiutano a definire le istanze. Non ci impegneremo ulteriormente nelle tecniche di codifica qui. Il punto è che la formulazione MDL, correttamente applicata, può essere abbastanza flessibile per supportare la valutazione del clustering. Ma effettivamente farlo in modo soddisfacente in pratica non è facile.

   Letture Consigliate


 La base statistica dei test di fiducia è ben coperta nella maggior parte dei testi statistici, che forniscono anche tabelle della distribuzione normale e della distribuzione degli studenti. (Usiamo un ottimo testo di corso, Wild e Seber 1995, che raccomandiamo molto se potete ottenerlo.) "Studente" è il nome de plume di uno statista chiamato William Gosset, che ha ottenuto il ruolo di chimico in La birreria Guinness a Dublino, nel 1899, e ha inventato il t-test per gestire piccoli campioni per il controllo della qualità nella preparazione. Il t-test corretto è stato proposto da Nadeau e Bengio (2003). La convalida incrociata è una tecnica statistica standard e la sua applicazione nell'apprendimento della macchina è stata ampiamente analizzata e confrontata con il bootstrap di Kohavi (1995a). La tecnica del bootstrap è coperta da Efron e Tibshirani (1993). La statistica di Kappa è stata introdotta da Cohen (1960). Ting (2002) ha esaminato un modo euristico di generalizzare al caso multiclassico l'algoritmo indicato nella Sezione 5.7 per rendere i costi di formazione a due classi di costo sensibili. I grafici di sollevamento sono descritti da Berry e Linoff (1997). L'uso dell'analisi ROC nella teoria del rilevamento del segnale è coperto da Egan (1975); Questo lavoro è stato esteso per la visualizzazione e l'analisi del comportamento dei sistemi diagnostici (Swets 1988) ed è anche usato in medicina (Beck e Schultz 1986). Provost e Fawcett (1997) portarono l'idea dell'analisi del ROC all'attenzione della comunità di apprendimento macchina e data mining. Witten et al. (1999b) spiegano l'uso del richiamo e della precisione nei sistemi di recupero delle informazioni; La misura F è descritta da van Rijsbergen (1979). Drummond e Holte (2000) hanno introdotto curve di costo e hanno studiato le loro proprietà. Il principio MDL è stato formulato da Rissanen (1985). La scoperta di Kepler delle sue economiche tre leggi del moto planetario, ei suoi dubbi su di loro, sono raccontati da Koestler (1964).Il principio di spiegazioni multiple di Epicurus è menzionato da Li e Vityani (1992), citando da Asmis (1984).
 Implementazioni: Schemi di apprendimento Real Machine

  Abbiamo visto le idee di base di diversi metodi di apprendimento macchina e abbiamo studiato in dettaglio come valutare la loro performance sui problemi pratici di data mining. Adesso siamo ben preparati a studiare algoritmi di apprendimento di macchina realmente reali, industriali. Il nostro obiettivo è quello di spiegare questi algoritmi sia a livello concettuale che con una quantità discreta di dettagli tecnici in modo da poterle comprendere appieno e apprezzare i principali problemi di implementazione che sorgono. In verità c'è un mondo di differenza tra i metodi semplicistici descritti nel Capitolo 4 e gli algoritmi reali che sono ampiamente utilizzati nella pratica.I principi sono gli stessi. Così sono i metodi input e output dei rappresentativi della conoscenza. Ma gli algoritmi sono molto più complessi, principalmente perché devono affrontare in modo robusto e sensibile i problemi del mondo reale come gli attributi numerici, i valori mancanti e - i più impegnativi di tutti - i dati rumorosi. Per capire come i vari metodi affrontano il rumore, dobbiamo attingere a alcune delle conoscenze statistiche che abbiamo appreso nel capitolo 5.  Il capitolo 4 è stato aperto con una spiegazione di come dedurre le regole rudimentali e ha continuato ad esaminare modelli di statistiche e decisioni. Poi siamo tornati a regolare l'induzione e continuato con le regole di associazione, i modelli lineari, il metodo di prossimità più vicino di apprendimento basato sull'istanza e il clustering. Il presente capitolo sviluppa tutti questi argomenti tranne le regole di associazione, che sono già state trattate in modo adeguato.  Cominciamo con l'induzione di alberi decisionali e lavoriamo fino ad una descrizione completa del sistema C4.5, un programma di alberi decisionali di riferimento che è probabilmente il cavallo da lavoro di apprendimento macchina più utilizzato nella pratica fino ad oggi. Successivamente descriviamo l'induzione di una decisione. Nonostante la semplicità dell'idea, l'introduzione di regole di decisione che si comportano in modo comparabile con gli alberi decisionali all'avanguardia risulta essere piuttosto difficile in pratica. La maggior parte degli induttori di regole ad alte prestazioni trova un set di regole iniziale e quindi lo raffina con una fase di ottimizzazione complessa che scarta o regola le singole regole per farli lavorare meglio insieme. Descriviamo le idee che sottostanno l'apprendimento delle regole in presenza di rumore e poi vanno a coprire un regime che opera mediante la costituzione di alberi decisionali parziali, un approccio che è stato dimostrato di svolgere e altre regole all'avanguardia I discenti ancora evitano le loro complesse e ad hoc euristiche. A seguito di questo, esaminiamo brevemente come generare regole con eccezioni, descritte in Sezione 3.5.

  C'è stato un rilancio dell'interesse nei modelli lineari con l'introduzione di macchine vettoriali di supporto, una miscela di modellazione lineare e di apprendimento basato su istanze. Le macchine vettoriali di supporto selezionano un piccolo numero di istanze critiche critiche chiamate vettori di supporto di ogni classe e costruiscono una funzione discriminante lineare che li separa il più ampiamente possibile. Questi sistemi trascendono le limitazioni dei confini lineari rendendo pratico includere termini aggiuntivi non lineari nella funzione, consentendo di formare dei limiti di decisione quadratica, cubica e superiore. Le stesse tecniche possono essere applicate al perceptron descritto nella sezione 4.6 per implementare confini complessi di decisione. Una tecnica più antica per estendere il perceptron è collegare le unità in "reti neurali" multilayer. Tutte queste idee sono descritte in Sezione 6.3.  La sezione successiva del capitolo descrive gli studenti basati sull'istanza, sviluppando il metodo più vicino di prossimità introdotto nella sezione 4.7 e mostrando alcune alternative più potenti che eseguono generalizzazioni esplicite. Dopo di ciò, aggiorniamo la regressione lineare per la previsione numerica ad una procedura più sofisticata che si presenta con la rappresentazione dell'albero introdotta nella sezione 3.7 e continua a descrivere la regressione localizzata, una strategia basata sull'istanza per la previsione numerica. Poi torniamo a raggruppare e rivedere alcuni metodi più sofisticati di semplici k-means, metodi che producono cluster gerarchici e cluster probabilistici. Infine, esaminiamo le reti bayesiane, un potenzialmente molto potente modo di estendere il metodo Naïve Bayes per renderlo meno "naïve" trattando i set di dati che hanno dipendenze interne.

  A causa della natura del materiale che contiene, questo capitolo è diverso dagli altri nel libro. Le sezioni possono essere lette in modo indipendente e ciascuna sezione è autonoma, inclusi i riferimenti ad ulteriori letture, che vengono raccolti in una sottosezione Discussione alla fine di ogni sezione.

  Alberi decisionali


  Il primo schema di apprendimento della macchina che si svilupperà in dettaglio deriva dal semplice algoritmo di divisione e conquista per la produzione degli alberi decisionali descritti nella sezione 4.3. Deve essere estesa in diversi modi prima che sia pronta per l'uso sui problemi del mondo reale. In primo luogo consideriamo come affrontare gli attributi numerici e, successivamente, i valori mancanti. Poi guardiamo all'importante problema di alberi decisionali di potatura, perché anche se gli alberi costruiti dall'algoritmo "divide-e-conquista" come descritti funzionano bene sul set di formazione, sono generalmente sovraccarichi ai dati formativi e non generalizzano bene A gruppi di test indipendenti. A questo punto consideriamo come convertire gli alberi decisionali nelle regole di classificazione. In tutti questi aspetti siamo guidati dal famoso algoritmo degli alberi decisionali C4.5 che, con il suo successore commerciale C5.0, è emerso come il cavallo di lavoro del settore per l'apprendimento automatico all'aperto. Infine, esaminiamo le opzioni fornite da C4.5 e C5.0 stesse.

  Attributi Numerici


 Il metodo descritto funziona solo quando tutti gli attributi sono nominali, mentre, come abbiamo visto, la maggior parte dei set di dati reali contengono alcuni attributi numerici. Non è troppo difficile estendere l'algoritmo per affrontare questi problemi. Per un attributo numerico limiteremo le possibilità a una divisione bidirezionale o binaria. Supponiamo di utilizzare la versione dei dati meteo che presenta alcune caratteristiche numeriche (Tabella 1.3). Quindi, quando la temperatura viene considerata per la prima spaccatura, i valori di temperatura coinvolti sono

.......

(Valori ripetuti sono stati collassati insieme). Ci sono solo 11 posizioni possibili per il punto di interruzione 8 se il punto di interruzione non è consentito separare gli elementi della stessa classe. Il guadagno di informazioni per ciascuno può essere calcolato nel modo consueto. Ad esempio, la temperatura di prova <71,5 produce quattro sì e due no, mentre la temperatura> 71.5 produce cinque sì e tre no, e quindi il valore di informazioni di questo test è

......

 È comune mettere le soglie numeriche a metà tra i valori che delimitano i confini di un concetto, anche se qualcosa può essere ottenuto adottando una politica più sofisticata. Ad esempio, vedremo più tardi che, sebbene la forma più semplice dell'apprendimento basata sull'istanza metta la linea di separazione tra concetti al centro dello spazio tra di loro, sono stati suggeriti altri metodi che coinvolgono più che i soli due esempi più vicini.Quando si creano gli alberi decisionali utilizzando il metodo "divide-and-conquer", quando è stato selezionato il primo attributo da dividere, viene creato un nodo ad albero di livello superiore che si divide su tale attributo e l'algoritmo procede ricorsivamente su ciascuno dei due i nodi. Per ogni attributo numerico, sembra che il sottoinsieme di istanze in ogni nodo figlio deve essere riorganizzato in base ai valori di tale attributo e, in effetti, in questo modo vengono generalmente scritti i programmi per l'induzione degli alberi decisionali. Tuttavia, non è effettivamente necessario riordinare perché l'ordine di ordinamento in un nodo padre può essere utilizzato per trarre l'ordine di ordinamento per ogni bambino, portando ad una implementazione più rapida. Si consideri l'attributo di temperatura nei dati meteo, il cui ordine di ordinamento (questa volta compresi i duplicati) è

  Il numero in corsivo sotto ogni valore di temperatura dà il numero dell'istanza che ha tale valore: così l'esempio numero 7 ha valore di temperatura 64, l'istanza 6 ha valore di temperatura 65 e così via. Supponiamo di decidere di dividere al livello più alto l'aspetto degli attributi. Si consideri il nodo figlio per cui la vista è soleggiata - infatti gli esempi con questo valore di outlook sono i numeri 1, 2, 8, 9 e 11. Se la sequenza in corsivo viene memorizzata con il set di esempio (e una sequenza diversa deve essere memorizzata Per ogni attributo numerico), ovvero, l'istanza 7 contiene un puntatore all'istanza 6, l'istanza 6 punti all'istanza 5, l'istanza 5 punti all'istanza 9 e così via, allora è una cosa semplice per leggere gli esempi per cui le prospettive = Soleggiato in ordine. Tutto ciò che è necessario è eseguire la scansione attraverso le istanze nell'ordine indicato, controllando l'attributo di Outlook per ciascuno e scrivendo quelle con il valore appropriato:

 ....

È quindi possibile evitare l'ordinamento ripetuto memorizzando con ciascun sottoinsieme di istanze l'ordine di ordinamento per quel sottoinsieme secondo ogni attributo numerico. L'ordine di ordinamento deve essere determinato per ogni attributo numerico all'inizio; Successivamente non è necessaria alcuna successiva ordinazione.
Quando un albero di decisione analizza un attributo nominale come descritto nella sezione 4.3, viene eseguito un ramo per ogni possibile valore dell'attributo. Tuttavia, abbiamo limitato le divisioni sugli attributi numerici per essere binari. Ciò crea un'importante differenza tra attributi numerici e quelli nominali: una volta che si è ramificato un attributo nominale, sono state utilizzate tutte le informazioni che offre, mentre le divisioni successive su un attributo numerico possono continuare a produrre nuove informazioni. Mentre un attributo nominale può essere testato solo una volta su qualsiasi percorso dalla radice di un albero alla foglia, una numerica può essere testata molte volte. Ciò può produrre alberi che sono disordinati e difficili da capire perché i test su qualunque singolo attributo numerico non si trovano insieme ma possono essere sparsi lungo il percorso. Un'alternativa più difficile da realizzare ma produce un albero leggibile è quello di consentire un test multiway su un attributo numerico, testando contro diverse costanti in un singolo nodo dell'albero. Una soluzione più semplice ma meno potente è predisporre l'attributo come descritto nella sezione 7.2.

   Valori Mancanti


 Il prossimo miglioramento dell'algoritmo di costruzione di decisioni riguarda i problemi dei valori mancanti. I valori mancanti sono endemici nei set di dati del mondo reale. Come spiegato nel capitolo 2 (pagina 58), un modo per gestirli è quello di trattarli come un altro possibile valore dell'attributo; Questo è appropriato se il fatto che manca l'attributo è in qualche modo significativo. In questo caso non è necessario intraprendere ulteriori azioni. Ma se non esiste un particolare significato nel fatto che un determinato esempio ha un valore attributo mancante, è necessaria una soluzione più sottile. Si è tentato semplicemente di ignorare tutti i casi in cui mancano alcuni valori, ma questa soluzione è spesso troppo draconiana per essere vitale. Le istanze con valori mancanti spesso forniscono una buona quantità di informazioni. A volte gli attributi i cui valori mancano non svolgono parte della decisione, nel qual caso tali istanze sono buone come qualsiasi altra.

  Una domanda è come applicare una data tree decision a un'istanza in cui alcuni degli attributi da testare hanno valori mancanti. Abbiamo descritto una soluzione nella Sezione 3.2 che comporta la suddivisione in modo suddiviso in pezzi, utilizzando un metodo di ponderazione numerico e l'invio di parte di ciascun ramo in proporzione al numero di istanze di formazione che scendono lungo tale ramo. Eventualmente, le varie parti dell'istanza raggiungeranno ciascuno un nodo di foglia e le decisioni in questi nodi foglia devono essere ricombinate usando i pesi che hanno percolato alle foglie. I calcoli di guadagno e guadagno di informazioni descritti nella sezione 4.3 possono anche essere applicati a istanze parziali. Invece di avere conteggi interi, i pesi vengono utilizzati quando si calcola entrambe le figure di guadagno.

  Un'altra domanda è come dividere il set di formazione una volta che è stato scelto un attributo di divisione, per consentire l'applicazione ricorsiva della procedura di formazione degli alberi decisionali su ciascuno dei nodi figlia. Viene utilizzata la stessa procedura di ponderazione. Le istanze per cui manca il relativo valore attribuito sono suddivisi in pezzi, un pezzo per ogni ramo, nella stessa proporzione dei casi noti che scendono nei vari rami. Pezzi di istanza contribuiscono a prendere decisioni nei nodi più bassi nel modo consueto attraverso il calcolo del guadagno delle informazioni, ad eccezione del fatto che esse sono ponderate di conseguenza. Possono essere ulteriormente divisi nei nodi inferiori, naturalmente, se i valori di altri attributi non sono noti. 

  Pruning


   Quando abbiamo esaminato il problema del negoziato del lavoro nel capitolo 1, abbiamo scoperto che l'albero di decisione semplice della figura 1.3 (a) effettua effettivamente meglio di quello più complesso di Figura 1.3 (b) e ha anche più senso. Ora è il momento di imparare a tagliare gli alberi decisionali.Costruendo l'albero completo e tagliandolo dopo, stiamo adottando una strategia di postpruning (a volte chiamata potatura indietro) piuttosto che prepruning (o forward potatura). Prepruning comporterebbe la decisione di decidere durante il processo di costruzione dell'albero quando smettere di sviluppare i sottofondi abbastanza una prospettiva attraente in quanto ciò eviterebbe tutto il lavoro di sviluppare sottofondi solo per buttarli via in seguito. Tuttavia, il postpruning sembra offrire alcuni vantaggi. Ad esempio, si verificano situazioni in cui due attributi individualmente sembrano non avere niente da contribuire, ma sono potenti predittori quando combinato una sorta di effetto di combinazione-lock in cui la corretta combinazione dei due valori attributo è molto informativa mentre gli attributi presi individualmente non lo sono. La maggior parte degli alberi decisionali costruttori postprune; Si tratta di una domanda aperta se si possano sviluppare strategie di prepruning che pure funzionino.

 Sono state considerate due operazioni piuttosto diverse per il postpruning: subtree replacement e subtree. Ad ogni nodo, uno schema di apprendimento potrebbe decidere se eseguire una subtree di sostituzione, subtree di sollevamento o lasciare il sottostrutto come è, non proveniente. La sostituzione subtree è l'operazione di potatura primaria, e lo guardiamo per primo. L'idea è di selezionare alcuni sottopiedi e sostituirli con foglie singole. Ad esempio, l'intero sottostrato di Figura 1.3 (a), che coinvolge due nodi interni e quattro nodi foglia, è stato sostituito da una sola foglia cattiva. Ciò determinerà sicuramente l'esattezza del set di allenamento a diminuire se l'albero originale è stato prodotto dall'algoritmo dell'albero di decisione descritto in precedenza perché continuava a costruire l'albero finché tutti i nodi dei fogli erano pura (o fino a quando tutti gli attributi erano stati testati). Tuttavia, può aumentare l'accuratezza su un set di test indipendentemente scelto. Quando viene applicata la sostituzione del sottofondo, essa procede dalle foglie e lavora verso la radice. Nell'esempio della Figura 1.3, l'intero sottotracco della Figura 1.3 (a) non sarebbe immediatamente sostituito. In primo luogo, si considererebbe la sostituzione dei tre nodi figlia nel subtree di contribuzione del piano sanitario con un singolo nodo foglia. Supponiamo che sia stata fatta una decisione per eseguire questa sostituzione, spiegheremo come questa decisione sarà fatta presto. Poi, continuando a lavorare indietro dalle foglie, si prenderà in considerazione la sostituzione dell'orario di lavoro subtree settimanale, che ora ha appena due nodi figlia, con un unico nodo foglia. Nell'esempio Figura 1.3 è stata effettivamente realizzata questa sostituzione, che rappresenta l'intero sottotracco di Figura 1.3 (a) sostituito da un singolo foglio contrassegnato male. Infine, si dovrebbe prendere in considerazione la sostituzione dei due nodi figlia nel sottopiano del primo anno di aumento salariale con un singolo nodo foglia. In questo caso la decisione non è stata fatta, quindi l'albero rimane come mostrato nella Figura 1.3 (a). Ancora una volta, esamineremo come queste decisioni sono effettivamente realizzate in breve tempo.

 La seconda operazione di potatura, sottostazione, è più complessa e non è chiaro che è necessariamente sempre utile. Tuttavia, perché viene utilizzato nel sistema di costruzione di alberi C4.5 influente, lo descriviamo qui. La sollevazione del sottopiano non si verifica nell'esempio della Figura 1.3, quindi utilizzare l'esempio artificiale della Figura 6.1 per illustrare. Qui si prende in considerazione la potatura dell'albero in Figura 6.1 (a) e il risultato è mostrato in Figura 6.1 (b). L'intero sottoprogetto da C verso il basso è stato "sollevato" per sostituire il sottopiano B. Si noti che, sebbene le figlie di B e C siano mostrate come foglie, possono essere intere sottostrutture. Naturalmente, se eseguiamo questa operazione di sollevamento, è necessario riclassificare gli esempi nei nodi contrassegnati 4 e 5 nel nuovo sottoprogetto guidato da C. È per questo che le figlie di quel nodo sono contrassegnate da primi: 1 ¢, 2 ¢ , E 3 ¢ - per indicare che non sono le stesse delle figlie originali 1, 2 e 3 ma differiscono per l'inclusione degli esempi originariamente coperti da 4 e 5.
Il sollevamento del sottosuolo è un'operazione che richiede tempo. Nelle implementazioni attuali è generalmente limitato a sollevare il sottoprogetto del ramo più popolare. Ciò significa che facciamo il sollevamento illustrato nella Figura 6.1 a condizione che il ramo da B a C abbia più esempi di formazione rispetto alle filiali da B a nodo 4 o da B a nodo 5. Altrimenti, se (ad esempio) il nodo 4 fosse Maggioranza di figlia B, si potrebbe considerare l'aumento del nodo 4 per sostituire B e la riclassificazione di tutti gli esempi sotto C, così come gli esempi dal nodo 5, nel nuovo nodo.
  Stima dei tassi di errore

 Tanto per le due operazioni di potatura. Ora dobbiamo affrontare la questione di come decidere se sostituire un nodo interno con una foglia (per il subtree replacement) o sostituire un nodo interno con uno dei nodi sottostanti (per il subtree). Per prendere questa decisione in modo razionale, è necessario stimare il tasso di errore che si prevede in un determinato nodo dato un set di test indipendentemente scelto. Dobbiamo stimare l'errore nei nodi interni e nei nodi fogliari. Se avessimo una simile stima, sarebbe chiaro se sostituire o sollevare un particolare sottotesto semplicemente confrontando l'errore stimato del sottostrutto con quello della sua sostituzione proposta. Prima di valutare l'errore di un sottotracco proposto per la raccolta, gli esempi che si trovano nei fratelli del nodo corrente - gli esempi ai nodi 4 e 5 della Figura 6.1 - dovrebbero essere temporaneamente riclassificati nell'albero sopraelevato.


Figure 6.1 Example of subtree raising, where node C is “raised” to subsume node B


 

Non è assolutamente necessario considerare l'errore di allenamento come stima dell'errore: ciò non avrebbe portato a alcuna potatura perché l'albero è stato costruito espressamente per quel set di formazione particolare. Un modo per ottenere una stima di errori è la tecnica di verifica standard: trattenere alcuni dei dati originariamente dati e utilizzarla come un insieme di test indipendente per stimare l'errore in ogni nodo. Questo si chiama potatura a errore ridotto. Essa soffre dallo svantaggio che l'albero effettivo si basa su meno dati.
    L'alternativa è cercare di fare una stima di errore in base ai dati formativi in ​​se. Questo è ciò che fa il C4.5 e qui descriveremo il suo metodo. È un euristico basato su un certo ragionamento statistico, ma la base statistica è piuttosto debole e ad hoc. Tuttavia, sembra funzionare bene nella pratica. L'idea è di considerare l'insieme di istanze che raggiungono ogni nodo e immaginare che la classe di maggioranza sia scelto per rappresentare quel nodo. Questo dà un certo numero di "errori", E, dal numero totale di istanze, N. Ora immaginiamo che la vera probabilità di errore nel nodo sia q e che le istanze N siano generate da un processo Bernoulli con il parametro q , Di cui E risultano essere errori.
    Questa è quasi la stessa situazione che abbiamo considerato quando si esamina il metodo di holdout nella Sezione 5.2, dove abbiamo calcolato gli intervalli di confidenza sulla probabilità di successo reale p dato un certo tasso di successo osservato. Ci sono due differenze. Uno è banale: qui esaminiamo il tasso di errore q piuttosto che il tasso di successo p; Questi sono semplicemente correlati con p + q = 1. La seconda è più grave: qui le figure E e N sono misurate dai dati di addestramento, mentre nella sezione 5.2 abbiamo considerato invece i dati di prova indipendenti. A causa di questa differenza, eseguiamo una stima pessimistica del tasso di errore usando il limite superiore di fiducia anziché dichiarando la stima come una gamma di confidenza.
  La matematica coinvolta è la stessa cosa di prima. Data una particolare fiducia c (la cifra predefinita utilizzata da C4.5 è c = 25%), troviamo limiti di confidenza z in modo tale

  ......

   Dove N è il numero di campioni, f = E / N è il tasso di errore osservato, e q è il tasso di errore vero. Come prima, questo porta ad un limite superiore di fiducia per q. Ora usiamo questo limite di confidenza superiore come una stima (pessimistica) per il tasso di errore e al nodo:

  ......

Si noti l'utilizzo del segno + prima della radice quadrata nel numeratore per ottenere il limite superiore di confidenza. Qui z è il numero di deviazioni standard corrispondenti alla fiducia c, che per c = 25% è z = 0,69.
   Per vedere come funziona tutto questo in pratica, vediamo di nuovo l'albero decisionale dei negoziati di lavoro di Figura 1.3, le cui parti salienti sono riprodotte nella Figura 6.2 con il numero di esempi di addestramento che raggiungono le foglie aggiunte. Utilizziamo la formula precedente con una figura di fiducia del 25%, cioè con z = 0,69. Si consideri la foglia inferiore sinistra, per la quale E = 2, N = 6 e così f = 0.33. Collegando queste cifre alla formula, il limite superiore di confidenza viene calcolato come e = 0.47. Ciò significa che invece di utilizzare il tasso di errore impostato per questa foglia, pari al 33%, utilizzeremo la stima pessimistica del 47%. Questo è davvero pessimista, considerando che sarebbe un errore sbagliato lasciare che il tasso di errore superi il 50% per un problema a due classi.
   Ma le cose sono peggiori per la foglia vicina, dove E = 1 e N = 2, perché la fiducia superiore diventa e = 0,72. La terza foglia ha lo stesso valore di e come il primo. Il passo successivo è quello di combinare le stime di errore per queste tre foglie nel rapporto tra il numero di esempi che coprono, 6: 2: 6, che porta ad una stima di errore combinata di 0,51. Ora consideriamo l'errore di stima per il nodo padre, contributo del piano sanitario. Questo riguarda nove esempi negativi e cinque buoni, quindi il tasso di errore impostato per l'allenamento è f = 5/14. Per questi valori, la formula precedente fornisce una stima pessimistica di errore di e = 0.46. Poiché questo è inferiore alla stima degli errori combinati dei tre figli, sono abbattuti.
    Il passo successivo è quello di considerare l'orario di lavoro per il nodo di una settimana, che ora ha due figli che sono entrambi foglie. L'errore di stima per il primo, con E = 1 e N = 2, è e = 0,72, e per il secondo è e = 0,46 come abbiamo appena visto. Combinandoli nel rapporto appropriato di 2: 14 porta ad un valore superiore alla stima dell'errore per il nodo dell'orario di lavoro, quindi il sottostrutto viene tirato via e sostituito da un nodo foglia.




   Figure 6.2 Pruning the labor negotiations decision tree.


    Le cifre di errore stimate ottenute in questi esempi dovrebbero essere prese con un granello di sale perché la stima è solo euristica e si basa su una serie di ipotesi sconnesse: l'uso del limite superiore di confidenza; L'assunzione di una distribuzione normale; E il fatto che vengono utilizzate statistiche dal set di formazione. Tuttavia, il comportamento qualitativo della formula di errore è corretto e il metodo sembra funzionare ragionevolmente bene nella pratica. Se necessario, il livello di fiducia sottostante, che abbiamo preso al 25%, può essere modificato per produrre risultati più soddisfacenti.   
   Complessità dell'induzione dell'albero di decisione

 Ora che abbiamo imparato a realizzare le operazioni di potatura, abbiamo finalmente ricoperto tutti gli aspetti centrali dell'induzione dell'albero di decisione. Prendiamo in considerazione e prendiamo in considerazione la complessità computazionale di indurre gli alberi decisionali. Utilizzeremo la notazione di ordine standard: O (n) significa una quantità che cresce al massimo in linea con n, O (n2) cresce al massimo in modo quadrato con n, e così via.
    Supponiamo che i dati di allenamento contenga n istanze e attributi m. Dobbiamo fare qualche ipotesi sulla dimensione dell'albero e supponiamo che la sua profondità sia sull'ordine del log n, cioè O (log n). Questa è la frequenza standard di crescita di un albero con foglie n, a condizione che rimanga "cespuglioso" e non degenera in alcuni rami molto lunghi e ruvidi. Si noti che tacitamente supponiamo che la maggior parte delle istanze sia diversa l'una dall'altra, e - è quasi la stessa cosa - che gli attributi m forniscono prove sufficienti per consentire la differenziazione delle istanze. Ad esempio, se ci fossero solo alcuni attributi binari, consentirebbero solo tanti casi di essere differenziati e l'albero non poteva crescere oltre un determinato punto, rendendo inutile un'analisi "nel limite".
  Il costo computazionale di costruire l'albero è in primo luogo


  O(mn log n).


 

 Si consideri la quantità di lavoro svolto per un attributo su tutti i nodi dell'albero. Non tutti gli esempi devono essere considerati in ogni nodo, ovviamente. Ma ad ogni profondità di albero possibile, è necessario considerare l'intero set di n istanze. Poiché nell'albero sono presenti diverse profondità di log n, la quantità di lavoro per questo attributo è O (n log n). Ad ogni nodo vengono considerati tutti gli attributi, quindi la quantità totale di lavoro è O (mn log n).
   Questo ragionamento fa alcune ipotesi. Se alcuni attributi sono numerici, devono essere ordinati, ma una volta che il sorting iniziale è stato fatto, non è necessario ricorrere ad ogni profondità dell'albero se si utilizza l'algoritmo appropriato (descritto in precedenza a pagina 190). Il sorting iniziale assume le operazioni O (n log n) per ognuno degli attributi fino a m: quindi la precedente figura di complessità è invariata. Se gli attributi sono nominali, tutti gli attributi non devono essere considerati in ciascun nodo albero poiché gli attributi che vengono utilizzati ulteriormente sull'albero non possono essere riutilizzati. Tuttavia, se gli attributi sono numerici, possono essere riutilizzati e quindi devono essere considerati ad ogni livello di albero.
  Successivamente, considerare la potatura con sostituzione del sottofondo. In primo luogo, è necessario fare una stima di errore per ogni nodo ad albero. A condizione che i conteggi siano mantenuti in modo appropriato, questo è lineare nel numero di nodi dell'albero. Quindi ogni nodo deve essere considerato per la sostituzione. L'albero ha al massimo n foglie, uno per ogni istanza. Se fosse un albero binario, ogni attributo era numerico o due valori, che gli darebbe 2n - 1 nodi; I rami di più vie serviranno solo a diminuire il numero di nodi interni. Così la complessità del subtree sostituzione è





    O(n).

   Infine, il sollevamento subtree ha una complessità di base uguale al subtree di sostituzione. Ma c'è un costo aggiunto perché le istanze devono essere riclassificate durante l'operazione di sollevamento. Durante l'intero processo, ogni istanza può essere riclassificata in ogni nodo tra la foglia e la radice, ossia più di O (log n). Questo rende il numero totale di riclassificazioni O (n log n). E la riclassificazione non è una singola operazione: quella che si verifica vicino alla radice prenderà operazioni O (logn) e una di media profondità prenderà metà di questo. Così la totalcomplexity del sollevamento subtree è la seguente



    O(n(log n))


Tenendo conto di tutte queste operazioni, la completa complessità dell'induzione dell'albero di decisione è


  O(mn log n) + O(n(log n) .

 Da alberi a regole


  È possibile leggere un insieme di regole direttamente da un albero di decisione, come indicato nella sezione 3.3, generando una regola per ciascuna foglia e facendo una combinazione di tutti i test incontrati sul percorso dalla radice a quella foglia. Questo produce regole che sono inequivocabili in quanto non importa in quale ordine vengono eseguiti. Tuttavia, le regole sono più complesse del necessario.
   Il tasso di errore stimato descritto in precedenza fornisce esattamente il meccanismo necessario per eseguire la rigatura delle regole. Dato una regola particolare, ogni condizione in esso è considerata per la cancellazione provvedendone la rimozione, determinando quale degli esercizi di formazione sono ora coperti dalla regola, calcolando da questa una stima pessimistica del tasso di errore della nuova regola e confrontando questo Con la stima pessimistica per la regola originale. Se la nuova regola è migliore, eliminare tale condizione e continuare, cercando altre condizioni da eliminare. Lasciare la regola quando non ci sono condizioni che migliorano se vengono rimosse. Una volta che tutte le regole sono state potate in questo modo, è necessario vedere se esistono duplicati e rimuoverli dall'insieme di regole.
   Questo è un approccio avido per individuare condizioni ridondanti in una regola e non c'è garanzia che le migliori condizioni di condizioni verranno rimosse. Un miglioramento sarebbe considerare tutti i sottoinsiemi delle condizioni, ma questo è di solito proibitivamente costoso. Un'altra soluzione potrebbe essere quella di utilizzare una tecnica di ottimizzazione come simulazione di ricottura o un algoritmo genetico per selezionare la versione migliore di questa regola. Tuttavia, la semplice soluzione avida sembra produrre set di regole abbastanza buone.
    Il problema, anche con il metodo avido, è il costo computazionale. Per ogni condizione che è un candidato per la cancellazione, l'effetto della regola deve essere rivalutato in tutte le istanze di addestramento. Ciò significa che la generazione di regole dagli alberi tende ad essere molto lenta e la sezione successiva descrive metodi molto più veloci che generano direttamente le regole di classificazione senza formare innanzitutto un albero di decisione.
  C4.5:Scelte e opzioni

 Concludiamo il nostro studio sugli alberi decisionali facendo qualche osservazione sull'utilizzo pratico del programma dell'albero decisionale C4.5 e del suo successore C5.0. Questi sono stati ideati da J. Ross Quinlan per un periodo di 20 anni che inizia alla fine degli anni '70. Una descrizione completa di C4.5, la versione dei primi anni '90, appare come un libro eccellente e leggibile (Quinlan 1993), insieme al codice sorgente completo. La versione più recente, C5.0, è commercialmente disponibile. L'induzione dell'albero di decisione sembra essere sostanzialmente la stessa di quella utilizzata dal C4.5 e le prove mostrano alcune differenze ma miglioramenti trascurabili. Tuttavia, la sua generazione di regole è notevolmente accelerata e utilizza chiaramente una tecnica diversa, anche se questa non è stata descritta nella letteratura aperta.
    C4.5 funziona essenzialmente come descritto nelle sezioni precedenti. Il valore di confidenza di default è impostato al 25% e funziona ragionevolmente bene nella maggior parte dei casi; Possibilmente dovrebbe essere modificato ad un valore inferiore, che provoca una potatura più drastica se il tasso di errore effettivo degli alberi su prune sulle serie di test è risultato molto superiore al tasso di errore stimato. C'è un altro parametro importante il cui effetto è quello di eliminare i test per i quali quasi tutti gli esempi di formazione hanno lo stesso risultato. Tali test sono spesso di poco uso. Di conseguenza, i test non sono inclusi nell'albero di decisione a meno che non dispongano almeno di due esiti che abbiano almeno un numero minimo di istanze. Il valore predefinito per questo minimo è 2, ma è controllabile e forse dovrebbe essere aumentato per le attività che hanno un sacco di dati rumorosi.

  Discusione


    L'induzione di alto livello degli alberi decisionali è probabilmente il metodo più ampiamente studiato per l'apprendimento macchina utilizzato nell'estrazione dei dati. I ricercatori hanno esaminato una serie di variazioni per quasi tutti gli aspetti concepibili del processo di apprendimento - ad esempio, diversi criteri per la selezione degli attributi o metodi di potatura modificati. Tuttavia, sono raramente premiati da sostanziali miglioramenti nell'accuratezza su uno spettro di set di dati diversi. A volte la dimensione degli alberi indotti è significativamente ridotta quando viene adottata una diversa strategia di potatura, ma spesso lo stesso effetto può essere raggiunto impostando il parametro di potatura di C4.5 ad un valore più piccolo.
    Nella nostra descrizione degli alberi decisionali, abbiamo assunto che solo un attributo viene utilizzato per dividere i dati in sottoinsiemi in ogni nodo dell'albero. Tuttavia, è possibile consentire test che implicano diversi attributi alla volta. Ad esempio, con attributi numerici ogni test può essere su una combinazione lineare di valori degli attributi. Quindi l'albero finale consiste in una gerarchia di modelli lineari del tipo descritto nella sezione 4.6 e le suddivisioni non sono più limitate ad essere asse-parallele. Gli alberi con test che coinvolgono più di un attributo sono chiamati alberi decisionali multivariati, in contrasto con i semplici alberi univariati che normalmente usiamo. Sono stati introdotti test multivariati con il sistema di classificazione e regressione (CART) per l'apprendimento degli alberi decisionali (Breiman et al., 1984). Essi sono spesso più precisi e più piccoli degli alberi univariati ma richiedono molto più tempo per generare e sono anche più difficili da interpretare. Parliamo brevemente di un modo per generarli usando l'analisi dei componenti principali nella sezione 7.3 (pagina 309).

    Regole di classificazione


Chiamiamo l'algoritmo di base di copertura per generare regole descritte nella sezione 4.4 una tecnica separata e conquista perché identifica una regola che copre le istanze della classe (e esclude quelle non in classe), li separa e continua Quelli che sono rimasti. Tali algoritmi sono stati utilizzati come base di molti sistemi che generano regole. Vi abbiamo descritto una semplice misura basata sulla correttezza per scegliere quale test da aggiungere alla regola in ogni fase.
   Tuttavia, ci sono molte altre possibilità, e il criterio particolare che viene utilizzato ha un effetto significativo sulle regole prodotte. Stiamo esaminando diversi criteri per la scelta dei test in questa sezione. Vediamo anche come l'algoritmo di rotazione di base può essere esteso a situazioni più pratiche accomodando valori mancanti e attributi numerici. Ma il vero problema di tutti questi schemi di generazione di regole è che essi tendono a sovrapporre i dati formativi e non generalizzano bene a gruppi di test indipendenti, in particolare su dati rumorosi. Per essere in grado di generare buone regole per i dati rumorosi, è necessario avere un modo per misurare il reale valore delle regole individuali.
   L'approccio standard per valutare il valore delle regole è quello di valutare il loro tasso di errore su un insieme indipendente di istanze, trattenuto dall'insieme di addestramento e lo spiegheremo successivamente. Dopo di che, descriviamo due studenti di regole di forza industriale: uno che combina la semplice tecnica separata e conquista con un passo di ottimizzazione globale e un'altra che funziona ripetutamente costruendo alberi decisionali parziali e estraendo le regole da essi. Infine, consideriamo come generare regole con eccezioni e eccezioni alle eccezioni.
  Criteri per la scelta dei test

 Quando abbiamo introdotto il principio dello studente di base nel paragrafo 4.4, abbiamo dovuto scoprire un modo per decidere quale dei molti possibili test da aggiungere a una regola per impedirgli di coprire eventuali esempi negativi. Per questo abbiamo usato il test che massimizza il rapporto

   p / t

Dove t è il numero totale di istanze che coprirà la nuova regola e p è il numero di questi che sono positivi, cioè, appartenenti alla classe in questione. Questo tenta di massimizzare la "correttezza" della regola sulla base del fatto che più è la percentuale di esempi positivi che copre, più una regola è più corretta. Un'alternativa è calcolare un guadagno di informazioni:

.......


Dove p e t sono il numero di istanze positive e il numero totale di istanze coperte dalla nuova regola, come prima, e P e T sono il numero corrispondente di istanze che soddisfano la regola prima che sia stato aggiunto il nuovo test. La ragione per questo è che rappresenta le informazioni totali acquisite riguardo agli attuali esempi positivi, che è dato dal numero di coloro che soddisfano il nuovo test, moltiplicato per le informazioni acquisite per ciascuna di esse.
    Il criterio di base per la scelta di un test da aggiungere a una regola è quello di trovare uno che copre più esempi positivi possibile, coprendo però pochi esempi negativi possibile. L'originale euristico basato sulla correttezza, che è solo la percentuale di esempi positivi tra tutti gli esempi coperti dalla regola, raggiunge un massimo quando non vengono trattati esempi negativi, indipendentemente dal numero di esempi positivi coperti dalla regola. Quindi un test che rende esatta la regola sarà preferito a quello che lo rende inesatto, non importa quanto pochi esempi positivi riguardano la regola precedente o quanti esempi positivi riguardano quest'ultimo. Ad esempio, se possiamo scegliere tra un test che copre un esempio, che è positivo, questo criterio lo preferisce per un test che copre 1000 esempi positivi e uno negativo.
    L'euristica basata sull'informazione, invece, mette molto più accento sulla copertura di un gran numero di esempi positivi, indipendentemente dal fatto che la regola così creata sia esatta. Naturalmente, entrambi gli algoritmi continuano ad aggiungere test fino a quando la regola finale prodotta è esatta, il che significa che la regola sarà terminata in precedenza utilizzando la misura di correttezza, mentre più termini dovranno essere aggiunti se viene utilizzata la misura basata sull'informazione. Così la misura basata sulla correttezza potrebbe trovare casi speciali e eliminarli completamente, salvando l'immagine più grande per più tardi (quando la regola più generale potrebbe essere più semplice perché sono già stati trattati casi speciali scomodi), mentre l'informazione basata cercherà generare prima le regole di copertura elevate e lasciare i casi speciali fino a tardi. Non è affatto ovvio che entrambe le strategie siano superiori all'altro nel produrre una regola esatta. Inoltre, l'intera situazione è complicata dal fatto che, come descritto in seguito, le regole possono essere troncate e quelle inesatte tollerate.
   Valori mancanti, attributi numerici - Missing values, numeric attributes

Come per gli algoritmi "dividere e conquistare" gli alberi decisionali, bisogna affrontare le cattive considerazioni pratiche dei valori mancanti e degli attributi numerici. In realtà, non c'è molto da dire. Ora che sappiamo come questi problemi possano essere risolti per l'induzione di alberi decisionali, sono possibili soluzioni appropriate per l'induzione di regole.
Quando si producono regole utilizzando algoritmi di copertura, i valori mancanti possono essere trattati meglio come se non corrispondono a nessuna delle prove. Ciò è particolarmente adatto quando viene prodotta una lista di decisioni perché incoraggia l'algoritmo di apprendimento a separare istanze positive utilizzando test che sono noti per avere successo. Ha l'effetto che entrambi i casi con valori mancanti sono trattati da regole che coinvolgono altri attributi che non mancano o che tutte le decisioni siano deferite finché la maggior parte delle altre istanze non sono state prese in considerazione, Coinvolgere altri attributi. Gli algoritmi di copertura per gli elenchi di decisione hanno un vantaggio determinato rispetto agli algoritmi degli alberi decisionali a questo proposito: gli esempi difficili possono essere lasciati fino a tardi, quando saranno meno gravi perché la maggior parte degli altri esempi sono già stati classificati e rimossi dalla Set di istanze. Gli attributi numerici possono essere trattati esattamente come gli alberi. Per ciascun attributo numerico, le istanze vengono ordinate in base al valore dell'attributo e, per ogni soglia possibile, un test binario inferiore a quello maggiore viene considerato e valutato esattamente come un attributo binario.
  Generare buone regole


   Supponiamo che non si vogliono generare regole perfette che garantiscano la classificazione corretta su tutti i casi del set di formazione, ma preferiscono generare "sensibili" quelli che evitano overfitting del set di formazione e quindi hanno maggiori probabilità di eseguire bene le nuove Istanze di prova. Come decidi quali regole valgono? Come si fa a sapere quando diventa controproducente continuare ad aggiungere termini a una regola per escludere alcune istanze fastidiose del tipo sbagliato, escludendo sempre più istanze del tipo giusto?
  Diamo un'occhiata ad alcuni esempi di possibili regole - alcune buone e cattive - per il problema delle lenti a contatto nella tabella 1.1. Prendi in considerazione prima la regola


   If astigmatism = yes and tear production rate = normal
      then recommendation = hard


Ciò dà un risultato corretto per quattro dei sei casi che copre; Quindi la sua frazione di successo è 4/6. Supponiamo di aggiungere un ulteriore termine per rendere la regola "perfetta":


   If astigmatism = yes and tear production rate = normal
      and age = young then recommendation = hard

  Questo migliora la precisione a 2/2. Quale regola è meglio? Il secondo è più accurato sui dati formativi ma copre solo due casi, mentre il primo copre sei. Può darsi che la seconda versione non sia sufficiente a sovraccaricare i dati formativi. Per un principio pratico, abbiamo bisogno di un principio di scelta della versione appropriata di una regola, preferibilmente quella che massimizza la precisione sui dati di prova futuri. Supponiamo di dividere i dati di formazione in due parti che chiameremo un set crescente e un set di potatura. Il set crescente viene utilizzato per formare una regola utilizzando l'algoritmo di base di copertura. Quindi un test viene eliminato dalla regola e l'effetto viene valutato provando la regola troncata sul set di potatura e vedere se esegue meglio la regola originale. Questo processo di potatura viene ripetuto finché la regola non può essere migliorata eliminando eventuali ulteriori test. L'intera procedura viene ripetuta per ogni classe, ottenendo una regola migliore per ogni classe e la regola migliore generale viene stabilita valutando le regole sul set di potatura. Questa regola viene quindi aggiunta all'insieme di regole, le istanze coprono rimosse dai dati di addestramento - sia da colture che da potatura - e il processo viene ripetuto.
  Perché non fare la potatura come costruire la regola, piuttosto che costruire tutta la cosa e poi gettare parti via? Cioè, perché non preprune piuttosto che postprune? Proprio come quando si decide di tagliare alberi, è spesso meglio coltivare l'albero alla sua dimensione massima e poi tornare indietro, quindi con le regole spesso è meglio fare una regola perfetta e poi farne la piastra. Chi lo sa? Aggiungendo questo ultimo termine può fare una regola veramente buona, una situazione che non avremmo mai potuto notare se avessimo adottato una strategia aggressiva di prepruning.

  È essenziale che i gruppi di crescita e di potatura siano separati perché è fuorviante valutare una regola sui dati utilizzati per formarla: ciò comporterebbe seri errori preferendo regole sovrapposte. Di solito l'allenamento è diviso in modo che due terzi di istanze vengono utilizzati per crescere e un terzo per la potatura. Uno svantaggio, ovviamente, è che l'apprendimento si verifica da istanze solo nel set crescente e quindi l'algoritmo potrebbe mancare delle regole importanti perché alcune istanze chiave erano state assegnate al set di potatura. Inoltre, la regola errata potrebbe essere preferita perché il set di potature contiene solo un terzo dei dati e non può essere completamente rappresentativo. Questi effetti possono essere migliorati ricollegando i dati di addestramento in set di crescita e di potatura ad ogni ciclo dell'algoritmo, cioè dopo che ciascuna regola viene finalmente scelta.
  L'idea di utilizzare un set di potatura separata per la potatura, che è applicabile agli alberi decisionali e ai set di regole, viene chiamata potatura a errore ridotto. La variante descritta in precedenza prunes una regola immediatamente dopo che è stata coltivata e viene chiamata potatura incrementale a errori ridotti. Un'altra possibilità è quella di costruire una regola piena, priva di regole prima, tagliandola successivamente scartando singole prove.     Tuttavia, questo metodo è molto più lento.
Naturalmente, ci sono molti modi diversi per valutare il valore di una regola basata sul set di potatura. Una misura semplice consiste nel considerare come la regola farebbe a discriminare la classe prevista da altre classi se fosse l'unica regola della teoria, operante sotto l'assunzione del mondo chiuso. Se ottiene istanze p direttamente dalle t istanze che copre, e ci sono istanze P di questa classe di un totale di istanze T complessivamente, quindi ottiene istanze p positive. Le istanze che non coprono sono N - n negative, dove n = t - p è il numero di istanze negative che la regola copre e N = T - P è il numero totale di istanze negative. Quindi la regola ha un rapporto di successo generale e questa quantità, valutata sul set di test, è stata utilizzata per valutare il successo di una regola quando si usa la potatura a errori ridotti.

 

   [ p + ( N - n)] T ,


 Questa misura è aperta a critiche perché tratta non coprire esempi negativi altrettanto importanti come la copertura di quelli positivi, che è irrealistico in una situazione in cui ciò che viene valutato è una regola che alla fine servirà a fianco di molti altri. Ad esempio, una regola che ottiene p = 2000 istanze direttamente fuori da una copertura totale di 3000 (cioè ottiene n = 1000 errata) viene giudicata più efficace di quella che ottiene p = 1000 su una copertura totale di 1001 (cioè , N = 1 errato), perché nel primo caso [p + (N-n)] / T è [1000 + N] / T, ma solo nel punto [999 + N] / T. Ciò è controintuitivo: la prima regola è chiaramente meno predittiva del secondo, perché ha 33,0% in contrasto con solo 0,1% probabilità di essere errato.
   Utilizzando la velocità di successo p / t come misura, quanto nella formulazione originale dell'algoritmo di copertura (Figura 4.8), non è la soluzione perfetta, perché preferirebbe una regola che ha ottenuto un diritto di istanza unica (p = 1) Di una copertura totale di 1 (così n = 0) alla regola molto più utile che ha ottenuto 1000 a destra su 1001. Un altro euristico utilizzato è (p-n) / t, ma che soffre di esattamente lo stesso problema perché (P - n) / t = 2p / t - 1 e quindi il risultato, quando si confronta una regola con un'altra, è uguale a quello del tasso di successo. Sembra difficile trovare una semplice misura del valore di una regola che corrisponde all'intuizione in tutti i casi.
   Qualunque sia l'euristico utilizzato per misurare il valore di una regola, l'algoritmo incrementale di potatura a errore ridotto è lo stesso. Un possibile algoritmo di apprendimento basato su questa idea è riportato in Figura 6.3. Genera un elenco di decisioni, creando regole per ogni classe a sua volta e scegliendo in ogni fase la versione migliore della regola in base alla sua valenza sui dati di potatura. L'algoritmo base di copertura per la generazione di regole (Figura 4.8) viene utilizzato per ottenere buone regole per ogni classe, scegliendo le condizioni per aggiungere alla regola usando la misura di precisione p / t descritta in precedenza.
  Questo metodo è stato utilizzato per produrre regimi-induzione schemi che possono elaborare grandi quantità di dati e operare molto rapidamente. Può essere accelerata generando regole per le classi in ordine piuttosto che generare una regola per ogni classe in ogni fase e scegliendo il meglio. Un ordine appropriato è l'ordine crescente in cui si verificano nel set di allenamento in modo che la classe più raramente viene elaborata prima e le più comuni vengono elaborate in un secondo momento. Un'altra accelerazione significativa si ottiene interrompendo l'intero processo quando viene generata una regola di precisione sufficientemente bassa, in modo da non trascorrere il tempo generando molte regole alla fine con copertura molto ridotta. Tuttavia, condizioni di terminazione molto semplici (come fermarsi quando l'esattezza di una regola è inferiore all'accuratezza predefinita per la classe che prevede) non forniscono la migliore prestazione e le uniche condizioni che sono state trovate sembrano funzionare bene Compilati in base al principio MDL.

 

  Initialize E to the instance set
    Split E into Grow and Prune in the ratio 2:1
    For each class C for which Grow and Prune both contain an instance
    Use the basic covering algorithm to create the best perfect rule for class C
    Calculate the worth w(R) for the rule on Prune, and of the rule with the
    final condition omitted w(R-)
    While w(R-) > w(R), remove the final condition from the rule and repeat the
    previous step
    From the rules generated, select the one with the largest w(R)
    Print the rule
    Remove the instances covered by the rule from E
    Continue


Figure 6.3 Algorithm for forming rules by incremental reduced-error pruning.

     Usare l'ottimizzazione globale

 In generale, le regole generate utilizzando la potatura a incremento ridotto di errori in questo modo sembrano funzionare abbastanza bene, in particolare su grandi set di dati. Tuttavia, è stato trovato che un miglioramento delle prestazioni può essere ottenuto eseguendo un passo di ottimizzazione globale sull'insieme delle regole indotte. La motivazione è di aumentare l'esattezza della regola impostata dalla revisione o dalla sostituzione delle singole regole. Gli esperimenti dimostrano che sia la dimensione sia la performance delle serie di regole sono notevolmente migliorate dall'ottimizzazione postinduzione. D'altra parte, il processo stesso è piuttosto complesso.
  Per dare un'idea di come diventano elaborati ed euristici i "le regole derivate", la figura 6.4 mostra un algoritmo denominato RIPPER, un acronimo per la potatura incrementale ripetuta per produrre la riduzione degli errori.Le classi vengono esaminate in dimensioni crescenti e un insieme iniziale di regole per la classe viene generato utilizzando la potatura incrementale a errori ridotti. Viene introdotta una condizione di arresto supplementare che dipende dalla lunghezza della descrizione degli esempi e delle regole. La lunghezza della descrizione DL è una formula complessa che tiene conto del numero di bit necessari per inviare un insieme di esempi rispetto a un insieme di regole, il numero di bit richiesti per inviare una regola con le condizioni k e il numero di bit necessari Per inviare l'intero k-volte un fattore arbitrario del 50% per compensare la possibile ridondanza degli attributi.
   Dopo aver prodotto una regola impostata per la classe, ogni regola viene riesaminata e vengono prodotte due varianti, utilizzando ancora una potatura a errori ridotti, ma in questa fase vengono rimosse le istanze coperte da altre regole per la classe dal set di potature e il tasso di successo sul Le istanze rimanenti vengono utilizzate come criterio di potatura. Se una delle due varianti produce una migliore lunghezza di descrizione, sostituisce la regola. Successivamente, riattivamo la fase iniziale di costruzione per eliminare eventuali istanze scoperte di questa classe. Un controllo finale viene fatto per assicurare che ogni regola contribuisca alla riduzione della lunghezza della descrizione, prima di procedere a generare regole per la classe successiva.


  Figure 6.4 RIPPER: (a) algorithm for rule learning and (b) meaning of symbols.
   Ottenere regole da alberi di decisione parziale

  Esiste un approccio alternativo per regolare l'induzione che evita l'ottimizzazione globale ma produce comunque "set precisi e compatti". Il metodo combina la strategia di "divide-and-conquer" per l'apprendimento degli alberi decisionali con il comando 'separatend-conquer' per l'apprendimento delle regole. Adotta la strategia "separate-and-conquer" in quanto crea una regola, elimina le istanze che copre e continua a creare regole ricorsive per le restanti istanze finché non si restano.
   Tuttavia, differisce dall'approccio standard nel modo in cui viene creata ogni regola. In sostanza, per creare una sola regola, un albero di decisione potato è costruito per l'insieme attuale di istanze, la foglia con la massima copertura viene fatta in una regola e l'albero viene scartato.
  La prospettiva di costruire ripetutamente "gli alberi decisionali" solo per scartare la maggior parte di loro non è così bizzarra come sembrava prima. Utilizzando un albero potato per ottenere una regola invece di costruirlo in modo incrementale aggiungendo le congiunzioni una alla volta evita una tendenza a sovrapporre che è un problema caratteristico del principio di "separare e conquistare" il principiante. L'utilizzo della metodologia "separata e conquista" in combinazione con gli alberi decisionali aggiunge flessibilità e velocità. È veramente spreco costruire un albero di decisione completo solo per ottenere una sola regola, ma il processo può essere accelerato significativamente senza sacrificare i vantaggi precedenti.
  L'idea fondamentale è quella di costruire un albero di decisione parziale anziché un esame pienamente esplorato.


Un albero di decisione parziale è un albero di decisione ordinario che contiene rami a sottopunti non definiti. Per generare un tale albero, le operazioni di costruzione e di potatura sono integrate al fine di trovare una sottostazione "stabile" che non può essere semplificata ulteriormente. Una volta trovato questo sottostruttura, l'edificio ad albero cessa e si legge una sola regola.
L'algoritmo di creazione di alberi è riassunto nella Figura 6.5: divide un insieme di istanze ricorsivamente in un albero parziale. Il primo passo sceglie un test e suddivide le istanze in sottoinsiemi. La scelta viene fatta utilizzando lo stesso euristico-gain che normalmente viene utilizzato per costruire alberi decisionali (Sezione 4.3). Poi i sottogruppi sono espansi in ordine crescente della loro entropia media.
   La ragione di questo è che i sottostruttori successivi non saranno più probabilmente finiti per essere espansi e un sottoinsieme con bassa entropia media è più probabile che si traduca in un sottotree piccolo e quindi produca una regola più generale. Ciò procede ricorsivamente fino a quando un sottoinsieme viene espanso in una foglia e poi continua ulteriormente con il backtracking. Ma non appena appare un nodo interno che ha tutti i suoi figli espansi in foglie, l'algoritmo controlla se quel nodo è meglio sostituito da una singola foglia. Questo è solo il normale funzionamento subtree di sostituzione della potatura albero decisionale (Sezione 6.1). Se viene eseguita la sostituzione, l'algoritmo torna indietro nel modo standard, esplorando i fratelli del nodo appena sostituito.
   Tuttavia, se durante il backtrack si incontra un nodo di cui tutti i figli non sono foglie - e questo accadrà non appena una sostituzione subtree potenziale non viene eseguita - i restanti sottotitoli vengono lasciati inesplorati ei sottostrutture corrispondenti restano indefiniti. A causa della struttura ricorsiva dell'algoritmo, questo evento termina automaticamente la generazione di alberi.

  

  Figure 6.6 Example of building a partial tree.


 La Figura 6.6 mostra un esempio passo per passo. Durante le fasi della Figura 6.6 (da a) a (c), l'edificio ad albero continua ricorsivamente nel modo normale, ad eccezione che ad ogni punto viene scelto il fratello minore di entropia per l'espansione: nodo 3 tra stadi (a) e (b). I nodi ellittici grigi sono ancora inaspettati; Quelli rettangolari sono foglie. Tra stadi (b) e (c), il nodo rettangolare avrà un'entropia inferiore rispetto al suo fratello, nodo 5, ma non può essere ulteriormente ampliata perché è una foglia. Viene eseguito il backtracking e il nodo 5 viene scelto per l'espansione.
  Una volta raggiunta la fase (c), esiste un nodo - nodo 5 che ha tutti i suoi figli espulsi in foglie e questo provoca la potatura. La sostituzione del sottostazione per il nodo 5 è considerata e accettata, portando alla fase (d). Allora il nodo 3 è considerato per la sostituzione del sottofondo e questa operazione viene nuovamente accettata. Il backtracking continua e il nodo 4, con entropia inferiore rispetto al nodo 2, si espande in due foglie. Ora il subtree sostituzione è considerato per il nodo 4: supponiamo che il nodo 4 non venga sostituito.
  A questo punto il processo termina con l'albero parziale a tre fogli della fase (e). Se i dati sono privi di rumore e contengono istanze sufficienti per impedire l'algoritmo di eseguire qualsiasi potatura, bisogna esplorare un solo percorso dell'albero di decisione completo. Questo raggiunge il maggior guadagno di prestazioni possibile sul metodo naïve che costruisce ogni volta una struttura di decisione completa. Il guadagno diminuisce in quanto si effettuano più potature. Per i set di dati con attributi numerici, la complessità temporale asintotica dell'algoritmo è la stessa di costruire l'albero di decisione completo, perché in questo caso la complessità è dominata dal tempo necessario per ordinare in primo luogo i valori degli attributi.
    Una volta che è stato costruito un albero parziale, viene estratta una sola regola. Ogni foglia corrisponde ad una regola possibile e cerchiamo la foglia "migliore" di quei sottotrees (tipicamente una piccola minoranza) che sono stati estesi in foglie. Gli esperimenti mostrano che è meglio mirare alla regola più generale scegliendo la foglia che copre il maggior numero di istanze.
  Quando un set di dati contiene valori mancanti, questi possono essere trattati esattamente come sono in fase di costruzione degli alberi decisionali. Se un'istanza non può essere assegnata a un dato ramo a causa di un valore di attributo mancante, viene assegnato ad ognuna delle filiali con un peso proporzionale al numero di istanze di formazione che scendono in quel ramo, normalizzato dal numero totale di istruzioni di formazione con noti Valori nel nodo. Durante il test, la stessa procedura viene applicata separatamente per ciascuna regola, associando così un peso all'applicazione di ciascuna regola all'istanza di prova. Quel peso viene detratto dal peso totale dell'istanza prima di passarlo alla regola successiva nell'elenco. Una volta che il peso è ridotto a zero, le probabilità di classe previste vengono combinate in una classificazione finale secondo i pesi.
    Questo produce un metodo semplice ma sorprendentemente efficace per apprendere elenchi di decisione per dati rumorosi. Il suo principale vantaggio rispetto ad altri schemi di revisionamento è la semplicità, perché altri metodi richiedono una fase complessiva di ottimizzazione globale per ottenere lo stesso livello di prestazioni.
  Regole con Eccezioni 

 Nella sezione 3.5 abbiamo appreso che un'estensione naturale delle regole è consentire loro di avere eccezioni e eccezioni alle eccezioni e così via, anzi l'insieme di regole può essere considerato come eccezioni a una regola di classificazione predefinita che viene utilizzata quando nessun altro Le regole si applicano. Il metodo per generare una regola "buona", usando una delle misure descritte nella sezione precedente, fornisce esattamente il meccanismo necessario per generare regole con eccezioni.
  In primo luogo, è selezionata una classe predefinita per la regola di alto livello: è naturale utilizzare la classe che si verifica più frequentemente nei dati di addestramento. Quindi, viene rilevata una regola relativa a qualsiasi classe diversa da quella predefinita. Di tutte queste regole è naturale cercare quello con il potere più discriminatorio, ad esempio quello con la migliore valutazione su un set di test. Supponiamo che questa regola abbia la forma


    if <condition> then class = <new class>


   Viene utilizzato per dividere i dati di formazione in due sottoinsiemi: uno contenente tutti i casi per cui la condizione della condizione è vera e l'altra contiene quelle per cui è falsa. Se ciascun sottoinsieme contiene istanze di più di una classe, l'algoritmo viene richiamato ricorsivamente su quel sottoinsieme. Per il sottoinsieme per cui la condizione è vera, la "classe di default" è la nuova classe come specificata dalla regola; Per il sottoinsieme per cui la condizione è falsa, la classe predefinita resta come prima.
    Esaminiamo come funzionerebbe questo algoritmo per le regole con le eccezioni indicate nella sezione 3.5 per i dati Iris della tabella 1.4. Rappresentemo le regole nella forma grafica mostrata in Figura 6.7, che è infatti equivalente alle regole testuali che abbiamo dato in Figura 3.5. Il valore predefinito di Iris setosa è il nodo di entrata in alto a sinistra. I percorsi orizzontali e tratteggiati presentano eccezioni, quindi la casella successiva, che contiene una regola che conclude Iris versicolor, è un'eccezione all'impostazione predefinita. Sotto di questa è un'alternativa, una seconda eccezione - le alternative sono rappresentate da linee verticali e solide che portano alla conclusione Iris virginica. Seguendo il percorso superiore lungo orizzontalmente si passa ad un'eccezione alla regola versicolor Iris che lo sostituisce ogni volta che la condizione nella casella in alto a destra, con la conclusione Iris virginica. Sotto questo è un'alternativa, che conduce (come succede) alla stessa conclusione. Tornando alla casella al centro inferiore, questa ha la sua eccezione, la casella in basso a destra, che dà la conclusione Iris versicolor. I numeri in basso a destra di ogni casella forniscono la "copertura" della regola, espressa come numero di esempi che lo soddisfano diviso per il numero che soddisfa la sua condizione, ma non la sua conclusione. Ad esempio, la condizione nella casella centrale superiore si applica a 52 degli esempi, e 49 di essi sono Iris versicolor. La forza di questa rappresentazione è che si può ottenere una sensazione molto buona per l'effetto delle regole dalle caselle verso il lato sinistro; Le caselle a destra coprono solo alcuni casi eccezionali.


    Figure 6.7 Rules with exceptions for the iris data.

 Per creare queste regole, l'impostazione predefinita viene impostata per l'Iris setosa prendendo la classe più frequente nel set di dati. Questa è una scelta arbitraria perché per questo set di dati tutte le classi si verificano esattamente 50 volte; Come mostrato nella Figura 6.7 questa regola di default è corretta in 50 di 150 casi. Viene quindi ricercata la regola migliore che prevede un'altra classe. In questo caso è



 if petal length ≥ 2.45 and petal length < 5.355
    and petal width < 1.75 then Iris versicolor


   Questa regola copre 52 istanze, di cui 49 sono Iris versicolor. Divide il set di dati in due sottoinsiemi: le 52 istanze che soddisfano la condizione della regola ei 98 restanti che non lo fanno.
In primo luogo lavoriamo sull'ex sottoinsieme. La classe predefinita per queste istanze è Iris versicolor: ci sono solo tre eccezioni, tutte possibili per essere Iris virginica. La regola migliore per questo sottoinsieme che non prevede Iris versicolor viene identificata successivamente:



 if petal length ≥ 4.95 and petal width < 1.55 then Iris virginica


 Copre due delle tre virginiche Iris e nient'altro. Di nuovo divide il sottoinsieme in due: quei casi che soddisfano la sua condizione e quelli che non lo fanno. Fortunatamente, in questo caso, tutti i casi che soddisfano la condizione hanno infatti la classe Iris virginica, quindi non c'è bisogno di un'ulteriore eccezione.
Tuttavia, le altre istanze comprendono ancora la terza Iris virginica, insieme a 49 versicolori Iris, che sono il predefinito a questo punto. Ancora una volta viene ricercata la regola migliore:



  if sepal length < 4.95 and sepal width ≥ 2.45 then Iris virginica


  Questa regola copre la restante Iris virginica e nient'altro, quindi non ha alcuna eccezione. Inoltre, tutte le istanze rimanenti nel sottogruppo che non soddisfano la sua condizione hanno la classe Iris versicolor, che è l'impostazione predefinita, quindi non è più necessario eseguire.
Ritorna ora al secondo sottoinsieme creato dalla regola iniziale, le istanze che non soddisfano la condizione

  

  petal length ≥ 2.45 and petal length < 5.355 and petal width < 1.75


  Delle regole per queste istanze che non prevedono la classe predefinita Iris setosa, il meglio è


   if petal length ≥ 3.35 then Iris virginica


  Copre tutte le 47 virginicas Iris che sono nell'insieme di esempio (3 sono state rimosse dalla prima regola, come spiegato in precedenza). Copre anche 1 Iris versicolor. Questo deve essere preso in considerazione come un'eccezione, per la regola finale:



  if petal length < 4.85 and sepal length < 5.95 then Iris versicolor


   Fortunatamente, l'insieme di istanze che non soddisfano la sua condizione sono tutte le impostazioni predefinite, Iris setosa. Così la procedura è terminata.
    Le regole prodotte hanno la proprietà che la maggior parte degli esempi sono coperti dalle regole di alto livello e quelle di livello inferiore rappresentano davvero eccezioni. Ad esempio, l'ultima clausola di eccezione nelle regole precedenti e la clausola altrimenti nidificata in entrambi i casi coprono un esempio solitario e la rimozione avrebbe poco effetto. Anche la regola di eccezione nidificata rimane solo due esempi. Così si può ottenere una sensazione eccellente per ciò che le regole fanno ignorando tutta la struttura più profonda e guardando solo al primo livello o due. Quella è l'attrazione delle regole con eccezioni.
    Discusione

 Tutti gli algoritmi per la produzione delle regole di classificazione che abbiamo descritto usano l'approccio di base o di separazione e conquista. Per il caso semplice e senza rumori questo produce PRISM (Cendrowska 1987), un algoritmo semplice e facile da comprendere. Quando si applicano a problemi a due categorie con l'assunzione del mondo chiuso, è necessario solo produrre regole per una classe: allora le regole sono in forma normale disgiunta e possono essere eseguite su istanze di prova senza che ne derivino ambiguità. Quando si applicano ai problemi multiclasse, viene generato un set di regole separato per ciascuna classe: pertanto un'istanza di prova può essere assegnata a più classi oa nessuna classe, e sono necessarie ulteriori euristiche se viene richiesta una previsione unica.
     Per ridurre l'overfitting in situazioni rumorose, è necessario produrre regole che non sono "perfette" anche sul set di allenamento. Per fare questo è necessario disporre di una misura per la "bontà" o valore di una regola. Con tale misura è possibile abbandonare l'approccio classe-per-classe dell'algoritmo di copertura di base e iniziare generando la regola migliore, indipendentemente dalla classe che prevede e quindi rimuovere tutti gli esempi coperti da questa regola e continuare processo.
   Questo produce un metodo per produrre un elenco di decisioni piuttosto che un insieme di regole di classificazione indipendenti e le liste di decisione hanno il vantaggio importante che non generano ambiguità quando vengono interpretate.

  L'idea di potatura incrementale di errori ridotti è dovuta a Fürnkranz e Widmer (1994) e costituisce la base per un'induzione di regola veloce ed efficace. Il principiante RIPPER è dovuto a Cohen (1995), anche se la descrizione pubblicata sembra differire dall'implementazione nel modo in cui la lunghezza della descrizione (DL) influenza la condizione di arresto. Quello che abbiamo presentato qui è l'idea di base dell'algoritmo; Ci sono molti altri dettagli nell'implementazione.
    Tutta la questione di misurare il valore di una regola non è ancora stata risolta in modo soddisfacente. Sono state proposte molte misure diverse, alcuni esplicitamente euristici e altri basati su motivi informativi-teorici o probabilistici. Tuttavia, sembra non avere consenso su quale sia la misura migliore da utilizzare. Un ampio studio teorico di vari criteri è stato eseguito da Fürnkranz e Flach (2005).
    Il metodo di regola-apprendimento basato su alberi decisionali parziali è stato sviluppato da Frank e Witten (1998). Produce set di regole accurate quanto quelli generati da C4.5 e più precisi di altri metodi di induzione rapida. Tuttavia, il suo principale vantaggio rispetto ad altri schemi non è la prestazione, ma la semplicità: combinando il metodo di induzione di un albero decisionale dall'alto verso il basso con l'apprendimento delle regole separate e conquistate, produce buone regole senza alcuna necessità di ottimizzazione globale.
   La procedura per la generazione di regole con eccezioni è stata sviluppata come un'opzione nel sistema Induct di Gaines e Compton (1995), che li ha definiti regole di ripple-down. In un esperimento con un grande set di dati medici (22.000 istanze, 32 attributi e 60 classi), essi hanno scoperto che le persone possono comprendere più grandi sistemi di regole con eccezioni più facilmente rispetto a sistemi equivalenti di regole regolari perché è così che pensano al Diagnosi mediche complesse che sono coinvolte. Richards e Compton (1998) descrivono il loro ruolo come alternativa all'ingegneria classica della conoscenza.
     Estensione di modelli lineari

 La sezione 4.6 descrive come i modelli lineari semplici possono essere utilizzati per la classificazione in situazioni in cui tutti gli attributi sono numerici. Il loro più grande svantaggio è che possono rappresentare solo i confini lineari tra le classi, che li rende troppo semplici per molte applicazioni pratiche. Le macchine vettoriali di supporto utilizzano modelli lineari per implementare i confini della classe non lineare. (Anche se è un termine ampiamente usato, le macchine vettoriali di supporto sono qualcosa di erroneo nome: sono algoritmi, non macchine.) Come può essere possibile? Il trucco è facile: trasformare l'input utilizzando una mappatura non lineare; In altre parole, trasformare lo spazio di istanza in un nuovo spazio. Con una mappatura non lineare, una retta nel nuovo spazio non sembra dritto nello spazio dell'istanza originale. Un modello lineare costruito nel nuovo spazio può rappresentare un limite di decisione non lineare nello spazio originale.
    Immagina di applicare questa idea direttamente ai modelli lineari ordinari nella sezione 4.6. Ad esempio, l'insieme originale di attributi potrebbe essere sostituito da uno che fornisce tutti i prodotti di n fattori che possono essere costruiti da questi attributi. Un esempio per due attributi, inclusi tutti i prodotti con tre fattori, è



     x = w1a1 + w 2a1 a2 + w 3a1a2 + w 4a2 .


  Qui x è il risultato, a1 e a2 sono i due valori dell'attributo e ci sono quattro pesi da imparare. Come descritto nella sezione 4.6, il risultato può essere utilizzato per la classificazione mediante formazione di un sistema lineare per ogni classe e assegnazione di un'istanza sconosciuta alla classe che fornisce la massima uscita x - la tecnica standard della regressione lineare multiresponse. Quindi, a1 e a2 saranno i valori dell'attributo per l'istanza di prova. Per generare un modello lineare nello spazio compreso tra questi prodotti, ogni istanza di formazione viene mappata nel nuovo spazio computando tutti i possibili prodotti a tre fattori dei suoi due valori di attributo. L'algoritmo di apprendimento viene quindi applicato alle istanze trasformate. Per classificare un'istanza, viene elaborata dalla stessa trasformazione prima della classificazione. Non c'è nulla che ci impedisca di aggiungere altri attributi sintetici. Ad esempio, se un termine costante fosse incluso, gli attributi originali e tutti i prodotti a due fattori avrebbero prodotto otto pesi da imparare. (In alternativa, aggiungere un attributo aggiuntivo il cui valore è sempre una costante avrebbe lo stesso effetto.) Infatti, i polinomi di grado sufficientemente elevato possono approssimare i limiti arbitrari di decisione a qualsiasi precisione richiesta.
    Sembra troppo bello per essere vero, e lo è. Come probabilmente avete immaginato, i problemi derivano da questa procedura a causa del gran numero di coefficienti introdotti dalla trasformazione in qualsiasi impostazione realistica. Il primo ostacolo è la complessità computazionale. Con 10 attributi nel set di dati originale, supponiamo di includere tutti i prodotti con cinque fattori: allora l'algoritmo di apprendimento dovrà determinare più di 2000 coefficienti. Se il suo tempo di esecuzione è cubico nel numero di attributi, come è per la regressione lineare, la formazione sarà impraticabile.
   Questo è un problema di praticabilità. Il secondo problema è uno dei principi: overfitting. Se il numero di coefficienti è elevato rispetto al numero di istanze di addestramento, il modello risultante sarà "troppo non lineare" - sovrascrive i dati formativi. Ci sono troppi parametri nel modello.
 L'iperplano di margine massimo

  Figure 6.8 A maximum margin hyperplane.

  Le macchine vettoriali di supporto risolvono entrambi i problemi. Essi sono basati su un algoritmo che trova un tipo speciale di modello lineare: il margine massimo iperplano. Sappiamo già che cosa è un iperplano: è solo un'altra parola per un modello lineare. Per visualizzare un hyperplane di margine massimo, immaginate un set di dati a due classi, le cui classi sono linearmente separabili; Ovvero c'è un spazio di hyperplane nello spazio di esempio che classifica correttamente tutte le istanze di addestramento. L'iperplano di margine massimo è quello che offre la massima separazione tra le classi, non si avvicina più di quanto sia necessario. Un esempio è mostrato nella Figura 6.8, in cui le classi sono rappresentate rispettivamente da cerchi aperti e pieni. Tecnicamente, lo scafo convesso di un set di punti è il poligono convesso più chiuso: il suo contorno emerge quando si collega ogni punto dell'insieme ad ogni altro punto.
    Poiché abbiamo supposto che le due classi siano lineariamente separabili, i loro scafi convessi non possono sovrapporsi. Tra tutti gli iperplani che separano le classi, l'iperplano di margine massimo è quello più lontano possibile da entrambi gli scafi convessi, è il bisettore perpendicolare della linea più breve che collega gli scafi, che è mostrato tratteggiato nella figura.
Le istanze che sono più vicine al hyperplane del margine massimo - quelle con la distanza minima di esso - vengono chiamate vettori di supporto. C'è sempre almeno un vettore di supporto per ogni classe, e spesso ci sono più. La cosa importante è che l'insieme dei vettori di supporto definisce in modo univoco l'iperplano di margine massimo per il problema dell'apprendimento. Dato i vettori di supporto per le due classi, possiamo facilmente costruire il hyperplane di margine massimo. Tutti gli altri istituti di formazione sono irrilevanti, possono essere eliminati senza modificare la posizione e l'orientamento dell'iperplano.

   Si potrebbe scrivere un iperplano che separa le due classi



   x = w 0 + w1a1 + w2a2

  Nel caso di due attributi, dove a1 e a2 sono i valori dell'attributo e ci sono tre pesi da imparare. Tuttavia, l'equazione che definisce il hyperplane del margine massimo può essere scritta in un'altra forma, in termini di vettori di supporto. Scrivere il valore di classe y di un'istanza di formazione come 1 (per sì, è in questa classe) o -1 (per no, non lo è). Quindi il hyperplane di margine massimo è

           x = b + ...



 Qui, yi è il valore di classe dell'istanza di formazione a (i); Mentre b e ai sono parametri numerici che devono essere determinati dall'algoritmo di apprendimento. Si noti che a (i) e a sono vettori. Il vettore a rappresenta un'istanza di prova, proprio come il vettore [a1, a2] rappresentava un'istanza di prova nella formulazione precedente. I vettori a (i) sono i vettori di supporto, quelli circondati in figura 6.8; Sono membri selezionati del set di formazione. Il termine a (i) ◊a rappresenta il punto prodotto dell'istanza di prova con uno dei vettori di supporto. Se non si conosce la notazione del prodotto dot, bisogna ancora capire il concetto di ciò che segue: basta pensare a (i) come intero set di valori di attributo per il vettore di supporto ith. Infine, b e ai sono parametri che determinano l'iperplano, proprio come i pesi w0, w1 e w2 sono parametri che determinano l'iperplano nella formulazione precedente.
    Si scopre che trovare i vettori di supporto per i set di istanze e determinare i parametri b e ai appartiene a una classe standard di problemi di ottimizzazione noto come ottimizzazione quadratica vincolata. Esistono pacchetti software per risolvere questi problemi (vedi Fletcher 1987 per un approccio completo e pratico dei metodi di soluzione). Tuttavia, la complessità computazionale può essere ridotta e l'apprendimento può essere accelerato se vengono applicati algoritmi speciali per le macchine vettoriali di supporto per la formazione, ma i dettagli di questi algoritmi sono al di là dell'ambito di questo libro (Platt 1998).
   limiti della classe non lineare - Nonlinear class boundaries

 Abbiamo motivato l'introduzione di macchine vettoriali di supporto sostenendo che possano essere utilizzate per modellare i confini delle classi non lineari. Tuttavia, finora abbiamo descritto solo il caso lineare. Considerate cosa succede quando una trasformazione degli attributi, come descritto in precedenza, viene applicata ai dati di addestramento prima di determinare l'iperplano del margine massimo. Ricordiamo che ci sono due problemi con l'applicazione diretta di tali trasformazioni a modelli lineari: complessità computazionale infeasibile da un lato e overfitting dall'altro.
     Con i vettori di supporto non è probabile che si verifichino sovrapposizioni. Il motivo è che è inevitabilmente associato all'instabilità: cambiando uno o due vettori di istanza comporterà cambiamenti larghi a grandi sezioni del confine decisionale. Ma il hyperplane del margine massimo è relativamente stabile: si muove solo se vengono aggiunti o eliminati istanze di addestramento che sono vettori di supporto - e questo è vero anche nello spazio altamente dimensionato dalla trasformazione non lineare. La sovrapposizione è causata dalla flessibilità troppo elevata del confine decisionale. I vettori di supporto sono rappresentanti globali di tutto il set di punti di formazione, e di solito sono pochi, che danno una certa flessibilità. Pertanto è improbabile che si verifichi l'overfitting.
   E la complessità computazionale? Questo è ancora un problema. Supponiamo che lo spazio trasformato sia un alto-dimensionale in modo che i vettori di supporto trasformati e l'istanza di prova abbiano molti componenti. Secondo l'equazione precedente, ogni volta che un'istanza viene classificata, il suo prodotto dotato di tutti i vettori di supporto deve essere calcolato. Nello spazio ad alta dimensione prodotta dalla mappatura non lineare questo è piuttosto costoso. L'ottenimento del prodotto dot comprende una moltiplicazione e un'aggiunta per ogni attributo e il numero di attributi nel nuovo spazio può essere enorme. Questo problema si verifica non solo durante la classificazione ma anche durante la formazione, perché gli algoritmi di ottimizzazione devono calcolare molto spesso i prodotti dello stesso punto.
   Fortunatamente, si scopre che è possibile calcolare il prodotto a punti prima di eseguire la mappatura non lineare, sul set di attributi originali. Una versione highdimensionale dell'equazione precedente è semplicemente

  

   x = b +  ....



Dove n viene scelto come numero di fattori nella trasformazione (tre nell'esempio che abbiamo usato in precedenza). Se si espande il termine (a (i) ◊a) n, troverete che contiene tutti i termini ad alta dimensionalità che potrebbero essere coinvolti se i vettori di prova e di formazione sono stati prima trasformati includendo tutti i prodotti di n fattori e Punto prodotto è stato preso del risultato. (Se effettivamente fai il calcolo, noterai che alcuni fattori costanti - i coefficienti binomiali - vengono introdotti, tuttavia non importa: è la dimensionalità dello spazio che ci riguarda, le costanti semplicemente riducono gli assi.) A causa di Questa equivalenza matematica, i prodotti dot possono essere calcolati nello spazio iniziale basso-dimensionale e il problema diventa fattibile. In termini di implementazione, si prende un pacchetto software per l'ottimizzazione quadratica vincolata e ogni volta che una (i) ◊a viene valutata si valuta (a (i) ◊a) n invece. È così semplice, perché in entrambi gli algoritmi di ottimizzazione e di classificazione questi vettori sono stati utilizzati solo in questo tipo di prodotto. I vettori di formazione, compresi i vettori di supporto e l'istanza di prova, rimangono nello spazio originale a bassa dimensione durante i calcoli.
   La funzione (xÀy) n, che calcola il prodotto a punti di due vettori x e y e solleva il risultato alla potenza n, viene chiamato kernel polinomiale. Un buon modo per scegliere il valore di n è iniziare con 1 (un modello lineare) e incrementarlo finché l'errore stimato cessa di migliorare. Solitamente, sono sufficienti valori piuttosto piccoli. È possibile utilizzare altre funzioni del kernel per implementare mappature non lineari differenti. Due che sono spesso suggeriti sono il nucleo radiale (RBF) e il kernel sigmoidale. Quale produce i migliori risultati dipende dall'applicazione, anche se le differenze sono raramente grandi nella pratica. È interessante notare che una macchina vettoriale di supporto con il kernel RBF è semplicemente un tipo di rete neurale denominata una rete RBF (che descriviamo più tardi) e uno con il kernel sigmoid implementa un altro tipo di rete neurale, un perceptron multilayer con uno Strato nascosto (anche descritto più avanti).
  In questa sezione abbiamo assunto che i dati di addestramento sono linearmente separabili, sia nello spazio dell'istanza o nel nuovo spazio spostato dalla mappatura non lineare. Si scopre che le macchine vettoriali di supporto possono essere generalizzate nel caso in cui i dati di allenamento non siano separabili. Questo si ottiene collocando un limite superiore sui coefficienti precedenti ai. Purtroppo questo parametro deve essere scelto dall'utente e l'impostazione migliore può essere determinata solo mediante la sperimentazione. Inoltre, in tutti i casi non banali, non è possibile determinare a priori se i dati sono linearmente separabili o meno.
   Infine, dobbiamo menzionare che, rispetto ad altri metodi come gli allievi dell'albero decisionale, anche gli algoritmi di formazione più veloci per le macchine vettoriali di supporto sono lenti se applicate nell'ambiente non lineare. D'altra parte, spesso producono classificatori molto accurati perché possono essere ottenuti dei confini decisionali sottili e complessi.

   Regressione vettoriale di supporto

  Il concetto di un iperplano di margine massimo si applica solo alla classificazione. Tuttavia, sono stati sviluppati algoritmi di macchine vettoriali di supporto per la previsione numerica che condividono molte delle proprietà incontrate nel caso di classificazione: producono un modello che può essere solitamente espresso in termini di pochi vettori di supporto e può essere applicato a problemi non lineari con funzioni di kernel . Come per le macchine vettoriali di supporto regolare, descriveremo i concetti implicati, ma non cercheremo di descrivere gli algoritmi che effettivamente eseguono il lavoro.
  
Come per la regressione lineare, descritta nella sezione 4.6, l'idea di base è trovare una funzione che approssima bene i punti di addestramento riducendo al minimo l'errore di previsione. La differenza cruciale è che tutte le deviazioni fino a un parametro specificato dall'utente vengono semplicemente scartate. Inoltre, quando riducono al minimo l'errore, il rischio di overfitting è ridotto cercando simultaneamente di massimizzare la piattezza della funzione. Un'altra differenza è che ciò che viene ridotto al minimo è normalmente l'errore assoluto delle predizioni anziché l'errore quadrato utilizzato nella regressione lineare. (Esistono tuttavia versioni dell'algoritmo che utilizzano invece l'errore quadrato).
   
Un parametro specificato dall'utente e definisce un tubo attorno alla funzione di regressione in cui gli errori vengono ignorati: per la regressione lineare vettoriale di supporto, il tubo è un cilindro. Se tutti i punti di allenamento possono essere inseriti all'interno di un tubo di larghezza 2e, l'algoritmo esegue la funzione al centro del tubo flattest che li racchiude. In questo caso l'errore totale percepito è zero. La Figura 6.9 (a) mostra un problema di regressione con un attributo, una classe numerica e otto istanze. In questo caso e è stato impostato su 1, quindi la larghezza del tubo attorno alla funzione di regressione (indicata da linee tratteggiate) è 2. La figura 6.9 (b) mostra l'esito del processo di apprendimento quando e è impostato su 2. Come potete Vedere, il tubo più ampio consente di imparare una funzione più liscia.
  
Il valore di e controlla quanto vicino la funzione corrisponderà ai dati formativi. Troppo grande un valore produrrà un predittore inutile - nel caso estremo, quando 2e supera l'intervallo di valori di classe nei dati di addestramento, la linea di regressione è orizzontale e l'algoritmo prevede appena il valore della classe media. D'altra parte, per i piccoli valori di e non ci può essere un tubo che racchiuda tutti i dati. In tal caso alcuni punti di addestramento avranno un errore non zero, e ci sarà un compromesso tra l'errore di previsione e la piattaforma del tubo. Nella Figura 6.9 (c), e è stato impostato su 0,5 e non c'è tubo di larghezza 1 che racchiude tutti i dati.

   Per il caso lineare, è possibile scrivere la funzione di regressione vettoriale di supporto
   x = b + ....

  Come per la classificazione, il prodotto dot può essere sostituito da una funzione kernel per problemi non lineari. I vettori di supporto sono tutti quei punti che non cadono rigorosamente all'interno del tubo, cioè i punti fuori dal tubo e sul bordo. Come per la classificazione, tutti gli altri punti hanno un coefficiente 0 e possono essere eliminati dai dati formativi senza modificare l'esito del processo di apprendimento. Contrariamente al caso di classificazione, gli ai possono essere negativi.
   
Abbiamo menzionato che oltre a minimizzare l'errore, l'algoritmo cerca allo stesso tempo di massimizzare la flatness della funzione di regressione. Nella figura 6.9 (a) e (b), dove esiste un tubo che racchiude tutti i dati di allenamento, l'algoritmo emette semplicemente il tubo più flessibile che lo fa. Tuttavia, nella figura 6.9 (c) non esiste un tubo con errore 0 e si verifica un compromesso tra l'errore di previsione e la piattaforma del tubo. Questo compenso è controllato applicando un limite superiore C sul valore assoluto dei coefficienti ai. Il limite superiore limita l'influenza dei vettori di supporto sulla forma della funzione di regressione ed è un parametro che l'utente deve specificare in aggiunta a e. Il più grande C è, più la funzione può adattarsi ai dati.
   
Nel caso degenerato e = 0, l'algoritmo esegue semplicemente la regressione 'meno-assoluto-errore' sotto il vincolo di dimensione del coefficiente e tutte le istanze di formazione diventano vettori di supporto. Al contrario, se e è abbastanza grande che il tubo può racchiudere tutti i dati, l'errore diventa zero, non vi è alcun compromesso da fare e l'algoritmo esegue il tubo piatto che racchiude i dati indipendentemente dal valore di C


Figure 6.9 Support vector regression: (a) e = 1, (b) e = 2, and (c) e = 0.5.

       The kernel perceptron

   Nella sezione 4.6 abbiamo introdotto l'algoritmo perceptron per istruire un classificatore lineare. Si scopre che il trucco del kernel può anche essere utilizzato per aggiornare questo algoritmo per imparare i confini di decisione non lineari. Per vedere questo, rivediamo prima il caso lineare. L'algoritmo perceptron ripete ripetutamente attraverso l'istanza dei dati di allenamento per istanza e aggiorna il vettore di peso ogni volta che una di queste istanze è erronea in base ai pesi appresi finora. Il vettore di peso viene aggiornato semplicemente aggiungendo o sottraendo i valori dell'attributo dell'istanza o da esso. Ciò significa che il vettore finale di peso è solo la somma dei casi che sono stati erroneamente classificati. Il perceptron fa le sue previsioni in base a se
......
è maggiore o minore di zero, dove wi è il peso dell'attributo i e AI il valore attributo corrispondente dell'istanza che vogliamo classificare. Invece, potremmo usare
.......
Qui ¢ (j) è l'istanza di addestramento errata, un ¢ (j) i è il suo valore di attributo ith, e y (j) è il suo valore di classe (+1 o -1). Per implementare questo non controlliamo più un vettore di peso esplicito: memorizziamo semplicemente le istanze finora classificate e usiamo l'espressione precedente per fare una previsione.
    Sembra che non abbiamo guadagnato nulla - infatti, l'algoritmo è molto più lento perché iterizza attraverso tutte le istanze di addestramento erronee ogni volta che viene effettuata una previsione. Tuttavia, l'ispezione più approfondita di questa formula rivela che può essere espressa in termini di prodotti a punti tra istanze. Innanzitutto, scambia i segni di somma per produrre 

.....
La seconda somma è solo un prodotto a punti tra due istanze e può essere scritto come
  ....
  Questo suona una campana! Una simile espressione per le macchine vettoriali di supporto ha permesso l'utilizzo di kernel. Infatti, possiamo applicare esattamente lo stesso trucco e utilizzare una funzione del kernel invece del prodotto dot. Scrivendo questa funzione come K (...) dà 
  ......
In questo modo l'algoritmo perceptron può imparare un classificatore non lineare semplicemente tenendo traccia delle istanze che sono state miscelate durante il processo di allenamento e utilizzando questa espressione per formare ogni predizione.
  
Se esiste un iperplano di separazione nello spazio altamente dimensionale creato implicitamente dalla funzione del kernel, questo algoritmo la imparerà. Tuttavia, non imparerà il hyperplane di margine massimo trovato da un classificatore di macchine vettori di supporto. Ciò significa che la prestazione di classificazione è di solito peggiore. D'altra parte, l'algoritmo è facile da implementare e supporta l'apprendimento incrementale.
   
Questo classificatore è chiamato il perceptron del kernel. Si scopre che tutti i tipi di algoritmi per l'apprendimento di modelli lineari possono essere aggiornati applicando il trucco del kernel in modo simile. Ad esempio, la regressione logistica può essere trasformata in regressione logistica del kernel. Lo stesso vale per i problemi di regressione: la regressione lineare può anche essere aggiornata utilizzando i kernel. Un inconveniente di questi metodi avanzati per la regressione lineare e logistica (se sono fatti in modo semplice) è che la soluzione non è "scarsamente": ogni istanza di formazione contribuisce al vettore della soluzione. Nelle macchine vettoriali di supporto e nel perceptron del kernel, solo alcune delle istanze di addestramento interessano la soluzione e questo può fare una grande differenza all'efficienza computazionale.
   
Il vettore della soluzione rilevato dall'algoritmo perceptron dipende notevolmente dall'ordine in cui si trovano le istanze. Un modo per rendere più stabile l'algoritmo è quello di utilizzare tutti i vettori di peso rilevati durante l'apprendimento non solo quello finale, consentendo loro di votare su una previsione. Ogni vettore di peso contribuisce ad un certo numero di voti. Intuitivamente, la "correttezza" di un vettore di peso può essere misurata approssimativamente come il numero di prove successive dopo il suo inizio in cui ha classificato correttamente le successive istanze e pertanto non è necessario cambiare. Questa misura può essere utilizzata come il numero di voti assegnati al vettore di peso, fornendo un algoritmo noto come il perceptron votato che esegue quasi come una macchina vettoriale di supporto. (Si noti che, come detto in precedenza, i vari vettori di peso del perceptron votato non devono essere memorizzati esplicitamente e il trucco del kernel può essere applicato anche qui).

     Multilayer perceptrons

L'utilizzo di un kernel non è l'unico modo per creare un classificatore non lineare basato sul perceptron. Infatti, le funzioni del kernel sono un recente sviluppo nell'apprendimento della macchina. In precedenza, i sostenitori della rete neurale hanno usato un approccio diverso per la classificazione non lineare: hanno collegato molti semplici modelli perceptronici in una struttura gerarchica. Ciò può rappresentare i confini di decisione non lineari.
    
La sezione 4.6 spiega che un perceptron rappresenta un iperplano nello spazio di esempio. Noi abbiamo menzionato che è talvolta descritto come un "neurone artificiale". Naturalmente, i cervelli umani e animali svolgono con successo compiti di classificazione molto complessi - ad esempio, riconoscimento delle immagini. La funzionalità di ogni singolo neurone in un cervello non è certo sufficiente per eseguire queste attività. Come possono essere risolti da strutture del cervello? La risposta consiste nel fatto che i neuroni del cervello sono notevolmente interconnessi, permettendo che un problema venga scomposto in sottoproblemi che possono essere risolti a livello del neurone. Questa osservazione ha ispirato lo sviluppo di reti di neuroni artificiali - reti neurali.
   
Si consideri i set di dati semplici in Figura 6.10. La Figura 6.10 (a) mostra uno spazio di esempio bidimensionale con quattro istanze che hanno classi 0 e 1, rappresentate rispettivamente da punti bianchi e neri. Non importa come disegnare una linea retta attraverso questo spazio, non sarai in grado di trovare uno che separa tutti i punti neri da tutti quelli bianchi. In altre parole, il problema non è linearmente separabile e il semplice algoritmo perceptron non riesce a generare un iperplano separatore (in questo spazio di esempio bidimensionale un iperplano è solo una linea retta). La situazione è diversa in Figura 6.10 (b) e Figura 6.10 (c): entrambi questi problemi sono linearmente separabili. Lo stesso vale per la Figura 6.10 (d), che mostra due punti in uno spazio di istanza unidimensionale (nel caso di una dimensione l'iperplano separante degenera ad un punto di separazione).

   Se hai familiarità con la logica proposizionale, puoi notare che le quattro situazioni di Figura 6.10 corrispondono a quattro tipi di connettori logici. La figura 6.10 (a) rappresenta un XOR logico, dove la classe è 1 se e solo se esattamente uno degli attributi ha valore 1. Figura 6.10 (b) rappresenta AND logico, dove la classe è 1 se e solo se entrambi gli attributi hanno valore 1. Figura 6.10 (c) rappresenta OR, dove la classe è 0 solo se entrambi gli attributi hanno valore 0. Figura 6.10 (d) rappresenta NON, dove la classe è 0 se e solo se l'attributo ha valore 1.
    Poiché gli ultimi tre sono lineariamente separabili, un perceptron può rappresentare AND, OR e NOT. Infatti, i perceptroni per i set di dati corrispondenti sono mostrati rispettivamente nella Figura 6.10 (f) - (h). Tuttavia, un semplice perceptron non può rappresentare XOR, perché non è linearmente separabile. Per costruire un classificatore per questo tipo di problema un singolo perceptron non è sufficiente: abbiamo bisogno di più di essi.
  La Figura 6.10 (e) mostra una rete con tre perceptroni o unità denominati A, B e C. I primi due sono connessi a quello che viene chiamato a volte il livello di input della rete, rappresentando gli attributi dei dati. Come in un semplice perceptron, lo strato di input ha un ingresso costante aggiuntivo chiamato bias. Tuttavia, la terza unità non ha collegamenti allo strato di input. Il suo ingresso è costituito dall'uscita di unità A e B (0 o 1) e un'altra unità costante di bias. Queste tre unità costituiscono lo strato nascosto del perceptron multilayer.
   Sono chiamati "nascosti" perché le unità non hanno alcuna connessione diretta all'ambiente. Questo livello è ciò che consente al sistema di rappresentare XOR. È possibile verificare questo provando tutte e quattro le possibili combinazioni di segnali di ingresso. Ad esempio, se l'attributo a1 ha valore 1 e a2 ha valore 1, l'unità A produrrà 1 (perché 1 * 1 + 1 * 1 - 0.5 * 1> 0), l'unità B produrrà 0 (perché -1 * 1 + -1 * 1 + 1.5 * 1 <0), e l'unità C produrrà 0 (perché 1 * 1 + 1 * 0 + -1.5 * 1 <0). Questa è la risposta corretta. L'ispezione più chiara del comportamento delle tre unità rivela che la prima rappresenta OR, la seconda rappresenta la NAND (NOT combinata con AND) e la terza rappresenta AND. Insieme rappresentano l'espressione (a1 OR a2) AND (a1 NAND a3), che è appunto la definizione di XOR.
     Come illustra questo esempio, qualsiasi espressione del calcolo proposizionale può essere convertita in un perceptron multilayer, perché i tre connettori AND, OR e NOT sono sufficienti per questo e abbiamo visto come ciascuno può essere rappresentato utilizzando un perceptron. Le singole unità possono essere collegate insieme per formare espressioni arbitrariamente complesse. Quindi, un perceptron multistrato ha lo stesso potere espressivo di, ad esempio, un albero decisionale. In realtà, si scopre che un perceptron a due strati (senza contare il livello di input) è sufficiente. In questo caso, ogni unità nello strato nascosto corrisponde ad una variante della variante AND, perché supponiamo che possa negare alcuni degli input prima di formare il congiunto-unito da un OR rappresentato da una singola unità nello strato di output . In altre parole, ogni nodo nel livello nascosto ha lo stesso ruolo di una foglia in una struttura di decisione o di una sola regola in un insieme di regole di decisione.
   La grande domanda è come istruire un perceptron multilayer. Ci sono due aspetti al problema: apprendere la struttura della rete e imparare i pesi di connessione. Si scopre che vi è un algoritmo relativamente semplice per determinare i pesi dato una struttura di rete fissa. Questo algoritmo viene chiamato backpropagation e viene descritto nella sezione successiva. Tuttavia, anche se ci sono molti algoritmi che tentano di identificare la struttura della rete, questo aspetto del problema è comunemente risolto attraverso la sperimentazione - forse combinato con una sana dose di conoscenze esperte. A volte la rete può essere separata in moduli distinti che rappresentano sottostanti identificabili (ad esempio, riconoscendo diversi componenti di un oggetto in un problema di riconoscimento delle immagini), che apre un modo per incorporare la conoscenza del dominio nel processo di apprendimento. Spesso un solo livello nascosto è tutto ciò che è necessario e un numero appropriato di unità per quel livello viene determinato massimizzando l'accuratezza stimata.

       Backpropagation

  Supponiamo di avere alcuni dati e cerchiamo un perceptron multilayer che sia un preciso predittore per il problema di classificazione sottostante. Dato una struttura di rete fissa, dobbiamo determinare i pesi appropriati per le connessioni in rete. In assenza di strati nascosti, la regola di apprendimento perceptron da Sezione 4.6 può essere utilizzata per trovare valori adeguati. Ma supponiamo che ci siano unità nascoste. Sappiamo cosa dovrebbe prevedere l'unità di uscita e potrebbe regolare i pesi dei collegamenti che conducono a tale unità in base alla regola perceptron. Ma le uscite corrette per le unità nascoste sono sconosciute, quindi la regola non può essere applicata lì.
    
Si scopre che, a parzialmente, la soluzione è quella di modificare i pesi delle connessioni che portano alle unità nascoste in base alla forza del contributo di ciascuna unità alla predizione finale. Esiste un algoritmo di ottimizzazione matematica standard, denominato discesa di gradiente, che raggiunge esattamente ciò. Purtroppo, richiede la presa di derivati ​​e la funzione di passo che il semplice perceptron utilizza per convertire la somma ponderata degli input in una predizione 0/1 non è diversificabile. Dobbiamo vedere se la funzione step può essere sostituita con qualcos'altro.
   
La Figura 6.11 (a) mostra la funzione di passo: se l'ingresso è più piccolo di zero, esso emette zero; Altrimenti, lo esegue uno. Vogliamo una funzione simile in forma ma diversificabile. Una sostituzione comunemente utilizzata è mostrata nella Figura 6.11 (b). Nella terminologia delle reti neurali viene chiamata la funzione sigmoide e viene definita da

 .....
 Figure 6.11 Step versus sigmoid: (a) step function and (b) sigmoid function.
 

 Lo abbiamo incontrato nella sezione 4.6 quando abbiamo descritto la trasformazione logit utilizzata nella regressione logistica. Infatti, l'apprendimento di un perceptron multilayer è strettamente correlato alla regressione logistica.
    
Per applicare la procedura di discesa di gradiente, la funzione di errore, la cosa che deve essere minimizzata regolando i pesi, deve anche essere diversificabile. Il numero di miscelazioni, misurato dalla perdita discreta 0-1 menzionata nella sezione 5.6, non soddisfa questo criterio. Al contrario, i percepti multilayer sono solitamente formati per minimizzare l'errore quadrato dell'output della rete, trattandolo essenzialmente come una stima della probabilità di classe. Ad esempio, se la probabilità viene utilizzata anziché l'errore quadrato, l'apprendimento di un perceptron basato su sigmoidi è identico alla regressione logistica.
  
Lavoriamo con la funzione di perdita di errore quadrato perché è più diffusa. Per un'istanza di formazione singola, è la Figura 6.11 Punto rispetto a sigmoide: (a) funzione di passo e (b) funzione sigmoide.


  La discesa gradiente sfrutta le informazioni fornite dal derivato della funzione da ridurre al minimo - in questo caso la funzione di errore. Ad esempio, considerare una funzione di errore ipotetica che si verifica identica a x2 + 1, mostrata nella Figura 6.12. L'asse X rappresenta un parametro ipotetico da ottimizzare. Il derivato di x2 + 1 è semplicemente 2x. L'osservazione cruciale è che, sulla base del derivato, possiamo capire la pendenza della funzione in un punto particolare. Se il derivato è negativo, la funzione si dispiega verso il basso verso destra; Se è positivo, scende verso il basso verso sinistra; E la dimensione del derivato determina come la ripresa è ripida. La discesa gradiente è una procedura di ottimizzazione iterativa che utilizza queste informazioni per regolare i parametri di una funzione. Prende il valore del derivato, la moltiplica per una piccola costante chiamata il tasso di apprendimento e sottrae il risultato dal valore del parametro corrente. Questo viene ripetuto per il nuovo valore del parametro, e così via, fino a raggiungere un minimo.
   
Tornando all'esempio, si supponga che il tasso di apprendimento sia impostato su 0.1 e il valore del parametro corrente x sia 4. Il derivato è doppio di questo-8 a questo punto. Moltiplicando per il tasso di apprendimento produce 0,8, e sottraendo questo da 4, ottiene 3,2, che diventa il nuovo valore del parametro. Ripetendo il processo per 3.2, otteniamo 2.56, poi 2.048 e così via. Le piccole croci in Figura 6.12 mostrano i valori rilevati in questo processo. Il processo si interrompe una volta che la modifica del valore del parametro diventa troppo piccola. Nell'esempio questo accade quando il valore si avvicina a 0, il valore corrispondente alla posizione sull'asse X dove si trova il minimo della funzione di errore ipotetico.


 Figure 6.12 Gradient descent using the error function x2 + 1.
 

  Il tasso di apprendimento determina la dimensione del passo e quindi quanto velocemente converge la ricerca. Se è troppo grande e la funzione di errore ha diversi minimi, la ricerca può superare e mancare un minimo intero, oppure può oscillare in maniera selvaggia. Se è troppo piccolo, il progresso verso il minimo può essere lento. Si noti che la discesa di gradiente può trovare solo un minimo locale. Se la funzione ha diverse minime e le funzioni di errore per i percepti multilayer hanno solitamente molti, potrebbe non trovare il migliore. Questo è un inconveniente significativo dei percepti multilayer standard rispetto a, ad esempio, macchine vettoriali di supporto.
    Per utilizzare la discesa di gradiente per trovare i pesi di un perceptron multistrato, è necessario determinare l'derivato dell'errore quadrato rispetto ad ogni parametro, ovvero ogni peso della rete. Cominciamo con un semplice perceptron senza uno strato nascosto. Differenziando la funzione di errore precedente rispetto ad un peso specifico wi

  ......
Qui, f (x) è l'output del perceptron e x è la somma ponderata degli ingressi. Per calcolare il secondo fattore sul lato destro, è necessario derivare la funzione sigmoide f (x). Si scopre che questo ha una forma particolarmente semplice che può essere scritta in termini di f (x):
......
Usiamo f ¢ (x) per indicare questo derivato. Ma cerchiamo il derivato rispetto a wi, non x. Perché
....
Il derivato di f (x) rispetto a wi è
......
Incorporando questo indietro nel derivato della resa della funzione di errore
......
Figure 6.13 Multilayer perceptron with a hidden layer.
 

Questa espressione fornisce tutto ciò che è necessario per calcolare la variazione del peso wi causata da un particolare vettore di esempio a (esteso da 1 per rappresentare la bias, come spiegato in precedenza). Dopo aver ripetuto questo calcolo per ogni istanza di addestramento, aggiungiamo le modifiche associate ad un peso specifico wi, moltiplicato per il tasso di apprendimento e sottraiamo il risultato dal valore attuale di wi.

Fin qui tutto bene. Ma tutto questo presuppone che non esiste uno strato nascosto. Con un livello nascosto, le cose diventano un po 'più complicate. Supponiamo che f (xi) sia l'uscita dell'unità nascosta ith, wij è il peso della connessione dall'ingresso j all'unità i, e wi è il peso dell'unità ith nascosta all'unità di uscita. La situazione è descritta in Figura 6.13. Come prima, f (x) è l'uscita della singola unità nel livello di uscita. La regola di aggiornamento per i pesi wi è sostanzialmente la stessa di quanto sopra, salvo che ai viene sostituito dall'uscita dell'unità ith nascosta:

.......
Tuttavia, per aggiornare i pesi wij occorre calcolare i relativi derivati. Applicare la regola della catena dare
.....
I primi due fattori sono gli stessi dell'equazione precedente. Per calcolare il terzo fattore differenziare ulteriormente. Perché

......
.....
Ciò significa che siamo finiti. Mettere tutto insieme produce un'equazione per il derivato della funzione di errore rispetto ai pesi wij:
.....
 Come in precedenza, calcoliamo questo valore per ogni istanza di addestramento, aggiorniamo le modifiche associate ad un particolare peso wij, si moltiplicano per il tasso di apprendimento e sottraiamo il risultato dal valore corrente di wij.
    
Questa derivazione si applica a un perceptron con uno strato nascosto. Se ci sono due livelli nascosti, la stessa strategia può essere applicata una seconda volta per aggiornare i pesi relativi alle connessioni di ingresso del primo livello nascosto, propagando l'errore dall'unità di uscita attraverso il secondo livello nascosto al primo. A causa di questo meccanismo di propagazione degli errori, questa versione della strategia di discesa dei gradienti generici viene chiamata backpropagation. Abbiamo tacitamente ipotizzato che lo strato di output della rete disponga di una sola unità, che è appropriata per problemi a due classi. Per più di due classi, una classe separata potrebbe essere appreso per ogni classe che lo distingue dalle altre classi. Un classificatore più compatto può essere ottenuto da una singola rete creando un'unità di uscita per ogni classe, collegando ogni unità nel livello nascosto ad ogni unità di output. L'errore quadrato per un'istanza di formazione particolare è la somma degli errori quadrati assunti per tutte le unità di output. La stessa tecnica può essere applicata per predire più obiettivi o valori di attributo simultaneamente, creando un'unità di output separata per ciascuna di esse. Intuitivamente, questo può dare una migliore precisione predittiva di costruire un classificatore separato per ogni attributo di classe se le attività di apprendimento sottostanti sono in qualche modo correlate.
   
Abbiamo assunto che i pesi vengono aggiornati solo dopo che tutti i percorsi di formazione sono stati alimentati attraverso la rete e che tutti i corrispondenti cambiamenti di peso sono stati accumulati. Questo è l'apprendimento in batch, perché tutti i dati formativi vengono elaborati insieme. Ma esattamente le stesse formule possono essere utilizzate per aggiornare i pesi incrementalmente dopo che ogni istanza di formazione è stata elaborata. Questa viene chiamata backpropagation stocastica perché l'errore generale non diminuisce necessariamente dopo ogni aggiornamento e non c'è garanzia che esso convergerà al minimo. Può essere utilizzato per l'apprendimento online, in cui nuovi dati arrivano in un flusso continuo e ogni istanza di formazione viene elaborata una sola volta. In entrambe le varianti di backpropagation è spesso utile standardizzare gli attributi per avere deviazione media media e unità standard. Prima dell'inizio dell'apprendimento, ciascun peso viene inizializzato in un piccolo valore selezionato a caso sulla base di una distribuzione normale con la media zero.

 Come ogni altro schema di apprendimento, i perceptroni multilayer formati con "back-propagation" possono soffrire di overfitting - specialmente se la rete è molto più grande di quella necessaria per rappresentare la struttura del problema di apprendimento sottostante. Molte modifiche sono state proposte per alleviare questo. Un modo molto semplice, chiamato arresto precoce, funziona come la potatura a errori ridotti nei partecipanti alle regole: un set di holdout viene utilizzato per decidere quando smettere di eseguire ulteriori iterazioni dell'algoritmo di backpropagation. L'errore sul set holdout viene misurato e l'algoritmo viene interrotto una volta che l'errore inizia ad aumentare, perché ciò indica l'overfitting dei dati di allenamento. Un altro metodo, detto decadimento di peso, aggiunge alla funzione di errore un termine di penalità che consiste nella somma quadrata di tutti i pesi della rete. Ciò tenta di limitare l'influenza delle connessioni irrilevanti sulle previsioni della rete penalizzando pesi di grandi dimensioni che non contribuiscono ad una riduzione corrispondente di conseguenza nell'errore.
    
Anche se la discesa di gradiente standard è la tecnica più semplice per imparare i pesi in un perceptron multilayer, non è affatto il modo più efficiente. In pratica, tende ad essere piuttosto lenta. Un trucco che migliora spesso le prestazioni è quello di includere un termine di momentum all'aggiornamento dei pesi: aggiungere al nuovo peso cambiare una piccola percentuale del valore di aggiornamento dell'iterazione precedente. Ciò semplifica il processo di ricerca modificando la direzione in modo meno brusco. Metodi più sofisticati utilizzano le informazioni ottenute anche dal secondo derivato della funzione di errore; Possono convergere molto più rapidamente. Tuttavia, anche questi algoritmi possono essere molto lenti rispetto ad altri metodi di apprendimento classificazione.
    
Uno svantaggio grave di perceproni multistrato che contengono unità nascoste è che sono essenzialmente opache. Ci sono diverse tecniche che tentano di estrarre regole da reti neurali addestrate. Tuttavia, non è chiaro se offrono dei vantaggi rispetto ai principianti di regole standard che inducono le regole direttamente dai dati, soprattutto se si può generalmente fare molto più rapidamente che imparare un perceptron multilayer in primo luogo.
  
Sebbene i perceponi multilayer siano il tipo più importante della rete neurale, sono stati proposti molti altri. I perceptron multilayer appartengono a una classe di reti denominate reti feedforward perché non contengono cicli e l'output della rete dipende solo dall'istanza di input corrente. Le reti neurali ricorrenti hanno cicli. I calcoli derivanti dall'ingresso precedente vengono ricondotti alla rete, che dà loro una sorta di memoria.

      Reti funzionali di base - Radial basis function networks               

  Un altro tipo di rete di feedforward popolare è la rete radiale di base (RBF). Ha due livelli, non contando il livello di input e si differenzia da un perceptron multilayer nel modo in cui le unità nascoste eseguono calcoli. Ogni unità nascosta rappresenta essenzialmente un punto particolare nello spazio di input e la sua uscita o attivazione per una determinata istanza dipende dalla distanza tra il punto e l'istanza, che è solo un altro punto. Intuitivo, più vicini questi due punti, più forte è l'attivazione. Ciò si ottiene utilizzando una funzione di trasformazione non lineare per convertire la distanza in misura di somiglianza. Una funzione di attivazione Gaussian a forma di campana, la cui larghezza può essere diversa per ogni unità nascosta, è comunemente utilizzata a questo scopo. Le unità nascoste sono chiamate RBF perché i punti nello spazio di esempio per cui una determinata unità nascosta produce la stessa attivazione formano un'ipersfera o un iperelipsoide. (In un perceptron multilayer, questo è un iperplano.)
    
Lo strato di uscita di una rete RBF è lo stesso di quello di un perceptron multilayer: richiede una combinazione lineare delle uscite delle unità nascoste e - nei problemi di classificazione - lo conduce attraverso la funzione sigmoide. I parametri che una tale rete apprende sono (a) i centri e le larghezze dei RBF e (b) i pesi utilizzati per formare la combinazione lineare delle uscite ottenute dal livello nascosto. Un notevole vantaggio rispetto ai percepti multilayer è che la prima serie di parametri può essere determinata indipendentemente dal secondo set e producono ancora classificatori precisi.Un modo per determinare la prima serie di parametri è quello di utilizzare il clustering, senza guardare le etichette di classe delle istanze di formazione a tutti. È possibile applicare il semplice algoritmo di clustering di k descritto nella sezione 4.8, raggruppando ogni classe in modo indipendente per ottenere le funzioni base di k per ogni classe. Intuitivamente, i RBF risultanti rappresentano istanze prototipo. Quindi si può apprendere il secondo set di parametri, mantenendo i primi parametri fissati. Ciò implica l'apprendimento di un modello lineare utilizzando una delle tecniche che abbiamo discusso (ad esempio, regressione lineare o logistica). Se ci sono molto meno unità nascoste di istanze di formazione, questo può essere fatto molto rapidamente.
   
Uno svantaggio delle reti RBF è che attribuiscono ad ogni attributo lo stesso peso perché tutti sono trattati ugualmente nel calcolo della distanza. Quindi non possono affrontare efficacemente gli attributi irrilevanti, in contrasto con i perceponi multilayer. Le macchine vettoriali di supporto condividono lo stesso problema. Infatti, le macchine vettoriali di supporto con i kernel Gaussian (cioè "kernel RBF") sono un particolare tipo di rete RBF, in cui una funzione di base è centrata su ogni istanza di addestramento e le uscite vengono combinate linearmente calcolando l'iperplano di margine massimo. Ciò ha l'effetto che solo alcuni RBF hanno un peso non zero, quelli che rappresentano i vettori di supporto.

       Dicusione
  Le macchine vettoriali di supporto provengono dalla ricerca sulla teoria dell'apprendimento statistico (Vapnik 1999) e un buon punto di partenza per l'esplorazione è un tutorial di Burges (1998). Una descrizione generale, compresa la generalizzazione del caso in cui i dati non sono linearmente separabili, è stato pubblicato da Cortes e Vapnik (1995). Abbiamo introdotto la versione standard della regressione dei vettori di sostegno: Schölkopf et al. (1999) presentano una versione diversa che ha un parametro invece di due. Smola e Schölkopf (2004) forniscono un approfondito tutorial sulla regressione dei vettori di supporto.
    
Il perceptron del kernel (votato) è dovuto a Freund e Schapire (1999). Cristianini e Shawe-Taylor (2000) forniscono una bella introduzione per supportare macchine vettoriali e altri metodi basati su kernel, tra cui la teoria dell'ottimizzazione sottostante gli algoritmi di apprendimento vettoriale di supporto. Abbiamo appena sfondato la superficie di questi schemi di apprendimento, soprattutto perché la matematica avanzata si trova appena sotto. L'idea di utilizzare i kernel per risolvere i problemi non lineari è stata applicata a molti algoritmi, ad esempio l'analisi dei componenti principali (descritta in Sezione 7.3). Un kernel è essenzialmente una funzione di somiglianza con alcune proprietà matematiche e è possibile definire le funzioni del kernel su tutti i tipi di strutture - ad esempio, set, stringhe, alberi e distribuzioni di probabilità. Shawe-Taylor e Cristianini (2004) coprono dettagliatamente l'apprendimento basato sul kernel.
    
C'è una vasta letteratura sulle reti neurali, e Bishop (1995) fornisce un'eccellente introduzione sia per i percepiti multilayer che per le reti RBF. L'interesse per le reti neurali sembra diminuito dall'arrivo di macchine vettoriali di sostegno, forse perché queste ultime richiedono generalmente pochi parametri da sintonizzarsi per ottenere la stessa (o maggiore) precisione. Tuttavia, i perceproni multilayer hanno il vantaggio di imparare a ignorare gli attributi irrilevanti e le reti RBF addestrate usando k-means possono essere considerate come un metodo "rapido e sporco" per trovare un classificatore non lineare.

   Apprendimento basato su istanza - Instance-based learning

  Nella sezione 4.7 abbiamo visto come la regola più vicina può essere usata per implementare una forma di base di apprendimento basato su istanze. Ci sono diversi problemi pratici con questo semplice metodo. In primo luogo, tende ad essere lento per i grandi set di addestramento, perché l'intero set deve essere ricercato per ogni istanza di prova, a meno che non siano utilizzate strutture sofisticate di dati come alberi di kD o alberi a sfera. In secondo luogo, si esegue male con dati rumorosi, perché la classe di un'istanza di prova è determinata dal suo prossimo vicino senza alcuna "media" per eliminare il rumore. In terzo luogo, si esegue male quando diversi attributi influenzano il risultato a diverse estensioni - nel caso estremo, quando alcuni attributi sono completamente irrilevanti - perché tutti gli attributi contribuiscono ugualmente alla formula di distanza. In quarto luogo, non esegue generalizzazioni esplicite, anche se abbiamo intimato nella sezione 3.8 (e illustrato nella figura 3.8) che alcuni sistemi di apprendimento basati sull'istanza comportano effettivamente una generalizzazione esplicita.

   'Ridurre' il numero di esemplari - 'Reducing' the number of exemplars 

 La regola "vicina più vicina" contiene molti esemplari ridondanti: è quasi sempre inutile salvare tutti gli esempi visti finora. Una semplice variante è classificare ogni esempio rispetto agli esempi già visti e salvare solo quelli che sono erroneamente classificati. Utilizziamo il termine esemplari per fare riferimento alle istanze già viste che vengono utilizzate per la classificazione. Scartare istanze classificate correttamente riduce il numero di esemplari e si dimostra un modo efficace per eseguire la piastrellatura del database esemplare. Idealmente, per ciascuna regione importante dello spazio di istanza è memorizzato un solo esemplare. Tuttavia, all'inizio degli esempi di apprendimento possono essere scartati che successivamente diventano importanti, eventualmente portando ad una certa diminuzione dell'esattezza predittiva. Quando aumenta il numero di istanze memorizzate, migliora l'accuratezza del modello e quindi il sistema fa meno errori.
   
Purtroppo, la strategia di memorizzare solo istanze erronee non funziona bene a fronte di rumore. Gli esempi rumorosi sono molto probabili essere classificati in modo errato e quindi l'insieme degli esemplari memorizzati tende ad accumulare quelli meno utili. Questo effetto è facilmente osservabile sperimentalmente. Quindi questa strategia è solo un passo avanti sulla strada verso i discenti basati sull'istanza più efficace.

    Esemplari rumorosi di potatura 

 Gli esemplari rumorosi inevitabilmente riducono le prestazioni di uno schema di "prossimità più vicino" che non li sopprime perché hanno l'effetto di ripetutamente sbagliare nuovi casi. Ci sono due modi per affrontare questo problema. Uno è quello di individuare, al posto del prossimo più vicino, i vicini più vicini k per qualche costante predeterminata k e assegnare la classe di maggioranza all'istanza sconosciuta. L'unico problema qui è determinare un valore adatto di k. L'apprendimento di prossimità più vicina al campo corrisponde a k = 1. Più il rumore, maggiore è il valore ottimale di k. Un modo per procedere è quello di eseguire test di convalida incrociata con valori diversi e scegliere il meglio. Anche se questo è costoso nel tempo di calcolo, spesso produce eccellenti prestazioni predittive.
    Una seconda soluzione consiste nel monitorare le prestazioni di ciascun esemplare che vengono memorizzate e scartate quelle che non funzionano bene. Questo può essere fatto mantenendo un record del numero di decisioni di classificazione corrette e scorrette che ogni esemplare fa. Due soglie predeterminate sono impostate sul rapporto di successo. Quando una prestazione di un esemplare scende al di sotto di quella inferiore, viene eliminata dall'insieme esemplare. Se la sua prestazione supera la soglia superiore, viene utilizzata per predire la classe di nuove istanze. Se la sua performance si trova tra i due, non viene utilizzata per la previsione, ma ogni volta che è l'esempio più vicino alla nuova istanza (e quindi sarebbe stato utilizzato per la previsione se il suo record di performance era stato sufficiente), le statistiche di successo sono aggiornate Come se fosse stato usato per classificare quella nuova istanza.
    Per fare ciò, utilizziamo i limiti di confidenza sulla probabilità di successo di un processo Bernoulli che abbiamo derivato nella Sezione 5.2. Ricordiamo che abbiamo preso un certo numero di successi S da un totale di prove N come prove su cui basare i limiti di fiducia sul vero tasso di successo sottostante p. Dato un certo livello di fiducia del 5%, possiamo calcolare i limiti superiori e inferiori ed essere il 95% sicuro che p sia fra di loro.
   Per applicare questo al problema di decidere quando accettare un esemplare particolare, supponiamo che sia stato usato n volte per classificare altre istanze e che s di questi 'sono stati successi'. Ciò ci consente di stimare i limiti, a un certo livello di fiducia, sul vero tasso di successo di questo esemplare. Ora supponiamo che la classe dell'esemplare si sia verificata c volte fuori da un numero totale di istanze di formazione N. Ciò consente di stimare i limiti sul tasso di successo predefinito, cioè la probabilità di classificare con successo un'istanza di questa classe senza informazioni su altre istanze. Insistiamo che la bassa fiducia legata al suo tasso di successo superi la fiducia superiore legata al tasso di successo predefinito. Utilizziamo lo stesso metodo per elaborare un criterio per rifiutare un esemplificato male, che richiede che la fiducia superiore legata alla sua percentuale di successo sia al di sotto della minore fiducia legata al tasso di successo predefinito.
    Con una scelta adeguata di soglie, questo schema funziona bene. In una particolare implementazione, denominata IB3 per la versione 3 basata su base istanza, viene utilizzato un livello di confidenza del 5% per determinare l'accettazione, mentre un livello del 12,5% viene utilizzato per il rifiuto. La percentuale di percentuale più bassa produce un intervallo di confidenza più ampio, che fa un criterio più rigoroso perché è più difficile che il limite inferiore di un intervallo si trovi sopra il limite superiore dell'altro. Il criterio di accettazione è più rigoroso di quello per il rifiuto, rendendo più difficile l'accettazione di un'istanza. La ragione di un criterio di rifiuto meno rigoroso è che non c'è molto da perdere, lasciando le istanze con solo accuracies di classificazione moderatamente scarse: probabilmente verranno sostituite da un'istanza simile più tardi. Utilizzando queste soglie, il metodo è stato trovato per migliorare le prestazioni dell'apprendimento basato sull'istanza e, allo stesso tempo, ridurre notevolmente il numero di esemplari, in particolare quelli rumorosi, memorizzati.

      Attributi di ponderazione - Weighting attributes

 La funzione di distanza Euclidea, modificata per scalare tutti i valori degli attributi tra 0 e 1, funziona bene nei domini in cui gli attributi sono altrettanto rilevanti per l'esito. Tali domini, tuttavia, sono l'eccezione piuttosto che la regola. Nella maggior parte dei domini alcuni attributi sono irrilevanti e alcuni relativi sono meno importanti di altri. Il prossimo miglioramento nell'apprendimento basato su istanze è quello di apprendere in modo incrementale la pertinenza di ogni attributo aggiornando dinamicamente i pesi delle funzionalità.
   
In alcuni schemi, i pesi sono di classe specifica in quanto un attributo può essere più importante per una classe che ad un altro. A tal fine, viene prodotta una descrizione per ogni classe che distingue i suoi membri dai membri di tutte le altre classi. Ciò porta al problema che un'istanza di prova sconosciuta può essere assegnata a diverse classi, oa nessuna classe, un problema troppo familiare dalla nostra descrizione dell'induzione della regola. Soluzioni euristiche vengono applicate per risolvere queste situazioni. La metrica a distanza include i pesi delle funzioni w1, w2,. . . , Wn su ogni dimensione:

 .....
 Nel caso di pesi di caratteristiche specifiche per la classe, per ciascuna classe verranno impostati un insieme separato di pesi.
   
Tutti i pesi degli attributi vengono aggiornati dopo che ciascuna istanza di formazione è classificata e l'esempio più simile (o l'esempio più simile di ogni classe) viene utilizzato come base per l'aggiornamento. Chiama l'istanza di addestramento x e l'esemplare più simile. Per ogni attributo i la differenza xi-yi | È una misura del contributo di tale attributo alla decisione. Se questa differenza è piccola allora l'attributo contribuisce positivamente, mentre se è grande può contribuire negativamente. L'idea di base è quella di aggiornare il peso ith in base alla dimensione di questa differenza e se la classificazione fosse effettivamente corretta. Se la classificazione è corretta, il peso associato è aumentato e se è scorretto diminuisce, l'importo di aumento o diminuzione viene regolato dalla dimensione della differenza: grande se la differenza è piccola e viceversa. Il cambiamento di peso è generalmente seguito da una fase di renormalizzazione. Una strategia più semplice, che può essere altrettanto efficace, è quella di lasciare i pesi da soli se la decisione è corretta e se è errato aumentare i pesi per quegli attributi che differiscono notevolmente, accentuando la differenza. I dettagli di questi algoritmi di adattamento del peso sono descritti da Aha (1992). Un buon test se un metodo di ponderazione di attributo funziona è quello di aggiungere attributi irrilevanti a tutti gli esempi di un set di dati. Idealmente, l'introduzione di attributi irrilevanti non dovrebbe pregiudicare la qualità delle previsioni o il numero di esemplari memorizzati.

        Generalizzare esemplari - Generalizing exemplars

  Esemplari generalizzati sono regioni rettangolari di spazio di istanza, chiamate hyperrectangles perché sono ad alta dimensione. Durante la classificazione di nuovi casi è necessario modificare la funzione di distanza come descritto di seguito per consentire di calcolare la distanza di un hyperrectangle. Quando un nuovo esemplare è classificato correttamente, viene generalizzato semplicemente con la fusione con l'esemplare più vicino della stessa classe. L'esempio più vicino può essere una singola istanza o un groviglio di iperrec. Nel primo caso viene creato un nuovo hyperrectangle che copre la vecchia e la nuova istanza. In quest'ultimo, l'hyperrectangle viene ingrandito per includere la nuova istanza. Infine, se la previsione è errata ed è stato un hyperrectangle che è stato responsabile della predizione errata, i confini del hyperrectangle sono alterati in modo che si restringa dalla nuova istanza.
    
È necessario decidere all'inizio se è consentito o no l'overgeneralizzazione causata da nidificazione o sovrapposizione di hyperrectangles. Se si deve evitare, viene eseguito un controllo prima di generalizzare un nuovo esempio per verificare se le regioni dello spazio delle funzioni confliggere con il nuovo hyperrectangle proposto. Se lo fanno, la generalizzazione viene interrotta e l'esempio viene memorizzato in modo verbale. Si noti che i hyperrectangles sovrapposti sono esattamente analoghi a situazioni in cui lo stesso esempio è coperto da due o più regole in un insieme di regole. In alcuni schemi gli esemplari generalizzati possono essere nidificati in modo che possano essere totalmente contenuti tra di loro nello stesso modo in cui, in alcune rappresentazioni, le regole possono avere eccezioni. Per fare questo, ogni volta che un esempio è classificato in modo errato, viene eseguito un euristico fallback usando il secondo vicino più prossimo se avrebbe prodotto una corretta previsione in un ulteriore tentativo di eseguire generalizzazione. Questo meccanismo di seconda opportunità promuove la nidificazione di hyperrectangles. Se un esempio rientra in un rettangolo della classe sbagliata che contiene già un esemplare della stessa classe, i due si generalizzano in un nuovo hyperrectangle "eccezione" nidificato nell'originale. Per gli esemplari generalizzati nidificati, il processo di apprendimento inizia frequentemente con un piccolo numero di istanze di seme per impedire che tutti gli esempi della stessa classe siano generalizzati in un singolo rettangolo che copra la maggior parte dello spazio problematico.

    Funzioni di distanza per 'esemplari generalizzati'

 
Con esemplari generalizzati è necessario generalizzare la funzione di distanza per calcolare la distanza da un'istanza ad un esempio esemplificato, nonché ad un'altra istanza. La distanza da un'istanza ad un hyperrectangle è definita come zero se il punto si trova nell'iperrectangle. Il modo più semplice per generalizzare la funzione di distanza per calcolare la distanza da un punto esterno ad un hyperrectangle è scegliere l'istanza più vicina all'interno e misurare la distanza a quella. Tuttavia, questo riduce il vantaggio della generalizzazione perché reintroduce la dipendenza da un particolare esempio singolo. Più precisamente, mentre nuovi casi che si trovano all'interno di un iperrectangle continuano a beneficiare di generalizzazioni, quelle che si trovano al di fuori non lo fanno. Potrebbe essere meglio utilizzare la distanza dalla parte più vicina dell'iperrectangle. La Figura 6.14 mostra i confini impliciti che si formano tra due classi rettangolari se la distanza metrica è regolata per misurare la distanza dal punto più vicino di un rettangolo. Anche in due dimensioni il confine contiene un totale di nove regioni (sono numerate per una facile identificazione); La situazione sarà più complessa per i hyperrectangles più alti.
    
Procedendo dalla parte inferiore sinistra, la prima regione, in cui il limite è lineare, si trova al di fuori dell'estensione di entrambi i rettangoli, a sinistra di entrambi i confini della più grande e sotto entrambi i confini del più piccolo. Il secondo è nell'ambito di un rettangolo - a destra del bordo sinistro del rettangolo più grande - ma al di fuori dell'altro, sotto entrambe le frontiere del più piccolo. In questa regione il confine è parabolico, perché il luogo di un punto che è la stessa distanza da una linea dato da un determinato punto è una parabola. La terza regione è dove il confine incontra il bordo inferiore del rettangolo più grande quando proiettato verso l'alto e il bordo sinistro del più piccolo quando proiettato a destra. Il limite è lineare in questa regione, perché è equidistante da questi due confini. Il quarto è dove il confine si trova alla destra del più grande rettangolo, ma al di sotto del fondo di quel rettangolo. In questo caso il confine è parabolico perché è il luogo di punti equidistanti dall'angolo inferiore destro del rettangolo più grande e quello sinistro di quello più piccolo. La quinta regione si trova tra i due rettangoli: qui il confine è verticale. Il modello viene ripetuto nella parte in alto a destra dello schema: prima parabolico, quindi lineare, poi parabolica (anche se questa particolare parabola è quasi indistinguibile da una linea retta) e infine lineare, poiché il confine esclude infine dalla portata di entrambi i rettangoli.
    
Questa semplice situazione definisce sicuramente un confine complesso! Naturalmente, non è necessario rappresentare esplicitamente il confine; Viene generato implicitamente dal calcolo del vicino vicino. Tuttavia, la soluzione non è ancora molto buona. Considerando che la distanza dall'istanza più vicina all'interno di un iperrectangle è troppo dipendente dalla posizione di quella particolare istanza, tenendo la distanza dal punto più vicino dell'iperrectangle è troppo dipendente da quel angolo del rettangolo - l'esempio più vicino potrebbe essere molto lungo Dall'angolo.
   
Un problema finale riguarda la misurazione della distanza da hyperrectangles che si sovrappongono o sono nidificati. Ciò complica la situazione perché un'istanza può rientrare in più di un hyperrectangle. Un appropriato euristico da utilizzare in questo caso è quello di scegliere la classe del hyperrectangle più specifico contenente l'istanza, cioè quella che copre la più piccola area dello spazio di istanza. Se è consentito sovrapposizione o nidificazione, la funzione di distanza deve essere modificata in modo da tener conto sia dell'accuratezza di previsione osservata degli esemplari che dell'importanza relativa di diverse funzionalità, come descritto nelle sezioni precedenti sulle esemplari rumorosi di potatura e sulla ponderazione degli attributi.

       Funzioni di distanza generalizzate

  Ci sono molti modi diversi per definire una funzione a distanza, ed è difficile trovare ragioni razionali per una scelta particolare. Una soluzione elegante è considerare che un'istanza sia trasformata in un'altra attraverso una sequenza di operazioni elementari predefinite e per calcolare la probabilità di una simile sequenza se le operazioni vengono scelte in modo casuale. La robustezza è migliorata se vengono considerati tutti i possibili percorsi di trasformazione, ponderati dalle loro probabilità e lo schema generalizza naturalmente il problema del calcolo della distanza tra un'istanza e un insieme di altre istanze, considerando le trasformazioni a tutte le istanze del set. Attraverso una tale tecnica è possibile considerare ogni istanza come esercitare una "sfera d'influenza", ma una sfera con dei confini morbidi piuttosto che il taglio duro del sottotetto implicito dalla regola di prossimità più vicina, in cui un particolare esempio è o "In" o "out" della decisione.
   
Con tale misura, dato un'istanza di prova la cui classe è sconosciuta, viene calcolata la distanza dall'insieme di tutte le istanze di formazione di ciascuna classe a turno e viene scelta la classe più vicina. Risulta che gli attributi nominali e numerici possono essere trattati in modo uniforme all'interno di questo approccio basato sulla trasformazione definendo diversi set di trasformazione, ed è anche possibile tener conto di tipi di attributi insoliti, quali gradi di arco o giorni della settimana , Misurati su una scala circolare.

     Discusione


I metodi "vicino vicino" hanno guadagnato la popolarità nell'apprendimento della macchina attraverso il lavoro di Aha (1992), che ha dimostrato che, combinato con la potatura di esemplare rumorosa e la ponderazione degli attributi, l'apprendimento basato sull'istruzione si comporta bene rispetto ad altri metodi. Vale la pena notare che, anche se lo abbiamo descritto unicamente nel contesto della classificazione piuttosto che dei problemi di previsione numerica, si applica anche a questi: le previsioni possono essere ottenute combinando i valori previsti dei vicini più vicini e misurandoli per distanza.
   
Visto nello spazio di esempio, le rappresentazioni standard e di base dell'albero sono in grado di rappresentare solo i limiti di classe paralleli agli assi definiti dagli attributi. Questo non è un handicap per gli attributi nominali, ma è per quelli numerici. I limiti di classe parallela non assi possono essere approssimati solo coprendo la regione sopra o sotto il limite con più rettangoli paralleli assi, il numero di rettangoli che determinano il grado di approssimazione. Al contrario, il metodo basato su istanze può facilmente rappresentare confini lineari arbitrari. Anche con un solo esempio di ciascuna delle due classi, il limite implicito dalla regola più vicino è una linea retta di orientamento arbitrario, vale a dire il bisettore perpendicolare della linea che unisce gli esempi.
   
L'apprendimento basata su istanze semplici non produce esplicite esposizioni di conoscenze tranne che selezionando esemplari rappresentativi. Tuttavia, quando combinato con generalizzazione esemplare, è possibile ottenere un insieme di regole che possono essere confrontate con quelle prodotte da altri sistemi di apprendimento macchina. Le regole tendono ad essere più conservatori poiché la metrica a distanza, modificata per incorporare esempi complessi, può essere utilizzata per elaborare esempi che non rientrano nelle regole. Ciò riduce la pressione per produrre regole che coprono l'intero spazio di esempio o addirittura tutti gli esempi di formazione. D'altra parte, la natura incrementale della maggior parte dei metodi di apprendimento basati sull'istanza significa che le regole si formano con ansia, solo dopo che una parte del set di formazione è stata vista; E ciò inevitabilmente riduce la loro qualità.
    
Non abbiamo dato algoritmi precisi per le varianti di apprendimento basato su istanze che implicano generalizzazioni perché non è chiaro quale sia il modo migliore per fare la generalizzazione. Salzberg (1991) ha suggerito che la generalizzazione con esemplari nidificati può raggiungere un elevato grado di classificazione dell'esattezza su una serie di problemi diversi, conclusione contestata da Wettschereck e Dietterich (1995), che sostenevano che questi risultati erano fortuiti e non avessero in altri domini. Martin (1995) ha esplorato l'idea che non sia la generalizzazione ma l'overgeneralization che si verifica quando i hyperrectangles nidificano o sovrappongono che è responsabile della scarsa performance e ha dimostrato che se si evitano nidificazione e sovrapposizione ottimi risultati sono ottenuti in un gran numero di domini.
   
La funzione di distanza generalizzata basata sulle trasformazioni è descritta da Cleary e Trigg (1995). La generalizzazione esemplare è un raro esempio di una strategia di apprendimento in cui la ricerca procede da specifici a generali, piuttosto che da generali a specifici, come nel caso di induzione di alberi o regole. Non vi è alcuna ragione particolare per cui la ricerca specifica a livello generale dovrebbe essere necessariamente inadeguata obbligando gli esempi a essere considerati in modo strettamente incrementale e esistono approcci orientati a batch che generano regole utilizzando un approccio di base basato su istanze.
   
Inoltre, sembra che l'idea di produrre generalizzazioni conservatrici e affrontare casi che non siano coperti dalla scelta della "generalizzazione" più vicina è un'eccellenza, che sarà eventualmente estesa agli induttori ordinari di alberi e regole.

    Predizione Numerica - Numeric prediction

  Gli alberi utilizzati per la previsione numerica sono proprio come gli alberi decisionali ordinari, tranne che in ciascuna foglia memorizzano un valore di classe che rappresenta il valore medio di istanze che raggiungono la foglia, nel qual caso l'albero è chiamato un albero di regressione o una linea Modello di regressione che prevede il valore di classe di istanze che raggiungono la foglia, nel qual caso è chiamato un albero di modello. In quanto segue descriveremo gli alberi del modello poiché gli alberi di regressione sono veramente una specialcase.
   
Gli alberi di regressione e modello vengono costruiti prima utilizzando un algoritmo di induzione di albero decisionale per costruire un albero iniziale. Tuttavia, mentre la maggior parte degli algoritmi degli alberi decisionali scelgono l'attributo di divisione per massimizzare il guadagno delle informazioni, è appropriato per la previsione numerica per ridurre al minimo la variazione intrasubset nei valori di classe giù per ogni ramo. Una volta che l'albero di base è stato formato, si prende in considerazione la potatura dell'albero da ogni foglia, proprio come con gli alberi decisionali ordinari. L'unica differenza tra l'albero di regressione e l'induzione di albero di modello è che per quest'ultimo, ogni nodo viene sostituito da un piano di regressione invece di un valore costante. Gli attributi che servono a definire tale regressione sono precisamente quelli che partecipano alle decisioni del sottoprogetto che sarà potato, cioè nei nodi sotto la corrente.
   
Dopo un'ampia descrizione di alberi di modello, spieghi brevemente come generare regole da alberi di modello e poi descrivere un altro approccio alla previsione numerica - regressione lineare ponderata localmente. Mentre gli alberi del modello derivano dalla metodologia di base di divisione e conquista della decisione decisionale, la regressione ponderata localmente è ispirata dai metodi basati sull'istanza per la classificazione che abbiamo descritto nella sezione precedente. Come l'apprendimento basato su istanze, esegue tutto l'apprendimento al tempo di previsione. Sebbene la regressione ponderata localmente assomiglia agli alberi del modello in quanto utilizza la regressione lineare per adattare i modelli localmente a particolari aree dello spazio dell'istanza, lo fa in modo piuttosto diverso.

     Model trees

  Quando un albero di modello viene utilizzato per predire il valore di un'istanza di prova, l'albero viene seguito in un foglio nel modo normale, utilizzando i valori dell'attributo dell'istanza per eseguire decisioni di routing in ciascun nodo. La foglia conterrà un modello lineare basato su alcuni dei valori dell'attributo e questo viene valutato per l'istanza di prova per ottenere un valore predittivo raw.
    
Invece di utilizzare direttamente questo valore raw, risulta utile utilizzare un processo di levigatura per compensare le forti discontinuità che si verificheranno inevitabilmente tra i modelli lineari adiacenti alle foglie dell'albero potato. Questo è un problema particolare per i modelli costruiti da un piccolo numero di istanze di formazione. Lo smontaggio può essere realizzato producendo modelli lineari per ogni nodo interno, così come per le foglie, al momento in cui l'albero è costruito. Quindi, una volta che il modello di foglia è stato utilizzato per ottenere il valore predefinito raw per un'istanza di prova, quel valore viene filtrato lungo il percorso di ritorno alla radice, lisciandolo ad ogni nodo combinandolo con il valore predetto dal modello lineare per quello nodo.
    
Un calcolo appropriato di lisciatura è
.............
dove p ¢ è la predizione passata al prossimo nodo superiore, p è la previsione passata a questo nodo dal basso, q è il valore predetto dal modello in questo nodo, n è il numero di istanze di addestramento che raggiungono il nodo sottostante, E k è una costante di lisciatura. Gli esperimenti mostrano che la levigatura aumenta notevolmente l'accuratezza delle previsioni.
     Esattamente lo stesso processo di levigatura può essere realizzato incorporando i modelli interni in ogni modello di foglia dopo che l'albero è stato costruito. Quindi, durante il processo di classificazione vengono utilizzati solo i modelli fogliari. Lo svantaggio è che i modelli fogli tendono ad essere più grandi e più difficili da comprendere, perché molti coefficienti che in precedenza erano zero diventano non-zero quando i modelli dei nodi interni sono incorporati.
 
 

   Building the tree

Il criterio di suddivisione viene utilizzato per determinare quale attributo è il migliore per dividere la parte T dei dati di addestramento che raggiunge un determinato nodo. Si basa sul trattamento della deviazione standard dei valori di classe in T come misura dell'errore in quel nodo e calcolando la riduzione attesa di errore come risultato di test di ogni attributo in quel nodo. L'attributo che massimizza la riduzione dell'errore atteso è scelto per la suddivisione del nodo.
La riduzione di errori prevista, che noi chiamiamo SDR per la riduzione di deviazione standard, è calcolata da
......
In cui T1, T2,. . . Sono i set che risultano dalla suddivisione del nodo in base all'attributo scelto.
Il processo di suddivisione termina quando i valori di classe delle istanze che raggiungono un nodo variano leggermente, cioè quando la loro deviazione standard è solo una piccola frazione (ad esempio, meno del 5%) della deviazione standard dell'insieme di istanze originali. La scissione termina anche quando rimangono solo pochi istanti, per esempio quattro o meno. Gli esperimenti dimostrano che i risultati ottenuti non sono molto sensibili alla scelta esatta di queste  soglie.
   

   Pruning the tre

 Come è stato osservato in precedenza, è necessario un modello lineare per ogni nodo interno dell'albero, non solo alle foglie, per l'utilizzo nel processo di levigatura. Prima della potatura, viene calcolato un modello per ogni nodo dell'albero non trattato. Il modello assume la forma

  w 0 + w1a1 + w2a2 + . . . + wk ak ,
 

Dove a1, a2,. . . , Ak sono valori degli attributi. I pesi w1, w2,. . . , Wk sono calcolati usando la regressione standard. Tuttavia, nella regressione vengono utilizzati solo gli attributi testati nella sottostruttura sottostante questo nodo, in quanto gli altri attributi che influenzano il valore predeterminato sono stati presi in considerazione nei test che portano al nodo. Si noti che abbiamo assunto tacitamente che gli attributi sono numerici: descriviamo la gestione degli attributi nominali nella sezione successiva.
    
La procedura di potatura utilizza una stima, in ogni nodo, dell'errore previsto per i dati di prova. In primo luogo, la differenza assoluta tra il valore previsto e il valore della classe reale viene calcolata su ciascuna delle istanze di formazione che raggiungono quel nodo. Poiché l'albero è stato costruito espressamente per questo set di dati, questa media sottovaluterà l'errore previsto per i casi inesistenti. Per compensare, è moltiplicato per il fattore (n + n) / (n - n), dove n è il numero di istanze di formazione che raggiungono il nodo e n è il numero di parametri nel modello lineare che dà il valore della classe a Quel nodo.
 
L'errore previsto per i dati di prova in un nodo viene calcolato come descritto in precedenza, utilizzando il modello lineare per la previsione. A causa del fattore di compensazione (n + n) / (n - n), può essere semplificato ulteriormente il modello lineare lasciando i termini per ridurre al minimo l'errore stimato. L'abbandono di un termine diminuisce il fattore di moltiplicazione, che può essere sufficiente per compensare l'inevitabile aumento dell'errore medio sulle istanze di addestramento. I termini vengono lasciati uno ad uno, avidamente, fintanto che la stima dell'errore diminuisce.
   
Infine, una volta che un modello lineare sia in atto per ogni nodo interno, l'albero viene tirato indietro dalle foglie finché l'errore stimato stimato diminuisce. L'errore previsto per il modello lineare in quel nodo viene confrontato con l'errore previsto dalla sottostruttura sottostante. Per calcolare quest'ultimo, l'errore di ogni ramo viene combinato in un unico valore complessivo per il nodo, ponderando il ramo per la proporzione delle istanze di addestramento che scendono e combinando le stime di errore in modo lineare utilizzando quei pesi.

  Atributi Nominali

  Prima di costruire un 'modello d'albero ', tutti gli attributi nominali vengono trasformati in variabili binarie che vengono quindi considerate numeriche. Per ciascun attributo nominale, il valore medio della classe corrispondente a ogni possibile valore dell'enumerazione viene calcolato dalle istanze di addestramento ei valori nell'elenco sono ordinati in base a queste medie. Quindi, se l'attributo nominale ha valori possibili k, viene sostituito da attributi binari sintetici k-1, l'i che è 0 se il valore è uno dei primi i nell'ordine e 1 altrimenti. Quindi tutte le divisioni sono binarie: implicano un attributo numerico o un binario sintetico, trattato come attributo numerico.
   È possibile dimostrare analiticamente che la migliore divisione in un nodo per una variabile nominale con valori k è una delle posizioni k-1 ottenute ordinando i valori della classe media per ogni valore dell'attributo. Questa operazione di ordinamento dovrebbe essere ripetuta in ogni nodo; Tuttavia, c'è un inevitabile aumento del rumore a causa di un piccolo numero di istanze nei nodi inferiori dell'albero (e in alcuni casi i nodi potrebbero non rappresentare tutti i valori per alcuni attributi), e non si perdono molte volte eseguendo l'ordinamento solo una volta Iniziando a costruire un modello d'albero.

     Valori mancanti

 
Per tener conto dei valori mancanti, viene apportata una modifica alla formula SDR. La formula finale, inclusa la compensazione valore mancante, è
.....
dove m è il numero di istanze senza valori mancanti per tale attributo e T è l'insieme di istanze che raggiungono questo nodo. TL e TR sono set che risultano dalla suddivisione su questo attributo, perché tutti i test sugli attributi sono ormai binari. Durante l'elaborazione di istruzioni di allenamento e di test, una volta che un attributo è selezionato per la suddivisione, è necessario dividere le istanze in sottogruppi in base al loro valore per questo attributo. Un problema evidente sorge quando manca il valore. Una tecnica interessante chiamata suddivisione surrogata è stata sviluppata per gestire questa situazione. Comprende l'individuazione di un altro attributo da dividere al posto dell'originale e usarlo invece. L'attributo viene scelto come quello più correlato all'attributo originale. Tuttavia, questa tecnica è complessa per implementare e richiede tempo per eseguire.
     
Un euristico più semplice è quello di utilizzare il valore della classe come attributo surrogato, nella convinzione che, a priori, questo è l'attributo più probabile che sia correlato con quello utilizzato per la suddivisione. Naturalmente questo è possibile solo quando si lavora l'allenamento, perché per gli esempi di prova la classe è sconosciuta. Una soluzione semplice per gli esempi di test è semplicemente sostituire il valore dell'attributo sconosciuto con il valore medio di tale attributo per gli esempi di addestramento che raggiungono il nodo, che ha l'effetto, per un attributo binario, di scegliere il sottorete più popolato. Questo semplice approccio sembra funzionare bene in pratica. Prendiamo in considerazione più in dettaglio come utilizzare il valore della classe come attributo surrogato durante il processo di formazione. Per prima cosa, ci occupiamo di tutti i casi per i quali è noto il valore dell'attributo di suddivisione. Determiniamo una soglia di suddivisione nel modo consueto, ordinando le istanze secondo il suo valore e, per ogni possibile punto di divisione, calcolando l'SDR secondo la formula precedente, scegliendo il punto di spacco che produce la massima riduzione di errore. Solo le istanze per le quali è noto il valore dell'attributo di suddivisione vengono utilizzate per determinare il punto di divisione.
  
Quindi dividiamo questi casi nei due gruppi L e R secondo il test. Deteriamo se le istanze in L o R hanno il maggiore valore della classe media e calcoliamo la media di queste due medie. Quindi, un'istanza per cui questo valore di attributo è sconosciuto viene posto in L o R in base al valore del suo valore superiore a questa media complessiva o meno. Se lo fa, va in qualunque di L e R abbia il maggiore valore della classe media; Altrimenti, va in quello con il valore della classe media minore. Quando la ripartizione si arresta, tutti i valori mancanti saranno sostituiti dai valori medi degli attributi corrispondenti delle istanze di addestramento che raggiungono le foglie.

   Pseudocode per l'induzione di alberi modello

  Figure 6.15 Pseudocode for model tree induction.

La Figura 6.15 fornisce pseudocode per l'algoritmo di albero di modello che abbiamo descritto.Le due parti principali creano un albero suddividendo successivamente i nodi, eseguiti per spaccatura e la potatura dalle foglie verso l'alto, eseguite dalla prugna. La struttura dei dati del nodo contiene un flag di tipo che indica se si tratta di un nodo interno o di una foglia, che indica il figlio destro e sinistro, l'insieme di istanze che raggiungono quel nodo, l'attributo utilizzato per la suddivisione in quel nodo e una struttura Che rappresenta il modello lineare per il nodo.
  
La funzione sd chiamata all'inizio del programma principale e nuovamente all'inizio della spaccatura calcola la deviazione standard dei valori di classe di un insieme di istanze. Segue quindi la procedura per ottenere gli attributi binari sintetici precedentemente descritti. Le procedure standard per la creazione di nuovi nodi e la stampa dell'albero finale non vengono mostrate. In split, sizeof restituisce il numero di elementi di un set. I valori attributi mancanti vengono trattati come descritto in precedenza. L'SDR è calcolato in base all'equazione all'inizio della precedente sottosezione. Anche se non è mostrato nel codice, è impostato su infinito se la suddivisione dell'attributo creerebbe una foglia con meno di due istanze. Nella rottura, la routine linearRegression descrive in modo ricorsivo il sottostruttura che raccoglie gli attributi, esegue una regressione lineare sulle istanze di quel nodo in funzione di tali attributi e poi scompare avidamente i termini se agisce in tal modo migliora la stima dell'errore, come descritto in precedenza.
   
Infine, la funzione di errore torna

......
  Dove n è il numero di istanze del nodo e n è il numero di parametri nel modello lineare del nodo.La Figura 6.16 fornisce un esempio di un albero modello formato da questo algoritmo per un problema con due attributi numerici e due nominali. Ciò che deve essere preveduto è il tempo di salita di un servo simulato che coinvolge un servoamplificatore, un motore, una vite di guida e un carrello scorrevole. Gli attributi nominali svolgono un ruolo importante. Quattro attributi binari sintetici sono stati creati per ognuno dei cinque attributi nominali del motore e della vite, e sono mostrati nella tabella 6.1 in termini di due set di valori a cui corrispondono. L'ordinamento di questi valori - D, E, C, B, A per il motore e coincidente D, E, C, B, A per vite anche - è determinato dai dati di allenamento: il tempo di sollevamento calcolato su tutti gli esempi per cui il motore = D è minore di quella media per gli esempi per i quali il motore = E, che è inferiore a quando il motore = C e così via. È evidente dalla grandezza dei coefficienti della tabella 6.1 che il motore = D rispetto a E, C, B, A svolge un ruolo di primo piano nel modello LM2 e il motore = D, E rispetto a C, B, A svolge un ruolo di primo piano LM1. Sia il motore che la vite svolgono anche ruoli minori in diversi modelli.
  
L'albero di decisione mostra una suddivisione a tre vie su un attributo numerico. In primo luogo è stato generato un 'albero che divide binario' nel modo consueto. Si è scoperto che la radice e uno dei suoi discendenti hanno provato lo stesso attributo, pgain e un semplice algoritmo è stato usato per confondere questi due nodi nell'albero leggermente più comprensibile che viene mostrato.


 Figure 6.16 Model tree for a dataset with nominal attributes.
 

 Regole da alberi di modello

  Gli alberi di modello sono essenzialmente alberi decisionali con modelli lineari alle foglie. Come gli alberi decisionali, possono subire il problema sottoposto replicato spiegato nella sezione 3.3 e talvolta la struttura può essere espressa in modo più conciso utilizzando un insieme di regole anziché un albero. Possiamo generare regole per la previsione numerica? Ricorda il discorso di regola descritto nella sezione 6.2 che usa "separate-and-conquer" in combinazione con alberi decisionali parziali per estrarre le regole di decisione dagli alberi. La stessa strategia può essere applicata agli alberi modello per generare elenchi di decisione per la previsione numerica.
   
In primo luogo costruire un albero modello parziale da tutti i dati. Scegli una delle foglie e fai una regola. Rimuovere i dati coperti da quella foglia; Quindi ripetere il processo con i dati rimanenti. La domanda è, come costruire l'albero modello parziale, cioè un albero con nodi non espanditi? Ciò si basa sulla questione di come scegliere quale nodo per espandersi successivamente. L'algoritmo di Figura 6.5 (sezione 6.2) seleziona il nodo la cui entropia per l'attributo di classe è minima. Per gli alberi di modello, le cui previsioni sono numeriche, è sufficiente utilizzare la varianza. Questo si basa sulla stessa logica: minore è la varianza, più è più sottile il sottopunto e più breve è la regola. Il resto dell'algoritmo rimane lo stesso, con il metodo di selezione separata del discente del modello e la strategia di potatura che sostituisce gli studenti degli alberi decisionali. Poiché le foglie dell'albero del modello sono modelli lineari, le regole corrispondenti avranno modelli lineari a destra.
  
C'è un caveat quando si utilizzano alberi di modello in questo modo per generare set di regole: il processo di levigatura utilizzato dall'educatore di modello. Si scopre che l'utilizzo di alberi di modelli smussati non riduce l'errore nelle previsioni del set di regole finali. Ciò può essere dovuto al fatto che la levigatura funziona meglio per i dati contigui, ma lo schema "separato e conquistato" elimina i dati coperti dalle regole precedenti, lasciando buchi nella distribuzione. Lo smontaggio, se è fatto a tutti, deve essere eseguito dopo che è stato generato il set di regole.

   Regressione lineare ponderata localmente

 Un approccio alternativo alla previsione numerica è il metodo della regressione lineare ponderata localmente. Con gli alberi modello, la struttura ad albero divide lo spazio di istanza in regioni e viene trovato un modello lineare per ciascuno di essi. In effetti, i dati di addestramento determinano come è stato partizionato lo spazio di istanza. La regressione ponderata localmente, invece, genera modelli locali al tempo di previsione, dando maggiore peso a istanze nel quartiere della particolare istanza di prova. Più in particolare, pesa le istanze di addestramento in base alla loro distanza rispetto all'istanza di prova e esegue una regressione lineare sui dati ponderati. Gli istituti di formazione vicini all'istanza di prova ricevono un peso elevato; Quelli lontani ricevono un livello basso. In altre parole, un modello lineare viene eseguito su misura per l'istanza di prova particolare e viene utilizzata per predire il valore della classe dell'istanza.
  Per utilizzare la regressione localizzata, è necessario decidere uno schema di ponderazione basato sulla distanza per le istanze di addestramento. Una scelta comune è quella di pesare le istanze secondo l'inverso della loro distanza euclidea dall'istanza di prova. Un'altra possibilità è quella di utilizzare la distanza euclidea in combinazione con una funzione kernel gaussiana. Tuttavia, non vi sono prove evidenti che la scelta della funzione di ponderazione è cruciale. Più importante è la selezione di un "parametro di levigatura" che viene utilizzato per ridimensionare la funzione di distanza: la distanza viene moltiplicata per l'inverso di questo parametro. Se è impostato su un valore ridotto, solo istanze molto vicine all'istanza di prova riceveranno un peso significativo; Se è grande, i casi più distanti avranno anche un impatto significativo sul modello. Un modo per scegliere il parametro di levigatura è impostarlo alla distanza dell'istanza di addestramento più vicina in modo che il suo valore diventi più piccolo in quanto aumenta il volume dei dati formativi. La scelta migliore di k dipende dalla quantità di rumore nei dati.
    
Più il rumore c'è, più i vicini dovrebbero essere inclusi nel modello lineare. In genere, viene trovato un parametro adeguato di lisciatura utilizzando la crossvalidation.
  
Come gli alberi di modello, la regressione lineare ponderata localmente è in grado di approssimare le funzioni non lineari. Uno dei suoi principali vantaggi è che è ideale per l'apprendimento incrementale: tutta la formazione è fatta a tempo di previsione, in modo da poter aggiungere nuovi istanti ai dati di formazione in qualsiasi momento. Tuttavia, come altri metodi basati sull'istanza, è lento a generare una previsione per un'istanza di prova. Innanzitutto, le istanze di formazione devono essere scansionate per calcolare i loro pesi; Quindi, su queste istanze viene eseguita una regressione lineare ponderata. Inoltre, come altri metodi basati sull'istanza, la regressione ponderata localmente fornisce poche informazioni sulla struttura globale del set di dati di formazione. Si noti che se il parametro di livellamento si basa sul vicino prossimo viceversa e la funzione di ponderazione fornisce un peso zero a istanze più distanti, gli alberi di kD e gli alberi a sfera descritti nella sezione 4.7 possono essere utilizzati per velocizzare il processo di individuazione dei relativi vicini .


 L'apprendimento ponderato localmente non è limitato alla regressione lineare: può essere applicato con qualsiasi tecnica di apprendimento in grado di gestire istanze ponderate. In particolare, è possibile utilizzarlo per la classificazione. Molti algoritmi possono essere facilmente adattati per gestire i pesi. Il trucco è quello di capire che i pesi (interi) possono essere simulati creando diverse copie della stessa istanza. Ogni volta che l'algoritmo di apprendimento utilizza un'istanza quando si calcola un modello, finga semplicemente che sia accompagnata dal numero appropriato di istanze uguali dell'ombra. Questo funziona anche se il peso non è un intero. Ad esempio, nell'algoritmo di Naïve Bayes descritto nella Sezione 4.2, moltiplicare i conteggi derivanti da un'istanza dal peso dell'istanza, e-voilà-hai una versione di Naïve Bayes che può essere utilizzata per l'apprendimento localmente pesato.
   
Si scopre che Naïve Bayes ponderato localmente funziona estremamente bene in pratica, sovraperformando entrambi Naïve Bayes stesso e la tecnica del k-nearest-neighbor. Inoltre ompara favorevolmente con modi molto più sofisticati di valorizzare Naïve Bayes rilassando la sua intrinseca assunzione di indipendenza. L'apprendimento ponderato a livello locale assume solo l'indipendenza all'interno di un quartiere, non globalmente in tutto lo spazio di istanza come standard Naïve Bayes.
  
In linea di principio, l'apprendimento ponderato a livello locale può essere applicato anche agli alberi decisionali e ad altri modelli più complessi rispetto alla regressione lineare e a Naïve Bayes. Tuttavia, è vantaggioso perché è principalmente un modo per consentire ai modelli semplici di diventare più flessibili Obiettivi arbitrari approssimativi. Se l'algoritmo di apprendimento sottostante può già farlo, non vi è alcun punto nell'applicazione di apprendimento localmente ponderato. Tuttavia, può migliorare altri modelli semplici - ad esempio, macchine vettoriali di supporto lineare e regressione logistica.

        Discusione


Gli alberi di regressione sono stati introdotti nel sistema CART di Breiman et al. (1984). CART, per i "alberi di classificazione e regressione", ha incorporato un induttore di alberi decisionali per classi discrete simili a quelle del C4.5, sviluppato in modo indipendente, e un sistema per indurre gli alberi di regressione. Molte delle tecniche descritte nella sezione precedente, come il metodo di manipolazione degli attributi nominali e il dispositivo surrogato per la gestione dei valori mancanti, sono stati inclusi nel CART. Tuttavia, gli alberi di modello non sono comparsi fino a poco più di recente, essendo stati descritti per la prima volta da Quinlan (1992). L'utilizzo di alberi modello per la generazione di set di regole (anche se non parziali) è stato esplorato da Hall et al. (1999).
    
L'induzione di alberi di modello non è così comunemente utilizzata come l'induzione di alberi decisionali, in parte perché le descrizioni complete (e le implementazioni) della tecnica sono diventate disponibili solo di recente (Wang e Witten 1997). Le reti neurali vengono usate più comunemente per predire le quantità numeriche, anche se soffrono dello svantaggio che le strutture che producono sono opache e non possono essere utilizzate per aiutarci a comprendere la natura della soluzione. Sebbene ci siano tecniche per produrre intuizioni comprensibili dalla struttura delle reti neurali, la natura arbitraria della rappresentazione interna significa che vi possono essere delle variazioni drammatiche tra reti di architettura identica addestrati sugli stessi dati. Dividendo la funzione che viene indotta in patch lineari, gli alberi modello forniscono una rappresentazione riproducibile e almeno un po 'comprensibile.
    
Ci sono molte varianti di apprendimento localmente pesato. Ad esempio, gli statisti hanno considerato l'utilizzo di modelli localmente quadratici anziché quelli lineari e hanno applicato la regressione logistica ponderata localmente ai problemi di classificazione. Inoltre, molte lettere di potenziale ponderazione e di distanza possono essere trovate in letteratura. Atkeson et al. (1997) hanno scritto un'ottima indagine sull'apprendimento localmente ponderato, soprattutto nel contesto di problemi di regressione. Frank et al. (2003) ha valutato l'uso di apprendimento localmente ponderato in collaborazione con Naïve Bayes.

     Clustering

  Nella sezione 4.8 abbiamo esaminato l'algoritmo di clustering k-means in cui i punti iniziali k sono scelti per rappresentare i centri di cluster iniziali, tutti i punti dati sono assegnati al più vicino, il valore medio dei punti in ciascun cluster viene calcolato per formare il suo nuovo cluster Centro e l'iterazione continua finché non ci sono cambiamenti nei cluster. Questa procedura funziona solo quando il numero di cluster è noto in anticipo e questa sezione inizia descrivendo cosa si può fare se non lo è. Successivamente esaminiamo due tecniche che non partizionano istanze in cluster disgiunti come k-means. Il primo è un metodo di clustering incrementale che è stato sviluppato alla fine degli anni '80 e incarnato in una coppia di sistemi chiamati Cobweb (per attributi nominali) e Classit (per attributi numerici). Entrambi presentano un raggruppamento gerarchico di istanze e utilizzano una misura di cluster "qualità" chiamata utilità di categoria. Il secondo è un metodo di clustering statistico basato su un modello di miscela di diverse distribuzioni di probabilità, una per ciascun cluster. Assegna istanze a classi probabilisticamente, non deterministicamente. Spieghiamo la tecnica di base e disegniamo il funzionamento di uno schema completo di cluster chiamato AutoClass.

  Scelta del numero di cluster

 
Supponiate di usare k-means ma non conoscete il numero di cluster in anticipo. Una soluzione è provare diverse possibilità e vedere quale è la cosa migliore, vale a dire quale riduce al minimo la distanza quadrata totale di tutti i punti al loro centro di cluster. Una strategia semplice è quella di partire da un minimo minimo, forse k = 1, e lavorare fino ad un piccolo massimo fisso, utilizzando la convalida incrociata per trovare il miglior valore. Poiché il k-means è lento e la convalida incrociata lo rende ancora più lento,
    
Probabilmente non sarà possibile sperimentare molti valori possibili per k. Si noti che sui dati di allenamento il clustering "migliore" secondo il criterio di distanza quadrata totale sarà sempre quello di scegliere il numero di cluster che ci sono punti dati! Per penalizzare le soluzioni con molti cluster devi applicare qualcosa come il criterio MDL della Sezione 5.10 oppure utilizzare la convalida incrociata.
   
Un'altra possibilità è iniziare cercando alcuni cluster e stabilire se vale la pena di spaccarli. Potresti scegliere k = 2, eseguire il clustering di k-means finché non termina e quindi considerare la suddivisione di ciascun cluster. Il tempo di calcolo sarà ridotto notevolmente se il clustering iniziale a due vie è considerato irrevocabile e la suddivisione viene indagata per ciascun componente in modo indipendente. Un modo per dividere un cluster è quello di fare un nuovo seme, una deviazione standard lontano dal centro del cluster in direzione della sua più grande variazione e fare un secondo seme la stessa distanza nella direzione opposta. (In alternativa, se questo è troppo lento, scegli una distanza proporzionale alla casella del limite del cluster e una direzione casuale). Quindi applicate i k-means ai punti del cluster con questi due nuovi semi.
   
Avendo suddiviso in maniera provvisoria un cluster, vale la pena conservare la divisione o è il cluster originale ugualmente plausibile da solo? Non è bene guardare la distanza quadrata totale di tutti i punti al loro centro di cluster: questo è destinato a essere più piccolo per due sottocluster. È necessario prevedere una penalità per inventare un cluster aggiuntivo e questo è un lavoro per il criterio MDL. Tale principio può essere applicato per vedere se le informazioni necessarie per specificare i due nuovi centri di cluster, insieme alle informazioni necessarie per specificare ciascun punto rispetto a loro, superano le informazioni necessarie per specificare il centro originale e tutti i punti relativi a esso . Se è così, il nuovo clustering è improduttivo e dovrebbe essere abbandonato.
    
Se la divisione viene mantenuta, prova a suddividere ulteriormente ogni nuovo cluster. Continuare il processo finché non rimangono parti degne di nota. L'efficienza aggiuntiva di implementazione può essere ottenuta combinando questo processo di clustering iterativo con la struttura dei dati dell'albero a forma di kD-tree o di pallone consigliata nella sezione 4.8. Quindi, i punti dati vengono raggiunti lavorando in basso l'albero dalla radice. Quando si considera la suddivisione di un cluster, non è necessario considerare l'intero albero; Basta considerare quelle parti che sono necessarie per coprire il cluster. Ad esempio, quando si decide di dividere il cluster a sinistra in Figura 4.16 (a) a pagina 140 (sotto la linea spessa), è necessario considerare solo i nodi A e B dell'albero in Figura 4.16 (b) perché il nodo C è irrilevante per quel cluster.

      Incremental clustering


Mentre l'algoritmo k-means iterizza su tutto il set di dati finché non viene raggiunta la convergenza, i metodi di clustering che esaminiamo ulteriormente incrementano l'istanza per istanza. In qualsiasi fase il clustering forma un albero con istanze alle foglie e un nodo radice che rappresenta l'intero set di dati. All'inizio l'albero è costituito dalla sola radice. Le istanze vengono aggiunte una ad una e l'albero viene aggiornato in modo appropriato in ogni fase. L'aggiornamento può essere semplicemente un caso di trovare il posto giusto per mettere una foglia che rappresenta la nuova istanza o può implicare radicalmente la ristrutturazione della parte dell'albero che è interessata dalla nuova istanza. La chiave per decidere come e dove aggiornare è una quantità chiamata utilità di categoria che misura la qualità complessiva di una partizione di istanze in cluster. Ritardiamo una considerazione dettagliata su come questo viene definito fino alla prossima sottosezione e cerchi innanzitutto come funziona l'algoritmo di clustering.
   
La procedura è meglio illustrata da un esempio. Utilizziamo nuovamente i dati meteo, ma senza l'attributo di gioco. Per monitorare i progressi, le 14 istanze sono etichette a, b, c,. . . , N (come nella tabella 4.6), e per interessi includiamo la classe sì o no nell'etichetta, anche se va sottolineato che per questo set di dati artificiali non vi è alcuna ragione per supporre che le due classi di istanze debba rientrare in categorie distinte . La Figura 6.17 mostra la situazione in punti salienti durante la procedura di clustering. All'inizio, quando nuovi casi vengono assorbiti nella struttura, ognuno forma il proprio subcluster sotto il cluster globale di livello superiore. Ogni nuova istanza viene elaborata provvisoriamente inserendola in ciascuna delle foglie esistenti e valutando l'utilità di categoria del gruppo risultante dei bambini del nodo di primo livello per vedere se la foglia è un buon "host" per la nuova istanza. Per ognuno dei primi cinque casi non esiste un host di questo tipo: è meglio, in termini di utilità di categoria, creare una nuova foglia per ogni istanza. Con il sesto infine diventa vantaggioso formare un cluster, unendo la nuova istanza f con quella vecchia - l'host. Se si guarda indietro alla Tabella 4.6 (pagina 103), vedrete che le quinte e la sesta sono veramente molto simili, diverse solo nell'attributo ventoso (e nel gioco, che viene ignorato qui). L'esempio seguente, g, è inserito nello stesso cluster (differisce da e solo in outlook). Questo implica un'altra chiamata alla procedura di clustering. In primo luogo, g viene valutato per vedere quale dei cinque figli della radice fa l'ospite migliore; Risulta essere il più a destra, quello che è già un cluster. Poi l'algoritmo di clustering viene invocato con questa come radice ei suoi due figli vengono valutati per vedere quale sarebbe il miglior host. In questo caso si prova meglio, secondo la categoria di utilità di categoria, aggiungere la nuova istanza come subcluso in proprio.

 Se dovessimo continuare in questo modo, non ci sarebbe possibilità di una radicale ristrutturazione dell'albero, e il cluster finale sarebbe eccessivamente dipendente dall'ordine degli esempi. Per evitare questo, ci sono disposizioni per la ristrutturazione, e si può vedere che entra in gioco quando l'istanza h viene aggiunta nella fase successiva mostrata nella Figura 6.17. In questo caso due nodi esistenti vengono fusi in un singolo cluster: i nodi a e d vengono fusi prima della nuova istanza h. Un modo per realizzare questo obiettivo consiste nel considerare tutte le coppie di nodi per la fusione e la valutazione dell'utilità di categoria di ciascuna coppia. Tuttavia, ciò sarebbe computazionalmente costoso e comporterebbe un sacco di lavori ripetuti se fosse stato intrapreso ogni qualvolta venisse aggiunta una nuova istanza.
   
Invece, ogni volta che i nodi a un determinato livello vengono scansionati per un host appropriato, vengono notati sia il nodo migliore corrispondenza che quello che produce l'utilità di categoria più grande per la suddivisione a quel livello e il runner-up. Il migliore formerà l'host per la nuova istanza (a meno che quella nuova istanza non sia migliore in un cluster di suo proprio). Tuttavia, prima di impostare il lavoro per mettere la nuova istanza con l'host, si considera la fusione dell'host e del runner-up.
   
In questo caso, a è l'host preferito e d è il runner-up. Quando viene valutata una fusione di a e d, risulta che migliorerà la misura dell'utilità di categoria. Di conseguenza, questi due nodi sono fusi, creando una versione della quinta gerarchia di Figura 6.17 prima di aggiungere h. Quindi, si prende in considerazione il posizionamento di h nel nuovo nodo fuso; E risulta essere la cosa migliore per renderlo un subcluso in proprio, come mostrato.
   
Viene anche implementata un'operazione conversa alla fusione, chiamata suddivisione, anche se non si svolge in questo esempio particolare. Ogni volta che viene identificato l'host migliore e la fusione non si è rivelata utile, viene presa in considerazione la suddivisione del nodo host. La suddivisione ha esattamente l'effetto opposto di fusione, prendendo un nodo e sostituendolo con i suoi figli. Ad esempio, la suddivisione del nodo destro nella quarta gerarchia di Figura 6.17 aumenterebbe i livelli e, f, e g lasciano un livello, facendoli fratelli di a, b, c e d. L'unione e la suddivisione forniscono un modo incrementale di ristrutturazione dell'albero per compensare scelte scorrette causate da ordini infeliciti di esempi.
   
La gerarchia finale per tutti i 14 esempi viene mostrata alla fine della Figura 6.17. Ci sono due grandi gruppi, ognuno dei quali si suddivide ulteriormente nei propri sottostruttori. Se la distinzione "play / does not play" rappresentava veramente una caratteristica inerente dei dati, un singolo cluster dovrebbe essere previsto per ciascun risultato. Non si osserva una tale struttura pulita, anche se un occhio (molto) generoso potrebbe discernere una lieve tendenza a livelli inferiori per i casi di sì da raggruppare insieme, e altrettanto per nessun caso. L'analisi accurata del clustering rivela alcune anomalie (Tabella 4.6 aiuterà se si desidera seguire in dettaglio questa analisi.) Ad esempio, le istanze a e b sono in realtà molto simili tra loro, ma finiscono in parti completamente diverse del albero. L'istanza b finisce con k, che è una partita peggiore di una. L'istanza a finisce con d ed h, e certamente non è simile a d come è b. Il motivo per cui a e b diviene separato è che a e d si uniscano, come descritto in precedenza, perché costituiscono gli host migliori e secondi per h. E 'stato sfortunato che a e b erano i primi due esempi: se si fosse verificato più tardi, potrebbe essere finito con l'altro.
  
La successiva ripartizione e remerging possono essere in grado di rettificare questa anomalia, ma in questo caso non lo hanno fatto. Esattamente lo stesso schema funziona per gli attributi numerici. La categoria utilità è definita anche per questi, basata su una stima della media e della deviazione standard del valore di tale attributo. I dettagli vengono rinviati alla sottosezione successiva. Tuttavia, esiste un solo problema che dobbiamo prestare attenzione: quando si stima la deviazione standard di un attributo per un particolare nodo, il risultato sarà zero se il nodo contiene solo un'istanza, come fa più spesso. Purtroppo, le varianze zero producono valori infiniti nella formula di utilità della categoria. Una semplice soluzione euristica è quella di imporre una variazione minima su ciascun attributo. Si può sostenere che poiché nessuna misurazione è completamente precisa, è ragionevole imporre un minimo: rappresenta l'errore di misurazione in un singolo campione. Questo parametro è chiamato acuità.

 
La Figura 6.18 (a) mostra in alto un clustering gerarchico prodotto dall'algoritmo incrementale per una parte del dataset Iris (30 istanze, 10 da ciascuna classe). Al livello superiore ci sono due cluster (cioè, sottoclusterli del singolo nodo che rappresenta l'insieme di dati). Il primo contiene sia virginicas Iris che versicolori Iris, e il secondo contiene solo setosas Iris. Gli iris setosas si dividono in due sottocluster, uno con quattro cultivar e l'altro con sei. L'altro cluster di primo livello si articola in tre sottocluster, ognuno con una struttura abbastanza complessa. Sia il primo che il secondo contengono solo versicolori Iris, con una sola eccezione, una irrigazione Iris virginica, in ogni caso; Il terzo contiene solo Iris virginicas.
   
Ciò rappresenta un raggruppamento abbastanza soddisfacente dei dati di Iris: dimostra che i tre generi non sono affatto artificiali, ma riflettono le differenze autentiche nei dati. Ciò è tuttavia una conclusione leggermente sopraoptimistica, perché è stato necessario un po 'di sperimentazione con il parametro di acuità per ottenere una bella divisione. I clustering prodotti da questo schema contengono una foglia per ogni istanza. Ciò produce una gerarchia in gran parte grande per i set di dati di qualsiasi dimensione ragionevole, corrispondenti, in un certo senso, a sovrapposizione del particolare set di dati. Di conseguenza, un secondo parametro numerico chiamato cutoff viene utilizzato per sopprimere la crescita. Alcuni casi sono considerati sufficientemente simili a quelli che non garantiscono la formazione del loro nodo figlio e questo parametro regola la soglia di somiglianza. Il taglio è specificato in termini di utilità di categoria: quando l'aumento della utility di categoria dall'aggiunta di un nuovo nodo è sufficientemente piccolo, quel nodo viene interrotto.
   
La Figura 6.18 (b) mostra gli stessi dati Iris, raggruppati in cutoff in vigore. Molti nodi foglia contengono diverse istanze: questi sono i figli del nodo padre che sono stati tagliati. La divisione nei tre tipi di iride è un po 'più facile da vedere da questa gerarchia perché alcuni dei dettagli vengono soppressi. Ancora una volta è stata necessaria una certa sperimentazione con il parametro di taglio per ottenere questo risultato, e infatti un taglio più nitido porta a cluster molto meno soddisfacenti. I cluster sono simili se viene utilizzato il set di dati Iris completo di 150 istanze.
   
Tuttavia, i risultati dipendono dall'ordine degli esempi: la Figura 6.18 è stata ottenuta alternando le tre varietà di iride nel file di input. Se vengono presentate tutte le setine Iris, seguite da tutte le versicolori Iris e poi tutte le Iris virginicas, i cluster risultanti sono piuttosto insoddisfacenti.

 
Figure 6.18 Hierarchical clusterings of the iris data.


   Category utility

Ora vediamo come viene calcolata la utility di categoria, che misura la qualità globale di una partizione di istanze in cluster. Nella sezione 5.9 abbiamo appreso come la misura MDL potrebbe in linea di principio essere utilizzata per valutare la qualità del clustering. L'utilità di categoria non è basata su MDL ma somiglia piuttosto a una sorta di funzione di perdita quadratica definita su probabilità condizionale.
La definizione dell'utilità di categoria è piuttosto formidabile:

......... 
  Dove C1, C2,. . ., Ck sono i cluster k; La somma esterna è sopra questi cluster; Il successivo interiore somma sopra gli attributi; Ai è l'attributo i, e assume valori vi1, vi2,. . . Che vengono trattati dalla somma sopra j. Si noti che le probabilità stesse vengono ottenute sommando in tutti i casi: quindi c'è un ulteriore livello implicito di sommatoria.
  Questa espressione ha molto senso se prendi il tempo per esaminarla. Il punto di avere un cluster è che darà un certo vantaggio nella predizione dei valori degli attributi di istanze in quel cluster, cioè Pr [ai = vij | C ᐉ] è una migliore stima della probabilità che l'attributo ai abbia vij vrijednosti, per un'istanza nel cluster C ᐉ, rispetto a Pr [ai = vij] perché tiene conto del cluster in cui l'istanza è in. Se queste informazioni non aiutano, I cluster non stanno facendo molto bene! Quindi quale misura la precedente misura, all'interno della sommatoria multipla, è l'importo con cui queste informazioni aiutano in termini di differenze tra quadrati di probabilità. Questo non è proprio la metrica standard di differenza quadrata, perché somma i quadrati delle differenze (che produce un risultato simmetrico) e la misura attuale somma la differenza dei quadrati (che, in modo appropriato, non produce un risultato simmetrico). Le differenze tra quadrati di probabilità sono sommati su tutti gli attributi e tutti i loro possibili valori, nella somma doppia interna. Quindi è sommato su tutti i cluster, ponderati dalle loro probabilità, nella somma esterna.
    La divisione generale di k è un po 'difficile da giustificare perché le differenze quadrate sono già state sommate sulle categorie. Fornisce essenzialmente una figura "per cluster" per l'utilità di categoria che scoraggia l'overfitting. Altrimenti, poiché le probabilità sono derivate sommando le istanze appropriate, l'utilità di categoria migliore verrebbe ottenuta mettendo ogni istanza nel proprio cluster. Quindi, Pr [ai = vij | C ᐉ] sarebbe 1 per il valore che l'attributo ai ha effettivamente per l'istanza unica nella categoria C ᐉ e 0 per tutti gli altri valori; E il numeratore della formula di utilità della categoria finirà come

......
 Dove n è il numero totale di attributi. Questo è il valore più grande che il numeratore può avere; E quindi se non fosse per la divisione aggiuntiva di k nella formula di utilità della categoria, non ci sarebbe mai alcun incentivo a formare cluster contenenti più di un membro. Questo fattore supplementare è meglio considerato come un euristico rudimentale "overfitting-avoidance".
Questa formula di utilità di categoria si applica solo agli attributi nominali. Tuttavia, può essere facilmente esteso a attributi numerici supponendo che la loro distribuzione sia normale con una media misurata (osservata) m e deviazione standard s. La funzione di densità di probabilità per un attributo a è

......
L'analogico della somma dei quadrati delle probabilità di attributo-valore è
......

Dove si è la deviazione standard dell'attributo ai. Quindi, per un attributo numerico, stimoliamo la deviazione standard dai dati, sia all'interno del cluster (si ᐉ) che per i dati su tutti i cluster (si) e li utilizziamo nella formula di utilità della categoria:
........
Ora il problema menzionato in precedenza che si verifica quando la stima deviazione standard è zero risulta evidente: una deviazione standard zero produce un valore infinito della formula di utilità della categoria. Imponendo una variazione minima prefissata su ciascun attributo, l'acutezza, è una soluzione ruvida e pronta per il problema.
 

   Probability-based clustering

  Alcune delle carenze del clustering euristico descritte in precedenza sono già evidenti: la divisione arbitraria di k nella categoria di utilità della formula necessaria per prevenire l'overfitting, la necessità di fornire un valore minimo artificiale per la deviazione standard dei cluster, l'ad hoc Valore di taglio per impedire che ogni istanza diventi un cluster in proprio. Oltre a questa è l'incertezza inerente agli algoritmi incrementali: in quale misura il risultato dipende dall'ordine degli esempi? Sono le operazioni di ristrutturazione locali di fusione e divisione abbastanza per invertire l'effetto di cattive decisioni iniziali causate da un ordine sfortunato? Il risultato finale rappresenta anche un minimo locale di utilità di categoria? A questo si aggiunge il problema che non si sa mai quanto la configurazione finale sia da un minimo globale e che il trucco standard di ripetere più volte la procedura di clustering e di scegliere il meglio distruggerà la natura incrementale dell'algoritmo. Infine, la natura gerarchica del risultato non è veramente la questione di quali sono i migliori cluster? Ci sono così tanti cluster nella Figura 6.18 che è difficile separare il frumento dal pelo.
 Un approccio statistico più principio al problema del cluster può superare alcune di queste carenze. Da una prospettiva probabilistica, l'obiettivo del clustering è quello di trovare il gruppo più probabile di cluster dato i dati (e, inevitabilmente, le aspettative precedenti). Poiché non è sufficiente una sufficiente quantità di prove "per rendere" una decisione definitiva sulla materia, le istanze - addirittura le istanze di formazione - non dovrebbero essere posizionate categoricamente in un cluster o nell'altro: invece hanno una certa probabilità di appartenenza a ciascun cluster. Questo aiuta ad eliminare la fragilità che spesso è associata a metodi che fanno giudizi duri e veloci.
 La base per il clustering statistico è un modello statistico chiamato miscele finite. Una miscela è un insieme di distribuzioni di probabilità k, che rappresentano i cluster di k, che regolano i valori degli attributi per i membri di quel cluster. In altre parole, ogni distribuzione dà la probabilità che un'istanza particolare abbia un certo insieme di valori di attributo se "fosse noto essere" un membro di quel cluster. Ogni cluster ha una distribuzione diversa. Ogni istanza particolare "veramente" appartiene a uno e solo a uno dei cluster, ma non è conosciuto quale. Infine, i cluster non sono altrettanto probabili: c'è una distribuzione di probabilità che riflette le relative popolazioni.
 La situazione più semplice di miscela finita si verifica quando esiste solo un attributo numerico, che ha una distribuzione gaussiana o normale per ogni cluster, ma con diversi mezzi e varianze. Il problema di raggruppamento è quello di prendere un insieme di istanze - in questo caso ogni istanza è solo un numero - e un numero prefissato di cluster, e definire la media e la varianza di ciascun cluster e la distribuzione della popolazione tra i cluster. Il modello della miscela combina diverse distribuzioni normali e la sua funzione di densità di probabilità appare come una catena montuosa con un picco per ogni componente.
  La Figura 6.19 mostra un esempio semplice. Ci sono due cluster A e B e ognuno ha una distribuzione normale con mezzi e deviazioni standard: mA e sA per il cluster A e mB e sB per il cluster B rispettivamente. I campioni vengono prelevati da queste distribuzioni, utilizzando il cluster A con probabilità pA e cluster B con probabilità pB (dove pA + pB = 1) e risultando in un set di dati simile a quello mostrato. Ora, immagina di essere dato il set di dati senza le classi - solo i numeri - e viene chiesto di determinare i cinque parametri che caratterizzano il modello: mA, sA, mB, sB e pA (il parametro pB può essere calcolato direttamente da pA). Questo è il problema della miscela finita.
  Se sapevi che tra le due distribuzioni di ciascuna istanza proveniva, individuando i cinque parametri sarebbe facile - basta stimare la deviazione standard e la deviazione standard per i campioni del campione A e il campione B del campione separatamente, utilizzando le formule
 

.......
 (L'uso di n-1 piuttosto che n come denominatore nella seconda formula è una tecnica di campionamento: non poca diffusione nella pratica se n viene utilizzato invece.) Qui, x1, x2,. . . , Xn sono i campioni della distribuzione A o B. Per calcolare il quinto parametro pA, prendi la proporzione delle istanze che si trovano nel cluster A.
Se conoscesse i cinque parametri, è facile trovare le probabilità che una determinata istanza venga da ogni distribuzione. Dato un'istanza x, la probabilità che appartiene al cluster A è

 .....
Figure 6.19 A two-class mixture model.
 

Dove f (x; mA, sA) è la funzione di distribuzione normale per il cluster A, ovvero:
......
Il denominatore Pr [x] scompare: calcoleremo i numeratori sia per Pr [A | X] e Pr [B | X] e normalizzarli dividendo per la loro somma. Questa intera procedura è uguale al modo in cui gli attributi numerici vengono trattati nello schema di apprendimento Naïve Bayes del Sezione 4.2. E la caveat spiegato qui si applica anche qui: in senso stretto, f (x; mA, sA) non è la probabilità Pr [x | A] perché la probabilità che x sia un numero reale particolare è zero, ma il processo di normalizzazione rende il risultato finale corretto. Si noti che l'esito finale non è un cluster particolare, ma piuttosto le probabilità con le quali x appartiene al cluster A e al cluster B.

   The EM algorithm

  Il problema è che non conosciamo nessuna di queste cose: non la distribuzione che ogni istanza di formazione proveniva né i cinque parametri del modello della miscela. Quindi adottiamo la procedura utilizzata per l'algoritmo di clustering dei k-means e l'iterazione. Iniziare con le indagini iniziali per i cinque parametri, utilizzarli per calcolare le probabilità cluster per ogni istanza, utilizzare queste probabilità per riesaminare i parametri e ripetere. (Se preferisci, puoi iniziare con indovinare per le classi delle istanze.) Questo è chiamato l'algoritmo EM, per massimizzare aspettative. Il primo passo, il calcolo delle probabilità di cluster (che sono i valori di classe "previsti") è "aspettativa"; Il secondo, il calcolo dei parametri di distribuzione, è la "massimizzazione" della probabilità delle distribuzioni date ai dati.È necessario apportare una leggera regolazione alle equazioni di stima dei parametri per tenere conto del fatto che sono solo probabilità di cluster, e non i cluster stessi, che sono noti per ogni istanza. Queste probabilità agiscono solo come pesi.  
  Se wi è la probabilità che l'istanza i appartiene al cluster A, la deviazione media e standard per il cluster A sono

  ....
  Dove ora xi sono tutte le istanze, non solo quelle appartenenti al cluster A. (Ciò differisce in un piccolo dettaglio dalla stima della deviazione standard riportata a pagina 101. Tecnicamente, questo è un estimatore "massimo di probabilità" per la varianza , Mentre la formula a pagina 101 è per uno stimatore "imparziale". La differenza non è importante nella pratica.)
Ora considerate come terminare l'iterazione. L'algoritmo k-means si arresta quando le classi delle istanze non cambiano da una iterazione al successivo un "punto fisso" è stato raggiunto. Nell'algoritmo EM le cose non sono così facili: l'algoritmo converge verso un punto fisso, ma non arriva mai in realtà. Ma possiamo vedere quanto sia vicino calcolando la probabilità complessiva che i dati provengono da questo set di dati, dato i valori per i cinque parametri. Questa probabilità complessiva si ottiene moltiplicando le probabilità delle singole istanze i:

 .....
  dove le probabilità date dai cluster A e B sono determinate dalla normale funzione di distribuzione f (x; m, s). Questa probabilità complessiva è una misura della "bontà" del clustering e aumenta ad ogni iterazione dell'algoritmo EM. Ancora una volta, c'è una difficoltà tecnica con l'equazione della probabilità di un particolare valore di x con f (x; m, s) e in questo caso l'effetto non scompare perché non viene applicata alcuna operazione di normalizzazione di probabilità. Il risultato è che la precedente probabilità di esibizione non è una probabilità e non necessariamente giace tra zero e uno: tuttavia, la sua grandezza riflette ancora la qualità del clustering. Nelle implementazioni pratiche viene invece calcolato il suo logaritmo: questo viene fatto sommando i logaritmi dei singoli componenti evitando tutte le moltiplicazioni. Ma la conclusione generale continua a tener conto: bisogna continuare fino a quando l'aumento della probabilità di log diventa trascurabile. Ad esempio, un'implementazione pratica potrebbe ripetere fino a quando la differenza tra i valori successivi di probabilità di log non è inferiore a 10-10 per 10 successive iterazioni. In genere, la probabilità di log crescerà notevolmente nelle prime iterazioni e poi convergerà piuttosto rapidamente ad un punto che è praticamente stazionario.
   
Anche se l'algoritmo EM è garantito per convergere al massimo, questo è un massimo locale e potrebbe non essere necessariamente uguale al massimo globale. Per una migliore probabilità di ottenere il massimo globale, l'intera procedura deve essere ripetuta più volte, con diverse ipotesi iniziali per i valori dei parametri. La figura globale di probabilità può essere utilizzata per confrontare le diverse configurazioni finali ottenute: scegliere il più grande dei massimi locali.

   Extending the mixture model

  Ora che abbiamo visto il modello della miscela gaussiana per due distribuzioni, consideriamo come estenderlo a situazioni più realistiche. Il metodo di base è uguale, ma perché la notazione matematica diventa formidabile non lo svilupperemo in dettaglio.
  Cambiare l'algoritmo da problemi a due classi ai problemi multiclasse è completamente diretto finché il numero k delle distribuzioni normali viene dato in anticipo.
  Il modello può essere esteso da un singolo attributo numerico per ogni istanza a più attributi, a condizione che sia presa in considerazione l'indipendenza tra gli attributi. Le probabilità di ciascun attributo vengono moltiplicate insieme per ottenere la probabilità congiunta per l'istanza, come nel metodo Naïve Bayes

 Quando il dataset è conosciuto in anticipo per contenere attributi correlati, l'assunzione di indipendenza non è più in possesso. Invece, due attributi possono essere modellati congiuntamente utilizzando una distribuzione normale bivariata, in cui ognuno ha il proprio valore medio, ma le due deviazioni standard sono sostituite da una "matrice di covarianza" con quattro parametri numerici. Esistono tecniche statistiche standard per la stima delle probabilità di classe di istanze e per la stima dei mezzi e della matrice di covarianza data le istanze e le loro probabilità di classe.
   
È possibile gestire diversi attributi correlati utilizzando una distribuzione multivariata. Il numero di parametri aumenta con il quadrato del numero di attributi congiuntamente variabili. Con n attributi indipendenti, ci sono parametri 2n, una media e una deviazione standard per ciascuno. Con n attributi covariant, ci sono n + n (n + 1) / 2 parametri, una media per ciascuna e una matrice di covarianza n ¥ n che è simmetrica e pertanto coinvolge n (n + 1) / 2 quantità differenti. Questa escalation nel numero di parametri ha gravi conseguenze per overfitting, come spiegheremo più tardi.Per soddisfare gli attributi nominali, la distribuzione normale deve essere abbandonata. Invece, un attributo nominale con v possibili valori è caratterizzato da v numeri che rappresentano la probabilità di ciascuno di essi.    

  È necessario un diverso numero di numeri per ogni classe; I parametri kv in tutti. La situazione è molto simile al metodo Naïve Bayes. I due passi di aspettativa e massimizzazione corrispondono esattamente alle operazioni che abbiamo già studiato. L'aspettativa - la stima del cluster a cui appartiene ogni istanza data i parametri di distribuzione - è proprio come determinare la classe di un'istanza sconosciuta. Massimizzazione - la stima dei parametri dalle istanze classificate - è proprio come determinare le probabilità di valore attribuito dalle istanze di addestramento, con la piccola differenza che nelle istanze di algoritmo EM sono assegnate a classi in modo probabilistico piuttosto che categoricamente. Nella sezione 4.2 abbiamo incontrato il problema che le stime di probabilità possono risultare essere zero e lo stesso problema si verifica anche qui. Fortunatamente, la soluzione è altrettanto semplice usare lo stimatore di Laplace.
 Naïve Bayes assume che gli attributi sono indipendenti, per questo motivo è chiamato "naïve". Una coppia di attributi nominali correlati con v1 e v2 possibili valori, rispettivamente, può essere sostituita da un singolo attributo covariante con valori possibili v1v2. Ancora una volta, il numero dei parametri si esalta mentre il numero di attributi dipendenti aumenta e questo ha implicazioni per le stime di probabilità e l'overfitting che verremo a breve.
   La presenza di attributi numerici e nominali nei dati da raggruppare non presenta particolari problemi. Gli attributi numerici e nominali coevocativi sono più difficili da gestire e non li descriveremo qui. I valori mancanti possono essere ospitati in diversi modi. I valori mancanti degli attributi nominali possono essere semplicemente lasciati fuori dai calcoli di probabilità, come descritto nella Sezione 4.2; In alternativa possono essere considerati come un valore aggiuntivo dell'attributo, da modellare come qualsiasi altro valore. Quale è più appropriato dipende da cosa significa che un valore sia "mancante". Esattamente le stesse possibilità esistono per gli attributi numerici.
  Con tutti questi miglioramenti, il clustering probabilistico diventa molto sofisticato. L'algoritmo EM è utilizzato in tutto per fare il lavoro di base. L'utente deve specificare il numero di cluster da ricercare, il tipo di ogni attributo (numerico o nominale), quali attributi sono modellati come covariatura e cosa fare per i valori mancanti. Inoltre, possono essere utilizzate diverse distribuzioni di quelle descritte in precedenza. Sebbene la distribuzione normale sia di solito una buona scelta per gli attributi numerici, non è adatta per attributi (come il peso) che hanno un minimo prefissato (zero, nel caso del peso) ma nessun limite superiore; In questo caso una distribuzione "log-normale" è più appropriata.
  Gli attributi numerici che sono limitati sopra e sotto possono essere modellati da una distribuzione "log-odds". Gli attributi che sono numeri interi piuttosto che valori reali sono meglio modellati dalla distribuzione "Poisson". Un sistema completo potrebbe consentire a queste distribuzioni di specificare singolarmente per ciascun attributo. In ogni caso, la distribuzione comprende parametri numerici - probabilità di tutti i valori possibili per attributi discreti e deviazione media e standard per quelli continui.
  In questa sezione abbiamo parlato di clustering. Ma si potrebbe pensare che questi miglioramenti potrebbero essere applicati altrettanto bene all'algoritmo Naïve Bayes - e avresti ragione. Un modeler probabilistico completo potrebbe ospitare l'apprendimento di clustering e classificazione, attributi nominali e numerici con una varietà di distribuzioni, varie possibilità di covariatura e diversi modi di affrontare valori mancanti. L'utente specificherebbe come parte della conoscenza del dominio "quali distribuzioni" utilizzare per quali attributi.

   Bayesian clustering

 Tuttavia, c'è un ostacolo: overfitting. Potresti dire che se non sappiamo quali attributi dipendono l'uno dall'altro, perché non essere sicuro e specificare che tutti gli attributi sono covariati? La risposta è che più parametri esistono, maggiore è la probabilità che la struttura risultante sia sovrapposta ai dati formativi e la covarianza aumenta in modo drammatico il numero di parametri. Il problema dell'overfitting avviene durante l'apprendimento della macchina, e il clustering probabilistico non fa eccezione. Ci sono due modi che possono verificarsi: specificando un numero troppo elevato di cluster e specificando le distribuzioni con troppi parametri. Il caso estremo di troppi cluster si verifica quando c'è uno per ogni punto dati: chiaramente, questo sarà sovrapposto ai dati formativi. Infatti, nel modello della miscela, i problemi si verificheranno quando una qualsiasi delle distribuzioni normali diventa così stretta che è centrata su un solo punto dati. Di conseguenza, le implementazioni generalmente insistono sul fatto che i cluster contengono almeno due valori di dati diversi.
  
Ogni volta che ci sono un gran numero di parametri, si verifica il problema dell'overfitting. Se non fossi sicura di quali attributi sono stati covariati, puoi provare diverse possibilità e scegliere quello che ha massimizzato la probabilità complessiva dei dati dato il clustering che è stato trovato. Purtroppo, più parametri esistono, maggiore è la probabilità di dati complessivi che tendono ad essere non necessariamente a causa di un migliore clustering ma a causa di overfitting. Più parametri ci sono da giocare, più è facile trovare un cluster che sembra buono.

 
Sarebbe bello se in qualche modo potresti penalizzare il modello per l'introduzione di nuovi parametri. Un modo di fare questo principio è quello di adottare un approccio completamente Bayesiano in cui ogni parametro ha una distribuzione di probabilità precedente. Quindi, ogni volta che viene introdotto un nuovo parametro, la sua probabilità precedente deve essere incorporata nella figura di probabilità complessiva. Poiché ciò comporterà moltiplicare la probabilità complessiva di un numero inferiore a una - la probabilità precedente - penalizzerà automaticamente l'aggiunta di nuovi parametri. Per migliorare la probabilità complessiva, i nuovi parametri dovranno produrre un vantaggio che supera la penalità.
 In un certo senso, lo stimatore di Laplace che abbiamo incontrato nella sezione 4.2 e il cui uso abbiamo sostenuto in precedenza per contrastare il problema delle stime di probabilità zero per valori nominali, è solo un tale dispositivo. Ogni volta che le probabilità osservate sono piccole, lo stimatore di Laplace esegue una penalità perché rende probabilità zero o vicine a zero, e questo diminuirà la probabilità complessiva dei dati. Rendere due attributi nominali covariant aggravano il problema.
  Invece dei parametri v1 + v2, dove v1 e v2 sono il numero di valori possibili, ci sono ora v1v2, aumentando notevolmente la probabilità di un gran numero di piccole probabilità stimate. Infatti, lo stimatore di Laplace equivale ad utilizzare una particolare distribuzione preventiva per l'introduzione di nuovi parametri. La stessa tecnica può essere utilizzata per penalizzare l'introduzione di un gran numero di cluster, semplicemente utilizzando una "distribuzione preventiva" prefissata che decade notevolmente aumentando il numero di cluster.
   AutoClass è uno schema di clustering Bayesiano completo che utilizza il modello di miscela finita con distribuzioni precedenti su tutti i parametri. Permette sia attributi numerici che nominali e utilizza l'algoritmo EM per stimare i parametri delle distribuzioni di probabilità per meglio adattare i dati. Poiché non vi è alcuna garanzia che l'algoritmo EM converge all'ottimale globale, la procedura viene ripetuta per vari set diversi di valori iniziali.i. Ma non è tutto.
  AutoClass considera diversi numeri di cluster e può considerare diverse quantità di covarianza e diversi tipi di distribuzione di probabilità sottostante per gli attributi numerici. Ciò comporta un ulteriore livello esterno di ricerca. Ad esempio, viene valutata inizialmente la probabilità di log per i cluster di 2, 3, 5, 7, 10, 15 e 25: dopo che si adatta a una distribuzione log-normale ai dati risultanti e seleziona casualmente più valori per provare . Come si potrebbe immaginare, l'algoritmo complessivo è estremamente intenso nel calcolo. Infatti, l'implementazione effettiva inizia con un tempo prefissato e continua a ripetere finché il tempo lo consente. Dare più tempo ei risultati possono essere migliori!

    Discusione

 I metodi di cluster che sono stati descritti producono diversi tipi di output. Tutti sono in grado di acquisire nuovi dati sotto forma di un set di test e di classificarla secondo i cluster che sono stati scoperti analizzando un set di formazione. Tuttavia, il metodo di clustering incrementale è l'unico che genera una struttura di conoscenza esplicita che descrive il clustering in un modo che può essere visualizzato e motivato. Gli altri algoritmi producono cluster che potrebbero essere visualizzati nello spazio di esempio se la dimensionalità non era troppo alta.
  
Se un metodo di clustering è stato utilizzato per etichettare le istanze del set di formazione con i numeri di cluster, questo insieme etichettato potrebbe essere utilizzato per formare un principiante di una regola o di un albero di decisione. Le regole o l'albero risultanti formerebbero una descrizione esplicita delle classi. Un schema di clustering probabilistico potrebbe essere utilizzato per lo stesso scopo, ad eccezione che ogni istanza avrebbe più etichette pesate e l'algoritmo di regola o di decisione dovrebbe essere in grado di far fronte a istanze ponderate - come molti possono.
  
Un'altra applicazione di clustering è quella di riempire tutti i valori degli attributi che potrebbero mancare. Ad esempio, è possibile effettuare una stima statistica del valore di attributi sconosciuti di un'istanza particolare, in base alla distribuzione della classe per l'istanza stessa e ai valori degli attributi sconosciuti per altri esempi.

 
Tutti i metodi di clustering che abbiamo esaminato fanno un presupposto fondamentale di indipendenza tra gli attributi. AutoClass consente all'utente di specificare in anticipo che due o più attributi dipendono e devono essere modellati con una distribuzione congiunta di probabilità. (Ci sono restrizioni, tuttavia: gli attributi nominali possono variare congiuntamente, come gli attributi numerici, ma non entrambi insieme. Inoltre, i valori mancanti per gli attributi congiuntamente variabili non sono soddisfatti.) Può essere vantaggioso pre-elaborare un set di dati per rendere più gli attributi Indipendente, utilizzando una tecnica statistica come la trasformazione dei componenti principali descritta nella Sezione 7.3. Si noti che la variazione congiunta che è specifica per determinate classi non sarà rimossa da tali tecniche; Rimuovono solo la variazione di giunzione complessiva che attraversa tutte le classi.
   
La nostra descrizione di come modificare k significa trovare un buon valore di k dividendo ripetutamente i cluster e vedere se la ripartizione è valida segue l'algoritmo X-tools di Moore e Pelleg (2000). Tuttavia, al posto del principio MDL, essi utilizzano uno schema probabilistico denominato Bayes Information Criterion (Kass e Wasserman 1995). La procedura di clustering incrementale, basata sulle operazioni di fusione e suddivisione, è stata introdotta in sistemi chiamati Cobweb per attributi nominali (Fisher 1987) e Classit per attributi numerici (Gennari et al., 1990). Entrambi sono basati su una misura di utilità di categoria che era stata definita in precedenza (Gluck e Corter 1985). Il programma AutoClass è descritto da Cheeseman e Stutz (1995). Sono disponibili due implementazioni: l'implementazione originale di ricerca, scritta in LISP, e una implementazione pubblica di follow-up in C che è 10 o 20 volte più veloce, ma un po 'più limitata, ad esempio, solo il modello di distribuzione normale viene implementato per gli attributi numerici.

  Bayesian networks

  Il classificatore Naïve Bayes della Sezione 4.2 e i modelli di regressione logistica della Sezione 4.6 producono entrambi stime di probabilità piuttosto che previsioni. Per ciascun valore di classe, stimano la probabilità che una data istanza appartenga a quella classe. La maggior parte degli altri tipi di classificatori può essere costretta a produrre questo tipo di informazioni, se necessario. Ad esempio, le probabilità possono essere ottenute da un albero di decisione calcolando la frequenza relativa di ogni classe in una foglia e da un elenco di decisioni esaminando le istanze che una determinata regola copre.
   
Le stime di probabilità sono spesso più utili delle semplici previsioni. Consentono di classificare le previsioni e di ridurre al minimo i costi previsti (vedere Sezione 5.7). Infatti, c'è un forte argomento per trattare l'apprendimento di classificazione come compito di apprendere le stime della probabilità di classe dai dati. Quello che viene stimato è la distribuzione condizionale della probabilità dei valori dell'attributo di classe dato i valori degli altri attributi. Il modello di classificazione rappresenta questa distribuzione condizionale in forma concisa e facilmente comprensibile.
   
In questo modo, i classificatori Naïve Bayes, i modelli di regressione logistica, gli alberi decisionali e così via sono solo modi alternativi per rappresentare una distribuzione di probabilità condizionale. Naturalmente, differiscono in potenza rappresentativa. I classificatori Naïve Bayes ei modelli di regressione logistica possono rappresentare solo distribuzioni semplici, mentre gli alberi decisionali possono rappresentare - o almeno approssimare - distribuzioni arbitrarie.
    
Tuttavia, gli alberi decisionali hanno i loro inconvenienti: essi frammentano il set di formazione in piccoli e piccoli pezzi, che inevitabilmente producono stime di probabilità meno affidabili e soffrono del problema subtree replicato descritto nella sezione 3.2. Le regole si pongono in qualche modo per affrontare queste carenze, ma la progettazione di un principio di buona regola è guidata da euristiche con scarsa giustificazione teorica.

  Questo significa che dobbiamo accettare il nostro destino e vivere con queste carenze? No! Esiste un'alternativa statisticamente basata: un modo teoricamente fondato per rappresentare in maniera concisa e comprensibile in maniera grafica le distribuzioni di probabilità. Le strutture sono chiamate reti bayesiane. Sono disegnati come una rete di nodi, uno per ciascun attributo, collegati da bordi diretti in modo tale che non ci sono cicli un grafico aciclico diretto.
   
Nella nostra spiegazione su come interpretare le reti bayesiane e come impararli dai dati, faremo alcune ipotesi semplificanti. Supponiamo che tutti gli attributi siano nominali e che non ci siano valori mancanti. Alcuni algoritmi di apprendimento avanzato possono creare nuovi attributi in aggiunta a quelli presenti nei 'attributi nascosti di dati', i cui valori non possono essere osservati. Questi possono supportare modelli migliori se rappresentano le caratteristiche salienti del problema sottostante e le reti bayesiane forniscono un buon modo di usarli al tempo di previsione. Tuttavia, rendono entrambi l'apprendimento e la previsione molto più complessi e richiedono molto tempo, quindi non li consideriamo qui.

  Fare previsioni - Making predictions

 La Figura 6.20 mostra una semplice rete Bayesiana per i dati meteorologici. Ha un nodo per ciascuna delle quattro prospettive di attributi, temperatura, umidità e ventosa e uno per il gioco di attributi di classe. Un bordo conduce dal nodo di riproduzione a ciascuno degli altri nodi. Ma nelle reti bayesiane la struttura del grafico è solo la metà della storia. La Figura 6.20 mostra una tabella all'interno di ciascun nodo. Le informazioni contenute nelle tabelle definiscono una distribuzione di probabilità che viene utilizzata per predire le probabilità di classe per ogni dato istanza.
    
Prima di esaminare come calcolare questa distribuzione di probabilità, considerate le informazioni nelle tabelle. Le quattro tavole inferiori (per la vista, la temperatura, l'umidità e il vento) hanno due parti separate da una linea verticale. Sulla sinistra sono i valori di gioco e sulla destra sono le probabilità corrispondenti per ogni valore dell'attributo rappresentato dal nodo. In generale, il lato sinistro contiene una colonna per ogni bordo che punta al nodo, in questo caso solo l'attributo play. Ecco perché la tabella associata al gioco stesso non ha un lato sinistro: non ha genitori. Generalmente, ogni riga di probabilità corrisponde a una combinazione di valori degli attributi padre e le voci nella riga mostrano la probabilità di ogni valore dell'attributo del nodo dato questa combinazione. In effetti, ogni riga definisce una distribuzione di probabilità rispetto ai valori dell'attributo del nodo. Le voci in una riga sempre somma a 1.
    
La Figura 6.21 mostra una rete più complessa per lo stesso problema, in cui tre nodi (ventoso, temperatura e umidità) hanno due genitori. Di nuovo, c'è una colonna a sinistra per ogni genitore e come molte colonne a destra come l'attributo ha valori. Si consideri la prima riga della tabella associata al nodo di temperatura. Il lato sinistro dà un valore per ogni attributo padre, gioco e outlook; Il diritto dà una probabilità per ogni valore della temperatura. Ad esempio, il primo numero (0.143) è la probabilità di prendere la temperatura sul valore caldo, dato che il gioco e le prospettive hanno valori sì e soleggiati rispettivamente. Come vengono utilizzate le tabelle per predire la probabilità di ciascun valore di classe per una determinata istanza? Ciò risulta molto facile, perché supponiamo che non ci siano valori mancanti. L'istanza specifica un valore per ogni attributo. Per ogni nodo della rete, cercare la probabilità del valore dell'attributo del nodo in base alla riga determinata dai valori dei suoi attributi dei genitori. Quindi semplicemente moltiplicare tutte queste probabilità insieme.


Figure 6.21 Another Bayesian network for the weather data.
 

Ad esempio, consideri un'istanza con valori outlook = rainy, temperature =Fresco, umidità = alta e vento = vero. Per calcolare la probabilità di gioco =No, osserva che la rete in Figura 6.21 dà la probabilità 0.367 dal nodoGiocare, 0,385 dalla prospettiva, 0,429 dalla temperatura, 0,250 da umidità e0.167 da vento. Il prodotto è 0.0025. Lo stesso calcolo per il gioco = sìResa 0.0077. Tuttavia, queste non sono chiaramente la risposta definitiva: laLe capacità devono essere pari a 1, mentre 0.0025 e 0.0077 non lo fanno. Sono in realtàProbabilità congiunte Pr [play = no, E] e Pr [play = yes, E], dove E indica tutte le probabilitàProve date dai valori dell'attributo dell'istanza. Le probabilità congiunte misurano laProbabilità di osservare un'istanza che mostra i valori degli attributi anche in ECome il rispettivo valore di classe. Soltano solo 1 se escludono lo spazio di tuttiPossibili combinazioni di attributo-valore, incluso l'attributo di classe. Questo non è certamente il caso nel nostro esempio.La soluzione è abbastanza semplice (abbiamo già incontrato nella sezione 4.2).Per ottenere le probabilità condizionale Pr [play = no | E] e Pr [play = yes | E],Normalizzare le probabilità congiunte dividendole per la loro somma. Questo daProbabilità 0.245 per il gioco = no e 0.755 per il gioco = sì.Rimane un solo mistero: perché moltiplicare tutte quelle probabilità insieme? essoRisulta che la validità della fase di moltiplicazione dipende da un singolo assunto-Cioè che, dato i valori per ciascuno dei genitori di un nodo, conoscendo i valoriPer tutti gli altri antenati non cambia la probabilità associata a ciascuno di essiI suoi possibili valori. In altre parole, gli antenati non forniscono alcuna informazioneCirca la probabilità dei valori del nodo al di là delle informazioniDei genitori. Questo può essere scritto
..............
 Pr[node ancestors] = Pr[node parents],

 il quale deve contenere per tutti i valori dei nodi e degli attributi coinvolti. Nelle statistiche questa proprietà si chiama indipendenza condizionata. La moltiplicazione è valida purché ogni nodo sia condizionato indipendentemente dai nonni, dai nonni grandi e così via, data i genitori. Il passo di moltiplicazione risulta direttamente dalla regola della catena nella teoria della probabilità, che afferma che la probabilità congiunta di n attributi ai può essere scomposta in questo prodotto:
 ......
La decomposizione tiene per qualsiasi ordine degli attributi. Poiché la nostra rete Bayesiana è un grafico aciclico, i suoi nodi possono essere ordinati per dare a tutti gli antenati di un indice di nodi a meno di i. Poi, a causa dell'assunzione condizionale dell'indipendenza
.......
Che è esattamente la regola di moltiplicazione che abbiamo applicato in precedenza.Le due reti bayesiane in Figura 6.20 e Figura 6.21 sono fondamentalmente diverse. Il primo (Figura 6.20) rende più severe le ipotesi di indipendenza perché per ciascuno dei suoi nodi l'insieme dei genitori è un sottoinsieme del gruppo corrispondente di genitori nel secondo (Figura 6.21). Infatti, la Figura 6.20 è quasi identica al semplice classificatore Naïve Bayes della Sezione 4.2. (Le probabilità sono leggermente diverse ma solo perché ogni conteggio è stato inizializzato a 0,5 per evitare il problema della frequenza a zero.) La rete in Figura 6.21 ha più righe nelle tabelle di probabilità condizionale e quindi più parametri; Può essere una rappresentazione più accurata del dominio sottostante.
   
È tentato di supporre che i bordi diretti in una rete Bayesiana rappresentino effetti causali. Ma fa attenzione! Nel nostro caso, un particolare valore di gioco può migliorare le prospettive di un particolare valore di prospettiva, ma certamente non la causa, è più probabile che sia l'altro. Differenti reti bayesiane possono essere costruite per lo stesso problema, rappresentando esattamente la stessa distribuzione di probabilità. Questo è fatto modificando il modo in cui la distribuzione congiunta di probabilità è fattorizzata per sfruttare le indipendenze condizionali. La rete di cui i modelli diretti modellano gli effetti causali è spesso la più semplice con i minimi parametri. Quindi, esperti umani che costruiscono reti bayesiane per un determinato dominio beneficiano spesso di rappresentare effetti causali dai bordi diretti. Tuttavia, quando vengono applicate tecniche di apprendimento automatico per indurre modelli da dati la cui struttura causale è sconosciuta, è possibile costruire una rete basata sulle correlazioni osservate nei dati. La causalità dell'anello inferiore dalla correlazione è sempre una attività pericolosa.

  Learning Bayesian networks

  Il modo per costruire un algoritmo di apprendimento per le reti bayesiane è quello di definire due componenti: una funzione per valutare una determinata rete basata sui dati e un metodo per la ricerca attraverso lo spazio di possibili reti. La qualità di una determinata rete viene misurata dalla probabilità dei dati forniti dalla rete.
   
Calcolamo la probabilità che la rete corrisponda a ciascuna istanza e moltiplica queste probabilità in tutte le istanze. In pratica, questo produce rapidamente numeri troppo piccoli per essere rappresentati correttamente (chiamato sottoflusso aritmetico), quindi usiamo la somma dei logaritmi delle probabilità piuttosto che del loro prodotto. La quantità risultante è la probabilità di log della rete dato i dati.
   
Supponiamo che sia data la struttura della rete, l'insieme dei bordi. È facile stimare i numeri nelle tabelle di probabilità condizionale: basta calcolare le relative frequenze delle combinazioni associate di valori degli attributi nei dati di addestramento. Per evitare il problema della frequenza a zero, ogni conteggio viene inizializzato con una costante come descritto nella sezione 4.2. Per esempio, per trovare la probabilità che l'umidità = normale in quanto play = yes e temperature = cool (l'ultimo numero della terza riga della tabella del nodo di umidità nella Figura 6.21), osservare dalla tabella 1.2 (pagina 11) che ci sono tre Istanze con questa combinazione di valori degli attributi nei dati meteo e nessun caso con umidità elevata e gli stessi valori per il gioco e la temperatura. L'inizializzazione dei conteggi per i due valori di umidità a 0,5 produce la probabilità (3 + 0,5) / (3 + 0 + 1) = 0,875 per l'umidità = normale.
   
I nodi della rete sono predeterminati, uno per ogni attributo (inclusa la classe). Imparare la struttura di rete significa cercare lo spazio di possibili set di bordi, stimare le tabelle di probabilità condizionale per ciascun set e calcolare la probabilità di log della rete risultante in base ai dati come misura della qualità della rete. Gli algoritmi bayesiani di apprendimento della rete si differenziano principalmente dal modo in cui cercano attraverso lo spazio delle strutture di rete. Alcuni algoritmi vengono illustrati di seguito.

  C'è un avvertimento. Se la probabilità di log è massimizzata in base ai dati di addestramento, sarà sempre meglio aggiungere altri bordi: la rete risultante semplicemente sovrasta. Possono essere impiegati diversi metodi per combattere questo problema. Una possibilità è quella di utilizzare la convalida incrociata per stimare la bontà della forma. Un secondo è quello di aggiungere una penalità per la complessità della rete in base al numero di parametri, ovvero al numero totale di stime indipendenti in tutte le tabelle di probabilità. Per ogni tabella, il numero di probabilità indipendenti è il numero totale di voci meno il numero di voci nell'ultima colonna che può essere determinata dalle altre colonne perché tutte le righe devono essere somme a 1. Let K sia il numero di parametri LL La probabilità di log e N il numero di istanze nei dati. Due misure popolari per valutare la qualità di una rete sono il Akaike Information Criterion (AIC),

  AIC score = - LL + K,
 

 E la seguente metrica MDL basata sul principio MDL:


 MDL score = - LL + (K/2)log N .
 
In entrambi i casi la probabilità di log è negata, quindi lo scopo è ridurre al minimo questi punteggi.Una terza possibilità è quella di assegnare una distribuzione preventiva sulle strutture di rete e trovare la rete più probabile combinando la sua probabilità precedente con la probabilità attribuita alla rete dai dati. Questo è l'approccio "bayesiano" al punteggio di rete. A seconda della distribuzione precedente utilizzata, può essere necessario varie forme. Tuttavia, i veri Bayesiani sarebbero mediamente su tutte le possibili strutture di rete piuttosto che individuare una particolare rete per la previsione. Purtroppo, questo richiede generalmente una grande quantità di calcolo. Un approccio semplificato consiste nella media di tutte le strutture di rete che sono sottostrutture di una determinata rete. Si scopre che questo può essere implementato in modo molto efficiente modificando il metodo per calcolare le tabelle di probabilità condizionale in modo che le stime di probabilità risultanti contengano implicitamente informazioni provenienti da tutte le sottoreti. I dettagli di questo approccio sono piuttosto complessi e non verranno descritti qui.
   
Il compito di cercare una buona struttura di rete può essere notevolmente semplificato se viene utilizzata la metrica corretta per il punteggio. Ricordiamo che la probabilità di un singolo istanza basata su una rete è il prodotto di tutte le probabilità individuali delle varie tabelle di probabilità condizionale. La probabilità complessiva del set di dati è il prodotto di questi prodotti per tutti i casi. Poiché i termini in un prodotto sono intercambiabili, il prodotto può essere riscritto per raggruppare tutti i fattori relativi alla stessa tabella. Lo stesso vale per la probabilità di log, utilizzando somme invece di prodotti. Ciò significa che la probabilità può essere ottimizzata separatamente per ogni nodo della rete. Ciò può essere fatto aggiungendo o rimuovendo i bordi da altri nodi al nodo che viene ottimizzato: l'unico vincolo è che i cicli non devono essere introdotti. Lo stesso trucco funziona anche se si utilizza una metrica locale come AIC o MDL anziché una probabilità di log semplice perché il termine di penalità si divide in più componenti, uno per ogni nodo e ciascun nodo può essere ottimizzato in modo indipendente.

  Specific algorithms

  Ora ci trasferiamo ad algoritmi reali per l'apprendimento delle reti bayesiane. Un algoritmo di apprendimento semplice e veloce, chiamato K2, inizia con un determinato ordine degli attributi (cioè nodi). Successivamente, elabora ogni nodo a sua volta e consapevolmente considera l'aggiunta di bordi dai nodi precedentemente elaborati alla corrente. In ogni fase aggiunge il bordo che massimizza il punteggio della rete. Quando non ci sono ulteriori miglioramenti, l'attenzione si rivolge al nodo successivo. Come un meccanismo aggiuntivo per evitare l'overfitting, il numero di genitori per ogni nodo può essere limitato ad un massimo predefinito. Poiché si considerano solo i bordi dei nodi precedentemente elaborati e vi è un ordine fisso, questa procedura non può introdurre cicli. Tuttavia, il risultato dipende dall'ordine iniziale, quindi è opportuno eseguire più volte l'algoritmo con diverse ordinazioni casuali.
   
Il classificatore Naïve Bayes è una rete con un bordo che porta dall'attributo di classe ad ognuno degli altri attributi. Quando costruisce reti per la classificazione, talvolta aiuta a utilizzare questa rete come punto di partenza per la ricerca. Questo può essere fatto in K2 forzando la variabile di classe come la prima nell'ordinazione e inizializzando in modo appropriato l'insieme dei bordi.

   Un altro trucco potenzialmente utile è garantire che ogni attributo nei dati sia nella coperta di Markov del nodo che rappresenta l'attributo di classe. La coperta di Markov di un nodo comprende tutti i genitori, i figli ei genitori dei figli. Si può dimostrare che un nodo è condizionatamente indipendente da tutti gli altri nodi dati i valori per i nodi nella sua coperta Markov. Quindi, se un nodo è assente dalla coperta Markov dell'attributo di classe, il suo valore è completamente irrilevante per la classificazione. Viceversa, se K2 trova una rete che non include un attributo rilevante nella coperta di Markov del nodo di classe, potrebbe contribuire a aggiungere un bordo che rettifica questa mancanza. Un modo semplice per farlo è aggiungere un margine dal nodo dell'attributo al nodo di classe o dal nodo di classe al nodo dell'attributo, a seconda di quale opzione evita un ciclo.
    
Una versione più sofisticata ma più lenta di K2 non è quella di ordinare i nodi ma di considerare avidamente l'aggiunta o la cancellazione dei bordi tra coppie di nodi arbitrari (ovviamente assicurando l'aciclicità, ovviamente). Un ulteriore passo è quello di considerare invertendo anche la direzione dei bordi esistenti. Come con qualsiasi algoritmo avido, la rete risultante rappresenta solo un massimo locale della funzione di punteggio: è sempre consigliabile eseguire tali algoritmi più volte con diverse configurazioni iniziali casuali. Possono essere utilizzate anche strategie di ottimizzazione più sofisticate come la ricottura simulata, la ricerca tabù o gli algoritmi genetici.

   Un altro buon algoritmo di apprendimento per i classificatori della rete Bayesiana è chiamato albero aumento Naïve Bayes (TAN). Come il nome implica, prende il classificatore Naïve Bayes e aggiunge i bordi ad esso. L'attributo di classe è il singolo genitore di ogni nodo di una rete Naïve Bayes: TAN considera l'aggiunta di un secondo genitore a ciascun nodo. Se il nodo di classe e tutti i bordi corrispondenti sono esclusi dalla considerazione e supponendo che esista esattamente un nodo a cui non viene aggiunto un secondo genitore, il classificatore risultante presenta una struttura ad albero radicata nel nodo senza genitore: questo è il nome del nome . Per questo tipo di rete limitato esiste un efficiente algoritmo per trovare il set di bordi che massimizza la probabilità della rete basata sul calcolo dell'albero di spanzione massimo ponderato della rete. Questo algoritmo è lineare nel numero di istanze e quadratiche nel numero di attributi.
   Tutte le metriche di punteggio che abbiamo descritto finora sono probabilmente basate nel senso che sono progettate per massimizzare la probabilità congiunta Pr [a1, a2,. . ., Un] per ogni istanza. Tuttavia, nella classificazione, ciò che vogliamo veramente massimizzare è la probabilità condizionale della classe dato i valori degli altri attributi, ovvero la probabilità condizionale.Purtroppo non esiste una soluzione a forma di chiusa per le stime di probabilità massima di probabilità condizionale che sono necessarie per le tabelle in una rete Bayesiana. D'altra parte, il calcolo della probabilità condizionale per una determinata rete e il set di dati è semplice - dopotutto, questo è ciò che fa la regressione logistica. Di conseguenza è stato proposto di utilizzare stime standard di probabilità di probabilità di massima nella rete, ma la probabilità condizionale di valutare una particolare struttura di rete.

   Un altro modo di utilizzare le reti bayesiane per la classificazione è quello di costruire una rete separata per ciascun valore di classe, basata sui dati relativi a quella classe, e combinare le previsioni usando la regola di Bayes. L'insieme delle reti è chiamato multinet Bayesiano. Per ottenere una previsione per un determinato valore di classe, prendere la probabilità della rete corrispondente e moltiplicarla per la probabilità precedente della classe. Fai questo per ogni classe e normalizza il risultato come abbiamo fatto in precedenza. In questo caso non usiamo la probabilità condizionale di imparare la rete per ogni valore di classe.
    Tutti gli algoritmi di apprendimento di rete introdotti in precedenza sono basati sul punteggio. Una strategia diversa, che non ci spiegheremo qui, è quella di raggruppare insieme una rete attraverso la sperimentazione di singole asserzioni di indipendenza condizionale basate su sottoinsiemi degli attributi. Questo è noto come struttura di apprendimento da test di indipendenza condizionale.

  Strutture di dati per un apprendimento veloce    

 L'apprendimento delle reti bayesiane comporta un sacco di conteggio. Per ogni struttura di rete considerata nella ricerca, i dati devono essere nuovamente scansionati per ottenere i conteggi necessari per compilare le tabelle di probabilità condizionale. Invece, potrebbero essere memorizzati in una struttura di dati che ha eliminato la necessità di eseguire la scansione dei dati più e più volte? Un modo ovvio è precompattare i conteggi e memorizzare i nonzero in una tabella - ad esempio, la tabella hash menzionata nella sezione 4.5. Anche in questo caso, qualsiasi set di dati non triviale avrà un numero enorme di conteggi non zero.  Ancora una volta, prendere in considerazione i dati meteorologici dalla tabella 1.2 (pagina 11). Ci sono cinque attributi, due con tre valori e tre con due valori. Questo dà 4 * 4 * 3 * 3 * 3 = 432 possibili conteggi. Ogni componente del prodotto corrisponde ad un attributo e il suo contributo al prodotto è più che il numero dei suoi valori perché l'attributo potrebbe mancare dal conteggio. Tutti questi conteggi possono essere calcolati trattandoli come set di elementi, come spiegato nella sezione 4.5, e impostando la copertura minima a uno. Ma anche senza memorizzare i conteggi che sono zero, questo semplice schema corre molto rapidamente nei problemi di memoria.
 
Risulta che i conteggi possono essere memorizzati in modo efficace in una struttura denominata albero di tutte le dimensioni (AD), che è analoga agli alberi kD utilizzati per la ricerca "vicina più vicina" descritta nella sezione 4.7. Per semplicità, lo illustriamo usando una versione ridotta dei dati meteo che ha solo l'umidità, il ventoso e il gioco degli attributi. La Figura 6.22 (a) riepiloga i dati. Il numero di possibili conteggi è di 3 * 3 * 3 = 27, anche se solo 8 di essi sono mostrati. Ad esempio, il conteggio per il gioco = no è 5 (contano!).
   
La Figura 6.22 (b) mostra un albero AD per questi dati. Ogni nodo dice quante istanze mostrano i valori degli attributi che vengono testati lungo il percorso dalla radice a quel nodo. Ad esempio, la foglia più a sinistra dice che esiste un'istanza con valori umidità = normale, ventoso = vero e play = no, e la foglia più a destra dice che ci sono cinque istanze con play = no.
  
Sarebbe banale costruire un albero che enumerasse esplicitamente tutti i 27 conteggi. Tuttavia, ciò non otterrebbe nulla su un tavolo semplice e non è ovviamente che cosa fa l'albero nella Figura 6.22 (b), perché contiene solo 8 conteggi. Esistono, per esempio, nessun ramo che esegue la prova dell'umidità = alta. Come è stato costruito l'albero, e come possono essere ottenuti tutti i conti?

  
 Figure 6.22 The weather data: (a) reduced version and (b) corresponding AD tree.
 

  Supponiamo che ogni attributo nei dati sia stato assegnato un indice. Nella versione ridotta dei dati meteo forniamo indice di umidità 1, indice ventoso 2 e indice di gioco 3. Un albero AD viene generato espandendo ogni nodo corrispondente ad un attributo i con i valori di tutti gli attributi che hanno indici j> i, Con due importanti restrizioni: l'espansione più popolosa per ogni attributo viene omessa (rottura dei legami arbitrariamente), come sono le espansioni con conteggi che sono zero.
  
Il nodo radice viene dato indice 0, per cui tutti gli attributi sono espansi, soggetti alle stesse restrizioni. Ad esempio, la Figura 6.22 (b) non contiene alcuna espansione per windy = false dal nodo principale poiché in otto casi è l'espansione più popolata: il valore false si verifica più spesso nei dati rispetto al valore vero. Allo stesso modo, dal nodo emesso con umidità = normale non esiste un'espansione per windy = false, perché false è il valore più comune per ventose tra tutti i casi con umidità = normale. Infatti, nel nostro esempio, la seconda restrizione - vale a dire, che le espansioni con zero conteggi sono omesse - non scatta mai perché la prima restrizione preclude qualsiasi percorso che inizia con le prove umidità = normale e ventoso = falso, che è l'unico modo per raggiungere Lo zero solitario nella Figura 6.22 (a).
  
Ogni nodo dell'albero rappresenta il verificarsi di una particolare combinazione di valori di attributo. È semplice da recuperare il conteggio per una combinazione che si verifica nell'albero. Tuttavia, l'albero non rappresenta esplicitamente molti conteggi non-zero, poiché l'espansione più popolosa per ogni attributo viene omessa. Ad esempio, l'umidità di combinazione = alta e play = yes si verifica tre volte nei dati ma non ha un nodo nell'albero. Tuttavia, si scopre che ogni conteggio può essere calcolato da quelli che l'albero memorizza esplicitamente.

  Ecco un semplice esempio. Figura 6.22 (b) non contiene nodi per umidità = normale, ventoso = vero e play = yes. Tuttavia, mostra tre istanze con umidità = normale e vento = vero, e uno di essi ha un valore per il gioco che è diverso da sì. Ne consegue che ci devono essere due istanze per il gioco = sì. Ora per un caso più trickier: quante volte l'umidità è alta, vento = vero e giocare = non si verifica? A prima vista sembra impossibile dirlo perché non esiste un ramo per l'umidità = alta. Tuttavia, possiamo dedurre il numero calcolando il conteggio per windy = true e play = no (3) e sottraendo il conteggio per umidità = normale, windy = true e play = no (1). Questo dà 2, il valore corretto.
   
Questa idea funziona per qualsiasi sottoinsieme di attributi e qualsiasi combinazione di valori di attributo, ma può essere necessario ricorrere in modo ricorsivo. Ad esempio, per ottenere il conteggio per l'umidità = alto, ventoso = falso, e giocare = no, abbiamo bisogno del conteggio per windy = false e play = no e il conteggio per l'umidità = normale, windy = false e play = no. Otteniamo il primo sottraendo il conteggio per il windy = true e play = no (3) dal conteggio per play = no (5), dando 2 e il secondo sottraendo il conteggio per l'umidità = normale, vento = true e Giocare = no (1) dal conteggio per umidità = normale e giocare = no (1), dando 0. Così devono essere 2 - 0 = 2 istanze con umidità = alto, ventoso = falso e play = no corretta.
   
Gli alberi AD pagano solo se i dati contengono migliaia di istanze. È abbastanza ovvio che non aiuta i dati meteo. Il fatto che non producano vantaggi sui piccoli set di dati significa che, in pratica, ha poco senso espandere l'albero fino al nodo delle foglie. Di solito viene utilizzato un parametro di cutoff k e nodi che coprono meno di k istanze dispongono di un elenco di puntatori a queste istanze piuttosto che un elenco di puntatori ad altri nodi. Ciò rende gli alberi più piccoli e più efficienti da utilizzare.

  Discusione

L'algoritmo K2 per l'apprendimento delle reti bayesiane è stato introdotto da Cooper e Herskovits (1992). Le metriche di punteggio bayesiano sono coperte da Heckerman et al. (1995). L'algoritmo TAN è stato introdotto da Friedman et al. (1997), che descrive anche multineti. Grossman e Domingos (2004) mostrano come utilizzare la probabilità condizionale per valutare le reti. Guo e Greiner (2004) presentano un ampio confronto di metriche di punteggio per i classificatori della rete Bayesiana. Bouckaert (1995) descrive la mediazione sulle sottoreti. Alberi AD sono stati introdotti e analizzati da Moore e Lee (1998) - lo stesso Andrew Moore il cui lavoro su alberi di kD e alberi a sfera è stato menzionato nella Sezione 4.9. In un articolo più recente, Komarek e Moore (2000) introducono alberi AD per l'apprendimento incrementale che sono anche più efficienti per i set di dati con molti attributi.
  
Abbiamo solo scremato la superficie del tema dell'apprendimento delle reti bayesiane. Abbiamo lasciato domande aperte di valori mancanti, attributi numerici e attributi nascosti. Non abbiamo descritto come utilizzare le reti bayesiane per attività di regressione. Le reti bayesiane sono un caso speciale di una più ampia classe di modelli statistici chiamati modelli grafici, che comprendono reti con bordi non diretti (chiamati reti Markov). I modelli grafici stanno attirando grande attenzione nella comunità di apprendimento macchina oggi.
 
 

 

Nessun commento:

Posta un commento