Dela via


Korsvalidera modell

Den här artikeln beskriver hur du använder komponenten Cross Validate Model i Azure Machine Learning Designer. Korsvalidering är en teknik som ofta används i maskininlärning för att bedöma både variabiliteten hos en datauppsättning och tillförlitligheten hos alla modeller som tränas genom dessa data.

Komponenten Cross Validate Model tar som indata en märkt datauppsättning tillsammans med en otränad klassificerings- eller regressionsmodell. Den delar upp datamängden i ett antal delmängder (vikningar), skapar en modell på varje vik och returnerar sedan en uppsättning noggrannhetsstatistik för varje vik. Genom att jämföra noggrannhetsstatistiken för alla veck kan du tolka datamängdens kvalitet. Du kan sedan förstå om modellen är mottaglig för variationer i data.

Cross Validate Model returnerar också förutsagda resultat och sannolikheter för datamängden, så att du kan utvärdera tillförlitligheten för förutsägelserna.

Så här fungerar korsvalidering

  1. Korsvalidering delar slumpmässigt in träningsdata i veck.

    Algoritmen är som standard 10 gånger om du inte tidigare har partitionerat datauppsättningen. Om du vill dela upp datamängden i ett annat antal vikningar kan du använda komponenten Partition och Exempel och ange hur många vikningar som ska användas.

  2. Komponenten reserverar data i vik 1 som ska användas för validering. (Detta kallas ibland för holdout fold.) Komponenten använder de återstående vecken för att träna en modell.

    Om du till exempel skapar fem veck genererar komponenten fem modeller under korsvalidering. Komponenten tränar varje modell med hjälp av fyra femtedelar av data. Den testar varje modell på den återstående en femtedelen.

  3. Under testningen av modellen för varje vik utvärderar komponenten statistik för flera noggrannheter. Vilken statistik komponenten använder beror på vilken typ av modell du utvärderar. Olika statistik används för att utvärdera klassificeringsmodeller jämfört med regressionsmodeller.

  4. När bygg- och utvärderingsprocessen är klar för alla veck genererar Cross Validate Model en uppsättning prestandamått och poängsatte resultat för alla data. Granska dessa mått för att se om en enskild vikning har hög eller låg noggrannhet.

Fördelar med korsvalidering

Ett annat och vanligt sätt att utvärdera en modell är att dela upp data i en tränings- och testuppsättning med hjälp av Delade data och sedan verifiera modellen på träningsdata. Men korsvalidering ger några fördelar:

  • Korsvalidering använder mer testdata.

    Korsvalidering mäter modellens prestanda med de angivna parametrarna i ett större datautrymme. Korsvalidering använder alltså hela träningsdatamängden för både träning och utvärdering, i stället för en del. Om du däremot validerar en modell med hjälp av data som genererats från en slumpmässig delning utvärderar du vanligtvis modellen på endast 30 procent eller mindre av tillgängliga data.

    Men eftersom korsvalidering tränar och validerar modellen flera gånger över en större datamängd är den mycket mer beräkningsintensiv. Det tar mycket längre tid än att verifiera en slumpmässig delning.

  • Korsvalidering utvärderar både datamängden och modellen.

    Korsvalidering mäter inte bara en modells noggrannhet. Det ger dig också en uppfattning om hur representativ datamängden är och hur känslig modellen kan vara för variationer i data.

Så här använder du kors verifiera modell

Korsvalidering kan ta lång tid att köra om datamängden är stor. Därför kan du använda Cross Validate Model i den inledande fasen när du skapar och testar din modell. I den fasen kan du utvärdera hur bra modellparametrarna är (förutsatt att beräkningstiden är acceptabel). Du kan sedan träna och utvärdera din modell med hjälp av de etablerade parametrarna med komponenterna Träna modell och Utvärdera modell .

