Modellen trainen en evalueren in Model Builder

Voltooid

In deze les leert u hoe u machine learning-modellen traint en evalueert in Model Builder.

Tijdens de training past Model Builder algoritmen toe op uw gegevens. Door metrische evaluatiegegevens voor het specifieke scenario te gebruiken, meet u hoe goed uw model presteert.

Training in Model Builder

Nu u uw scenario hebt geselecteerd, uw trainingsomgeving hebt geselecteerd en uw gegevens hebt geladen, is het tijd om uw model te trainen. Training bestaat uit het toepassen van algoritmen voor het gekozen scenario op uw gegevensset om het beste model te vinden. In de evaluatiestap gaan we verder met wat 'beste' betekent.

In de meeste gevallen hoeft u voor het trainen van machine learning-modellen in Model Builder alleen de hoeveelheid tijd op te geven waarvoor u wilt trainen.

Hoe lang moet ik trainen?

Met langere trainingsperioden kan Model Builder meer modellen verkennen met een breder scala aan instellingen.

De volgende tabel bevat een overzicht van de gemiddelde tijd die nodig is om goede prestaties te verkrijgen voor een reeks voorbeeldgegevenssets op een lokale computer, met behulp van CPU:

Grootte van gegevensset Gemiddelde tijd om te trainen
0 MB tot 10 MB 10 seconden
10 MB tot 100 MB 10 minuten
100 MB tot 500 MB 30 minuten
500 MB tot 1 GB 60 minuten
1 GB+ 3+ uur

Deze nummers zijn alleen een handleiding. De exacte lengte van de training is afhankelijk van:

  • Het aantal functies (kolommen) dat wordt gebruikt als invoer voor het model.
  • Het type kolommen.
  • De machine learning-taak.
  • De CPU-, GPU-, schijf- en geheugenprestaties van de machine die wordt gebruikt voor training.

Tip

Gebruik meer dan 100 rijen als gegevenssets. Minder dan dat levert mogelijk geen resultaten op.

Hoe vindt Model Builder het beste model?

U hebt waarschijnlijk gehoord dat machine learning complexe wiskundige berekeningen omvat. Hoe kan Model Builder een machine learning-model trainen als u alleen een scenario, een gegevensset en de tijdsduur hebt opgegeven waarvoor Model Builder moet trainen?

Model Builder maakt gebruik van geautomatiseerde machine learning (AutoML) om de set transformaties te identificeren om uw gegevens voor te bereiden op training, een algoritme te selecteren en de instellingen (ook wel hyperparameters genoemd) van het algoritme af te stemmen. Door metrische evaluatiegegevens te gebruiken die specifiek zijn voor de geselecteerde machine learning-taak, kan Model Builder bepalen welk model het beste presteert voor uw gegevens.

Trainings- en verbruikscode

Nadat uw model klaar is met trainen, genereert Model Builder de volgende bestanden en voegt deze toe aan uw project. Deze bestanden zijn genest onder uw MBCONFIG-bestand .

  • <MODEL-NAME.zip>: het artefact voor het machine learning-model. Dit bestand bevat een geserialiseerde versie van uw model.
  • <MODEL-NAME.training.cs>: Dit bestand bevat de pijplijn voor modeltraining. Uw modeltrainingspijplijn bestaat uit de gegevenstransformaties en het algoritme dat wordt gebruikt om uw machine learning-model te trainen. Zie Gegevenstransformaties en een ML.NET algoritme kiezen voor meer informatie.
  • <MODEL-NAME.consumption.cs>: Dit bestand bevat de klassen die het schema van de invoer en uitvoer van uw model definiëren. Het bevat ook de Predict methode, die uw model gebruikt om een PredictionEngine API te maken en voorspellingen te doen. PredictionEngine is een handige API waarmee u een voorspelling kunt uitvoeren op één exemplaar van gegevens.

Uw model evalueren

Nu u het beste model voor uw gegevens hebt gevonden, is het tijd om te testen hoe goed het voorspellingen doet. Een manier om te evalueren hoe goed uw model presteert, is door metrische gegevens te gebruiken.

