Share via


Utvärderingsmått för modeller för konversationsspråktolkning

Din datauppsättning är uppdelad i två delar: en uppsättning för träning och en uppsättning för testning. Träningsuppsättningen används för att träna modellen, medan testuppsättningen används som ett test för modell efter träning för att beräkna modellens prestanda och utvärdering. Testuppsättningen introduceras inte för modellen genom träningsprocessen för att se till att modellen testas på nya data.

Modellutvärderingen utlöses automatiskt när träningen har slutförts. Utvärderingsprocessen börjar med att använda den tränade modellen för att förutsäga användardefinierade avsikter och entiteter för yttranden i testuppsättningen och jämför dem med de angivna taggarna (som upprättar en baslinje för sanning). Resultaten returneras så att du kan granska modellens prestanda. För utvärdering använder konversationsspråktolkning följande mått:

  • Precision: Mäter hur exakt/exakt din modell är. Det är förhållandet mellan korrekt identifierade positiva identifieringar (sanna positiva identifieringar) och alla identifierade positiva identifieringar. Precisionsmåttet visar hur många av de förutsagda klasserna som är korrekt märkta.

    Precision = #True_Positive / (#True_Positive + #False_Positive)

  • Kom ihåg: Mäter modellens förmåga att förutsäga faktiska positiva klasser. Det är förhållandet mellan de förutsagda sanna positiva och vad som faktiskt taggades. Träffsäkerhetsmåttet visar hur många av de förutsagda klasserna som är korrekta.

    Recall = #True_Positive / (#True_Positive + #False_Negatives)

  • F1-poäng: F1-poängen är en funktion av Precision och träffsäkerhet. Det behövs när du söker en balans mellan Precision och Recall.

    F1 Score = 2 * Precision * Recall / (Precision + Recall)

Precision, träffsäkerhet och F1-poäng beräknas för:

  • Varje entitet separat (utvärdering på entitetsnivå)
  • Varje avsikt separat (utvärdering på avsiktsnivå)
  • För modellen kollektivt (utvärdering på modellnivå).

Definitionerna av precision, återkallande och utvärdering är desamma för utvärderingar på entitetsnivå, avsiktsnivå och modellnivå. Antalet sanna positiva identifieringar, falska positiva identifieringar och falska negativa värden kan dock variera. Tänk till exempel på följande text.

Exempel

  • Gör ett svar med tack så mycket.
  • svara med att säga ja.
  • Kontrollera min e-post tack.
  • e-post till Cynthia att middagen förra veckan var fantastisk.
  • skicka e-post till mike

Det här är avsikterna som används: Svara, skickaEmail, readEmail. Det här är entiteterna: contactName, message.

Modellen kan göra följande förutsägelser:

Yttrande Förutsagd avsikt Faktisk avsikt Förutsagd entitet Faktisk entitet
Gör ett svar med tack så mycket Svara Svara thank you very much Som message thank you very much Som message
svara med att säga ja Sendemail Svara -- yes Som message
Kontrollera min e-post tack readEmail readEmail -- --
e-post till Cynthia att middagen förra veckan var fantastisk Svara Sendemail dinner last week was splendid Som message cynthia som contactName, dinner last week was splendid som message
skicka e-post till mike Sendemail Sendemail mike Som message mike Som contactName

Utvärdering av avsiktsnivå för svars avsikt

Nyckel Antal Förklaring
Sann positiv händelse 1 Yttrande 1 förutsades korrekt som Svar.
Falsk positiv händelse 1 Yttrande 4 förutsades felaktigt som Svar.
Falsk negativ händelse 1 Yttrande 2 förutsades felaktigt som sendEmail.

Precision = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 1) = 0.5

Minns = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5

F1-poäng = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5

Utvärdering av avsiktsnivå för avsikten sendEmail

Nyckel Antal Förklaring
Sann positiv händelse 1 Yttrande 5 förutsades korrekt som sendEmail
Falsk positiv händelse 1 Yttrande 2 förutsades felaktigt som sendEmail.
Falsk negativ händelse 1 Yttrande 4 förutsades felaktigt som Svar.

Precision = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 1) = 0.5

Minns = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5

F1-poäng = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5

Utvärdering av avsiktsnivå för avsikten readEmail

Nyckel Antal Förklaring
Sann positiv händelse 1 Yttrande 3 förutsades korrekt som readEmail.
Falsk positiv händelse 0 --
Falsk negativ händelse 0 --

Precision = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 0) = 1

Minns = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 0) = 1

F1-poäng = 2 * Precision * Recall / (Precision + Recall) = (2 * 1 * 1) / (1 + 1) = 1

Utvärdering på entitetsnivå för contactName-entitet

Nyckel Antal Förklaring
Sann positiv händelse 1 cynthia förutsagdes korrekt som contactName i yttrande 4
Falsk positiv händelse 0 --
Falsk negativ händelse 1 mike förutsades felaktigt som message i yttrande 5

Precision = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 0) = 1

Minns = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5

