Korsre validera modell

Viktigt

Stödet för Machine Learning Studio (klassisk) upphör den 31 augusti 2024. Vi rekommenderar att du byter till Azure Machine Learning innan dess.

Från och med den 1 december 2021 kan du inte längre skapa nya Machine Learning Studio-resurser (klassisk). Du kan fortsätta att använda befintliga Machine Learning Studio-resurser (klassisk) till och med den 31 augusti 2024.

Dokumentationen om ML Studio (klassisk) håller på att dras tillbaka och kanske inte uppdateras i framtiden.

Kors validerar parameteruppskattningar för klassificerings- eller regressionsmodeller genom att partitionera data

Kategori: Machine Learning/Utvärdera

Anteckning

Gäller endast för: Machine Learning Studio (klassisk)

Liknande dra och släpp-moduler är tillgängliga i Azure Machine Learning designer.

Modulöversikt

I den här artikeln beskrivs hur du använder modulen Kors validera modell i Machine Learning Studio (klassisk). Korsvalidering är en viktig teknik som ofta används inom maskininlärning för att utvärdera både variabiliteten för en datauppsättning och tillförlitligheten för alla modeller som tränats med dessa data.

Modulen Kors validera modell tar som indata en märkt datauppsättning, tillsammans med en tränad klassificerings- eller regressionsmodell. Den delar in datamängden i ett visst antal delmängder (gånger), skapar en modell vid varje viker och returnerar sedan en uppsättning noggrannhetsstatistik för varje viker. Genom att jämföra noggrannhetsstatistiken för alla gånger kan du tolka kvaliteten på datauppsättningen och förstå om modellen är sårbar för variationer i data.

Kors validera returnerar också förutsagda resultat och sannolikheter för datauppsättningen, så att du kan utvärdera förutsägelsernas tillförlitlighet.

Så här fungerar korsvalidering

  1. Korsvalidering delar slumpmässigt in träningsdata i ett antal partitioner, som även kallas folds.

    • Algoritmen få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 gånger kan du använda modulen Partition och Sample och ange hur många gånger som ska användas.
  2. Modulen reserverar data i vikning 1 för att använda för validering (detta kallas ibland holdout-viker) och använder de återstående gångerna för att träna en modell.

    Om du till exempel skapar fem gånger genererar modulen fem modeller under korsvalidering, varje modell tränas med 4/5 av data och testas på återstående 1/5.

  3. Vid testning av modellen för varje vikning utvärderas flera noggrannhetsstatistik. Vilken statistik som används 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 gånger genererar kors validerar modellen en uppsättning prestandamått och poängsatta resultat för alla data. Du bör granska de här måtten för att se om ett enskilt vikning har särskilt hög eller låg noggrannhet

Fördelar med korsvalidering

Ett annat och mycket vanligt sätt att utvärdera en modell är att dela upp data i en tränings- och testuppsättning med hjälp av Dela data och sedan validera modellen på träningsdata. Korsvalidering erbjuder dock vissa fördelar:

  • Korsvalidering använder mer testdata.

    Korsvalidering mäter modellens prestanda med de angivna parametrarna i ett större datautrymme. Korsvalidering använder med andra exempel 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 genereras från en slumpmässig uppdelning, utvärderar du vanligtvis bara modellen på 30 % eller mindre av tillgängliga data.

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

  • Korsvalidering utvärderar datauppsättningen och modellen.

    Korsvalidering mäter inte bara noggrannheten för en modell, utan ger dig också en uppfattning om hur representativ datauppsättningen är och hur känslig modellen kan vara för variationer i data.

Så här använder du en kors validerad modell

Det finns två huvudsakliga sätt att använda korsvalidering.

Korsvalidering kan ta lång tid att köra om du använder mycket data. Därför kan du använda kors validera modellen i den inledande fasen för att skapa och testa din modell för att utvärdera modellparametrarna (förutsatt att beräkningstiden är acceptabel) och sedan träna och utvärdera din modell med hjälp av de etablerade parametrarna med modulerna Träna modell och Utvärdera modell.

Enkel korsvalidering

