• No results found

5.1 Algoritmernas prestationsmått

Algoritm A1 (GLR) var den algoritm som presterade bäst för alla tre prestationsmått, 𝐹1, 𝐹0,5 och 𝐹2. För fallet 𝛽 = 1, vilket innebar att precision och recall viktades lika, blev resultat blev 𝐹1 = 0,93. Detta berodde på att 15 av de 18 brytpunkterna identifierades korrekt (recall = 15/18 = 0,83) samtidigt som algoritmen inte markerade ut någon dag felaktigt som läcka (precision = 1). Vid kalibrering mot 𝐹0,5 och 𝐹2 ändrades inte vilka punkter som algoritm A1 flaggade, vilket innebar att algoritmens precision och recall var samma för samtliga tre prestationsmått. För måttet 𝐹0,5 som viktar precision dubbelt så högt som recall blev därför 𝐹0,5 = 0,96, d.v.s. högre än 𝐹1 och för 𝐹2, som viktar recall dubbelt så högt som precision blev 𝐹2 = 0,86, d.v.s. lägre. Med andra ord var algoritm A1 en algoritm som var bra på att inte ge falsklarm, utan varje gång den flaggade en dag som läcka så var det en korrekt identifiering (precision). Utöver det var den även relativt bra på att inte missa några läckor (recall).

Algoritm A2 (residualkvadratsumma) presterade näst bäst av alla algoritmer för prestationsmått 𝐹1 och 𝐹0,5 och tredje bäst för 𝐹2. Resultatet för 𝛽 = 1 blev 𝐹1 = 0,84, vilket motsvarade att 13 av 18 brytpunkter identifierades korrekt (recall = 0,72) utan att generera några falsklarm (precision = 1). För viktningen 𝛽 = 0,5 blev recall och precision samma som i 𝐹1-fallet, vilket gjorde att prestationsmåttet blev högre, 𝐹0,5 = 0,93. För 𝛽 = 2 ändrades flaggningen av datapunkter något vilket resulterade i 𝐹2 = 0,8. Algoritm A2 presterar på samma sätt som A1, d.v.s. att den är bra på att inte generera några falsklarm samtidigt som den är relativt bra på att hitta många av brytpunkterna.

Algoritm A3 (anomalidetektion) var den algoritm som presterade sämst för alla prestationsmått 𝐹1, 𝐹0,5

och 𝐹2. Dess bästa resultat för 𝛽 = 1, blev 𝐹1 = 0,69, då algoritmen upptäckte 11 av 18 brytpunkter (recall = 0,61) samtidigt som tre falsklarm genererades (precision = 0,79). För övriga prestationsmått blev 𝐹0,5 = 0,74 och 𝐹2 = 0,64, vilket också visar på att algoritmen hade svårt att uppnå höga värden för recall, d.v.s. att hitta alla faktiska brytpunkter.

Algoritm A4 (klusteranalys) var tredje bäst då 𝛽 = 1, vilket gav resultatet 𝐹1 = 0,80. För denna kalibrering upptäcktes 16 av 18 brytpunkter i dataserien, vilket var det högsta värdet på recall för någon algoritm (recall = 0,89), men samtidigt genererades även 6 falsklarm (precision = 0,73). För 𝛽 = 0,5 och blev prestationsmåttet 𝐹0,5 = 0,77 vilket var näst sämst, men för 𝛽 = 2 blev 𝐹2 = 0,85, vilket var näst bäst och endast 0,01 ifrån den bästa algoritmen (A1). Algoritm A4 var bra på att uppnå höga värden på recall, men med relativt låg precision drogs samtliga prestationsmått ner.

Algoritm A5 (differens) var näst sämst för 𝛽 = 1 med ett 𝐹1 = 0,71, vilket innebar att algoritmen korrekt identifierade 12 av 18 brytpunkter i dataserien (recall = 0,67) men också hade 6 falsklarm (precision = 0,75). Det viktade prestationsmåttet 𝐹0,5= 0,81 var däremot tredje störst bland algoritmerna på grund av algoritmens förmåga att nå höga värden på precision. Prestationsmåttet med viktning i fördel till recall blev dock lägre 𝐹2 = 0,73 på grund av att höga värden på recall inte kunde nås utan att precision blev lidande.

