Metriky vyhodnocení pro modely rozpoznávání vlastních pojmenovaných entit
Datová sada je rozdělená na dvě části: sadu pro trénování a sadu pro testování. Trénovací sada se používá k trénování modelu, zatímco testovací sada se používá jako test modelu po trénování k výpočtu výkonu a vyhodnocení modelu. Testovací sada se do modelu nevejde prostřednictvím trénovacího procesu, aby se zajistilo, že je model testován na nových datech.
Vyhodnocení modelu se aktivuje automaticky po úspěšném dokončení trénování. Proces vyhodnocení začíná použitím natrénovaného modelu k predikci uživatelem definovaných entit pro dokumenty v testovací sadě a porovná je s poskytnutými datovými značkami (které stanoví směrný plán pravdy). Výsledky se vrátí, abyste mohli zkontrolovat výkon modelu. Pro vyhodnocení používá vlastní NER následující metriky:
Přesnost: Měří, jak přesný/přesný model je. Jedná se o poměr mezi správně identifikovanými pozitivními výsledky (pravdivě pozitivními výsledky) a všemi identifikovanými pozitivními výsledky. Metrika přesnosti ukazuje, kolik predikovaných entit je správně označeno.
Precision = #True_Positive / (#True_Positive + #False_Positive)
Úplnost: Měří schopnost modelu předpovědět skutečné kladné třídy. Jedná se o poměr mezi predikovanými pravdivě pozitivními výsledky a skutečným příznakem. Metrika úplnosti ukazuje, kolik predikovaných entit je správné.
Recall = #True_Positive / (#True_Positive + #False_Negatives)
F1 skóre: Skóre F1 je funkce přesnosti a úplnosti. Je potřeba, když hledáte rovnováhu mezi přesností a úplností.
F1 Score = 2 * Precision * Recall / (Precision + Recall)
Poznámka:
Skóre přesnosti, úplnosti a F1 se počítá pro každou entitu samostatně (vyhodnocení na úrovni entity) a pro model souhrnně (vyhodnocení na úrovni modelu).
Metriky vyhodnocení na úrovni modelu a na úrovni entity
Skóre přesnosti, úplnosti a F1 se počítá pro každou entitu samostatně (vyhodnocení na úrovni entity) a pro model souhrnně (vyhodnocení na úrovni modelu).
Definice přesnosti, úplnosti a vyhodnocení jsou stejné pro vyhodnocení na úrovni entity i na úrovni modelu. Počty pravdivě pozitivních výsledků, falešně pozitivních výsledků a falešně negativních výsledků se ale můžou lišit. Představte si například následující text.
Příklad
První stranou této smlouvy je John Smith, rezident 5678 Hlavní Rd., Město Fredericka, stát Nebraska. A druhá strana je Forrest Ray, rezident 123-345 Integer Rd., Město Corona, stát Nové Mexiko. Tam je také Fannie Thomas rezident 7890 River Road, město Colorado Springs, stát Colorado.
Model extrahování entit z tohoto textu může mít následující předpovědi:
Entity | Predikováno jako | Skutečný typ |
---|---|---|
John Smith | Osoba | Osoba |
Frederik | Osoba | City |
Forrest | City | Osoba |
Fannie Thomas | Osoba | Osoba |
Colorado Springs | Město | Město |
Vyhodnocení na úrovni entity pro entitu osoby
Model by měl pro entitu osoby následující vyhodnocení na úrovni entity:
Klíč | Počet | Vysvětlení |
---|---|---|
Pravdivě pozitivní | 2 | John Smith a Fannie Thomas byli správně předpovězeni jako osoba. |
Falešně pozitivní výsledek | 0 | Frederick byl nesprávně předpovězen jako člověk , zatímco by měl být město. |
Falešně negativní | 0 | Forrest byl nesprávně předpovězen jako město , zatímco by měl být osoba. |
- Přesnost:
#True_Positive / (#True_Positive + #False_Positive)
=2 / (2 + 1) = 0.67
- Vzpomeňte si:
#True_Positive / (#True_Positive + #False_Negatives)
=2 / (2 + 1) = 0.67
- F1 Skóre:
2 * Precision * Recall / (Precision + Recall)
=(2 * 0.67 * 0.67) / (0.67 + 0.67) = 0.67
Vyhodnocení na úrovni entit pro entitu města
Model by měl pro entitu města následující vyhodnocení na úrovni entity:
Klíč | Počet | Vysvětlení |
---|---|---|
Pravdivě pozitivní | 0 | Colorado Springs bylo správně předpovězeno jako město. |
Falešně pozitivní výsledek | 0 | Forrest byl nesprávně předpovězen jako město , zatímco by měl být osoba. |
Falešně negativní | 0 | Frederick byl nesprávně předpovězen jako člověk , zatímco by měl být město. |
- Přesnost =
#True_Positive / (#True_Positive + #False_Positive)
=1 / (1 + 1) = 0.5
- Odvolat =
#True_Positive / (#True_Positive + #False_Negatives)
=1 / (1 + 1) = 0.5
- F1 Score =
2 * Precision * Recall / (Precision + Recall)
=(2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5
Vyhodnocení na úrovni modelu pro kolektivní model
Model by pro model měl v plném rozsahu následující vyhodnocení:
Klíč | Počet | Vysvětlení |
---|---|---|
Pravdivě pozitivní | 3 | John Smith a Fannie Thomas byli správně předpovězeni jako osoba. Colorado Springs bylo správně předpovězeno jako město. Toto je součet pravdivě pozitivních hodnot pro všechny entity. |
Falešně pozitivní výsledek | 2 | Forrest byl nesprávně předpovězen jako město , zatímco by měl být osoba. Frederick byl nesprávně předpovězen jako člověk , zatímco by měl být město. Toto je součet falešně pozitivních výsledků pro všechny entity. |
Falešně negativní | 2 | Forrest byl nesprávně předpovězen jako město , zatímco by měl být osoba. Frederick byl nesprávně předpovězen jako člověk , zatímco by měl být město. Toto je součet falešně negativních výsledků pro všechny entity. |
- Přesnost =
#True_Positive / (#True_Positive + #False_Positive)
=3 / (3 + 2) = 0.6
- Odvolat =
#True_Positive / (#True_Positive + #False_Negatives)
=3 / (3 + 2) = 0.6
- F1 Score =
2 * Precision * Recall / (Precision + Recall)
=(2 * 0.6 * 0.6) / (0.6 + 0.6) = 0.6
Interpretace metrik vyhodnocení na úrovni entit
Co tedy vlastně znamená mít pro určitou entitu vysokou přesnost nebo vysokou úplnost?
Odvolat | Počet deset. míst | Interpretace |
---|---|---|
Vysoká | Vysoká | Tato entita je dobře zpracována modelem. |
Malý zájem | Velký zájem | Model nemůže tuto entitu vždy extrahovat, ale pokud je s vysokou jistotou. |
Vysoká | Nízká | Model tuto entitu dobře extrahuje, ale je s nízkou spolehlivostí, protože se někdy extrahuje jako jiný typ. |
Nízká | Nízká | Tento typ entity je modelem špatně zpracován, protože se obvykle extrahuje. Pokud je, není to s vysokou jistotou. |
Pokyny
Po vytrénování modelu se zobrazí některé pokyny a doporučení, jak model vylepšit. Doporučujeme mít model, který pokrývá všechny body v části s pokyny.
Trénovací sada obsahuje dostatek dat: Pokud má typ entity v trénovacích datech méně než 15 označených instancí, může to vést k nižší přesnosti kvůli tomu, že v těchto případech není model odpovídajícím způsobem trénován. V tomto případě zvažte přidání dalších označených dat do trénovací sady. Další pokyny najdete na kartě distribuce dat.
Všechny typy entit jsou přítomné v testovací sadě: Pokud testovací data nemají popisované instance pro typ entity, může být výkon testu modelu méně komplexní kvůli neotestovaným scénářům. Další pokyny najdete na kartě distribuce dat testovací sady.
Typy entit jsou vyváženy v rámci trénovacích a testovacích sad: Pokud předsudky vzorkování způsobí nepřesnou reprezentaci frekvence typu entity, může vést k nižší přesnosti kvůli modelu, který očekává, že se typ entity vyskytuje příliš často nebo příliš málo. Další pokyny najdete na kartě distribuce dat.
Typy entit jsou rovnoměrně rozdělené mezi trénovací a testovací sady: Pokud se kombinace typů entit neshoduje mezi trénovacími a testovacími sadami, může vést k nižší přesnosti testování kvůli tomu, že se model trénuje odlišně od toho, jak se testuje. Další pokyny najdete na kartě distribuce dat.
Nejasný rozdíl mezi typy entit v trénovací sadě: Pokud jsou trénovací data podobná pro více typů entit, může to vést k nižší přesnosti, protože typy entit můžou být často nesprávně klasifikované jako navzájem. Zkontrolujte následující typy entit a zvažte jejich sloučení, pokud jsou podobné. V opačném případě přidejte další příklady, abyste je lépe odlišili od sebe. Další pokyny najdete na kartě matoucí matice .
Matice zmatku
Konfuzní matice je N x N matice používaná pro vyhodnocení výkonu modelu, kde N je počet entit. Matice porovnává očekávané popisky s těmi, které model predikoval. Tím získáte ucelený přehled o tom, jak dobře model funguje a jaké druhy chyb provádí.
Konfuzní matici můžete použít k identifikaci entit, které jsou příliš blízko sebe a často se mýlí (nejednoznačnost). V tomto případě zvažte sloučení těchto typů entit dohromady. Pokud to není možné, zvažte přidání dalších označených příkladů obou entit, které modelu pomáhají rozlišovat mezi nimi.
Zvýrazněná diagonála na obrázku níže je správně předpovězené entity, kde je předpovězená značka stejná jako skutečná značka.
Metriky vyhodnocení na úrovni entit a na úrovni modelu můžete vypočítat z konfuzní matice:
- Hodnoty v diagonále jsou skutečné kladné hodnoty každé entity.
- Součet hodnot v řádcích entity (s výjimkou diagonály) je falešně pozitivní výsledek modelu.
- Součet hodnot ve sloupcích entity (s výjimkou diagonály) je falešně negativní hodnota modelu.
Podobně,
- Pravdivě pozitivní výsledek modelu je součet pravdivě pozitivních pro všechny entity.
- Falešně pozitivní výsledek modelu je součet falešně pozitivních výsledků pro všechny entity.
- Falešně negativní hodnota modelu je součet falešně negativních výsledků pro všechny entity.