# Strojno učenje Micro-F1 i Macro-F1 detaljno

Machine Learning Micro F1



Detaljno objašnjenje mikro-F1 i makro-F1

Sažetak

F1-rezultat: To je indeks koji se koristi za mjerenje točnosti binarnog klasifikacijskog modela u statistici, a koristi se za mjerenje točnosti neuravnoteženih podataka. Također se uzima u obzir točnost i opoziv klasifikacijskog modela. F1-rezultat može se smatrati ponderiranim prosjekom točnosti i opoziva modela. Njegova je maksimalna vrijednost 1, a minimalna 0.

Ako želite izračunati F1-rezultat modela, u problemu više klasifikacije postoje dvije metode izračuna, naime mikro-F1 i makro-F1. Ove dvije metode izračuna jednake su metodama izračuna F1-bodova u dvije klasifikacije. Stoga su u problemu s dvije kategorije izračun mikro-F1 = makro-F1 = F1-rezultat, mikro-F1 i makro-F1 dvije metode izračuna multi-kategorije F1-rezultata



Pretpostavimo da postoje sljedeća tri rezultata klasifikacije:
slika
Prema gornjim rezultatima, možemo dobiti sljedeće rezultate (svaka kategorija u višekategoriji ima Precision, Recall i F1-score):
1 : 〖Preciznost〗 _1 = a / (a ​​+ d + g) , 〖Opoziv〗 _1 = a / (a ​​+ b + c) 2 : 〖Preciznost〗 _2 = e / (b + e + h) , Opoziv 〗 _2 = e / (d + e + f) 3 : 〖Preciznost〗 _3 = i / (c + f + i) , 〖Opoziv〗 _3 = i / (g + h + i) F1-rezultat: F_1 = 2 / (1 / opoziv + 1 / preciznost) = 2 (opoziv × preciznost) / (opoziv + preciznost)
Dvije metode izračuna F1 rezultata više kategorija:



mikro-F1:

Rasponi : (0, 1) ;
Primjenjivo okruženje : Višekategorija je neuravnotežena. Izuzetno neuravnoteženi podaci utjecat će na rezultate
Izračun:
〖Pozovi〗 _mi = (TP_1 + TP_2 + TP_3) / (TP_1 + TP_2 + TP_3 + FN_1 + FN_2 + FN_3) ; 〖Preciznost〗 _mi = (TP_1 + TP_2 + TP_3) / (TP_1 + TP_2 + TP_3 + FP_1 + FP_2 + FP_3) mikro F1score = 2 (〖Opoziv〗 _mi × 〖Preciznost〗 _mi) / (〖Opoziv〗 _mi + 〖Preciznost〗 _mi)
TPi znači da se pozitivno pozitivna klasa i-te klase ocjenjuje kao pozitivna
FPi znači da je lažno pozitivni negativni razred i-te klase ocijenjen kao pozitivan
TNi se odnosi na pozitivno negativnu klasu i-te klase koja se ocjenjuje kao negativna
FNi znači da se lažni negativ i-te kategorije ocjenjuje kao negativna kategorija.



Pretpostavimo da postoje sljedeća tri rezultata klasifikacije:
Matrica zbrke Real1 2 3Predict 1 a d g2 b e h3 c f i
Iz ove tablice možemo dobiti:
Za prvu kategoriju: FP1 = d + g TP1 = a FN1 = b + c TN1 = e + f + h + i
Za kategoriju 2: FP2 = b + h TP2 = e FN2 = d + f TN2 = a + c + g + i
Za kategoriju 3: FP3 = c + f TP3 = i FN3 = g + h TN3 = a + b + d + e

Za mikro-F1, Mirco-ova metoda izračuna kombinira opoziv i preciznost, pa:

za mikro-opoziv : Stopa opoziva je (TP1 + TP2 + TP3) / (TP1 + TP2 + TP3 + FN1 + FN2 + FN3), odnosno tri kategorije TP i FN zbrajaju se zajedno kao nazivnik, a TP je brojnik. Iz analize gornje formule vidimo da je TP1 + TP2 + TP3 = a + e + i FN1 + FN2 + FN3 = b + c + d + f + g + h (to jest, prisvojni elementi osim TP), pa dobivamo slika
za mikro-preciznost : Točnost je (TP1 + TP2 + TP3) / (TP1 + TP2 + TP3 + FP1 + FP2 + FP3), može se dobiti isto, TP1 + TP2 + TP3 = a + e + i FP1 + FP2 + FP3 = d + g + b + h + c + f (tj. prisvojni, osim TP), dobivamo
slika
Zatim, prema metodi izračuna mikro F1-rezultata:
slika
I, za točnost modela Točnost , Definirano kao udio ispravno klasificiranih uzoraka u svim uzorcima. Dakle, formula za točnost
Acc = (a + e + i) / (a ​​+ b + c + d + e + f + g + h + i)
sredstva:
slika
Na temelju toga možemo izvući zaključak: ako je micro-F1 = 0,5, stopa točnosti modela Acc = 0,5, Precision i Recall su oba 0,5, ali ne možemo zaključiti da model u osnovi ovisi o pogađanju Zaključka, jer ako tri klasifikacijska rezultata su sljedeća:
〖F1-rezultat〗 _i = 2 (〖Opoziv〗 _i × 〖Preciznost〗 _i) / (〖Opoziv〗 _i + 〖Preciznost〗 _i) ; makro F1 rezultat = (〖F1-rezultat〗 _1 + 〖F1-rezultat〗 _2 + 〖F1- ocjena〗 _3) / 3Acc = (a + e + i) / (a ​​+ b + c + d + e + f + g + h + i) = micro-F1 = Precision_mi = Recall_mi = 0,5



makro-F1:

Rasponi : (0, 1) ;
Primjenjivo okruženje : Problem s više klasifikacija, na koji ne utječe neravnoteža podataka, lako utječe na kategorije s velikom prepoznatljivošću (visok opoziv, visoka preciznost)
Metoda izračuna
1 : 〖Opoziv〗 _1 = 〖TP〗 _1 / (〖TP〗 _1 + 〖FN〗 _1) 〖〖Preciznost〗 _1 = 〖TP〗 _1 / (〖TP〗 _1 + 〖FP〗 _1) ; F1-rezultat score _1 = (2 〖TP〗 _1) / (〖2TP〗 _1 + 〖FP〗 _1 + 〖FN〗 _1) 2 : 〖Opoziv〗 _2 = 〖TP〗 _2 / (〖TP〗 _2 + 〖FN〗 _2) ; 〖Preciznost〗 _2 = 〖TP〗 _2 / (〖TP〗 _2 + 〖FP〗 _2) ; 〖F1-rezultat〗 _1 = (2 〖TP〗 _1) / (〖2TP〗 _1 + 〖FP〗 _1 + 〖FN〗 _1) 3: 〖Pozovi 〗 _3 = 〖TP〗 _3 / (〖TP〗 _3 + 〖FN〗 _3) ; 〖Preciznost〗 _3 = 〖TP〗 _3 / (〖TP〗 _3 + 〖FP〗 _3) ; 〖F1-rezultat〗 _1 = (2 〖 TP〗 _1) / (〖2TP〗 _1 + 〖FP〗 _1 + 〖FN〗 _1)

makro-F1 ima Dvije metode izračuna

1. Prvo pronađite makro-opoziv i makro-preciznost, a zatim pronađite makro-F1 iz zbroja ove dvije
2. Izravno prosječite F1-rezultat u tri kategorije.

U paketu sklearn koristi se druga metoda. Korištenje dviju metoda uvijek je bilo kontroverzno, ali u 'Algoritmi treninga za linearne klasifikatore teksta (Lewis, David D. i dr.' Algoritmi za obuku linearnih klasifikatora teksta. 'SIGIR. Vol. 96. 1996.)', autor je istaknuo da je makro-F1 prosječna vrijednost F1-rezultata u svim razredima, tj Drugi način Tako se izračunava makro-F1.

