Sist uppdaterad den 8 augusti 2019
Varje gång man jämför metoder för maskininlärning och väljer en slutgiltig modell är en vanlig operation inom tillämpad maskininlärning.
Modellerna utvärderas vanligen med hjälp av återprovningsmetoder, t.ex. k-fold korsvalidering, varifrån medelvärdet av färdighetspoängen beräknas och jämförs direkt. Även om detta tillvägagångssätt är enkelt kan det vara missvisande eftersom det är svårt att veta om skillnaden mellan de genomsnittliga färdighetspoängen är verklig eller resultatet av en statistisk slump.
Statistiska signifikanstester är utformade för att ta itu med detta problem och kvantifiera sannolikheten för att proverna av färdighetspoäng observeras med tanke på antagandet att de har dragits från samma fördelning. Om detta antagande, eller nollhypotesen, förkastas tyder det på att skillnaden i färdighetspoäng är statistiskt signifikant.
Och även om de statistiska hypotesprövningarna inte är idiotsäkra kan de förbättra både ditt självförtroende när det gäller tolkningen och presentationen av resultaten under modellvalet.
I den här handledningen kommer du att upptäcka vikten och utmaningen med att välja ett statistiskt hypotestest för att jämföra modeller för maskininlärning.
När du har slutfört den här handledningen kommer du att veta:
- Statistiska hypotestestest kan vara till hjälp vid jämförelsen av modeller för maskininlärning och vid valet av en slutlig modell.
- Den naiva tillämpningen av statistiska hypotesprövningar kan leda till missvisande resultat.
- Korrekt användning av statistiska prövningar är en utmaning, och det finns en viss konsensus om att använda McNemar-testet eller 5×2 korsvalidering med ett modifierat parat Student t-test.
Kicka igång ditt projekt med min nya bok Statistics for Machine Learning, inklusive steg-för-steg-handledning och Pythons källkodsfiler för alla exempel.
Sätt igång.
- Uppdatering okt/2018: Länk till ett exempel på användning av McNemar’s test har lagts till.
Statistiska signifikanstester för att jämföra algoritmer för maskininlärning
Foto av Fotografías de Javier, vissa rättigheter förbehållna.
Tutorial Overview
Denna tutorial är uppdelad i 5 delar; de är:
- Problemet med modellval
- Statistiska hypotesprövningar
- Problem med att välja en hypotesprövning
- Sammanfattning av vissa resultat
- Ett antal rekommendationer
Behövs det hjälp med statistik för maskininlärning?
Ta min kostnadsfria 7-dagars snabbkurs via e-post nu (med exempelkod).
Klicka för att registrera dig och få en gratis PDF Ebook-version av kursen.
Ladda ner din kostnadsfria minikurs
Problemet med val av modell
En stor del av tillämpad maskininlärning är val av modell.
Vi kan beskriva detta i sin enklaste form:
Givet utvärderingen av två metoder för maskininlärning på ett dataset, vilken modell väljer du?
Du väljer den modell som har den bästa skickligheten.
Det vill säga den modell vars skattade skicklighet när det gäller att göra förutsägelser på osedda data är bäst. Detta kan vara maximal noggrannhet eller minimalt fel när det gäller klassificerings- respektive regressionsproblem.
Utmaningen med att välja modellen med den bästa skickligheten är att avgöra hur mycket man kan lita på den uppskattade skickligheten hos varje modell. Mer allmänt:
Är skillnaden i skicklighet mellan två modeller för maskininlärning verklig eller beror den på en statistisk slump?
Vi kan använda statistisk hypotesprövning för att besvara denna fråga.
Statistiska hypotesprövningar
Generellt sett kvantifierar en statistisk hypotesprövning för att jämföra prover hur sannolikt det är att observera två dataprover givet antagandet att proverna har samma fördelning.
Antagandet i en statistisk prövning kallas för nollhypotesen, och vi kan beräkna statistiska mått och tolka dem för att avgöra om nollhypotesen ska accepteras eller förkastas.
I fallet med val av modeller baserat på deras uppskattade skicklighet är vi intresserade av att veta om det finns en verklig eller statistiskt signifikant skillnad mellan de två modellerna.
- Om resultatet av testet tyder på att det inte finns tillräckliga bevis för att förkasta nollhypotesen är det troligt att en observerad skillnad i modellens skicklighet beror på en statistisk slump.
- Om resultatet av testet tyder på att det finns tillräckliga bevis för att förkasta nollhypotesen, beror en observerad skillnad i modellskicklighet sannolikt på en skillnad mellan modellerna.
Resultaten av testet är probabilistiska, vilket innebär att det är möjligt att tolka resultatet korrekt och att resultatet kan vara felaktigt med ett typ I- eller typ II-fel. Kort sagt, ett falskt positivt eller falskt negativt resultat.
Vid jämförelse av maskininlärningsmodeller via statistiska signifikanstester ställs vissa förväntningar som i sin tur kommer att påverka de typer av statistiska tester som kan användas; till exempel:
- Skill Estimate. Ett specifikt mått på modellens skicklighet måste väljas. Detta kan vara klassificeringsnoggrannhet (en andel) eller genomsnittligt absolut fel (sammanfattande statistik), vilket begränsar den typ av test som kan användas.
- Upprepade skattningar. Det krävs ett urval av färdighetspoäng för att kunna beräkna statistiken. Upprepad träning och testning av en viss modell på samma eller olika data påverkar vilken typ av test som kan användas.
- Fördelning av skattningar. Urvalet av skattningar av färdighetspoäng kommer att ha en fördelning, kanske Gaussisk eller kanske inte. Detta avgör om parametriska eller icke-parametriska test kan användas.
- Centrala tendenser. Modellens skicklighet kommer ofta att beskrivas och jämföras med hjälp av en sammanfattande statistik, t.ex. medelvärde eller median, beroende på fördelningen av skicklighetspoängen. Testet kan eller kan inte ta direkt hänsyn till detta.
Resultaten av ett statistiskt test är ofta en teststatistik och ett p-värde, vilka båda kan tolkas och användas i presentationen av resultaten för att kvantifiera konfidensnivån eller signifikansen i skillnaden mellan modellerna. Detta gör det möjligt att göra starkare påståenden som en del av modellvalet än om man inte använder statistiska hypotesprövningar.
Med tanke på att det verkar önskvärt att använda statistiska hypotesprövningar som en del av modellvalet, hur väljer man då en prövning som lämpar sig för det specifika användningsfallet?
Problem med att välja en hypotesprövning
Låtsas oss titta på ett vanligt exempel för att utvärdera och jämföra klassificerare för ett balanserat binärt klassificeringsproblem.
Det är vanligt att utvärdera klassificeringsmetoder med hjälp av klassificeringsnoggrannhet, att utvärdera varje modell med hjälp av 10-faldig korsvalidering, att anta en gaussisk fördelning för urvalet av 10 modellskattningar av skicklighet och att använda medelvärdet av urvalet som en sammanfattning av modellens skicklighet.
Vi skulle kunna kräva att varje klassificerare som utvärderas med hjälp av det här förfarandet utvärderas på exakt samma uppdelningar av datamängden via 10-faldig korsvalidering. Detta skulle ge prover av matchade parade mått mellan två klassificerare, matchade eftersom varje klassificerare utvärderades på samma 10 testuppsättningar.
Vi skulle sedan kunna välja och använda det parade Student’s t-testet för att kontrollera om skillnaden i genomsnittlig noggrannhet mellan de två modellerna är statistiskt signifikant, t.ex. förkasta nollhypotesen som utgår från att de två urvalen har samma fördelning.
Detta är faktiskt ett vanligt sätt att jämföra klassificerare med kanske hundratals publicerade artiklar som använder denna metodik.
Problemet är att ett nyckelantagande i det parade student-t-testet har brutits.
Nämligen att observationerna i varje urval inte är oberoende. Som en del av k-fold korsvalideringsproceduren kommer en given observation att användas i träningsdatasetet (k-1) gånger. Detta innebär att de uppskattade färdighetspoängen är beroende, inte oberoende, och i sin tur att beräkningen av t-statistiken i testet kommer att bli missvisande fel tillsammans med eventuella tolkningar av statistiken och p-värdet.
Denna iakttagelse kräver en noggrann förståelse av både den återprovtagningsmetod som används, i det här fallet k-fold korsvalidering, och förväntningarna på det valda hypotesprövningen, i det här fallet parvis Student’s t-test. Utan denna bakgrund verkar testet lämpligt, ett resultat beräknas och tolkas och allt ser bra ut.
Tyvärr är valet av ett lämpligt statistiskt hypotestest för modellval vid tillämpad maskininlärning mer utmanande än vad det först verkar. Lyckligtvis finns det en växande mängd forskning som hjälper till att peka på bristerna i de naiva tillvägagångssätten och föreslår korrigeringar och alternativa metoder.
Sammanfattning av vissa resultat
I det här avsnittet ska vi ta en titt på en del av forskningen om valet av lämpliga statistiska signifikanstest för modellval vid maskininlärning.
Använd McNemar’s test eller 5×2 Cross-Validation
Det kanske mest banbrytande arbetet i detta ämne är artikeln från 1998 med titeln ”Approximate Statistical Tests for Comparing Supervised Classification Learning Algorithms” av Thomas Dietterich.
Det är en utmärkt artikel i ämnet och en rekommenderad läsning. Den täcker först en bra ram för att tänka på de punkter under ett maskininlärningsprojekt där ett statistiskt hypotest kan behövas, diskuterar förväntningarna på vanliga överträdelser av statistiska tester som är relevanta för att jämföra metoder för maskininlärning av klassificerare, och avslutar med en empirisk utvärdering av metoder för att bekräfta resultaten.
Denna artikel granskar fem ungefärliga statistiska tester för att avgöra om en inlärningsalgoritm presterar bättre än en annan på en viss inlärningsuppgift.
Fokus för urvalet och den empiriska utvärderingen av statistiska hypotesprövningar i artikeln är att kalibrering av typ I-fel eller falskt positiva. Det vill säga att välja ett test som minimerar fallet att föreslå en signifikant skillnad när ingen sådan skillnad existerar.
Det finns ett antal viktiga resultat i den här uppsatsen.
Det första resultatet är att man aldrig bör använda parade Students t-test på resultaten av skicklighet som uppskattats via slumpmässiga omprov av en träningsdatamängd.
… vi kan med säkerhet dra slutsatsen att det omprovade t-testet aldrig bör användas.
Antagandena för det parade t-testet bryts vid slumpmässig omprovtagning och vid k-faldig korsvalidering (som nämnts ovan). I fallet med k-fold korsvalidering kommer ändå t-testet att vara optimistiskt, vilket resulterar i ett högre typ I-fel, men endast ett blygsamt typ II-fel. Detta innebär att denna kombination skulle kunna användas i fall där det är viktigare att undvika typ II-fel än att ge efter för ett typ I-fel.
Det 10-faldigt korsvaliderade t-testet har ett högt typ I-fel. Det har dock också hög effekt och kan därför rekommenderas i de fall där typ II-fel (underlåtenhet att upptäcka en verklig skillnad mellan algoritmerna) är viktigare.
Dietterich rekommenderar McNemars statistiska hypotesprövning i de fall där det finns en begränsad mängd data och varje algoritm bara kan utvärderas en gång.
McNemar’s test liknar Chi-Squared-testet och används i det här fallet för att avgöra om skillnaden i observerade proportioner i algoritmens contingencytabell skiljer sig signifikant från de förväntade proportionerna. Detta är ett användbart resultat när det gäller stora neurala nätverk för djupinlärning som kan ta dagar eller veckor att träna.
Våra experiment leder oss till att rekommendera McNemar’s test, för situationer där inlärningsalgoritmerna endast kan köras en gång.
Dietterich rekommenderar också en egen resamplingmetod kallad 5×2 korsvalidering som innebär fem upprepningar av 2-faldig korsvalidering.
De två vikningarna väljs för att säkerställa att varje observation endast förekommer i tränings- eller testdataset för en enda uppskattning av modellens skicklighet. Ett parat Student’s t-test används på resultaten, uppdaterat för att bättre återspegla de begränsade frihetsgraderna med tanke på beroendet mellan de uppskattade färdighetspoängen.
Våra experiment leder oss till att rekommendera 5 x 2cv t-test, för situationer där inlärningsalgoritmerna är tillräckligt effektiva för att köras tio gånger
Refinements on 5×2 Cross-Validation
Användningen av antingen McNemar’s test eller 5×2 cross-validation har blivit en häftad rekommendation under en stor del av de 20 år som gått sedan artikeln publicerades.
Nu har dock ytterligare förbättringar gjorts för att bättre korrigera det parade studentens t-testet för brottet mot självständighetsantagandet från upprepad k-fold korsvalidering.
Två viktiga papper bland många inkluderar:
Claude Nadeau och Yoshua Bengio föreslår ytterligare en korrigering i sitt papper från 2003 med titeln ”Inference for the Generalization Error”. Det är ett tätt papper och rekommenderas inte för den som är svag i hjärtat.
Denna analys gjorde det möjligt för oss att konstruera två variansskattningar som tar hänsyn till både variabiliteten på grund av valet av träningsuppsättningar och valet av testexempel. En av de föreslagna estimatorerna liknar cv-metoden (Dietterich, 1998) och är särskilt utformad för att överskatta variansen för att ge konservativa slutsatser.
Remco Bouckaert och Eibe Frank har i sin artikel från 2004 med titeln ”Evaluating the Replicability of Significance Tests for Comparing Learning Algorithms” ett annat perspektiv och anser att förmågan att replikera resultat är viktigare än typ I- eller typ II-fel.
I den här artikeln hävdar vi att replikerbarheten hos ett test också är av betydelse. Vi säger att ett test har låg replikerbarhet om dess resultat är starkt beroende av den särskilda slumpmässiga partitionering av data som används för att utföra det
Förvånansvärt nog rekommenderar de att man använder antingen 100 körningar av slumpmässig resampling eller 10×10-faldig korsvalidering med Nadeau- och Bengio-korrigering av det parade Student-t-t-testet för att uppnå en god replikerbarhet.
Det sistnämnda tillvägagångssättet rekommenderas i Ian Wittens och Eibe Franks bok och i deras plattform för datautvinning med öppen källkod Weka, där de hänvisar till Nadeau- och Bengio-korrigeringen som det ”korrigerade återprovtagna t-testet”.
Flera olika modifieringar av standardt-testet har föreslagits för att kringgå det här problemet, men de är alla heuristiska och saknar ett bra teoretiskt berättigande. Ett test som verkar fungera bra i praktiken är det korrigerade återprovade t-testet. Samma modifierade statistik kan användas med upprepad korsvalidering, som bara är ett specialfall av upprepad holdout där de enskilda testuppsättningarna för en korsvalidering inte överlappar varandra.
– Sida 159, kapitel 5, Trovärdighet: Utvärdering av vad man har lärt sig, Data Mining: Practical Machine Learning Tools and Techniques, Third Edition, 2011.
Rekommendationer
Det finns inga patentlösningar när det gäller att välja ett statistiskt signifikanstest för modellval i tillämpad maskininlärning.
Låt oss titta på fem tillvägagångssätt som du kan använda i ditt maskininlärningsprojekt för att jämföra klassificerare.
Oberoende dataprover
Om du har nästan obegränsat med data kan du samla in k separata tränings- och testdatamängder för att beräkna 10 verkligt oberoende färdighetspoäng för varje metod.
Du kan sedan korrekt tillämpa det parade Student’s t-testet. Detta är högst osannolikt eftersom vi ofta arbetar med små datauttag.
… antagandet att det finns i princip obegränsade data så att flera oberoende dataset av rätt storlek kan användas. I praktiken finns det oftast bara ett enda dataset av begränsad storlek. Vad kan man göra?
– Sidan 158, kapitel 5, Trovärdighet: Utvärdering av vad man har lärt sig, Data Mining: Practical Machine Learning Tools and Techniques, Third Edition, 2011.
Accept the Problems of 10-fold CV
Den naiva 10-fold cross-validation kan användas med ett oförändrat parat Student t-test kan användas.
Den har god repeterbarhet i förhållande till andra metoder och ett blygsamt typ II-fel, men är känd för att ha ett högt typ I-fel.
Experimenten tyder också på att man bör vara försiktig med att tolka resultaten av det 10-faldigt korsvaliderade t-testet. Detta test har en förhöjd sannolikhet för typ I-fel (så mycket som dubbelt så mycket som målnivån), även om det inte är lika allvarligt som problemet med det omprovade t-testet.
– Approximate Statistical Tests for Comparing Supervised Classification Learning Algorithms, 1998.
Det är ett alternativ, men det rekommenderas mycket svagt.
Använd McNemar’s Test eller 5×2 CV
De två decennier långa rekommendationerna av McNemar’s test för resultat av klassificeringsnoggrannhet i en enda körning och 5×2-faldig korsvalidering med ett modifierat parat Student’s t-test i allmänhet står fast.
Den ytterligare korrigeringen av teststatistiken enligt Nadeau och Bengio kan dessutom användas med 5×2-faldig korsvalidering eller 10×10-faldig korsvalidering enligt rekommendationerna från utvecklarna av Weka.
En utmaning med att använda den modifierade t-statistiken är att det inte finns någon standardiserad implementering (t.ex. i SciPy), vilket innebär att man måste använda tredjepartskod och de risker som detta medför. Det kan hända att du måste implementera den själv.
Förmågan och komplexiteten hos en vald statistisk metod är ett viktigt övervägande, vilket Gitte Vanwinckelen och Hendrik Blockeel säger väl i sin artikel från 2012 med titeln ”On Estimating Model Accuracy with Repeated Cross-Validation”:
Samtidigt som dessa metoder är noggrant utformade och har visat sig förbättra tidigare metoder på flera sätt, lider de av samma risk som tidigare metoder, nämligen att ju mer komplex en metod är, desto större är risken för att forskarna kommer att använda den felaktigt eller tolka resultatet på ett felaktigt sätt.
Jag har ett exempel på användning av McNemar’s test här:
- Hur man beräknar McNemar’s test för att jämföra två klassificerare för maskininlärning
Använd ett icke-parametriskt paratest
Vi kan använda ett icke-parametriskt test som gör färre antaganden, t.ex. genom att inte anta att fördelningen av färdighetspoängen är Gaussisk.
Ett exempel är Wilcoxon signed-rank-testet, som är den icke-parametriska versionen av det parade Student’s t-testet. Detta test har mindre statistisk styrka än det parade t-testet, även om det har större styrka när förväntningarna på t-testet överträds, t.ex. oberoende.
Detta statistiska hypotesprövningstest rekommenderas för att jämföra algoritmer med olika datamängder av Janez Demsar i hans artikel ”Statistical Comparisons of Classifiers over Multiple Data Sets” från 2006.
Vi rekommenderar därför att Wilcoxon-testet används, om inte antagandena för t-testet är uppfyllda, antingen för att vi har många datamängder eller för att vi har skäl att tro att prestandamåttet mellan datamängder är normalfördelat.
Trots att testet är icke-parametriskt antar det fortfarande att observationerna inom varje urval är oberoende (t.ex. iid), och att använda k-fold korsvalidering skulle skapa beroende urval och bryta mot detta antagande.
Använd skattningsstatistik i stället
Istället för statistiska hypotestester kan skattningsstatistik beräknas, t.ex. konfidensintervall. Dessa skulle drabbas av liknande problem där antagandet om oberoende bryts med tanke på de resamplingmetoder med vilka modellerna utvärderas.
Tom Mitchell ger en liknande rekommendation i sin bok från 1997, där han föreslår att man tar resultaten av statistiska hypotesprövningar som heuristiska uppskattningar och söker konfidensintervall kring uppskattningar av modellens skicklighet:
Som sammanfattning kan man säga att inget enskilt förfarande för att jämföra inlärningsmetoder som baseras på begränsade data uppfyller alla de begränsningar som vi skulle vilja ha. Det är klokt att komma ihåg att statistiska modeller sällan passar perfekt för de praktiska begränsningarna vid testning av inlärningsalgoritmer när tillgängliga data är begränsade. De ger dock ungefärliga konfidensintervall som kan vara till stor hjälp vid tolkning av experimentella jämförelser av inlärningsmetoder.
– Sidan 150, kapitel 5, Evaluating Hypotheses, Machine Learning, 1997.
Statistiska metoder som bootstrap kan användas för att beräkna försvarbara icke-parametriska konfidensintervall som kan användas både för att presentera resultat och jämföra klassificerare. Detta är ett enkelt och effektivt tillvägagångssätt som du alltid kan falla tillbaka på och som jag rekommenderar i allmänhet.
I själva verket har konfidensintervallerna fått den mest teoretiska studien av alla ämnen inom bootstrap-området.
– Sida 321, An Introduction to the Bootstrap, 1994.
Extensions
Det här avsnittet innehåller en lista över några idéer för att utvidga handledningen som du kanske vill undersöka.
- Finn och lista tre forskningsrapporter som felaktigt använder det oförändrade parade student-t-testet för att jämföra och välja en maskininlärningsmodell.
- Sammanfatta ramverket för användning av statistiska hypotesprövningar i ett projekt för maskininlärning som presenteras i Thomas Dietterichs artikel från 1998.
- Finn och lista tre forskningsrapporter som korrekt använder antingen McNemar-testet eller 5×2 korskvalideringsmetoden för att jämföra och välja en maskininlärningsmodell.
Om du utforskar någon av dessa utvidgningar vill jag gärna veta det.
Fördjupad läsning
Det här avsnittet innehåller fler resurser om ämnet om du vill gå djupare in i ämnet.
Papper
- 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öcker
- 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.
Artiklar
- Student’s t-test på Wikipedia
- Korsvalidering (statistik) på Wikipedia
- McNemar’s test på Wikipedia
- Wilcoxon signed-rank test på Wikipedia
Diskussioner
- För val/jämförelse av modeller, vilken typ av test ska jag använda?
- Hur man utför hypotesprövning för att jämföra olika klassificerare
- Wilcoxon rank sum testmetodik
- Hur man väljer mellan t-test eller icke-parametriskt test t.ex. Wilcoxon i små urval
Sammanfattning
I den här handledningen upptäckte du vikten och utmaningen med att välja ett statistiskt hypotestest för att jämföra modeller för maskininlärning.
Specifikt lärde du dig:
- Statistiska hypotestester kan hjälpa till att jämföra modeller för maskininlärning och att välja en slutlig modell.
- Den naiva tillämpningen av statistiska hypotesprövningar kan leda till missvisande resultat.
- Korrekt användning av statistiska prövningar är en utmaning, och det finns en viss konsensus om att använda McNemar-testet eller 5×2 korsvalidering med ett modifierat parat Student t-test.
Har du några frågor?
Ställ dina frågor i kommentarerna nedan så ska jag göra mitt bästa för att svara.
Få grepp om statistik för maskininlärning!
Utveckla en fungerande förståelse för statistik
…genom att skriva rader av kod i python
Upptäck hur i min nya Ebook:
Statistiska metoder för maskininlärning
Den innehåller självstudier om ämnen som:
Hypotesprövningar, korrelation, icke-parametrisk statistik, återutnyttjande och mycket mer…
Upptäck hur du omvandlar data till kunskap
Skippa det akademiska. Bara resultat.
Se vad som finns inuti