Distinzione tra due gruppi in statistica e apprendimento automatico: test di ipotesi vs. classificazione vs. clustering


29

Supponiamo di avere due gruppi di dati, etichettati A e B (ciascuno contenente ad esempio 200 campioni e 1 funzione), e voglio sapere se sono diversi. Potrei:

  • a) eseguire un test statistico (ad es. t-test) per vedere se sono statisticamente diversi.

  • b) utilizzare l'apprendimento automatico supervisionato (ad es. classificatore vettoriale di supporto o classificatore casuale di foreste). Posso addestrare questo su una parte dei miei dati e verificarlo sul resto. Se in seguito l'algoritmo di machine learning classifica correttamente il resto, posso essere sicuro che i campioni sono differenziabili.

  • c) utilizzare un algoritmo senza supervisione (ad esempio K-Means) e lasciarlo dividere tutti i dati in due campioni. Posso quindi verificare se questi due campioni trovati sono in accordo con le mie etichette, A e B.

Le mie domande sono:

  1. In che modo questi tre modi diversi sono sovrapposti / esclusivi?
  2. B) ec) sono utili per eventuali argomenti scientifici?
  3. Come potrei ottenere un "significato" per la differenza tra i campioni A e B rispetto ai metodi b) ec)?
  4. Cosa cambierebbe se i dati avessero più funzionalità anziché 1 funzionalità?
  5. Cosa succede se contengono un numero diverso di campioni, ad esempio 100 vs 300?

3
Direi che la differenza tra (a) e (b) è che i test statistici si concentrano sull'esistenza è una differenza, mentre i metodi di classificazione concentrano sulle dimensioni di questa differenza. Quando si utilizza la foresta casuale, si desidera conoscere l'accuratezza convalidata in modo incrociato; forse è il 78%. Questo è il numero che ti interessa e non fare una dichiarazione che non è uguale al 50% .
ameba dice di reintegrare Monica il

4
Le situazioni IMHO in cui a / b / c hanno un senso differiscono nel tipico rapporto segnale-rumore, e sta aumentando da (a) a (b) a (c). Nell'applicazione tipica di un test t, c'è un rumore elevato; vogliamo mostrare che i gruppi non sono uguali. Se i gruppi ovviamente non sono uguali (meno rumore), non abbiamo davvero più bisogno di un test; vogliamo invece quantificare quanto sono diversi i gruppi e l'accuratezza della classificazione fuori campione può aiutare qui. Se c'è ancora meno rumore e l'accuratezza della classificazione è ~ 100%, possiamo chiedere se i gruppi sono così super-distinti da poter essere raccolti da un algoritmo di clustering.
ameba dice di reintegrare Monica il

1
@amoeba, ti sto rivolgendo a te perché hai modificato il titolo della domanda, ecc. Ti chiedo di esaminarlo ancora una volta. "Classificazione" e "raggruppamento": non sono in (unico) possesso dell'apprendimento automatico. Questi compiti sono comparsi e sono stati regolarmente eseguiti nell'analisi statistica / dei dati prima del primo m. lo studente è nato. È vero solo per alcune tecniche recenti come SVM che si sono evolute a causa e all'interno di ML. Non è corretto associare la classificazione / clustering / alberi solo a ML. ML, tuttavia, differisce dall'analisi dei dati statistici per il fatto che utilizza pesantemente treno / prova.
ttnphns,

@ttnphns Certo, è tutto corretto, ma il titolo originale era "Distinguere i campioni: Machine Learning vs. test statistici (ad es. t-test)" e volevo solo aggiungere un po 'di precisione perché la domanda si sta davvero ponendo sul t-test vs classificazione vs clustering (per questo particolare scopo scientifico). Penserò a possibili miglioramenti del titolo.
ameba dice di reintegrare Monica il

@ttnphns Ho modificato il titolo, vedi se ti piace di più.
ameba dice di reintegrare Monica il

Risposte:


15