Stapeldiagrammet i Figur 36 ger en bra översiktsbild av dessa resultat. För algoritm A1, A2 och A3 ses att staplarna ”lutar nedåt åt höger”, d.v.s. att 𝐹-score är bra när precision värdesätts högst och blir sämre när viktningsfaktorn 𝛽 ökar till fördel för recall (𝐹1 respektive 𝐹2). Dessa algoritmer är bra på att undvika att generera falsklarm. I motsats till dessa går det att se att staplarna för algoritm A4 ”lutar nedåt åt vänster”, vilket innebär motsatsen, att algoritmen presterar bättre om det är viktigare att hitta så många brytpunkter som möjligt på bekostnad av fler falsklarm. Dock är det viktigt att poängtera att t.ex. A1 trots motsatt ”lutning” jämfört med A4 fortfarande får högre värde på 𝐹2 vilket innebär att denna algoritm presterar bättre med denna viktning av precision och recall ändå. Algoritm A3 presterar dock bättre för 𝛽 = 2 än algoritm A2.

5.2 Algoritmernas upptäckningstid

Upptäckningstiden beräknades för varje testfall och algoritm genom att välja den kortaste upptäckningstiden bland de parameterkombinationer som gav högst 𝐹-score. Algoritm A3 (anomalidetektion) har alltid upptäckningstid noll eftersom den endast undersöker varje dag en gång, så om en brytpunkt identifieras inträffar det antingen samma dag eller aldrig alls. Algoritm A5 (differens) är liknande A3 i detta avseende och kommer också alltid att ha upptäckningstid noll.

Anledningen till detta är att A5:s testmått för en potentiell brytpunkt är konstant för alla fönster då et endast beror av differensen mellan aktuell dag och föregående dag (fönsterlängden 𝐹 är inte en variabel i formeln för testmåttet 𝑇). Det är även därför kalibreringen för A5 inte beror av fönsterstorlek utan endast tröskelvärde (Figur 34).

De andra algoritmerna (A1, A2 och A4) däremot får ett högre testmått ju närmare mitten i fönstret en brytpunkt är, se t.ex. Figur 7 för algoritm A1. Algoritmerna blir säkrare på att en brytpunkt existerar om de har fler datapunkter tillgängliga på vardera sida om brytpunkten. Ett lågt tröskelvärde gör att en brytpunkt identifieras snabbare för dessa algoritmer, men leder samtidigt till sämre precision, d.v.s. att fler falsklarm genereras. I detta arbete kalibrerades inte algoritmerna för att minimera upptäckningstiden direkt, eftersom att detektionstid inte är inkorporerat prestationsmåttet 𝐹-score, men som tidigare sagt valdes alltid den kortaste upptäckningstiden bland de kombinationer som hade högst F-score. Det är möjligt att det går att definiera ett nytt prestationsmått där upptäckningstid ingår som parameter utöver endast precision och recall och kalibrera mot detta, men det gjordes inte i denna rapport.

Algoritm A1 som presterade väldigt bra för precision hade också en längre upptäckningstid för många testfall, vilket är kostnaden för hög precision. Det går också att se hur algoritm A4 får markant längre upptäckningstid för testfallet där precision värdesätts högre (𝛽 = 0,5). Upptäckningstiden ökade alltså som en konsekvens av att algoritmen kalibrerades mot ett testfall där precision värdesattes högre.

5.3 Precision och recall

Det finns en balansgång mellan precision och recall och vilken av dessa som är viktigast för en läckidentifieringsalgoritm är inte helt lätt att svara på. Dels är det viktigt att algoritmen inte genererar för många falsklarm, d.v.s. att algoritmen har hög precision men samtidigt behöver recall vara högt för att algoritmen inte ska missa läckor som inträffar. Vid en verklig implementering av läckidentifieringsalgoritmer behöver förmodligen olika viktningar testas för att ta reda på vilken som fungerar bäst i praktiken. Flaggningar för en algoritm som väldigt ofta ger falsklarm (låg precision) kommer inte tas seriöst eftersom den oftast har fel, även om algoritmen samtidigt är väldigt bra på att inte missa någon läcka. På samma sätt skulle en algoritm som aldrig ger falsklarm, men som missar vissa läckor inte heller fungera bra.

5.4 Algoritmrobusthet

