• No results found

Utvärdering med harmoniska medelvärden av utvärderingsmetrikerna

Harmoniska medelvärdet används för att väldigt låga precisionsvärden skulle väga mer på hur klassificeraren värderades. Därmed värderas hela klassificeraren lågt när någon klass har låg precision eller recall. Resultatet av denna undersökning på alla tre värden syns i bilaga 6. Det är värt att notera att alla tre linjer ligger nästan exakt ovanpå varandra och därför har en del av grafen förstorats för att förtydliga detta. Dessutom vid notering av skalan på y- axeln syns att det harmoniska medelvärdet ger betydligt lägre precisions- och recallvärden över alla värden på gräns-accuracy. Detta beror förmodligen på att några enstaka klasser har väldigt låga värden för dessa metriker överlag.

Värdet bakom en sådan analys ligger i att det är nu rimligt att anta att det existerar några klas- ser som inte alls är väldefinierade trots att prestandan hos klassificeraren är relativt hög vid accuracy mindre än 90%. Det är möjligt att detta beror på att något parametervärde i klassifi- ceraren kan förbättras. Däremot är det förmodligen mer sannolikt att det inte fanns tillräck- ligt många träningsinstanser för dessa klasser och klassificeraren har inte utvunnit tillräckligt många egenskaper som avgränsar dessa klassmängder. Vid förbättring av klassificeraren kan denna information vara användbar då fokus kan läggas på att utöka datamängden som finns för träning av dessa klassmängder.

B.7.4

ROC-kurva

Vid utvärdering av klassificeraren som skapades under projektet var det omöjligt att använda en ROC-kurva eftersom beräkning av FPR ger värden som inte är representativa för klassifi- ceraren. Litteraturen tyder även på att det inte finns någon användbar metod för beräkning av en ROC-kurva för multiklass-klassificerare.

Däremot finns det värde vid utvärdering av binära klassificerare då ytan under en ROC- kurva (eng. area under ROC curve) (AUC) ger ett bra mått över hur väl en binär klassifice- rare fungerar utan stark påverkan av skevhet mellan klasserna. Till exempel skulle denna ge ett bättre mått av prestandan hos en klassificerare som klassificerar två klasser var den ena innehåller 95% av instansmängden och den andra 5% av instansmängden. [36]

B.8

Slutsatser

Vid mått av prestandan hos en klassificerare är det viktigt att förstå problemet som klassi- ficeraren riktar sig mot. Detta kommer påverka vilka slags utvärderingsmetriker som tillför användbar information vid förbättring av dessa klassificerare.

B.8.1

Vad finns det för utvärderingsmetriker för maskininlärda klassificerare?

Precision, recall och den sammanslagande metriken F1 score tillför information om hur väl en klassificerare presterar på olika sätt. Precision är ett mått på hur väl en klassificerare avgrän- sar klassmängderna. Recall är ett mått på hur väl en klassificerare tillämpar en klass på hela instansmängden. F1 score ger ett harmoniskt medelvärde på dessa och värderar klassificerare med både hög precision och recall högt.

Dessa kan även beräknas på mikro- eller makronivå beroende på hur viktig enighet av vik- terna mellan de olika klasserna är.

Förvirringsmatriser ger dessutom en överblick över hur en klassificerare har delat ut sina klassificeringar på instansmängden.

B.8. Slutsatser

B.8.2

Vad är värdefullt med de olika utvärderingsmetrikerna?

Recall och precision har värde eftersom målet med att använda en klassificerare är att av- gränsa klassmängder och tillämpa en klass på dessa. Om större klasser som innehåller fler instanser borde värderas mer än mindre klasser kan användning av makroversionerna av utvärderingsmetrikerna vara mer användbar. Däremot är det mer användbart att utvärdera klassificerare med mikroversionerna om alla klasser borde viktas lika mycket.

Värdet med F1 score är att det är tydligt att se var precision och recall ger gemensamt bästa värden vid variation av accuracy. Detta kan leda till ett exakt numeriskt värde av accuracy som kan användas för utvärdering av övriga prestandan hos en klassificerare.