Ottima domanda Qualsiasi cosa può essere buona o cattiva, utile o no, in base ai tuoi obiettivi (e forse alla natura della tua situazione). Per la maggior parte, questi metodi sono progettati per soddisfare diversi obiettivi.

  • Test statistici , come il test consentono di testare ipotesi scientifiche. Sono spesso usati per altri scopi (perché le persone non hanno familiarità con altri strumenti), ma generalmente non dovrebbero esserlo. Se hai un'ipotesi a priori secondo cui i due gruppi hanno mezzi diversi su una variabile normalmente distribuita, allora il test ti permetterà di testare quell'ipotesi e controllare il tuo tasso di errore di tipo I a lungo termine (anche se non saprai se hai creato un tasso di errore di tipo I in questo caso particolare). ttt
  • I classificatori nell'apprendimento automatico, come un SVM, sono progettati per classificare i modelli come appartenenti a uno di un insieme noto di classi. La situazione tipica è che hai alcune istanze conosciute e vuoi addestrare il classificatore utilizzandole in modo che possa fornire le classificazioni più accurate in futuro quando avrai altri schemi la cui vera classe è sconosciuta. L'enfasi qui è sulla precisione del campione ; non stai verificando alcuna ipotesi. Sicuramente speri che la distribuzione delle variabili / caratteristiche del predittore differisca tra le classi, perché altrimenti non sarà possibile alcun aiuto per la classificazione futura, ma non stai cercando di valutare la tua convinzione che i mezzi di Y differiscono per X. Vuoi indovinare correttamente X in futuro quando Y è noto.
  • Gli algoritmi di apprendimento senza supervisione, come il clustering , sono progettati per rilevare o imporre la struttura su un set di dati. Ci sono molte possibili ragioni per cui potresti voler fare questo. A volte potresti aspettarti che ci siano raggruppamenti veri e latenti in un set di dati e voler vedere se i risultati del raggruppamento sembreranno ragionevoli e utilizzabili per i tuoi scopi. In altri casi, potresti voler imporre una struttura su un set di dati per abilitare la riduzione dei dati. Ad ogni modo, non stai provando a testare un'ipotesi su nulla, né speri di essere in grado di prevedere con precisione qualcosa in futuro.

Con questo in mente, affrontiamo le tue domande:

  1. I tre metodi differiscono fondamentalmente negli obiettivi che servono.
  2. bec può essere utile in argomenti scientifici, dipende dalla natura degli argomenti in questione. Di gran lunga il tipo più comune di ricerca scientifica è incentrato sulla verifica di ipotesi. Tuttavia, formare modelli predittivi o rilevare schemi latenti sono anche possibili obiettivi legittimi.
  3. In genere non si cerca di ottenere "significatività" dai metodi bec.
  4. Supponendo che le caratteristiche siano di natura categorica (che ho capito è quello che hai in mente), puoi comunque verificare le ipotesi usando un ANOVA fattoriale. Nell'apprendimento automatico esiste un argomento secondario per la classificazione multietichetta . Esistono anche metodi per più gruppi di appartenenza / sovrapposizione, ma questi sono meno comuni e costituiscono un problema molto meno trattabile. Per una panoramica dell'argomento, vedere Krumpleman, CS (2010) Clustering sovrapposto. Tesi di laurea, UT Austin, ingegneria elettrica e informatica ( pdf ).
  5. In generale, tutti e tre i tipi di metodi hanno maggiori difficoltà poiché il numero di casi tra le categorie differisce.

2
Ri # 4: Penso che tu abbia frainteso la parola "caratteristica" nel PO. Nell'apprendimento automatico, "funzione" significa semplicemente una variabile. Quindi "funzionalità multiple" significa che si dovrebbe usare una versione multivariata di un test t (come T di Hotelling) e non un ANOVA fattoriale.
ameba dice di reintegrare Monica il

11

Non affronteremo il clustering perché è stato affrontato in altre risposte, ma:

In generale, il problema di verificare se due campioni sono significativamente diversi è noto come test a due campioni .

Effettuando un test , limiti fortemente i tipi di differenze che stai cercando (differenze nelle medie tra le distribuzioni normali). Esistono altri test che possono verificare tipi di distanze più generali: Wilcoxon-Mann-Whitney per l'ordinamento stocastico, Kolmogorov-Smirnov per differenze generali in una dimensione, discrepanza media massima o distanza energetica equivalente per differenze generiche su spazi di input arbitrari, oppure molte altre scelte. Ognuno di questi test è migliore nel rilevare determinati tipi di differenze, ed è talvolta difficile ragionare su quali tipi di differenze sono bravi o cattivi nel rilevare o interpretare i risultati oltre un valore .ptp

Potrebbe essere più facile pensare ad alcuni di questi problemi se si costruisce un test a due campioni da un classificatore, ad esempio come recentemente proposto da Lopez-Paz e Oquab (2017) . La procedura è la seguente:

  • Dividi le tue osservazioni e in due parti ciascuna, e , e .Y X treno X test Y treno Y testXYXtrainXtestYtrainYtest
  • Addestra un classificatore per distinguere tra e .Y trenoXtrainYtrain
  • Applicare l'output del classificatore su e .Y provaXtestYtest
  • Conta il numero di volte in cui la sua previsione era corretta per ottenere . Applicare un test binomiale per distinguere il null da . Se , le due distribuzioni sono diverse. p=1p^ p1p=12 p1p12p12

