Metryki oceny dla modeli interpretacji języka konwersacyjnego
Zestaw danych jest podzielony na dwie części: zestaw do trenowania i zestaw do testowania. Zestaw trenowania służy do trenowania modelu, podczas gdy zestaw testów jest używany jako test dla modelu po trenowaniu w celu obliczenia wydajności i oceny modelu. Zestaw testów nie jest wprowadzany do modelu za pośrednictwem procesu trenowania, aby upewnić się, że model jest testowany na nowych danych.
Ocena modelu jest wyzwalana automatycznie po pomyślnym zakończeniu trenowania. Proces oceny rozpoczyna się od użycia wytrenowanego modelu w celu przewidywania intencji i jednostek zdefiniowanych przez użytkownika dla wypowiedzi w zestawie testowym. Następnie proces porównuje je z podanymi tagami, aby ustalić punkt odniesienia prawdy. Wyniki są zwracane, aby można było przejrzeć wydajność modelu. Do oceny język konwersacyjny korzysta z następujących metryk:
Precyzja: mierzy, jak dokładny lub dokładny jest model. Jest to stosunek poprawnie zidentyfikowanych wyników dodatnich (prawdziwie dodatnich) i wszystkich zidentyfikowanych wyników dodatnich. Metryka precyzji pokazuje, ile klas przewidywanych jest poprawnie oznaczonych etykietami.
Precision = #True_Positive / (#True_Positive + #False_Positive)
Przypomnienie: Mierzy zdolność modelu do przewidywania rzeczywistych klas dodatnich. Jest to stosunek przewidywanych wyników prawdziwie dodatnich do tego, co zostało oznaczone. Metryka kompletności pokazuje, ile przewidywanych klas jest poprawnych.
Recall = #True_Positive / (#True_Positive + #False_Negatives)
Wynik F1: Wynik F1 jest funkcją precyzji i kompletności. Jest to konieczne, gdy szukasz równowagi między precyzją a kompletnością.
F1 Score = 2 * Precision * Recall / (Precision + Recall)
Precyzja, kompletność i wynik F1 są obliczane dla:
- Każda jednostka oddzielnie (ocena na poziomie jednostki).
- Każda intencja jest oddzielnie (ocena na poziomie intencji).
- W przypadku modelu zbiorczo (ocena na poziomie modelu).
Definicje dokładności, kompletności i oceny są takie same w przypadku ocen na poziomie jednostki, na poziomie intencji i na poziomie modelu. Jednak liczby wyników prawdziwie dodatnich, wyników fałszywie dodatnich i wyników fałszywie ujemnych mogą się różnić. Rozważmy na przykład następujący tekst.
Przykład
- Utwórz odpowiedź z "dziękuję bardzo".
- Odpowiedz, mówiąc "tak".
- Sprawdź moją wiadomość e-mail.
- E-mail do Cynthii, że kolacja w zeszłym tygodniu była wspaniała.
- Wyślij wiadomość e-mail do Mike'a.
Używane intencje to Reply
, sendEmail
i readEmail
. Jednostki to contactName
i message
.
Model może przewidywać następujące przewidywania:
Wypowiedź | Przewidywana intencja | Rzeczywista intencja | Przewidywana jednostka | Jednostka rzeczywista |
---|---|---|---|---|
Utwórz odpowiedź z "dziękuję bardzo" | Odpowiedź | Odpowiedź | thank you very much gdy message |
thank you very much gdy message |
Odpowiedz z napisem "yes" | sendEmail | Odpowiedź | -- | yes gdy message |
Sprawdź mój adres e-mail | readEmail | readEmail | -- | -- |
E-mail do Cynthii, że kolacja w zeszłym tygodniu była wspaniała | Odpowiedź | sendEmail | dinner last week was splendid gdy message |
cynthia as , dinner last week was splendid jako contactName message |
Wyślij wiadomość e-mail do Mike'a | sendEmail | sendEmail | mike gdy message |
mike gdy contactName |
Ocena na poziomie intencji na poziomie intencji odpowiedzi
Klucz | Count | Wyjaśnienie |
---|---|---|
Wyniki prawdziwie dodatnie | 1 | Wypowiedź 1 została prawidłowo przewidziała jako Reply . |
Wyniki fałszywie dodatnie | 1 | Wypowiedź 4 została błędnie przewidziała jako Reply . |
Wyniki fałszywie ujemne | 1 | Wypowiedź 2 została błędnie przewidziała jako sendEmail . |
Precyzja = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 1) = 0.5
Pamiętać = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5
Wynik F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5
Ocena na poziomie intencji sendEmail
Klucz | Count | Wyjaśnienie |
---|---|---|
Wyniki prawdziwie dodatnie | 1 | Wypowiedź 5 została prawidłowo przewidziała jako sendEmail . |
Wyniki fałszywie dodatnie | 1 | Wypowiedź 2 została błędnie przewidziała jako sendEmail . |
Wyniki fałszywie ujemne | 1 | Wypowiedź 4 została błędnie przewidziała jako Reply . |
Precyzja = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 1) = 0.5
Pamiętać = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5
Wynik F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5
Ocena na poziomie intencji dla intencji readEmail
Klucz | Count | Wyjaśnienie |
---|---|---|
Wyniki prawdziwie dodatnie | 1 | Wypowiedź 3 została prawidłowo przewidziała jako readEmail . |
Wyniki fałszywie dodatnie | 0 | -- |
Wyniki fałszywie ujemne | 0 | -- |
Precyzja = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 0) = 1
Pamiętać = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 0) = 1
Wynik F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 1 * 1) / (1 + 1) = 1
Ocena na poziomie jednostki dla jednostki contactName
Klucz | Count | Wyjaśnienie |
---|---|---|
Wyniki prawdziwie dodatnie | 1 | cynthia został poprawnie przewidział jako contactName w wypowiedzi 4. |
Wyniki fałszywie dodatnie | 0 | -- |
Wyniki fałszywie ujemne | 1 | mike został błędnie przewidział, jak message w wypowiedzi 5. |
Precyzja = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 0) = 1
Pamiętać = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5
Wynik F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 1 * 0.5) / (1 + 0.5) = 0.67
Ocena na poziomie jednostki dla jednostki komunikatów
Klucz | Count | Wyjaśnienie |
---|---|---|
Wyniki prawdziwie dodatnie | 2 | thank you very much został poprawnie przewidział, jak message w wypowiedzi 1 i dinner last week was splendid został poprawnie przewidział, jak message w wypowiedzi 4. |
Wyniki fałszywie dodatnie | 1 | mike został błędnie przewidział, jak message w wypowiedzi 5. |
Wyniki fałszywie ujemne | 1 | yes nie przewidywano, jak message w wypowiedzi 2. |
Precyzja = #True_Positive / (#True_Positive + #False_Positive) = 2 / (2 + 1) = 0.67
Pamiętać = #True_Positive / (#True_Positive + #False_Negatives) = 2 / (2 + 1) = 0.67
Wynik F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.67 * 0.67) / (0.67 + 0.67) = 0.67
Ocena na poziomie modelu dla modelu zbiorowego
Klucz | Count | Wyjaśnienie |
---|---|---|
Wyniki prawdziwie dodatnie | 6 | Suma wyników prawdziwie dodatnich dla wszystkich intencji i jednostek. |
Wyniki fałszywie dodatnie | 3 | Suma wyników fałszywie dodatnich dla wszystkich intencji i jednostek. |
Wyniki fałszywie ujemne | 100 | Suma wyników fałszywie ujemnych dla wszystkich intencji i jednostek. |
Precyzja = #True_Positive / (#True_Positive + #False_Positive) = 6 / (6 + 3) = 0.67
Pamiętać = #True_Positive / (#True_Positive + #False_Negatives) = 6 / (6 + 4) = 0.60
Wynik F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.67 * 0.60) / (0.67 + 0.60) = 0.63
Macierz pomyłek
Macierz pomyłek jest macierzą N x N używaną do oceny wydajności modelu, gdzie N jest liczbą jednostek lub intencji. Macierz porównuje oczekiwane etykiety z tymi przewidywanymi przez model. Macierz przedstawia całościowy obraz tego, jak dobrze działa model i jakie rodzaje błędów wykonuje.
Możesz użyć macierzy pomyłek, aby zidentyfikować intencje lub jednostki, które są zbyt blisko siebie i często się mylą (niejednoznaczność). W takim przypadku rozważ scalenie tych intencji lub jednostek razem. Jeśli scalanie nie jest możliwe, rozważ dodanie kolejnych oznaczonych tagami przykładów obu intencji lub jednostek, aby ułatwić modelowi rozróżnienie między nimi.
Wyróżniony ukośny na poniższej ilustracji przedstawia prawidłowo przewidywane jednostki, gdzie przewidywany tag jest taki sam jak rzeczywisty tag.
Możesz obliczyć metryki na poziomie intencji lub na poziomie jednostki i oceny na poziomie modelu z macierzy pomyłek:
- Wartości w przekątnej są wartościami prawdziwie dodatnimi każdej intencji lub jednostki.
- Suma wartości w wierszach intencji lub jednostek (z wyłączeniem przekątnej) jest wynikiem fałszywie dodatnim modelu.
- Suma wartości w kolumnach intencji lub jednostek (z wyłączeniem przekątnej) jest fałszywie ujemna dla modelu.
Podobnie:
- Prawdziwie dodatnie wyniki modelu to suma wyników prawdziwie dodatnich dla wszystkich intencji lub jednostek.
- Wynik fałszywie dodatni modelu jest sumą wyników fałszywie dodatnich dla wszystkich intencji lub jednostek.
- Fałszywie ujemny wynik modelu jest sumą wyników fałszywie ujemnych dla wszystkich intencji lub jednostek.
Wskazówki
Po wytrenowania modelu zobaczysz pewne wskazówki i zalecenia dotyczące ulepszania modelu. Zalecamy, aby model obejmował każdy punkt w sekcji wskazówek.
- Zestaw szkoleniowy ma wystarczającą ilość danych: jeśli intencja lub jednostka ma mniej niż 15 wystąpień oznaczonych etykietami w danych treningowych, może to prowadzić do obniżenia dokładności, ponieważ model nie jest odpowiednio przeszkolony w tej intencji. W takim przypadku rozważ dodanie większej liczby oznaczonych etykietami danych w zestawie treningowym. Należy rozważyć dodanie większej ilości danych oznaczonych etykietami do jednostki, jeśli jednostka ma poznany składnik. Jeśli jednostka jest definiowana tylko przez składniki listy, wstępnie utworzone i regularne, to zalecenie nie ma zastosowania.
- Wszystkie intencje lub jednostki są obecne w zestawie testów: gdy dane testowe nie mają etykiet dla intencji lub jednostki, ocena modelu jest mniej kompleksowa z powodu nietestowanych scenariuszy. Rozważ przetestowanie danych dla każdej intencji i jednostki w modelu, aby upewnić się, że wszystko jest testowane.
- Niejasne rozróżnienie między intencjami lub jednostkami: gdy dane są podobne dla różnych intencji lub jednostek, może to prowadzić do obniżenia dokładności, ponieważ mogą być często błędnie sklasyfikowane jako siebie. Przejrzyj następujące intencje i jednostki i rozważ ich scalenie, jeśli są podobne. W przeciwnym razie dodaj więcej przykładów, aby lepiej je odróżnić od siebie. Aby uzyskać więcej wskazówek, możesz sprawdzić kartę Macierz pomyłek. Jeśli widzisz, że dwie jednostki są stale przewidywane dla tych samych zakresów, ponieważ współużytkują one tę samą listę, wstępnie utworzone lub składniki wyrażeń regularnych, upewnij się, że dodano poznany składnik dla każdej jednostki i upewnij się, że jest to wymagane. Dowiedz się więcej o składnikach jednostki.