Det visade sig även vara användbart att kolla på harmoniska medelvärden av alla dessa ut- värderingsmetriker. Klassificerare med låg prestanda under dessa utvärderingsmetriker har antagligen någon klass som inte är väldefinierad av klassificeraren och fokus kan läggas på att förbättra klassificeringen av dessa klasser.

Förvirringsmatriser ger en väldigt klar bild över hur klassificeringar delades upp mellan de olika klasserna. Detta är användbart för visualisering av problematiska klasser som klassifi- ceraren har svårt att begränsa och de klasser som ger bäst prestanda.

En utvärderingsmetrik som ger liknande värde som ROC som kan tillämpas på multiklass- klassificerare hade varit användbart för utvärdering av en multiklass-klassificerare med ske- va klassfördelningar. Ännu finns detta endast för binära klassificerare, så värdet kvarstår för dessa.

B.8.3

Hur mycket påverkar algoritmen som utvärderas den utvärderingsmetrik

som borde användas?

Algoritmen som används påverkar inte mer än att utvärderingsmetrikerna måste tillämpas på klassificerare som har använts vid lösning av samma problem. Däremot påverkar pro- blemdomänen vilken typ av utvärderingsmetrik som borde användas. En binär klassificerare kan till exempel utvärderas med precision medans en multiklass-klassificerare kan utvärde- ras med mikro- eller makroprecision. Dessutom är det svårare att använda förvirringsmatri- ser och ROC är totalt oanvändbart i multiklass-klassificerare.

B.8.4

Hur kan en utvärderingsmetrik tillämpas på en maskininlärd

klassificerare?

Vid tillämpning av F1 score som utvärderingsmetrik för utvärdering av en klassificerare så är det först viktigt att avgöra om det som borde användas är en mikro- eller makro-F1 score. Med information om vilka klassificeringar som gjordes och med vilken accuracy som dessa gjordes så finns det tillräckligt mycket information för att utvinna båda typer av precision och recall. Detta görs enligt de formlerna som redovisades i moment B.5 på testdatan som klassificeras av klassificeraren.

F1 score tillämpas sedan genom att punktvist ta harmoniska medelvärdet mellan precision och recall vid olika accuracy. Genom att finna maxpunkten av denna graf finns även den optimala recall och precision och en optimal accuracy utifrån dessa utvärderingsmetriker kan tas fram.

C

En undersökning av pull-baserad

versionshantering av Henrik

Andersson

C.1

Inledning

Med tillväxten av versionshanterande webbhotell för källkod, till exempel: Github, Bitbuc- ket och Gitlab, växer även nya verionshanteringsmetoder fram. [40] En av dessa metoder är baserad på funktioner implementerade av dessa webbhotell kallade pull request1och fork. Denna metod, som hädanefter benämns pull-baserad versionshantering, används utbrett in- om mjukvaruutveckling där källkoden är öppen. [41] Denna metod sänker tröskeln för kod- bidrag till projekt i utbyte mot att en sekundär tjänst som Github blir ett krav.

Frågan är hur denna metod påverkar ett mindre mjukvaruprojekt. Detta kandidatarbete ut- fördes av enbart sju personer över ett tidsintervall på fem månader, en stor skillnad mot stora open source-projekt där deltagare kan räknas i hundra- eller tusental samt där projektet har en obestämd tid.

C.1.1

Syfte

Syftet med denna undersökning är att få förståelse för hur en modern versionshanterings- metod baserad på funktionerna fork och pull request påverkar arbetsflödet för ett mindre mjukvaruprojekt jämfört med andra metoder.

C.1.2

Frågeställning

1. Hur påverkar pull-baserad versionshantering arbetsflödet i ett mindre mjukvarupro- jekt?

2. Vad har pull-baserad versionshantering för fördelar och nackdelar över centraliserade samt andra decentraliserade metoder?

C.1.3

Avgränsning

Eftersom det finns en myriad av olika versionshanteringsmetoder kommer denna undersök- ning avgränsa sig till att jämföra mot metoder associerade med centraliserade versionshan- terare samt metoder där man använder Git utan ett webbhotell. Dessa metoder kommer ge- neraliseras som två olika metoder: centraliserad metod och merge-baserad metod.

1Detta är namnet för funktionen på Github. På andra webbhotell kan funktionen benämnas på annat sätt, till

Related documents