Ispezionando il classificatore appreso, potresti anche essere in grado di interpretare le differenze tra le distribuzioni in modo semi-significativo. Modificando la famiglia di classificatori che consideri, puoi anche aiutare a guidare il test alla ricerca di determinati tipi di differenze.

Si noti che è importante effettuare la divisione test treno: altrimenti un classificatore che ha appena memorizzato i suoi input avrebbe sempre una perfetta discriminabilità. Aumentare la parte di punti nel set di addestramento ti dà più dati per imparare un buon classificatore, ma meno opportunità per essere sicuro che l'accuratezza della classificazione sia davvero diversa dal caso. Questo compromesso è qualcosa che varierà a seconda del problema e della famiglia di classificatori e non è ancora ben compreso.

Lopez-Paz e Oquab hanno mostrato buone prestazioni empiriche di questo approccio su alcuni problemi. Ramdas et al. (2016) hanno inoltre dimostrato che teoricamente un approccio strettamente correlato è tasso ottimale per un problema specifico specifico. La cosa "giusta" da fare in questo contesto è un'area di ricerca attiva, ma questo approccio è almeno ragionevole in molti contesti se si desidera un po 'più di flessibilità e interpretabilità rispetto al semplice applicazione di un test standard standard.


(+1) Inoltre, la validazione incrociata nidificata è la strada da percorrere, imo. Quindi testare la stima delle prestazioni ottenuta nel loop di ricampionamento esterno rispetto a una performance del modello senza informazioni. Se significativamente superiore alle aspettative per caso, i tuoi dati sono in qualche modo discriminati.
Firebug,

@Firebug Cosa intendi per "prestazione del modello senza informazione"? Non capisco bene la tua procedura proposta.
Dougal,

2
@Firebug Un avvertimento importante ma sottile è che se l'accuratezza della classificazione è stimata tramite CV, non si può usare un test binomiale.
ameba dice di reintegrare Monica il

2
@Firebug Il mio punto rimane ancora: non è possibile applicare alcun tipo di test di un campione agli AUC da diverse pieghe e in particolare da CV ripetuti perché queste stime non sono indipendenti. Questo è un problema ben noto.
ameba dice di reintegrare Monica il

2
Test di permutazione: l'ho fatto da solo. Si esegue CV per ottenere una stima delle prestazioni, quindi si mescolano le etichette e si esegue nuovamente l'intera pipeline CV (e si fa questo mescolando 100 o 1000 volte per ottenere la distribuzione nulla). Tuttavia, ciò richiede molto tempo. Cc a @Firebug.
ameba dice di reintegrare Monica il

3

Solo l'approccio (a) serve allo scopo di verificare l'ipotesi.

In caso di utilizzo di algoritmi di apprendimento automatico supervisionato (b), non possono né provare né confutare l'ipotesi sulla distanza dei gruppi. Se l'algoritmo di apprendimento automatico non classifica correttamente i gruppi, ciò può accadere perché hai usato l'algoritmo "sbagliato" per il tuo problema, o non l'hai sintonizzato abbastanza ecc. D'altra parte, potresti "torturare" i dati totalmente "casuali" a lungo abbastanza per produrre un modello di overfitting che faccia buone previsioni. Ancora un altro problema è quando e come faresti a sapere che l'algoritmo fa previsioni "buone"? Quasi mai mireresti alla precisione della classificazione al 100%, quindi quando sapresti che i risultati della classificazione provano qualcosa?

Gli algoritmi di clustering (c) non sono progettati per l'apprendimento supervisionato. Non mirano a ricreare le etichette, ma a raggruppare i dati in termini di somiglianze. Ora, i risultati dipendono dall'algoritmo che usi e dal tipo di somiglianze che stai cercando. I tuoi dati potrebbero avere diversi tipi di somiglianze, potresti voler cercare differenze tra ragazzi e ragazze, ma l'algoritmo potrebbe invece trovare gruppi di bambini poveri e ricchi, o intelligenti e meno intelligenti, destrimani e mancini ecc. il raggruppamento che intendevi non dimostra che il raggruppamento non ha senso, ma solo che ha trovato un altro raggruppamento "significativo". Come nel caso precedente, i risultati possono dipendere dall'algoritmo utilizzato e dai parametri. Ti farebbe comodo se uno su dieci algoritmi / impostazioni trovasse "tuo" etichette? E se fosse uno su cento? Quanto tempo cerchi prima di fermarti? Si noti che quando si utilizza l'apprendimento automatico nella stragrande maggioranza dei casi, non ci si fermerà dopo aver utilizzato un algoritmo con impostazioni predefinite e il risultato potrebbe dipendere dalla procedura utilizzata.