I det här scenariot både tränar och testar du modellen med korsval validera modellen.

  1. Lägg till modulen Kors validera modell i experimentet. Du hittar den i Machine Learning Studio (klassisk) i Machine Learning under Utvärdera.

  2. Anslut utdata från klassificerings- ellerregressionsmodeller.

    Om du till exempel använder en Tvåklassig Bayes Point-dator för klassificering konfigurerar du modellen med de parametrar som du vill använda och drar sedan en anslutningsapp från klassifierarens Otränad modellport till motsvarande port för kors validerande modell.

    Tips

    Modellen behöver inte tränas eftersom modellen automatiskt tränas av kors validerad som en del av utvärderingen.

  3. datauppsättningsporten för modellen för kors validera ansluter du valfri märkta träningsdatauppsättning.

  4. I fönstret Egenskaper i Kors validera modell klickar du på Starta kolumnväljaren och väljer den enda kolumn som innehåller klassetiketten eller det förutsägbara värdet.

  5. Ange ett värde för parametern Random seed (Slumpmässigt startvärde) om du vill kunna upprepa resultaten av korsvalidering mellan efterföljande körningar på samma data.

  6. Kör experimentet.

  7. En beskrivning av rapporterna finns i avsnittet Resultat.

    Om du vill hämta en kopia av modellen för senare användning högerklickar du på utdata för modulen som innehåller algoritmen (till exempel Tvåklass-Bayes Point Machine) och klickar på Spara som tränad modell.

Korsvalidering med en parametersökning

I det här scenariot använder du Hyperparametrar för finjusteringsmodell för att identifiera den bästa modellen genom att utföra en parametersökning och sedan använda korsvaliderade modeller för att kontrollera tillförlitligheten. Det här är det enklaste sättet Machine Learning att identifiera den bästa modellen och sedan generera mått för den.

  1. Lägg till datauppsättningen för modellträning och lägg till en av de maskininlärningsmoduler som skapar en klassificerings- eller regressionsmodell.

  2. Lägg till modulen Tune Model Hyperparameters (Justera modellens hyperparametrar ) i experimentet. Du hittar den i Machine Learning underTräna.

  3. Koppla klassificerings- eller regressionsmodellen till indata för Ej tränad modell för Hyperparametrar för finjustera modell.

  4. Lägg till modulen Kors validera modell i experimentet. Du hittar den i Machine Learning Studio (klassisk) i Machine Learning under Utvärdera.

  5. Leta upp utdata för Tränad bästa modell för Hyperparametrar för finjustera modell och anslut den till indata för modellen Ej tränad för kors validera modellen.

  6. Anslut träningsdata till indata för träningsdatauppsättningen för kors validera modellen.

  7. Kör experimentet.

  8. När du har granskat resultaten och utvärderingspoängen för att få en kopia av den bästa modellen för senare användning högerklickar du bara på modulen Finjustera modellens hyperparametrar , väljer Tränad bästa modell och klickar sedan på Spara som tränad modell.

Anteckning

Du kan få olika resultat om du använder indata i modulen Tune Model Hyperparameters (Finjustera modellens hyperparametrar ) för Optional validation dataset (Valfri valideringsdatamängd).

Det beror på att när du använder det här alternativet anger du i praktiken en statisk träningsdatamängd och testar datauppsättningen. Därför använder korsvalideringsprocessen även de angivna tränings- och testdatamängderna i stället för att dela in data i n grupper för träning och testning. Mått genereras dock på n-fold-basis.

Resultat

När alla iterationer är klara skapar kors validerar modellen poäng för hela datauppsättningen, samt prestandamått som du kan använda för att utvärdera modellens kvalitet.

Poängpoäng

De första utdata från modulen tillhandahåller källdata för varje rad, tillsammans med vissa förutsagda värden och relaterade sannolikheter.

Om du vill visa dessa resultat högerklickar du i experimentet på modulen Kors validera modell , väljer Poängade resultat och klickar på Visualisera.

Nytt kolumnnamn Description
Vikningstilldelningar Anger det 0-baserade indexet för de gånger som varje rad med data tilldelades under korsvalidering.
Poängsatta etiketter Den här kolumnen läggs till i slutet av datauppsättningen och innehåller det förutsagda värdet för varje rad
Poängade sannolikheter Den här kolumnen läggs till i slutet av datauppsättningen och anger den uppskattade sannolikheten för värdet i Poängsatta etiketter.

Utvärderingsresultat