Metrische evaluatiegegevens zijn specifiek voor het type machine learning-taak dat door een model wordt uitgevoerd. Voor elke taak kunt u verschillende metrische gegevens bekijken om de prestaties van uw model te bepalen.

In deze tabel ziet u de metrische evaluatiegegevens die Model Builder gebruikt om het beste model te kiezen, op basis van scenario:

Scenario Metrische evaluatiegegevens Zoek naar:
Gegevensclassificatie Binair (nauwkeurigheid) / multiklasse (MicroAccuracy) Hoe dichter bij 1,00, hoe beter
Waardevoorspelling R-Kwadraat Hoe dichter bij 1,00, hoe beter
Afbeeldingsclassificatie Nauwkeurigheid Hoe dichter bij 1,00, hoe beter
Aanbeveling R-Kwadraat Hoe dichter bij 1,00, hoe beter
Objectdetectie Nauwkeurigheid Hoe dichter bij 1,00, hoe beter

Zie metrische gegevens voor modelevaluatie voor meer informatie over ML.NET metrische evaluatiegegevens.

Het model kiezen met de hoogste metrische gegevens

Uw model heeft perfecte metrische evaluatiegegevens bereikt. Betekent dat dat je het perfecte model hebt? Niet precies. Als u uiteindelijk een 'perfect' model hebt zoals opgegeven door uw metrische evaluatiegegevens, moet u sceptisch zijn.

In machine learning is er een concept dat overfitting wordt genoemd, en het is iets waarvoor u moet letten. Overfitting is wanneer uw model de patronen in uw trainingsgegevensset te goed leert. Wanneer u het model met nieuwe gegevens probeert te gebruiken, biedt het geen nauwkeurige resultaten.

Hier volgt een scenario om overfitting te illustreren. Stel dat je voor een examen gaat studeren. Op een of andere manier hebt u de vragen voor het examen en de antwoorden van tevoren. Terwijl u voor het examen gaat studeren, richt u zich op het onthouden van de antwoorden op de vragen. Wanneer u het examen neemt en de resultaten ontvangt, krijgt u een hoge graad. Een hoog cijfer kan erop wijzen dat je het onderwerp goed kent. Als iemand u echter een vraag zou stellen over een van de onderwerpen die niet rechtstreeks op de test stonden, krijgt u het misschien verkeerd omdat u het onderwerp niet hebt geleerd, u de antwoorden op demoreert. Overfitting werkt op een vergelijkbare manier.

Uw model verbeteren

Als u niet tevreden bent met de metrische evaluatiegegevens van uw model, kunt u deze dingen proberen om uw model te verbeteren:

  • Geef meer representatieve gegevensobservaties: Ervaring is de beste docent. Het concept is ook van toepassing op machine learning. Hoe meer gegevensobservaties u kunt opgeven, hoe breder de reeks patronen die uw model kan herkennen.
  • Geef meer context op: door kolommen toe te voegen die context toevoegen aan uw gegevens, kan uw model patronen identificeren. Stel dat u de prijs van een woning probeert te voorspellen en dat het enige gegevenspunt dat u hebt, het aantal kamers is. Dat zegt je misschien niet veel. Maar wat als u wist dat het huis zich in een buitenwijk buiten een groot grootstedelijk gebied bevindt, waar het gemiddelde inkomen van het huishouden $ 80.000 is en scholen zich in het bovenste 20e percentiel bevinden? U hebt nu meer informatie die u kan helpen bij het bepalen van de beslissing van het model.
  • Gebruik zinvolle gegevens en functies: Hoewel meer gegevensvoorbeelden en -functies kunnen helpen de nauwkeurigheid van het model te verbeteren, kunnen ze ook ruis veroorzaken omdat niet alle gegevens en functies zinvol zijn. Het is belangrijk om te begrijpen welke functies het belangrijkst van invloed zijn op de beslissingen van het algoritme.
  • Meer algoritmen verkennen: Het bieden van Model Builder met meer tijd om het mogelijk te maken om meer algoritmen en hyperparameters te verkennen, kan helpen uw model te verbeteren.

In de volgende les gebruikt u Model Builder om een machine learning-model te trainen.