Sidst opdateret den 8. august 2019
Sammenligning af maskinlæringsmetoder og udvælgelse af en endelig model er en almindelig operation i anvendt maskinlæring.
Modeller evalueres almindeligvis ved hjælp af resamplingmetoder som k-fold krydsvalidering, hvorfra gennemsnitlige færdighedsscorer beregnes og sammenlignes direkte. Selv om denne fremgangsmåde er enkel, kan den være vildledende, da det er svært at vide, om forskellen mellem de gennemsnitlige færdighedsscorer er reel eller resultatet af en statistisk tilfældighed.
Statistiske signifikanstests er designet til at løse dette problem og kvantificere sandsynligheden for, at stikprøverne af færdighedsscorer er observeret, idet det antages, at de er udtrukket fra den samme fordeling. Hvis denne antagelse, eller nulhypotese, forkastes, tyder det på, at forskellen i færdighedsscorer er statistisk signifikant.
Selv om de statistiske hypotesetests ikke er idiotsikre, kan de forbedre både din tillid til fortolkningen og præsentationen af resultaterne under udvælgelsen af modeller.
I denne vejledning vil du opdage vigtigheden og udfordringen ved at vælge en statistisk hypotesetest til sammenligning af maskinlæringsmodeller.
Når du har gennemført denne vejledning, vil du vide:
- Statistiske hypotesetests kan hjælpe dig med at sammenligne maskinlæringsmodeller og vælge en endelig model.
- Den naive anvendelse af statistiske hypotesetests kan føre til misvisende resultater.
- Den korrekte anvendelse af statistiske tests er en udfordring, og der er en vis konsensus om at anvende McNemar-testen eller 5×2 krydsvalidering med en modificeret parret Student t-test.
Kick-start dit projekt med min nye bog Statistics for Machine Learning, inklusive trinvise vejledninger og Python-kildekodefilerne til alle eksempler.
Lad os komme i gang.
- Opdatering okt/2018: Tilføjet link til et eksempel på brug af McNemar’s test.
Statistiske signifikanstests til sammenligning af algoritmer til maskinlæring
Foto af Fotografías de Javier, nogle rettigheder forbeholdt.
Overblik over vejledningen
Denne vejledning er opdelt i 5 dele; de er:
- Problemet med modelvalg
- Statistiske hypotesetests
- Problem med at vælge en hypotesetest
- Summary of Some Findings
- Anbefalinger
Har du brug for hjælp med statistik til maskinlæring?
Tag mit gratis 7-dages e-mail crashkursus nu (med prøvekode).
Klik for at tilmelde dig og få også en gratis PDF Ebook-version af kurset.
Download dit GRATIS minikursus
Problemet med modelvalg
En stor del af anvendt maskinlæring er modelvalg.
Vi kan beskrive dette i sin enkleste form:
Givet evalueringen af to maskinlæringsmetoder på et datasæt, hvilken model vælger du?
Du vælger den model med den bedste færdighed.
Det vil sige den model, hvis estimerede færdighed, når den foretager forudsigelser på usete data, er bedst. Dette kan være maksimal nøjagtighed eller minimal fejl i tilfælde af henholdsvis klassifikations- og regressionsproblemer.
Den udfordring, der ligger i at vælge modellen med den bedste færdighed, er at afgøre, hvor meget man kan stole på den enkelte models estimerede færdighed. Mere generelt:
Er forskellen i færdighed mellem to maskinlæringsmodeller reel, eller skyldes den en statistisk tilfældighed?
Vi kan bruge statistisk hypotesetestning til at besvare dette spørgsmål.
Statistiske hypotesetests
Generelt set kvantificerer en statistisk hypotesetest til sammenligning af stikprøver, hvor sandsynligt det er at observere to datastikprøver under den antagelse, at stikprøverne har den samme fordeling.
Antagelsen i en statistisk test kaldes nulhypotesen, og vi kan beregne statistiske mål og fortolke dem for at beslutte, om nulhypotesen skal accepteres eller forkastes.
I forbindelse med udvælgelse af modeller på baggrund af deres estimerede færdighed er vi interesseret i at vide, om der er en reel eller statistisk signifikant forskel mellem de to modeller.
- Hvis resultatet af testen tyder på, at der ikke er tilstrækkelig dokumentation til at forkaste nulhypotesen, skyldes en eventuel observeret forskel i modelfærdigheder sandsynligvis statistisk tilfældighed.
- Hvis resultatet af testen tyder på, at der er tilstrækkelig dokumentation til at forkaste nulhypotesen, skyldes en eventuel observeret forskel i modelfærdigheder sandsynligvis en forskel i modellerne.
Resultaterne af testen er probabilistiske, hvilket betyder, at det er muligt at fortolke resultatet korrekt, og at resultatet kan være forkert med en type I- eller type II-fejl. Kort sagt, et falsk positivt eller falsk negativt resultat.
Sammenligning af maskinlæringsmodeller via statistiske signifikanstest pålægger nogle forventninger, som igen vil påvirke de typer af statistiske test, der kan anvendes; for eksempel:
- Skill Estimate. Der skal vælges et specifikt mål for modellens færdighed. Dette kan være klassifikationsnøjagtighed (en andel) eller gennemsnitlig absolut fejl (sammenfattende statistik), hvilket vil begrænse den type test, der kan anvendes.
- Repeated Estimates (gentagne estimater). Der kræves en stikprøve af færdighedsscorer for at kunne beregne statistikker. Gentagen træning og testning af en given model på de samme eller forskellige data vil påvirke den type test, der kan anvendes.
- Fordeling af estimater. Stikprøven af estimater af færdighedsscorer vil have en fordeling, måske en Gaussisk fordeling eller måske ikke. Dette vil afgøre, om parametriske eller ikke-parametriske test kan anvendes.
- Central tendens. Modelfærdigheder vil ofte blive beskrevet og sammenlignet ved hjælp af en sammenfattende statistik som f.eks. middelværdi eller median, afhængigt af fordelingen af færdighedsscorerne. Testen kan eller kan ikke tage direkte hensyn til dette.
Resultaterne af en statistisk test er ofte en teststatistik og en p-værdi, som begge kan fortolkes og anvendes i præsentationen af resultaterne for at kvantificere tillidsniveauet eller signifikansen af forskellen mellem modellerne. Dette gør det muligt at fremsætte stærkere påstande som en del af modeludvælgelsen end ved ikke at bruge statistiske hypotesetests.
Da det synes ønskeligt at bruge statistiske hypotesetests som en del af modeludvælgelsen, hvordan vælger du så en test, der er egnet til dit specifikke anvendelsestilfælde?
Problem med at vælge en hypotesetest
Lad os se på et almindeligt eksempel til evaluering og sammenligning af klassifikatorer for et balanceret binært klassifikationsproblem.
Det er almindelig praksis at evaluere klassifikationsmetoder ved hjælp af klassifikationsnøjagtighed, at evaluere hver model ved hjælp af 10-fold krydsvalidering, at antage en gaussisk fordeling for stikprøven af 10 estimater af modellens færdighed og at bruge gennemsnittet af stikprøven som et resumé af modellens færdighed.
Vi kunne kræve, at hver klassifikator, der evalueres ved hjælp af denne procedure, evalueres på nøjagtig de samme opdelinger af datasættet via 10-fold krydsvalidering. Dette ville give prøver af matchede parrede målinger mellem to klassifikatorer, matchede fordi hver klassifikator blev evalueret på de samme 10 testsæt.
Vi kunne derefter vælge og bruge den parrede Student’s t-test til at kontrollere, om forskellen i den gennemsnitlige nøjagtighed mellem de to modeller er statistisk signifikant, f.eks. forkaste nulhypotesen, der antager, at de to stikprøver har samme fordeling.
Dette er faktisk en almindelig måde at sammenligne klassifikatorer på med måske hundredvis af offentliggjorte artikler, der anvender denne metode.
Problemet er, at en nøgleantagelse i den parrede Student’s t-t-test er blevet overtrådt.
Næsten, observationerne i hver stikprøve er ikke uafhængige. Som en del af k-fold krydsvalideringsproceduren vil en given observation blive anvendt i træningsdatasættet (k-1) gange. Det betyder, at de estimerede færdighedsscorer er afhængige og ikke uafhængige, og at beregningen af t-statistikken i testen vil være misvisende forkert sammen med eventuelle fortolkninger af statistikken og p-værdien.
Denne observation kræver en omhyggelig forståelse af både den anvendte resamplingmetode, i dette tilfælde k-fold cross-validation, og forventningerne til den valgte hypotesetest, i dette tilfælde den parrede Student’s t-test. Uden denne baggrund synes testen passende, et resultat vil blive beregnet og fortolket, og alt vil se fint ud.
Det er desværre mere udfordrende at vælge en passende statistisk hypotesetest til modelvalg i anvendt maskinlæring, end det umiddelbart ser ud til. Heldigvis er der en voksende mængde forskning, der hjælper med at påpege fejlene ved de naive tilgange og foreslår korrektioner og alternative metoder.
Summary of Some Findings
I dette afsnit tager vi et kig på noget af forskningen i udvælgelse af passende statistiske signifikanstest til modelvalg i maskinlæring.
Brug McNemar’s test eller 5×2 Cross-Validation
Måske er det banebrydende arbejde om dette emne det dokument fra 1998 med titlen “Approximate Statistical Tests for Comparing Supervised Classification Learning Algorithms” af Thomas Dietterich.
Det er et fremragende dokument om emnet og en anbefalet læsning. Den dækker først en god ramme for at tænke over de punkter i løbet af et maskinlæringsprojekt, hvor en statistisk hypotesetest kan være nødvendig, diskuterer forventningen om almindelige overtrædelser af statistiske test, der er relevante for sammenligning af klassificeringsmetoder til maskinindlæring, og slutter med en empirisk evaluering af metoder til at bekræfte resultaterne.
Denne artikel gennemgår fem tilnærmede statistiske test til at bestemme, om en læringsalgoritme udkonkurrerer en anden på en bestemt læringsopgave.
Fokus for udvælgelsen og den empiriske evaluering af statistiske hypotesetest i artiklen er, at kalibrering af Type I-fejl eller falsk positive. Det vil sige, at vælge en test, der minimerer tilfældet med at foreslå en signifikant forskel, når der ikke findes en sådan forskel.
Der er en række vigtige resultater i denne artikel.
Det første resultat er, at man aldrig bør bruge parrede Student’s t-test på resultaterne af færdighed estimeret via tilfældige resamples af et træningsdatasæt.
… kan vi med sikkerhed konkludere, at t-testen efter resampling aldrig bør anvendes.
Antagelserne i den parrede t-test overtrædes i tilfælde af tilfældig resampling og i tilfælde af k-fold cross-validation (som nævnt ovenfor). Ikke desto mindre vil t-testen i tilfælde af k-fold krydsvalidering være optimistisk, hvilket resulterer i en højere type I-fejl, men kun en beskeden type II-fejl. Det betyder, at denne kombination kan anvendes i tilfælde, hvor det er vigtigere at undgå Type II-fejl end at bukke under for en Type I-fejl.
Den 10-fold krydsvaliderede t-test har en høj Type I-fejl. Den har imidlertid også høj effekt, og derfor kan den anbefales i de tilfælde, hvor type II-fejl (manglende påvisning af en reel forskel mellem algoritmer) er vigtigere.
Dietterich anbefaler McNemar’s statistiske hypotesetest i tilfælde, hvor der er en begrænset mængde data, og hver algoritme kun kan evalueres én gang.
McNemar’s test er ligesom Chi-kvadrat-testen, og i dette tilfælde bruges den til at afgøre, om forskellen i de observerede proportioner i algoritmens kontingenstabel er signifikant forskellig fra de forventede proportioner. Dette er et nyttigt resultat i tilfælde af store deep learning neurale netværk, som det kan tage dage eller uger at træne.
Vores eksperimenter får os til at anbefale McNemar’s test, til situationer, hvor læringsalgoritmerne kun kan køres én gang.
Dietterich anbefaler også en resamplingmetode, som han selv har fundet på, kaldet 5×2 krydsvalidering, der indebærer 5 gentagelser af 2-fold krydsvalidering.
De to foldninger er valgt for at sikre, at hver observation kun optræder i trænings- eller testdatasættet for et enkelt estimat af modellens færdigheder. Der anvendes en parret Student’s t-test på resultaterne, der er opdateret for bedre at afspejle de begrænsede frihedsgrader i betragtning af afhængigheden mellem de estimerede færdighedsscorer.
Vores eksperimenter får os til at anbefale 5 x 2cv t-test, for situationer, hvor læringsalgoritmerne er effektive nok til at køre ti gange
Refinements on 5×2 Cross-Validation
Brug af enten McNemar’s test eller 5×2 cross-validation er blevet en fast anbefaling i en stor del af de 20 år, siden papiret blev offentliggjort.
Nu er der dog blevet foretaget yderligere forbedringer for bedre at korrigere den parrede Student’s t-test for overtrædelse af uafhængighedsantagelsen fra gentagen k-fold krydsvalidering.
To vigtige papirer blandt mange omfatter:
Claude Nadeau og Yoshua Bengio foreslår en yderligere korrektion i deres papir fra 2003 med titlen “Inference for the Generalization Error”. Det er et tæt papir og anbefales ikke for sarte sjæle.
Denne analyse gav os mulighed for at konstruere to variansestimater, der tager hensyn til både variabiliteten som følge af valget af træningssættene og valget af testeksemplerne. Den ene af de foreslåede estimatorer ligner cv-metoden (Dietterich, 1998) og er specifikt designet til at overvurdere variansen for at give konservativ inferens.
Remco Bouckaert og Eibe Frank anlægger i deres artikel fra 2004 med titlen “Evaluating the Replicability of Significance Tests for Comparing Learning Algorithms” et andet perspektiv og betragter evnen til at replikere resultater som vigtigere end Type I- eller Type II-fejl.
I denne artikel argumenterer vi for, at replikerbarheden af en test også er af betydning. Vi siger, at en test har lav replikerbarhed, hvis dens resultat i høj grad afhænger af den særlige tilfældige partitionering af dataene, der anvendes til at udføre den
Overraskende nok anbefaler de at anvende enten 100 kørsler med tilfældig genudvinding eller 10×10-fold krydsvalidering med Nadeau og Bengio-korrektion til den parrede Student-t-t-test for at opnå en god replikerbarhed.
Den sidstnævnte fremgangsmåde anbefales i Ian Witten og Eibe Franks bog og i deres open source data mining-platform Weka, hvor der henvises til Nadeau og Bengio-korrektionen som “korrigeret resamplet t-test”.
Der er blevet foreslået forskellige modifikationer af standard-t-testen for at omgå dette problem, som alle er heuristiske og uden en solid teoretisk begrundelse. En af dem, der ser ud til at fungere godt i praksis, er den korrigerede genudtagne t-test. Den samme modificerede statistik kan anvendes ved gentagen krydsvalidering, som blot er et specialtilfælde af gentagen holdout, hvor de enkelte testsæt for en krydsvalidering ikke overlapper hinanden.
– Side 159, kapitel 5, Troværdighed: Evaluering af hvad der er lært, Data Mining: Practical Machine Learning Tools and Techniques, Third Edition, 2011.
Anbefalinger
Der findes ingen sølvkugler, når det gælder valg af en statistisk signifikanstest til modelvalg i anvendt maskinlæring.
Lad os se på fem tilgange, som du kan bruge i dit maskinlæringsprojekt til at sammenligne klassifikatorer.
Uafhængige datastikprøver
Hvis du har næsten ubegrænsede data, kan du samle k separate trænings- og testdatasæt for at beregne 10 virkelig uafhængige færdighedsscore for hver metode.
Du kan derefter anvende den parrede Student’s t-test korrekt. Dette er højst usandsynligt, da vi ofte arbejder med små datastikprøver.
… antagelsen om, at der er stort set ubegrænsede data, så der kan anvendes flere uafhængige datasæt af den rette størrelse. I praksis er der normalt kun et enkelt datasæt af begrænset størrelse. Hvad kan man gøre?
– Side 158, kapitel 5, Troværdighed: Evaluering af det, man har lært, Data Mining: Practical Machine Learning Tools and Techniques, Third Edition, 2011.
Accept the Problems of 10-fold CV
Den naive 10-fold cross-validation kan anvendes med en umodificeret parret Student t-test kan anvendes.
Den har en god repeterbarhed i forhold til andre metoder og en beskeden type II-fejl, men er kendt for at have en høj type I-fejl.
Eksperimenterne antyder også forsigtighed i fortolkningen af resultaterne af den 10-fold krydsvaliderede t-test. Denne test har en forhøjet sandsynlighed for type I-fejl (så meget som det dobbelte af målniveauet), selv om det ikke er nær så alvorligt som problemet med den resamplede t-test.
– Approximate Statistical Tests for Comparing Supervised Classification Learning Algorithms, 1998.
Det er en mulighed, men det anbefales meget svagt.
Brug McNemar’s Test eller 5×2 CV
De to årtier lange anbefalinger af McNemar’s test for enkeltkørsels-klassifikationsnøjagtighedsresultater og 5×2-fold krydsvalidering med en modificeret parret Student’s t-test i almindelighed står fast.
Dertil kommer, at Nadeau og Bengios yderligere korrektion af teststatistikken kan anvendes med 5×2-fold krydsvalidering eller 10×10-fold krydsvalidering som anbefalet af udviklerne af Weka.
En udfordring ved at anvende den modificerede t-statistik er, at der ikke findes nogen standardimplementering (f.eks. i SciPy), hvilket kræver brug af kode fra tredjepart og de risici, som dette indebærer. Du er muligvis nødt til selv at implementere den.
Den valgte statistiske metodes tilgængelighed og kompleksitet er en vigtig overvejelse, godt sagt af Gitte Vanwinckelen og Hendrik Blockeel i deres artikel fra 2012 med titlen “On Estimating Model Accuracy with Repeated Cross-Validation” (Om estimering af modelpræcision med gentagen krydsvalidering):
Selv om disse metoder er omhyggeligt udformet og viser sig at forbedre tidligere metoder på en række måder, lider de af den samme risiko som tidligere metoder, nemlig at jo mere kompleks en metode er, jo større er risikoen for, at forskerne vil bruge den forkert eller fortolke resultatet forkert.
Jeg har et eksempel på brug af McNemar’s test her:
- Sådan beregner du McNemar’s test for at sammenligne to klassifikatorer til maskinlæring
Brug en ikke-parametrisk parvis test
Vi kan bruge en ikke-parametrisk test, der gør færre antagelser, f.eks. ved ikke at antage, at fordelingen af færdighedsscorerne er gaussisk.
Et eksempel er Wilcoxon signed-rank-testen, som er den ikke-parametriske version af den parrede Student’s t-test. Denne test har mindre statistisk styrke end den parrede t-test, men dog mere styrke, når forventningerne til t-testen er overtrådt, f.eks. uafhængighed.
Denne statistiske hypotesetest anbefales til sammenligning af algoritmer forskellige datasæt af Janez Demsar i hans artikel fra 2006 “Statistical Comparisons of Classifiers over Multiple Data Sets”.
Vi anbefaler derfor at anvende Wilcoxon-testen, medmindre antagelserne for t-testen er opfyldt, enten fordi vi har mange datasæt, eller fordi vi har grund til at tro, at målet for ydeevne på tværs af datasæt er normalt fordelt.
Selv om testen er nonparametrisk, antager den stadig, at observationerne inden for hver prøve er uafhængige (f.eks. iid), og ved at bruge k-fold krydsvalidering ville man skabe afhængige prøver og overtræde denne antagelse.
Brug estimationsstatistik i stedet
I stedet for statistiske hypotesetest kan der beregnes estimationsstatistik, f.eks. konfidensintervaller. Disse ville lide under lignende problemer, hvor antagelsen om uafhængighed krænkes på grund af de resamplingmetoder, hvormed modellerne evalueres.
Tom Mitchell kommer med en lignende anbefaling i sin bog fra 1997, hvor han foreslår at tage resultaterne af statistiske hypotesetests som heuristiske estimater og søge konfidensintervaller omkring estimater af modelfærdigheder:
For at opsummere, så opfylder ingen enkelt procedure til sammenligning af læringsmetoder baseret på begrænsede data alle de begrænsninger, vi gerne vil have. Det er klogt at holde sig for øje, at statistiske modeller sjældent passer perfekt til de praktiske begrænsninger i forbindelse med test af indlæringsalgoritmer, når de tilgængelige data er begrænsede. Ikke desto mindre giver de tilnærmelsesvis konfidensintervaller, der kan være til stor hjælp ved fortolkning af eksperimentelle sammenligninger af indlæringsmetoder.
– Side 150, kapitel 5, Evaluating Hypotheses, Machine Learning, 1997.
Statistiske metoder som bootstrap kan bruges til at beregne forsvarlige ikke-parametriske konfidensintervaller, der kan bruges til både at præsentere resultater og sammenligne klassifikatorer. Dette er en enkel og effektiv fremgangsmåde, som du altid kan falde tilbage på, og som jeg generelt anbefaler.
Faktisk har konfidensintervaller fået den mest teoretiske undersøgelse af alle emner inden for bootstrap-området.
– Side 321, An Introduction to the Bootstrap, 1994.
Udvidelser
Dette afsnit indeholder en liste over nogle ideer til udvidelse af vejledningen, som du måske ønsker at udforske.
- Find og oplist tre forskningsartikler, der fejlagtigt anvender den umodificerede parrede Student’s t-test til sammenligning og valg af en maskinlæringsmodel.
- Sumér rammerne for anvendelse af statistiske hypotesetests i et maskinlæringsprojekt, som præsenteres i Thomas Dietterichs artikel fra 1998.
- Find og oplist tre forskningsartikler, der korrekt anvender enten McNemar’s test eller 5×2 Cross-Validation til sammenligning og valg af en maskinlæringsmodel.
Hvis du udforsker nogle af disse udvidelser, vil jeg gerne vide det.
Videre læsning
Dette afsnit indeholder flere ressourcer om emnet, hvis du ønsker at gå dybere ned i emnet.
Papers
- Approximate Statistical Tests for Comparing Supervised Classification Learning Algorithms, 1998.
- Inference for the Generalization Error, 2003.
- Evaluating the Replicability of Significance Tests for Comparing Learning Algorithms, 2004.
- On estimating model accuracy with repeated cross-validation, 2012.
- Statistical Comparisons of Classifiers over Multiple Data Sets, 2006.
Bøger
- Kapitel 5, Evaluating Hypotheses, Machine Learning, 1997.
- Kapitel 5, Credibility: Evaluating What’s Been Learned, Data Mining: Practical Machine Learning Tools and Techniques, Third Edition, 2011.
- An Introduction to the Bootstrap, 1994.
Artikler
- Student’s t-test på Wikipedia
- Krydsvalidering (statistik) på Wikipedia
- McNemar’s test på Wikipedia
- Wilcoxon signed-rank test på Wikipedia
Diskussioner
- Til udvælgelse/ sammenligning af modeller, hvilken type test skal jeg bruge?
- Hvordan udføres hypotesetest til sammenligning af forskellige klassifikatorer
- Wilcoxon rank sum test metodologi
- Hvordan vælger man mellem t-test eller ikke-parametrisk test f.eks. Wilcoxon i små stikprøver
Resumé
I denne vejledning opdagede du vigtigheden og udfordringen ved at vælge en statistisk hypotesetest til sammenligning af maskinlæringsmodeller.
Specifikt lærte du:
- Statistiske hypotesetests kan være en hjælp til at sammenligne maskinlæringsmodeller og vælge en endelig model.
- Den naive anvendelse af statistiske hypotesetests kan føre til misvisende resultater.
- Den korrekte anvendelse af statistiske tests er en udfordring, og der er en vis konsensus om at anvende McNemar-testen eller 5×2 krydsvalidering med en modificeret parret Student t-test.
Har du spørgsmål?
Sæt dine spørgsmål i kommentarerne nedenfor, og jeg vil gøre mit bedste for at besvare dem.
Få styr på statistik til maskinlæring!
Udvikle en arbejdsforståelse af statistik
…ved at skrive kodelinjer i python
Opdag hvordan i min nye E-bog:
Statistiske metoder til maskinlæring
Den indeholder selvstuderende tutorials om emner som:
Hypotesetest, korrelation, ikke-parametrisk statistik, resampling og meget mere…
Opdag hvordan du omdanner data til viden
Skip de akademiske. Just Results.
Se, hvad der står i