2
Per l'approccio (b): puoi costruire un test di ipotesi come indicato nella mia risposta per risolvere il problema di sapere se il tuo risultato è significativo (anche se questo è sicuramente in un uso ingenuo dei classificatori per questo problema). Si noti che qualsiasi dato test di ipotesi potrebbe anche non riuscire a respingere il valore nullo perché è il test "sbagliato" per il problema, esattamente nello stesso modo in cui si verificherebbe un classificatore; il problema del sovradimensionamento è completamente risolto dalla suddivisione dei dati.
Dougal,

@Dougal punti positivi (+1) ma il mio argomento principale è che usando l'apprendimento automatico il risultato dipende da come scegli l'algoritmo, usalo, testalo e valuta i risultati; quindi il risultato di tale test dipende in larga misura dalle tue azioni. Ciò significa che potenzialmente due diversi statistici potrebbero ottenere risultati diversi usando questo metodo. D'altra parte, con i test di ipotesi tradizionali dipende solo dalla scelta del test.
Tim

Inoltre, non esiste un unico modo "corretto" per applicarlo e puoi facilmente manipolarlo (intenzionalmente o meno) per ottenere i risultati previsti.
Tim

Se stai solo provando un milione di cose finché non ottieni il risultato desiderato, sì. Se si esegue una corretta suddivisione dei dati anche dalla propria analisi, la procedura del test è perfettamente valida. Avere più opzioni ti dà maggiore potere in situazioni in cui sai come sfruttarlo, ma sì consente maggiori opportunità di barare (inavvertitamente o in altro modo) se non stai attento.
Dougal,

@Dougal sì, ma il risultato dipende anche dalla procedura utilizzata per la validazione incrociata e dalla suddivisione stessa (ad es. Dimensione del gruppo di test). Quindi ad ogni passo il risultato dipende dalla tua procedura. Inoltre, è una tua decisione quando smetti di imparare e cerchi di ottenere risultati migliori (algoritmo singolo con impostazioni predefinite, vs algoritmi singoli e regolazione dei parametri, vs algoritmi multipli - quanti?). Questa procedura potrebbe aver bisogno di alcune correzioni per più test (ma cosa esattamente?) Per tenere conto della procedura utilizzata - sembrano buoni risultati su un singolo algoritmo con impostazioni predefinite
Tim

2
  1. a) risponde solo alla domanda se la distribuzione è diversa, ma non come distinguerli. b) troverà anche il miglior valore per differenziare tra le due distribuzioni. c) funzionerà se le due distribuzioni hanno proprietà specifiche. Ad esempio funzionerà con una distribuzione normale ma non con alcune due distribuzioni modali, perché il metodo può differenziare due modalità dello stesso gruppo anziché due gruppi diversi.

  2. c) non è utile per argomenti scientifici a causa di due distribuzioni modali. b) potrebbe essere utilizzato per differenziare due distribuzioni, perché è possibile calcolare il significato (vedere 3.) Anche se non l'ho mai incontrato.

  3. Tramite bootstrap. Calcola il modello in base a sottocampioni casuali 1000 volte. Ottieni un punteggio, ad esempio la somma minima di errori alfa e beta. Si ordina il punteggio in ordine crescente. Per una sicurezza del 5%, scegli il 950 ° valore. Se questo valore è inferiore al 50% (per uguale numero di punti per i gruppi A e B), con una sicurezza del 95% è possibile ignorare l'ipotesi nulla che le distribuzioni siano le stesse. Il problema è che se le distribuzioni sono entrambe normali, hanno la stessa media, ma hanno una variazione diversa, non sarai in grado di capire che sono diverse dalle tecniche ML. D'altra parte, è possibile trovare un test di variazione che sarà in grado di distinguere le due distribuzioni. E potrebbe essere il contrario che ML sarà più forte di un test statistico e sarà in grado di distinguere le distribuzioni.

  4. Quando hai una sola funzione in ML devi trovare un solo valore per distinguere le distribuzioni. Con due caratteristiche il bordo può essere un seno e nello spazio multidimensionale potrebbe essere davvero strano. Quindi sarà molto più difficile trovare il confine giusto. D'altra parte, funzionalità aggiuntive forniscono informazioni aggiuntive. Quindi generalmente consentirà di distinguere più facilmente le due distribuzioni. Se entrambe le variabili sono normalmente distribuite, il bordo è una linea.

  5. I campioni più piccoli possono comportarsi in modo non normale poiché non è possibile applicare il Teorema del limite centrale. Un campione più grande inizia a comportarsi più normalmente perché il Teorema del limite centrale inizia a funzionare. Ad esempio, la media di entrambi i gruppi sarà quasi normalmente distribuita se il campione è abbastanza grande. Ma di solito non sono 100 contro 300 ma 10 osservazioni contro 1000 osservazioni. Quindi, secondo questo sito, il test t per la differenza di media funzionerà indipendentemente dalla distribuzione se il numero di osservazioni è maggiore di 40 e senza valori anomali.