Den andra rapporten grupperas efter gånger. Kom ihåg att modellen för korsvalutor slumpmässigt delar upp träningsdata i n gånger (som standard 10). I varje iteration över datauppsättningen använder korsvalideringsmodellen ett gånger som valideringsdatamängd och använder de återstående n-1-kryssen för att träna en modell. Var och en av n-modellerna testas mot data i alla andra viker.

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

Om du vill visa dessa resultat högerklickar du i experimentet på modulen Kors validera modell , väljer Utvärderingsresultat efter vikning och klickar på Visualisera.

Kolumnnamn Description
Vikningsnummer En identifierare för varje viker. Om du har skapat 5 gånger skulle det finnas 5 delmängder med data, numrerade 0 till 4.
Antal exempel i vikning Antalet rader som har tilldelats varje viker. De bör vara ungefär lika.
Modell Algoritmen som används i modellen, identifierad med API-namnet

Dessutom ingår följande mått för varje viker, beroende på vilken typ av modell du utvärderar.

  • Klassificeringsmodeller: Precision, träffsäkerhet, F-poäng, AUC, genomsnittlig loggförlust, förlust av träningslogg

  • Regressionsmodeller: Negativ loggrisk, medelsen absoluta fel, medelk square-fel, relativt absolut fel och bestämningskoefficient

Exempel

Exempel på hur korsvalidering används i maskininlärning finns i Azure AI Gallery:

Teknisk information

  • Det är bästa praxis att normalisera datauppsättningar innan du använder dem för korsvalidering.

  • Eftersom modellen tränas och valideras flera gånger av korsvalparna är det mycket mer beräkningsintensivt och tar längre tid att slutföra än om du verifierade modellen med hjälp av en slumpmässigt delad datauppsättning.

  • Vi rekommenderar att du använder modellen för kors validera för att fastställa om modellen är bra givet de angivna parametrarna. Använd Hyperparametrar för tune-modellen för att identifiera de optimala parametrarna.

  • 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.

    Men om en valideringsdatamängd tillhandahålls uppströms använder modulen de angivna tränings- och testdatauppsättningarna i stället för att dela upp i n-viker . Det innebär att den första datauppsättningen används för att träna modellen för varje parameterkombination, och modellerna utvärderas i valideringsdatamängden. Se avsnittet om hur du använder en parametersökning med korsvalidering.

  • Även om den här artikeln använder äldre versioner av modulerna har den en bra förklaring av korsvalideringsprocessen: Så här väljer du parametrar för att optimera algoritmerna i Machine Learning

Förväntade indata

Namn Typ Description
Ej tränad modell ILearner-gränssnitt Tränad modell för korsvalidering på datauppsättning
Datamängd Datatabell Indatauppsättning

Modulparametrar

Name Intervall Typ Standardvärde Description
Etikettkolumn valfri ColumnSelection Välj den kolumn som innehåller etiketten som ska användas för verifiering
Slumpmässigt start seed valfri Integer 0 Startvärde för slumptalsgenerator

Det här värdet är valfritt. Om inget anges

Utdata

Namn Typ Description
Poängpoäng Datatabell Resultat av bedömning
Utvärderingsresultat efter vikning Datatabell Utvärderingsresultat (efter vikning och hela)

Undantag

Undantag Description
Fel 0035 Undantaget inträffar om inga funktioner har angetts för en viss användare eller ett visst objekt.
Fel 0032 Undantaget inträffar om argumentet inte är ett tal.
Fel 0033 Undantaget inträffar om argumentet är Infinity.
Fel 0001 Undantaget inträffar om det inte gick att hitta en eller flera angivna kolumner i datauppsättningen.
Fel 0003 Undantaget inträffar om en eller flera indata är null eller tomma.
Fel 0006 Undantaget inträffar om parametern är större än eller lika med det angivna värdet.
Fel 0008 Undantaget inträffar om parametern inte är inom intervallet.
Fel 0013 Undantaget inträffar om den elever som skickas till modulen har en ogiltig typ.

En lista över fel som är specifika för Studio-moduler (klassisk) finns i Machine Learning felkoder.

En lista över API-undantag finns i Machine Learning REST API felkoder.

Se även

Utvärdera
Utvärdera rekommenderare
A-Z-modullista