Također možemo analizirati dvije metode prosječenja. Prva metoda nije vrlo osjetljiva na raspodjelu pogrešaka. 'Vidi članak (Opitz, Juri i Sebastian Burst.' Makro F1 i Makro F1. 'ArXiv pretisak arXiv: 1911.03347 (2019))', ovo je pomalo poput mikro-F1, a drugu metodu preporučuju autori knjige iznad radova.

Slično tome, analiziramo svaku kategoriju pokazatelja:
Za prvu kategoriju: FP1 = d + g TP1 = a FN1 = b + c TN1 = e + f + h + i
Za kategoriju 2: FP2 = b + h TP2 = e FN2 = d + f TN2 = a + c + g + i
Za kategoriju 3: FP3 = c + f TP3 = i FN3 = g + h TN3 = a + b + d + e
macro-F1 = (〖F1-rezultat〗 _1 + 〖F1-rezultat〗 _2 + 〖F1-rezultat〗 _3) / 3 = ((2 〖TP〗 _1) / (〖2TP〗 _1 + 〖FP〗 _1 + 〖FN〗 _1) + (2 TP TP 2 _2) / (〖2TP〗 _2 + 〖FP〗 _2 + 〖FN〗 _2) + (2 〖TP〗 _3) / (〖2TP〗 _3 + 〖FP〗 _3 + 〖FN〗 _3)) / 3 = (2a / (2a + b + c + d + g) + 2e / (2e + b + d + f + h) + 2i / (2i + c + f + g + h)) / 3
Unesite gornju vrijednost u makro-F1 da biste dobili:
slika
Gornja formula je formula makro-F1 (nisam je nastavio pojednostavljivati ​​i nisam osjećao ništa)

Ako je vrijednost = 0,5, ne može se dobiti koristan zaključak.

ponderirani-F1

Uz mikro-F1 i makro-F1, postoji i ponderirani-F1, što je rezultat množenja F1-rezultata s udjelom u klasi i zatim dodavanja. Također se može smatrati varijantom makro-F1. Npr .:
slika
Za gornju tablicu možemo dobiti preciznost, opoziv i F1-rezultat:
ponderirano-F1 = (6 × 42,1% + 10 × 30,8% + 9 × 66,7%) / (4 + 6 + 3 + 1 + 2 + 0 + 1 + 2 + 6) = 46,4%
Dakle, za ponderirani F1:
slika

Slično tome, možemo izračunati i ponderiranu preciznost i ponderirani opoziv:

Zapravo, također možemo vidjeti iz gore navedenog, ponderirani-F1 Nije jednako izračunavanju ponderiranom preciznošću i ponderiranom opozivu Ponderirano-F1 (Ovdje se radi korištenja velikih slova), iz istog razloga, pozovite na dvije metode izračuna makronaredbe. Općenito Prvi Kao rezultat.

ponderirani-F1 i makro-F1 razlika To je: makro-F1 daje svaku kategoriju isto Ponderirano, dok ponderirano-F1 Prema udjelu svake kategorije Dajte različite težine.

Ugađanje

na bodovanje upotreba:

Prilikom podešavanja mreže, konstruirajte GridSearchCV. Općenito, standard bodovanja za dvije klasifikacije je roc_auc, a višestruka klasifikacija ne pruža metodu bodovanja za područje krivulje roc, tako da u više klasifikaciji možemo koristiti

grid_search = GridSearchCV(lg, n_jobs=-1, scoring='f1_weighted', param_grid=param_dist, cv=10, verbose=5)

Pričekajte da metoda bodovanja podesi parametre, a različite metode bodovanja utjecati će na rezultate.
Postoji više načina za postizanje rezultata izvršavanjem ove dvije linije koda:

import sklearn.metrics as sm print(sorted(sm.SCORERS.keys()))

Ako pogriješite, kontaktirajte me na vrijeme kako biste izbjegli nesporazum.

Referenca (potreban je znanstveni pristup Internetu):
https://towardsdatascience.com/multi-class-metrics-made-simple-part-i-precision-andrecall-9250280bddc2
https://towardsdatascience.com/multi-class-metrics-made-simple-part-ii-the-f1-score-ebe8b2c2ca1