0

Il test statistico serve a fare deduzione dai dati, ti dice come le cose sono correlate. Il risultato è qualcosa che ha un significato nel mondo reale. Ad esempio, come il fumo è associato al cancro del polmone, sia in termini di direzione che di grandezza. Non ti dice ancora perché sono successe le cose. Per rispondere al motivo per cui sono successe le cose, dobbiamo considerare anche l'interrelazione con altre variabili e apportare le opportune modifiche (vedi Pearl, J. (2003) CAUSALITÀ: MODELLI, RAGIONAMENTO E INFERENZA).

L'apprendimento supervisionato serve a fare previsioni, ti dice cosa accadrà. Ad esempio, dato lo stato di fumo di una persona, possiamo prevedere se avrà un cancro ai polmoni. In casi semplici, ti dice ancora "come", ad esempio osservando l'interruzione dello stato di fumo identificato dall'algoritmo. Ma i modelli più complessi sono più difficili o impossibili da interpretare (apprendimento profondo / potenziamento con molte funzionalità).

L'apprendimento senza supervisione viene spesso utilizzato per facilitare i due precedenti.

  • Per i test statistici, scoprendo alcuni sottogruppi sottostanti sconosciuti dei dati (clustering), possiamo dedurre l'eterogeneità nelle associazioni tra variabili. Ad esempio, il fumo aumenta le probabilità di avere un cancro ai polmoni per il sottogruppo A ma non per il sottogruppo B.
  • Per l'apprendimento supervisionato, possiamo creare nuove funzionalità per migliorare l'accuratezza e la solidità della previsione. Ad esempio identificando i sottogruppi (raggruppamento) o la combinazione di caratteristiche (riduzione della dimensione) associate a probabilità di avere un cancro ai polmoni.

Quando il numero di caratteristiche / variabili aumenta, la differenza tra test statistici e apprendimento supervisionato diventa più sostanziale. I test statistici potrebbero non trarne necessariamente beneficio, dipende ad esempio se si desidera fare un'inferenza causale controllando altri fattori o identificando l'eterogeneità nelle associazioni come menzionato sopra. L'apprendimento supervisionato funzionerà meglio se le funzionalità sono rilevanti e diventerà più simile a una blackbox.

Quando il numero di campioni aumenta, possiamo ottenere risultati più precisi per i test statistici, risultati più accurati per l'apprendimento supervisionato e risultati più solidi per l'apprendimento non supervisionato. Ma questo dipende dalla qualità dei dati. Dati di cattiva qualità possono introdurre distorsioni o disturbi nei risultati.

A volte vogliamo sapere "come" e "perché" per informare le azioni interventistiche, ad esempio identificando che il fumo provoca il cancro ai polmoni, la politica può essere presa per affrontarlo. A volte vogliamo sapere "cosa" per informare il processo decisionale, ad esempio scoprire chi è probabile che abbia il cancro ai polmoni e dare loro trattamenti precoci. C'è un numero speciale pubblicato su Science sulla previsione e i suoi limiti ( http://science.sciencemag.org/content/355/6324/468). "Il successo sembra essere raggiunto in modo più coerente quando le domande vengono affrontate in sforzi multidisciplinari che uniscono la comprensione umana del contesto con la capacità algoritmica di gestire terabyte di dati." Secondo me, ad esempio, le conoscenze scoperte utilizzando il test di ipotesi possono aiutare l'apprendimento supervisionato informandoci quali dati / caratteristiche dovremmo raccogliere in primo luogo. D'altra parte, l'apprendimento supervisionato può aiutare a generare ipotesi informando quali variabili

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.