Kruisvalidatie van model valideren

In dit artikel wordt beschreven hoe u het onderdeel Cross Validate Model gebruikt in azure Machine Learning Designer. Kruisvalidatie is een techniek die vaak wordt gebruikt in machine learning om zowel de variabiliteit van een gegevensset als de betrouwbaarheid te beoordelen van elk model dat via die gegevens is getraind.

Het onderdeel Cross Validate Model gebruikt als invoer voor een gelabelde gegevensset, samen met een niet-getraind classificatie- of regressiemodel. De gegevensset wordt onderverdeeld 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. Vervolgens kunt u begrijpen of het model vatbaar is voor variaties in de gegevens.

Kruisvaliderend model retourneert ook voorspelde resultaten en waarschijnlijkheden voor de gegevensset, zodat u de betrouwbaarheid van de voorspellingen kunt beoordelen.

Hoe kruisvalidatie werkt

  1. Kruisvalidatie verdeelt trainingsgegevens willekeurig in vouwen.

    Het algoritme wordt standaard ingesteld op 10 vouwen als u de gegevensset nog niet eerder hebt gepartitioneerd. Als u de gegevensset wilt verdelen in een ander aantal vouwen, kunt u het onderdeel Partition en Sample gebruiken en aangeven hoeveel vouwen u wilt gebruiken.

  2. Het onderdeel zet de gegevens in vouw 1 opzij om te gebruiken voor validatie. (Dit wordt ook wel de holdout fold genoemd.) Het onderdeel gebruikt de resterende vouwen om een model te trainen.

    Als u bijvoorbeeld vijf vouwen maakt, genereert het onderdeel vijf modellen tijdens kruisvalidatie. Het onderdeel traint elk model met behulp van vier vijfde van de gegevens. Het test elk model op de resterende vijfde.

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

  4. Wanneer het bouw- en evaluatieproces voor alle vouwen is voltooid, genereert Cross Validate Model een set metrische prestatiegegevens en gescoorde resultaten voor alle gegevens. Bekijk deze metrische gegevens om te zien of een enkele vouw een hoge of lage nauwkeurigheid heeft.

Voordelen van kruisvalidatie

Een andere en gebruikelijke manier om een model te evalueren, is door de gegevens te verdelen in een trainings- en testset met behulp van Split Data en vervolgens het model op de trainingsgegevens te valideren. Maar kruisvalidatie biedt enkele voordelen:

  • Kruisvalidatie maakt gebruik van meer testgegevens.

    Kruisvalidatie meet de prestaties van het model met de opgegeven parameters in een grotere gegevensruimte. Dat wil gezegd: kruisvalidatie maakt gebruik van de volledige trainingsgegevensset 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 meestal op slechts 30 procent of minder van de beschikbare gegevens.

    Omdat kruisvalidatie echter meerdere keren wordt getraind en gevalideerd in een grotere gegevensset, is het veel rekenintensiefer. Het duurt veel langer dan het valideren van een willekeurige splitsing.

  • Kruisvalidatie evalueert zowel de gegevensset als het model.

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

Cross Validate Model gebruiken

Kruisvalidatie kan lang duren als uw gegevensset groot is. In de eerste fase van het bouwen en testen van uw model kunt u dus kruisvalidatiemodel gebruiken. In die fase kunt u de goedheid van de modelparameters evalueren (ervan uitgaande dat de rekentijd acceptabel is). Vervolgens kunt u uw model trainen en evalueren met behulp van de vastgestelde parameters met de onderdelen Train Model en Evaluate Model .

In dit scenario traint en test u het model met behulp van Cross Validate Model.

  1. Voeg het onderdeel Cross Validate Model toe aan uw pijplijn. U vindt deze in de Azure Machine Learning-ontwerpfunctie in de categorie Modelscore en evaluatie .

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

    Als u bijvoorbeeld two class Boosted Decision Tree gebruikt voor classificatie, configureert u het model met de gewenste parameters. Sleep vervolgens een connector van de niet-getrainde modelpoort van de classificatie naar de overeenkomende poort van Cross Validate Model.

    Tip

    U hoeft het model niet te trainen, omdat kruisvalidatiemodel het model automatisch traint als onderdeel van de evaluatie.

  3. Verbind op de poort Gegevensset van Cross Validate Model een gelabelde trainingsgegevensset.

  4. Klik in het rechterdeelvenster van Cross Validate Model op Kolom bewerken. Selecteer 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 voor opeenvolgende uitvoeringen op dezelfde gegevens wilt herhalen.

  6. Verzend de pijplijn.

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

Resultaten

Nadat alle iteraties zijn voltooid, worden in kruislings valideren model scores gemaakt voor de hele gegevensset. Er worden ook prestatiegegevens gemaakt die u kunt gebruiken om de kwaliteit van het model te beoordelen.

Scored resultaten

De eerste uitvoer van het onderdeel biedt de brongegevens voor elke rij, samen met enkele voorspelde waarden en gerelateerde waarschijnlijkheden.

Als u de resultaten wilt weergeven, klikt u in de pijplijn met de rechtermuisknop op het onderdeel Model kruisvalideren. Selecteer Gescoorde resultaten visualiseren.

Naam nieuwe kolom Beschrijving
Gescoorde labels Deze kolom wordt toegevoegd aan het einde van de gegevensset. Deze bevat de voorspelde waarde voor elke rij.
Gescoorde waarschijnlijkheden Deze kolom wordt toegevoegd aan het einde van de gegevensset. Hiermee wordt de geschatte waarschijnlijkheid van de waarde in Scored Labels aangegeven.
Vouwnummer Geeft de op nul gebaseerde index aan van de vouw waaraan elke rij met gegevens is toegewezen tijdens kruisvalidatie.

Evaluatieresultaten

Het tweede rapport wordt gegroepeerd op vouwen. Houd er rekening mee dat tijdens de uitvoering cross validate model de trainingsgegevens willekeurig splitst in n vouwen (standaard 10). Bij elke iteratie over de gegevensset gebruikt Cross Validate Model één vouw als validatiegegevensset. Hierbij worden de resterende n-1 vouwen gebruikt om een model te trainen. Elk van de n-modellen wordt getest op basis van de gegevens in alle andere vouwen.

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

Als u de resultaten wilt weergeven, klikt u in de pijplijn met de rechtermuisknop op het onderdeel Model kruisvalideren. Selecteer Evaluatieresultaten visualiseren per vouw.

Kolomnaam Beschrijving
Vouwnummer Een id voor elke vouw. Als u vijf vouwen hebt gemaakt, zijn er vijf subsets van gegevens, genummerd van 0 tot 4.
Aantal voorbeelden in vouw Het aantal rijen dat aan elke vouw is toegewezen. Ze moeten ongeveer gelijk zijn.

Het onderdeel bevat ook de volgende metrische gegevens voor elke vouw, afhankelijk van het type model dat u evalueert:

  • Classificatiemodellen: Precisie, relevante overeenkomsten, F-score, AUC, nauwkeurigheid

  • Regressiemodellen: gemiddelde absolute fout, wortel gemiddelde kwadratische fout, relatieve absolute fout, relatieve kwadratische fout en coëfficiënt van bepaling

Technische notities

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

  • Kruisvalidatiemodel is veel rekenintensief en duurt langer dan als u het model hebt gevalideerd met behulp van een willekeurig verdeelde gegevensset. De reden hiervoor is dat Cross Validate Model meerdere keren wordt getraind en gevalideerd.

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

Volgende stappen

Bekijk de set onderdelen die beschikbaar zijn voor Azure Machine Learning.