Wat wordt als “goed” beschouwd? f1-score?
Bij het gebruik van classificatiemodellen in machine learning is een veelgebruikte maatstaf die we gebruiken om de modelkwaliteit te evalueren de F1-score .
Deze statistiek wordt als volgt berekend:
F1-score = 2 * (Precisie * Recall) / (Precisie + Recall)
Goud:
- Nauwkeurigheid : corrigeer positieve voorspellingen ten opzichte van het totale aantal positieve voorspellingen
- Herinnering : positieve voorspellingen corrigeren ten opzichte van het totale aantal werkelijke positieve resultaten
Stel dat we bijvoorbeeld een logistisch regressiemodel gebruiken om te voorspellen of 400 verschillende universiteitsbasketbalspelers wel of niet zullen worden opgeroepen voor de NBA.
De volgende verwarringsmatrix vat de voorspellingen van het model samen:

Zo berekent u de F1-score van het model:
Nauwkeurigheid = waar positief / (waar positief + fout positief) = 120/ (120+70) = 0,63157
Terugroepen = waar positief / (waar positief + fout negatief) = 120 / (120+40) = 0,75
F1-score = 2 * (.63157 * .75) / (.63157 + .75) = . 6857
Wat is een goede F1-score?
Een vraag die studenten vaak stellen is:
Wat is een goede score in de F1?
Simpel gezegd: hogere F1-scores zijn over het algemeen beter.
Bedenk dat F1-scores kunnen variëren van 0 tot 1, waarbij 1 een model vertegenwoordigt dat elke waarneming perfect in de juiste klasse classificeert en 0 een model vertegenwoordigt dat niet in staat is een waarneming in de juiste klasse te classificeren.
Om dit te illustreren, veronderstellen we dat we een logistisch regressiemodel hebben dat de volgende verwarringsmatrix oplevert:

Zo berekent u de F1-score van het model:
Nauwkeurigheid = waar positief / (waar positief + fout positief) = 240/ (240+0) = 1
Terugroepen = waar positief / (waar positief + fout negatief) = 240 / (240+0) = 1
F1-score = 2 * (1 * 1) / (1 + 1) = 1
De F1-score is gelijk aan één omdat deze elk van de 400 waarnemingen perfect in een klasse kan indelen.
Beschouw nu een ander logistisch regressiemodel dat eenvoudigweg voorspelt dat elke speler zal worden opgeroepen:

Zo berekent u de F1-score van het model:
Nauwkeurigheid = waar positief / (waar positief + fout positief) = 160/ (160+240) = 0,4
Terugroepen = waar positief / (waar positief + fout negatief) = 160 / (160+0) = 1
F1-score = 2 * (.4 * 1) / (.4 + 1) = 0.5714
Dit zou worden beschouwd als een basismodel waarmee we ons logistische regressiemodel zouden kunnen vergelijken, aangezien het een model vertegenwoordigt dat dezelfde voorspelling doet voor elke waarneming in de dataset.
Hoe hoger onze F1-score wordt vergeleken met een referentiemodel, hoe nuttiger ons model is.
Bedenk dat ons model een F1-score van 0,6857 had. Dit is niet veel hoger dan 0,5714 , wat aangeeft dat ons model nuttiger is dan een basismodel, maar niet zozeer.
Over het vergelijken van F1-scores
In de praktijk gebruiken we doorgaans het volgende proces om het ‘beste’ model voor een classificatieprobleem te selecteren:
Stap 1: Pas een referentiemodel toe dat voor elke waarneming dezelfde voorspelling doet.
Stap 2: Pas verschillende classificatiemodellen toe en bereken voor elk model de F1-score.
Stap 3: Kies het model met de hoogste F1-score als het „beste“ model en controleer of dit een hogere F1-score oplevert dan het referentiemodel.
Er wordt geen specifieke waarde beschouwd als een ‘goede’ F1-score, dus kiezen we doorgaans voor het classificatiemodel dat de hoogste F1-score oplevert.
Aanvullende bronnen
F1-score versus nauwkeurigheid: welke moet u gebruiken?
Hoe de F1-score in R te berekenen
Hoe de F1-score in Python te berekenen