Tarkkuus

Englanninkielinen nimitys: precision

Tarkkuudella tarkoitetaan, kuinka monta prosenttia luokkaan luokitellusta datasta oikeasti kuuluu kyseiseen luokaan. Tarkkuutta merkitään usein kirjaimella P.

Teoria

Katso tarkkuuden laskemiseen vaadittavat asiat sekä oletukset sivulta Luokittelumallin laadun mittaamisen kohdasta "Käytännön edellytykset ja oletukset".

Luokan tarkkuus kertoo kuinka monta prosenttia luokkaan luokitelluista datapisteistä kuluu myös kultakannan mukaan kyseiseen luokkaan. Tarkkuus lasketaan jokaiselle luokalle erikseen

Laskentakaava ja arvot

Tarkkuuden laskukaava (merkinnät selitetty sivulla Luokittelumallin laadun mittaaminen):

precision.png

Laskukaavaa katsomalla voidaan todeta seuraavaa:

  • koska tp sekä fp ovat lukumääriä (eli arvot kokonaislukuja välillä [0, [ ) ei tarkkuus voi olla negatiivista
  • Tarkkuuden ääriarvot:
    • Koska osoittajassa on tp ja nimittäjässä on tp + fptp, niin tarkkuus voi olla korkeintaan 1 (kun fp on 0)
    • Kun tp on 0, on myös tarkkuus 0
    • Tarkkuuden vaihteluväli on siis [0, 1]

Käytännön esimerkki

Tarkastellaan malariatestin evaluointia. Tässä tapauksessa meillä on kaksi luokkaa: S (sairaat) ja T (terveet). Luokitin on itse malariatesti. Kultakanta tarkoittaa sitä, että meillä on oikea tieto siitä, onko henkilöllä malaria vaiko ei. Kun testiä testataan, tällainen tieto pitää olla, mutta kun malariatestiä käytetään oikeasti sairaalassa, ei näitä "oikeita vastauksia" ole olemassa, vaan itse testiä halutaan käyttää selvittämään onko henkilöllä malaria vaiko ei.

S -luokan tarkkuus kertoo kuinka monta prosenttia testin mukaan malariaa sairastavista ovat oikeasti sairaita. Vastaavasti T -luokan tarkkuus kertoo kuinka monta prosenttia terveiksi luokitelluista henkilöistä on oikeasti terveitä.

Arvoesimerkkejä ja niiden tulkintaa:

P=1 (100%)
kaikki henkilöt, jotka on luokiteltu sairaiksi ovat oikeasti sairaita, mikä on hyvä asia. Eihän kukaan haluaisi saada diagnoosia malariasta, vaikka hänellä ei sitä ole.

P=0 (0%)
Kaikki sairaiksi luokitellut henkilöt ovat terveitä; ei näin!

P=0.7 (70%)
70% sairaaksi luokitelluista henkilöistä on oikeasti sairaita. Ihan okei.

Huomio!

Tarkkuus kertoo vain kuinka monta sairaiksi luokitelluista on oikeasti sairaita. Jos P=1, niin kaikki sairaiksi luokitellut ovat oikeasti sairaita (jee!), mutta terveiksi luokiteltujen joukossa voi olla lymyilemässä paljonkin sairata (wops...). Tämän vuoksi on tärkeää tarkastella myös terveiden tarkkuutta sekä laskea myös muiden luokkien saanti.

R esimerkki

Luokan 1 tarkkuuden laskeminen. Katso esimerkki sekaannusmatriisin luomisesta sivulta Luokittelumallin laadun mittaaminen.

> col = 1
> # true positive -arvot ovat aina matriisin diagonaalilla
> tp = print(cm[col,col])
[1] 2
> # luokkaan 1 luokitellut datapisteet
> pp = colSums(cm)[1]
> print(pp)
1 
4 
> # tarkkuus luokalle 1
> P1 = tp/pp
> print(P1)
  1 
0.5 

Precision vs. Accuracy

Sekä "precision"- että "accuracy"-termit ovat tavallisesti suomeksi käännettyinä kummatkin "tarkkuus". Sekaannusten välttämiseksi termien käännökset ovat:

  • precision = sisäinen tarkkuus
    kuinka hyvin yhden luokan pisteet luokiteltiin kyseiseen luokkaan
  • accuracy = ulkoinen tarkkuus
    kuinka hyvin ylipäänsä luokitin luokitti datan oikeisiin luokkiin

Ulkoisen tarkkuuden kaava:

accuracy.png

Kun ulkoisen tarkkuuden kaavaa verrataan sisäisen tarkkuuden kaavaan huomataan, että sisäisessä tarkkuudessa lasketaan oikein luokittuneet käsitteet yhdelle luokalle. Ulkoisessa tarkkuudessa taas kyse on ylipäätänsä oikein luokiteltujen määrästä.

Samankaltaiset menetelmät

  • Saanti kertoo kuinka paljon luokituksista osui oikeaan luokkaan
  • F-mitta yhdistää tarkkuuden ja saannin yhteen lukuun

Käytetyt lähteet

Ensimmäinen kommentti

Toinen kommentti

Open kommentti

korjaa "saanti kertoo kuinka paljon luokituksista osui oikeaan luokkaan"

-- SiniPessala - 2012-10-03

Topic attachments
I Attachment Action Size Date Who Comment
GIFgif Accuracy_and_precision-highaccuracylowprecision.gif manage 3.2 K 2012-10-04 - 08:54 UnknownUser  
GIFgif Accuracy_and_precision-highprecisionlowaccuracy.gif manage 3.2 K 2012-10-04 - 08:56 UnknownUser  
PNGpng accuracy.png manage 1.2 K 2012-10-09 - 18:55 UnknownUser  
PNGpng precision.png manage 0.9 K 2012-10-09 - 18:36 UnknownUser  
Topic revision: r6 - 2012-10-10 - AnssiYliJyra
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2018 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback