Model kruis valideren

Belangrijk

De ondersteuning voor Azure Machine Learning-studio (klassiek) eindigt op 31 augustus 2024. U wordt aangeraden om vóór die datum over te stappen naar Azure Machine Learning.

Vanaf 1 december 2021 kunt u geen nieuwe resources voor Azure Machine Learning-studio (klassiek) meer maken. Tot en met 31 augustus 2024 kunt u de bestaande resources van Azure Machine Learning-studio (klassiek) blijven gebruiken.

De documentatie van ML-studio (klassiek) wordt buiten gebruik gesteld en wordt in de toekomst mogelijk niet meer bijgewerkt.

Parameterschattingen voor classificatie- of regressiemodellen kruisval valideren door de gegevens te partitioneren

Categorie: Machine Learning/evalueren

Notitie

Van toepassing op: Machine Learning Studio (klassiek)

Vergelijkbare modules met slepen en neerzetten zijn beschikbaar in Azure Machine Learning designer.

Moduleoverzicht

In dit artikel wordt beschreven hoe u de module Cross-Validate Model in Machine Learning Studio (klassiek) gebruikt. Kruisvalidatie is een belangrijke techniek die vaak wordt gebruikt in machine learning om zowel de variabiliteit van een gegevensset als de betrouwbaarheid te beoordelen van elk model dat is getraind met behulp van die gegevens.

De module Model kruisvalidatie neemt als invoer een gelabelde gegevensset, samen met een ongetraind classificatie- of regressiemodel. Het verdeelt de gegevensset in een aantal subsets (vouwen), bouwt een model op elke vouw en retourneert vervolgens een set nauwkeurigheidsstatistieken voor elke vouw. Door de nauwkeurigheidsstatistieken voor alle vouwen te vergelijken, kunt u de kwaliteit van de gegevensset interpreteren en begrijpen of het model vatbaar is voor variaties in de gegevens.

Kruis-validatie retourneert ook voorspelde resultaten en waarschijnlijkheden voor de gegevensset, zodat u de betrouwbaarheid van de voorspellingen kunt beoordelen.

Hoe kruisvalidatie werkt

  1. Kruisvalidatie verdeelt de trainingsgegevens willekeurig in een aantal partities, ook wel vouwen genoemd.

    • Het algoritme heeft standaard 10 vouwen als u de gegevensset nog niet hebt gepartitiefd.
    • Als u de gegevensset wilt onderverdelen in een ander aantal vouwen, kunt u de module Partition en Sample gebruiken en aangeven hoeveel vouwen u moet gebruiken.
  2. In de module worden de gegevens in vouw 1 gereserveerd voor validatie (dit wordt ook wel de holdout-vouw genoemd) en worden de resterende vouwen gebruikt om een model te trainen.

    Als u bijvoorbeeld vijf vouwen maakt, genereert de module vijf modellen tijdens kruisvalidatie, wordt elk model getraind met 4/5 van de gegevens en getest op de resterende 1/5.

  3. Tijdens het testen van het model voor elke vouw worden meerdere nauwkeurigheidsstatistieken geëvalueerd. Welke statistieken worden gebruikt, is afhankelijk van het type model dat u evalueert. Er worden verschillende statistieken gebruikt om classificatiemodellen versus regressiemodellen te evalueren.

  4. Wanneer het bouw- en evaluatieproces voor alle vouwen is voltooid, genereert Model voor kruis valideren een set prestatiemetrieken en beoordeelde resultaten voor alle gegevens. Controleer deze metrische gegevens om te zien of een enkele voudige een bijzonder hoge of lage nauwkeurigheid heeft

Voordelen van kruisvalidatie