F1-poäng = 2 * Precision * Recall / (Precision + Recall) = (2 * 1 * 0.5) / (1 + 0.5) = 0.67

Utvärdering på entitetsnivå för meddelandeentitet

Nyckel Antal Förklaring
Sann positiv händelse 2 thank you very much förutsagdes korrekt som message i yttrande 1 och dinner last week was splendid förutsades korrekt som message i yttrande 4
Falsk positiv händelse 1 mike förutsades felaktigt som message i yttrande 5
Falsk negativ händelse 1 yes förutsagdes inte som message i yttrande 2

Precision = #True_Positive / (#True_Positive + #False_Positive) = 2 / (2 + 1) = 0.67

Minns = #True_Positive / (#True_Positive + #False_Negatives) = 2 / (2 + 1) = 0.67

F1-poäng = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.67 * 0.67) / (0.67 + 0.67) = 0.67

Utvärdering på modellnivå för den kollektiva modellen

Nyckel Antal Förklaring
Sann positiv händelse 6 Summan av TP för alla avsikter och entiteter
Falsk positiv händelse 3 Summa av FP för alla avsikter och entiteter
Falsk negativ händelse 4 Summa av FN för alla avsikter och entiteter

Precision = #True_Positive / (#True_Positive + #False_Positive) = 6 / (6 + 3) = 0.67

Minns = #True_Positive / (#True_Positive + #False_Negatives) = 6 / (6 + 4) = 0.60

F1-poäng = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.67 * 0.60) / (0.67 + 0.60) = 0.63

Förvirringsmatris

En förvirringsmatris är en N x N-matris som används för utvärdering av modellprestanda, där N är antalet entiteter eller avsikter. Matrisen jämför de förväntade etiketterna med de som förutsägs av modellen. Detta ger en holistisk bild av hur väl modellen presterar och vilka typer av fel den gör.

Du kan använda matrisen Förvirring för att identifiera avsikter eller entiteter som är för nära varandra och ofta misstas (tvetydighet). I det här fallet bör du överväga att slå samman dessa avsikter eller entiteter. Om det inte är möjligt kan du överväga att lägga till fler taggade exempel på både avsikter eller entiteter för att hjälpa modellen att skilja mellan dem.

Den markerade diagonalen i bilden nedan är de korrekt förutsagda entiteterna, där den förutsagda taggen är samma som den faktiska taggen.

En skärmbild av ett exempel på en förvirringsmatris

Du kan beräkna måtten för utvärdering på avsiktsnivå eller entitetsnivå och modellnivå från förvirringsmatrisen:

  • Värdena i diagonalen är true positive-värdena för varje avsikt eller entitet.
  • Summan av värdena i avsikts- eller entitetsraderna (exklusive diagonalen) är modellens falska positiva.
  • Summan av värdena i avsikts- eller entitetskolumnerna (exklusive diagonalen) är modellens falska negativa .

På samma sätt:

  • Modellens sanna positiva resultat är summan av sanna positiva identifieringar för alla avsikter eller entiteter.
  • Modellens falska positiva resultat är summan av falska positiva identifieringar för alla avsikter eller entiteter.
  • Modellens falska negativa är summan av falska negativa för alla avsikter eller entiteter.

Vägledning

När du har tränat din modell visas några riktlinjer och rekommendationer om hur du kan förbättra modellen. Vi rekommenderar att du har en modell som täcker varje punkt i vägledningsavsnittet.

  • Träningsuppsättningen har tillräckligt med data: När en avsikt eller entitet har färre än 15 märkta instanser i träningsdata kan det leda till lägre noggrannhet på grund av att modellen inte tränas tillräckligt med den avsikten. I det här fallet bör du överväga att lägga till mer märkta data i träningsuppsättningen. Du bör bara överväga att lägga till mer märkta data i entiteten om entiteten har en inlärd komponent. Om din entitet endast definieras av list-, fördefinierade och regex-komponenter är den här rekommendationen inte tillämplig.

  • Alla avsikter eller entiteter finns i testuppsättningen: När testdata saknar märkta instanser för en avsikt eller entitet är modellutvärderingen mindre omfattande på grund av otestade scenarier. Överväg att ha testdata för varje avsikt och entitet i din modell för att säkerställa att allt testas.

  • Otydlig skillnad mellan avsikter eller entiteter: När data är liknande för olika avsikter eller entiteter kan det leda till lägre noggrannhet eftersom de ofta felklassificeras som varandra. Granska följande avsikter och entiteter och överväg att slå samman dem om de liknar dem. Annars lägger du till fler exempel för att bättre skilja dem från varandra. Du kan kontrollera fliken för förvirringsmatris för mer vägledning. Om du ser att två entiteter ständigt förutsägs för samma intervall eftersom de delar samma lista, fördefinierade eller regex-komponenter, måste du lägga till en inlärd komponent för varje entitet och göra den obligatorisk. Läs mer om entitetskomponenter.

Nästa steg

Träna en modell i Language Studio