Resultatet för robusthetsmåttet 𝑅 (Figur 21) visar att sannolikheten att gissa rätt brytpunkt för olika stegstorlekar är identisk för algoritm A1 och A2 vars kurvor överlappar helt. Kurvan för algoritm A3 har flackare lutning än A1 och A2:s kurvor för små stegstorlekar men vid stegstorlekar större än ungefär 𝑆 = 3,5 korsar kurvan för A3 den för A1 och A2, vilket innebär att algoritm A3 presterar bäst av alla fram tills dess att samtliga algoritmer konvergerar mot 100 % vid stegstorlek cirka 𝑆 = 6. Algoritm A5 har markant lägre sannolikhet att hitta rätt brytpunktstillfälle och sannolikheten ökar inte i samma takt som för det andra algoritmerna när stegstorleken ökas.

I figuren för algoritmrobusthetsmått 𝑅 går det att se att algoritmers kurvor börjar på en sannolikhet för rätt brytpunktstillfälle 𝑅 = 5 % när stegstorleken är noll (se Figur 21). Detta beror helt enkelt på att testet utfördes på en tidsserie bestående av 20 punkter och att algoritmerna därför har 1

20 = 5 % chans att gissa rätt brytpunktstillfälle från slumpen. Algoritm A4 (klusteranalys) har dock för de minsta stegstorlekarna en sannolikhet som snarare är nära noll, vilket alltså är lägre än en algoritm som bara slumpvis väljer brytpunktstillfälle. Anledningen till detta kommer från hur A4 implementerades, vilket var att den valde första tillfället där klustertillhörigheten förändrats (första ettan i klustervektorn efter att differensen och absolutbeloppet tagits). För små stegstorlekar kommer klustervektorn att vara helt blandad och det troliga utfallet blir att den första förändringen i klustertillhörighet inträffar mycket tidigare än vid k = 10.

I detta arbete testades endast robustheten på artificiella tidsserier bestående av 20 datapunkter. Detta motsvarar alltså i någon mening ett fönster med fönsterlängd 20 och det kan vara intressant att se om resultatet skiljer sig ifall antalet datapunkter förändras från 20 till något annat. Utöver det skulle brytpunktstillfället 𝑟 = 10 kunna varieras för att se om algoritmerna presterar olika i det fallet, flera av algoritmerna (A1, A2) har t.ex. svårare att hitta brytpunkter som är långt till vänster eller höger i fönstret.

5.5 Förslag för framtida studier

En möjlig förbättring av algoritmerna A1, A2 och A4 kan vara att för varje fönster leta efter och markera fler brytpunkter än endast en. Detta kan ske genom att efter att den första brytpunkten hittats, testmåttet

I detta arbete testades algoritmerna endast på en dataserie bestående av riktig data. Dessutom existerade endast 18 brytpunkter för denna datamängd vilket gör att det finns viss osäkerhet i prestationsmåttens resultat. Om vidare undersökning görs av dessa algoritmer vore det bra att testköra algoritmerna på många fler dataserier så att dataunderlaget totalt sett blir större och innehåller fler brytpunkter. Serien Knutby valdes för att den ansågs ha relativt många läckor, med varierande storlek, som pågick under både korta och långa tidsperioder. Det är dock möjligt att brytpunkternas karaktär i denna dataserie på ett eller annat sätt gynnade eller missgynnade någon av de testade algoritmerna. Om testkörningar görs på fler dataserier motverkas sådana eventuellt missvisande resultat genom att det totala datamängden blir större. Anledningen till att bara en av Uppsala Vattens dataserier använder var att det krävdes manuell utmarkering av läckor, d.v.s. skapande av facit, vilket var tidskrävande och kan innehålla osäkerheter. Det är möjligt att det t.ex. finns datamängder bestående av flödesdata med kända läckor att ta del av från andra projekt eller vattenleverantörer, vilket skulle kunna användas för att öka dataunderlaget.

Det hade även varit intressant att undersöka kombinationer av algoritmer. En algoritm som är bra på att upptäcka brytpunkter snabbt och en algoritm som är långsammare men nästan alltid hittar rätt till slut kanske skulle kunna komplettera varandra på ett sätt som gör att denna kombination presterar bättre än de enskilda algoritmerna var för sig.

Även implementering av andra algoritmer än de som testades i detta arbete är intressant. Det finns väldigt många approacher och tillvägagångssätt för att identifiera brytpunkter varav endast ett fåtal kunde utvärderas här.

Related documents