Een andere, zeer gebruikelijke manier om een model te evalueren, is door de gegevens te verdelen in een trainings- en testset met behulp van Gegevens splitsen en vervolgens het model te valideren op de trainingsgegevens. Kruisvalidatie biedt echter enkele voordelen:

  • Bij kruisvalidatie worden meer testgegevens gebruikt.

    Kruisvalidatie meet de prestaties van het model met de opgegeven parameters in een grotere gegevensruimte. Dat wil zeggen dat kruisvalidatie gebruikmaakt van de volledige trainingsset voor zowel training als evaluatie, in plaats van een deel. Als u daarentegen een model valideert met behulp van gegevens die zijn gegenereerd op basis van een willekeurige splitsing, evalueert u het model doorgaans slechts op 30% of minder van de beschikbare gegevens.

    Omdat kruisvalidatie het model echter meerdere keren traint en valideert via een grotere gegevensset, is het rekenintensief en duurt het veel langer dan valideren op een willekeurige splitsing.

  • Kruisvalidatie evalueert de gegevensset en het model.

    Kruisvalidatie meet niet alleen de nauwkeurigheid van een model, maar geeft u ook een idee van hoe representatief de gegevensset is en hoe gevoelig het model kan zijn voor variaties in de gegevens.

Model voor kruis valideren gebruiken

Er zijn twee belangrijke manieren om kruisvalidatie te gebruiken.

Kruisvalidatie kan lang duren als u veel gegevens gebruikt. Daarom kunt u het model kruis valideren in de eerste fase van het bouwen en testen van uw model gebruiken om de goedheid van de modelparameters te evalueren (ervan uitgaande dat de rekentijd acceptabel is), en vervolgens uw model trainen en evalueren met behulp van de tot stand gebrachte parameters met de modules Model trainen en Model evalueren.

Eenvoudige kruisvalidatie

In dit scenario traint en test u het model met behulp van Model kruis valideren.

  1. Voeg de module Cross Validate Model toe aan uw experiment. U vindt deze in Machine Learning Studio (klassiek) in Machine Learning categorie, onder Evalueren.

  2. Verbinding maken uitvoer van een classificatie- of regressiemodel.

    Als u bijvoorbeeld een Bayes Point-machine met twee klassen gebruikt voor classificatie, configureert u het model met de want-parameters en sleept u vervolgens een connector van de poort van het niet-getrainde model van de classificatie naar de overeenkomende poort van Model kruis valideren.

    Tip

    Het model hoeft niet te worden getraind omdat het model automatisch wordt getraind als onderdeel van de evaluatie.

  3. Op de poort Gegevensset van Model kruis valideren verbindt u een gelabelde trainingsset.

  4. Klik in het deelvenster Eigenschappen van Model kruis valideren op Kolomselectie starten en kies de enkele kolom die het klasselabel of de voorspelbare waarde bevat.

  5. Stel een waarde in voor de parameter Random seed als u de resultaten van kruisvalidatie tussen opeenvolgende runs op dezelfde gegevens wilt kunnen herhalen.

  6. Voer het experiment uit.

  7. Zie de sectie Resultaten voor een beschrijving van de rapporten.

    Als u later een kopie van het model wilt maken voor opnieuw gebruik, klikt u met de rechtermuisknop op de uitvoer van de module die het algoritme bevat (bijvoorbeeld de Two Class Bayes Point Machine) en klikt u op Opslaan als getraind model.

Kruisvalidatie met een parameter-opsruiming