I det här scenariot tränar och testar du både modellen med hjälp av Korsvalideringsmodell.

  1. Lägg till komponenten Kors verifiera modell i pipelinen. Du hittar den i Azure Machine Learning-designern i kategorin Modellbedömning och utvärdering .

  2. Anslut utdata från valfri klassificerings- eller regressionsmodell.

    Om du till exempel använder Två klassupphuffat beslutsträd för klassificering konfigurerar du modellen med de parametrar som du vill använda. Dra sedan en anslutningsapp från klassificerarens port Förtränad modell till matchande port för Korskontrollmodell.

    Dricks

    Du behöver inte träna modellen eftersom Cross-Validate Model automatiskt tränar modellen som en del av utvärderingen.

  3. Anslut alla märkta träningsdatauppsättningar på datauppsättningsporten för korskontrollmodell.

  4. I den högra panelen i Kors verifiera modell klickar du på Redigera kolumn. Välj den enda kolumn som innehåller klassetiketten eller det förutsägbara värdet.

  5. Ange ett värde för parametern Random seed om du vill upprepa resultatet av korsvalidering mellan efterföljande körningar på samma data.

  6. Skicka pipelinen.

  7. Se avsnittet Resultat för en beskrivning av rapporterna.

Resultat

När alla iterationer har slutförts skapar Cross Validate Model poäng för hela datauppsättningen. Den skapar också prestandamått som du kan använda för att utvärdera modellens kvalitet.

Poängsatta resultat

Komponentens första utdata ger källdata för varje rad, tillsammans med vissa förutsagda värden och relaterade sannolikheter.

Om du vill visa resultatet högerklickar du på komponenten Kors verifiera modell i pipelinen. Välj Visualisera poängsatta resultat.

Nytt kolumnnamn beskrivning
Poängsatta etiketter Den här kolumnen läggs till i slutet av datamängden. Den innehåller det förutsagda värdet för varje rad.
Poängsatta sannolikheter Den här kolumnen läggs till i slutet av datamängden. Den anger den uppskattade sannolikheten för värdet i Poängsatta etiketter.
Viknummer Anger det nollbaserade indexet för vikningen som varje rad med data tilldelades till under korsvalidering.

Utvärderingsresultat

Den andra rapporten grupperas efter vikningar. Kom ihåg att korsverifieringsmodellen slumpmässigt delar upp träningsdata i n folds (som standard 10). I varje iteration över datauppsättningen använder Cross Validate Model en vikning som en valideringsdatauppsättning. Den använder de återstående n-1 vecken för att träna en modell. Var och en av n-modellerna testas mot data i alla andra vikningar.

I den här rapporten visas vikningarna efter indexvärde i stigande ordning. Om du vill beställa på en annan kolumn kan du spara resultatet som en datauppsättning.

Om du vill visa resultatet högerklickar du på komponenten Kors verifiera modell i pipelinen. Välj Visualisera utvärderingsresultat per vik.

Kolumnnamn beskrivning
Vikningsnummer En identifierare för varje vik. Om du skapade fem vikningar skulle det finnas fem delmängder med data, numrerade 0 till 4.
Antal exempel i vikning Antalet rader som har tilldelats varje vik. De bör vara ungefär lika.

Komponenten innehåller också följande mått för varje vik, beroende på vilken typ av modell du utvärderar:

  • Klassificeringsmodeller: Precision, träffsäkerhet, F-poäng, AUC, noggrannhet

  • Regressionsmodeller: Genomsnittligt absolut fel, kvadratfel för rot medelvärde, relativt absolut fel, relativt kvadratfel och bestämningskoefficient

Tekniska anteckningar

  • Det är en bra idé att normalisera datauppsättningar innan du använder dem för korsvalidering.

  • Cross Validate Model är mycket mer beräkningsintensivt och tar längre tid att slutföra än om du verifierade modellen med hjälp av en slumpmässigt uppdelad datamängd. Anledningen är att Cross Validate Model tränar och validerar modellen flera gånger.

  • Du behöver inte dela upp datamängden i tränings- och testuppsättningar när du använder korsvalidering för att mäta modellens noggrannhet.

Nästa steg

Se den uppsättning komponenter som är tillgängliga för Azure Machine Learning.