In dit scenario gebruikt u Tune Model Hyperparameters om het beste model te identificeren door een parameteropruiming uit te voeren en vervolgens Cross Validate Model te gebruiken om de betrouwbaarheid ervan te controleren. Dit is de eenvoudigste manier om een Machine Learning beste model te identificeren en er vervolgens metrische gegevens voor te genereren.

  1. Voeg de gegevensset voor modeltraining toe en voeg een van de machine learning modules toe waarmee een classificatie- of regressiemodel wordt gemaakt.

  2. Voeg de module Tune Model Hyperparameters toe aan uw experiment. U vindt deze in de Machine Learning categorie, onder Trainen.

  3. Koppel het classificatie- of regressiemodel aan de niet-getrainde modelinvoer van Tune Model Hyperparameters.

  4. Voeg de module Cross Validate Model toe aan uw experiment. U vindt deze in Machine Learning Studio (klassiek) in Machine Learning categorie, onder Evalueren.

  5. Zoek de uitvoer van het getrainde beste model van Tune Model Hyperparameters en koppel deze aan de niet-getrainde modelinvoer van Cross Validate Model.

  6. Verbinding maken trainingsgegevens toe aan de invoer van de trainingsgegevensset van Model kruis valideren.

  7. Voer het experiment uit.

  8. Nadat u de resultaten en de evaluatiescores hebt beoordeeld, kunt u een kopie van het beste model voor later gebruik krijgen door met de rechtermuisknop op de module Tune Model Hyperparameters te klikken, Getraind beste model te selecteren en vervolgens op Opslaan als getraind model te klikken.

Notitie

Mogelijk krijgt u andere resultaten als u de invoer in de module Tune Model Hyperparameters gebruikt voor optionele validatieset.

Dat komt omdat wanneer u deze optie gebruikt, u in feite een statische trainingsset en testset opgeeft. Daarom maakt het kruisvalidatieproces ook gebruik van de opgegeven trainings- en testgegevenssets, in plaats van de gegevens te splitsen in n groepen voor training en testen. Metrische gegevens worden echter n-voudige gegenereerd.

Resultaten

Nadat alle iteraties zijn voltooid, worden er scores voor de hele gegevensset gemaakt, evenals prestatiemetrieken die u kunt gebruiken om de kwaliteit van het model te beoordelen.

Scored results

De eerste uitvoer van de module bevat de brongegevens voor elke rij, samen met enkele voorspelde waarden en gerelateerde waarschijnlijkheden.

Als u deze resultaten wilt weergeven, klikt u in het experiment met de rechtermuisknop op de module Model kruis valideren, selecteert u Scored results en klikt u op Visualize.

Nieuwe kolomnaam Description
Vouwtoewijzingen Geeft aan dat de op 0 gebaseerde index van de vouw elke rij met gegevens is toegewezen tijdens kruisvalidatie.
Labels met een score Deze kolom wordt toegevoegd aan het einde van de gegevensset en bevat de voorspelde waarde voor elke rij
Scored Probabilities Deze kolom wordt toegevoegd aan het einde van de gegevensset en geeft de geschatte waarschijnlijkheid aan van de waarde in Scored Labels.

Evaluatieresultaten

Het tweede rapport is gegroepeerd op vouwen. Houd er rekening mee dat tijdens de uitvoering de trainingsgegevens willekeurig worden gesplitst in n vouwen (standaard 10). Bij elke iteratie over de gegevensset gebruikt Kruisvalidatiemodel één vouw als validatieset en worden de resterende n-1-vouwen gebruikt om een model te trainen. Elk van de n modellen wordt getest op de gegevens in alle andere vouwen.

In dit rapport worden de vouwen weergegeven op indexwaarde, in oplopende volgorde. Als u wilt orden op een andere kolom, kunt u de resultaten opslaan als een gegevensset.

Als u deze resultaten wilt weergeven, klikt u in het experiment met de rechtermuisknop op de module Model kruis valideren, selecteert u Evaluatieresultaten op vouwen en klikt u op Visualiseren.

Kolomnaam Beschrijving
Vouw getal Een id voor elke vouw. Als u vijf vouwen hebt gemaakt, zijn er 5 subsets met gegevens, genummerd van 0 tot 4.
Aantal voorbeelden in één keer Het aantal rijen dat aan elke gevouwen groep is toegewezen. Ze moeten ongeveer gelijk zijn.
Model Het algoritme dat wordt gebruikt in het model, geïdentificeerd door de API-naam

Daarnaast zijn de volgende metrische gegevens opgenomen voor elke vouw, afhankelijk van het type model dat u evalueert.

  • Classificatiemodellen: Precisie, terughalen, F-score, AUC, gemiddeld logboekverlies, trainingslogboekverlies

  • Regressiemodellen: Negatieve waarschijnlijkheid van logboeken, gemiddelde absolute fout, wortel van gemiddelde kwadraatfout, relatieve absolute fout en de bepalingscoëfficiënt

Voorbeelden

Voor voorbeelden van hoe kruisvalidatie wordt gebruikt in machine learning, zie de Azure AI Gallery:

Technische opmerkingen

  • Het is een best practice gegevenssets te normaliseren voordat u ze gebruikt voor kruisvalidatie.

  • Omdat het model meerdere keren wordt gemodelleerd en gevalideerd, is het rekenintensief en duurt het langer om het model te voltooien dan wanneer u het model hebt gevalideerd met behulp van een willekeurig verdeelde gegevensset.

  • U wordt aangeraden het model kruis valideren te gebruiken om de goedheid van het model vast te stellen op basis van de opgegeven parameters. Gebruik Tune Model Hyperparameters om de optimale parameters te identificeren.

  • U hoeft de gegevensset niet op te splitsen in trainings- en testsets wanneer u kruisvalidatie gebruikt om de nauwkeurigheid van het model te meten.

    Als er echter upstream een validatie-gegevensset wordt opgegeven, gebruikt de module de opgegeven trainings- en testsets in plaats van te splitsen in n-vouwen . Dat wil zeggen dat de eerste gegevensset wordt gebruikt om het model voor elke combinatie van parameters te trainen en de modellen worden geëvalueerd op de validatiegegevensset. Zie de sectie over het gebruik van een parameter-opsruiming met kruisvalidatie.

  • Hoewel in dit artikel oudere versies van de modules worden gebruikt, is er een goede uitleg van het kruisvalidatieproces: Parameters kiezen voor het optimaliseren van uw algoritmen in Machine Learning

Verwachte invoer

Naam Type Description
Niet-getraind model ILearner-interface Niet-getraind model voor kruisvalidatie op gegevensset
Gegevensset Gegevenstabel Invoerset

Moduleparameters

Name Bereik Type Standaard Beschrijving
Kolom labelen alle ColumnSelection Selecteer de kolom die het label bevat dat moet worden gebruikt voor validatie
Willekeurige seed alle Geheel getal 0 Seed-waarde voor generator voor willekeurige getallen

Deze waarde is optioneel. Indien niet opgegeven

Uitvoerwaarden

Naam Type Description
Scored results Gegevenstabel Resultaten van scoren
Evaluatieresultaten op vouwen Gegevenstabel Resultaten van evaluatie (door vouwen en volledig)

Uitzonderingen

Uitzondering Description
Fout 0035 Uitzondering treedt op als er geen functies zijn opgegeven voor een bepaalde gebruiker of een bepaald item.
Fout 0032 Uitzondering treedt op als argument geen getal is.
Fout 0033 Uitzondering treedt op als argument Oneindig is.
Fout 0001 Er treedt een uitzondering op als een of meer opgegeven kolommen met gegevenssets niet kunnen worden gevonden.
Fout 0003 Uitzondering treedt op als een of meer invoer null of leeg zijn.
Fout 0006 Uitzondering treedt op als de parameter groter is dan of gelijk is aan de opgegeven waarde.
Fout 0008 Uitzondering treedt op als de parameter zich niet binnen het bereik.
Fout 0013 Er treedt een uitzondering op als de learner die wordt doorgegeven aan de module een ongeldig type heeft.

Zie Foutcodes voor een lijst met fouten die specifiek zijn Machine Learning voor Studio-modules (klassiek).

Zie Foutcodes voor een lijst Machine Learning REST API API-uitzonderingen.

Zie ook

Evalueren
Aanbevelingsfunctie voor evaluatie
Lijst met A-Z-modules