• No results found

Jämförelse av avståndsmått för K-nearest neighbour-klassificering av resmål hos nya användare

N/A
N/A
Protected

Academic year: 2021

Share "Jämförelse av avståndsmått för K-nearest neighbour-klassificering av resmål hos nya användare"

Copied!
52
0
0

Loading.... (view fulltext now)

Full text

(1)

INOM

EXAMENSARBETE TEKNIK, GRUNDNIVÅ, 15 HP

STOCKHOLM SVERIGE 2016,

Jämförelse av avståndsmått för K-nearest neighbour-klassificering av resmål hos nya användare

CARL HOLMQVIST PHILIP STIFF

KTH

(2)

Jämförelse av avståndsmått för K-nearest neighbour-klassificering av resmål hos nya

användare

CARL HOLMQVIST, PHILIP STIFF

Kandidatexamensarbete inom datateknik DD143X Handledare: Jens Lagergren

Examinator: Örjan Ekeberg

CSC, KTH May 10, 2016

(3)
(4)

Referat

Användarbeteende är idag ett område som blir allt vikti- gare för företag som vill erbjuda tjänster anpassade efter sina kunder. För att kunna konkurrera på marknaden vill företagen kunna föreslå sina kunder en tjänst redan innan kunderna vet om att de behöver den. Det finns ett flertal kända algoritmer för att uppnå detta.

I denna studie undersöks K-nearest neighbour-algoritmen och hur den bör anpassas för att mäta likhet mellan instan- ser av kunder i en databas. För att göra detta jämförs en egenutvecklad metod baserad på instansernas generella för- hållanden med några befintliga metoder.

Jämförelsen genomförs på en databas innehållande an- vändarkonton från ett resebolag och görs med ett flertal olika värden på K-nearest neighbour-algoritmens olika pa- rametrar. För att studera prestandan för de olika metoder- na jämförs träffsäkerheten i antal korrekta klassificeringar.

Resultaten visar en mycket liten skillnad mellan meto- derna vilket snarare indikerar en skevhet i den valda da- tabasen än hur väl metoderna presterar. Därmed kan in- te mycket sägas om hur de valda metoderna står sig mot varandra.

(5)

Abstract

Comparison of distance measures for K-nearest neighbor classification of new

users travel destination

User behavior prediction is becoming increasingly impor- tant for companies that want to offer services tailored for their customers. In order to compete in the market, compa- nies want to propose a service before customers know they want it. There are several known algorithms for achieving this.

In this study we investigate the K-nearest neighbor al- gorithm and how it should be adapted to measure the sim- ilarity between instances of customers in a database. To do this we compare a new method based on the instances’

general relationships with some existing methods.

The comparison is performed on a database containing user accounts from a travel agency and is made with several values for the K-nearest neighbor algorithms different pa- rameters. To study the performance of the various methods their accuracy is compared.

The results show a very slight difference between the methods which rather indicate a distortion in the database than how well the methods perform. Thus, not much can be said about the performance of the methods.

(6)

Innehåll

1 Introduktion 3

1.1 Inledande text . . . 3

1.2 Frågeställning . . . 3

1.3 Syfte . . . 4

1.4 Problemspecifikation och avgränsning . . . 4

2 Bakgrund 5 2.1 K-nearest neighbour (KNN) . . . 5

2.2 Euklidiskt avstånd . . . 5

2.3 Olika avståndsmått . . . 6

2.3.1 Statistiska avståndsmått . . . 6

2.3.2 Det manuella avståndsmåttet . . . 8

2.4 Om databasen . . . 8

3 Metod 9 3.1 Utvärderingsmetod . . . 9

3.2 Implementationen . . . 9

3.2.1 Justeringar i databasen . . . 9

3.2.2 Det manuella avståndsmåttet . . . 10

3.2.3 Slumpgenerering . . . 13

4 Resultat 15 4.1 Varierande K-värde . . . 15

4.2 Varierande test- och träningsuppdelning . . . 21

5 Diskussion 27

6 Slutsats 31

Litteraturförteckning 33

Bilagor 34

A Databasen 35

(7)

B Språkträdet 38

(8)

Terminologi

• K-nearest neighbour (KNN) - algoritm som används för att klassificera datain- stanser

• Avståndsmått - ett mått för att mäta avståndet mellan två olika datainstanser

• Likhetsmått - mått på hur lika två datavärden hos ett givet attribut är

(9)
(10)

Kapitel 1

Introduktion

1.1 Inledande text

I takt med att internet blir allt mer använt ökar komplexiteten på och konkurrensen mellan de olika tjänster som erbjuds. Det är idag vanligt att företag som verkar på nätet vill kunna erbjuda sina kunder varor och lösningar som kunder inte ännu tänkt på. Exempelvis vill företag som erbjuder video on demand-tjänster kunna föreslå vilken film användaren vill se härnäst, internethandeln vill kunna föreslå vilken produkt kunden ska lägga till i inköpskorgen och resebyrån kunna föreslå kundens nästa resa. Allt detta görs för att kunna sticka ut på marknaden och kunna erbjuda en så bra tjänst som möjligt. För att göra detta krävs utsagor om framtiden för att förutspå efterfrågan.

Det finns många sätt att försöka uppnå önskat resultat och många algoritmer som gör detta på olika sätt. Några exempel är linjär regression, random forest och Naive Bayes. En av de konceptuellt enklare varianterna är att använda sig av meto- den K-nearest neighbour (KNN) för att avgöra hur lika exempelvis två användare är. Metoden är däremot inte helt självklar i hur olika attributs värden ska tolkas och hur likheten mellan värdena bör mätas.

Denna rapport kommer att undersöka ett eget avståndsmått som vi kallar ma- nuellt och utgår från en fritt tillgänglig databas från Airbnb [1]. Databasen består av autentisk användardata från resebolaget Airbnb. All data som används under studien, vid träning, testning och slutlig körning, kommer att tas från databasen.

1.2 Frågeställning

I denna rapport kommer olika avståndsmåtts prestanda i en KNN-algoritm att un- dersökas. Algoritmen kommer att köras på den ovan nämnda databasen och frågan som rapporten ämnar besvara är:

Hur presterar ett manuellt avståndsmått prestandamässigt för att förutsäga nya användares resmål jämfört med befintliga, vanligt använda, avståndsmått?

(11)

KAPITEL 1. INTRODUKTION

1.3 Syfte

Rapportens syfte är att råda bot på den oklarhet som råder kring hur likheter mellan olika typer av data i en implementation av KNN bör mätas för träffsäkra klassi- ficeringar. Rapporten ämnar särskilt att undersöka om en lösning på oklarheten kan vara ett manuellt specificerat avståndsmått. Då många befintliga avståndsmått bygger på datans statistiska förhållanden i databasen skulle ett mått baserat på datans generella förhållanden kunna ge en ny vinkel på problemet. Genom att un- dersöka detta är förhoppningen att ge klarhet i hur liknande problem kan hanteras framöver. Detta är något som kan vara till gagn både för framtida forskning och för verksamheter som använder sig av KNN eller liknande lösningar.

1.4 Problemspecifikation och avgränsning

Rapporten kommer att besvara frågeställningen genom att gå igenom befintlig kunskap inom området för att sålla ut de metoder som är relevanta att under- söka närmare och ge grund för nya alternativa metoder. Airbnb-databasen kommer att användas som grund till undersökningarna. För att utveckla det manuella av- ståndsmåttet kommer de specifika värden som återfinns i databasen att analyseras och tolkas för att ge grund för det slutgiltiga måttet.

Rapporten kommer därmed inte att i någon större utsträckning behandla lik- hetsmått mellan komplexa data som inte återfinns i databasen utan fokusera på generella metoder samt specifika metoder anpassade till den data som återfinns i databasen.

(12)

Kapitel 2

Bakgrund

I detta avsnitt introduceras först de teorier som ligger till grund för KNN-algoritmen, därefter presenteras de metoder och avståndsmått som kommer studeras i rappor- ten. Detta följs utav en genomgång av den databas som användes i studien.

2.1 K-nearest neighbour (KNN)

KNN är en algoritm som kan användas för att klassificera instanser av data. Al- goritmen fungerar genom att den först tränas på en färdigklassificerad datamängd där varje instans är representerad som en punkt i ett flerdimensionellt rum. För att sedan klassificera nya instanser används de K st instanser som ligger närmast i rymden, där K är en parameter vald av användaren. Algoritmen utgår ifrån anta- gandet att om två instanser är lika med avseende på många attribut är de troligen även lika med avseende på nästa attribut. Ett av de vanligare sätten för att avgöra avståndet mellan två instanser är ett använda sig av det euklidiska avståndet mellan instansernas attributvärden. [7]

2.2 Euklidiskt avstånd

Det euklidiska avståndet i ett flerdimensionellt rum beräknas som roten ur summan av de kvadrerade avståndsdifferenserna för varje dimension enligt formel nedan.

d(X, Y ) = v u u t

n

X

i=0

(X

i

− Y

i

)

2

d(X, Y ) är det Euklidiska avståndet mellan punkterna X och Y , n är antalet dimensioner och Xi− Yi är avståndet mellan X och Y i dimension i. [4]

(13)

KAPITEL 2. BAKGRUND

2.3 Olika avståndsmått

För att kunna beräkna avståndet mellan två instanser krävs det att likheterna mellan alla möjliga värden hos varje attribut är kända. Detta är ofta trivialt då värdena är siffervärden, såsom ålder, men för kategoriska data är det svårare. Data består då ofta av strängar som kan representera till exempel det land en person är född i eller den webbläsare personen föredrar. För att mäta likheten mellan de olika möjliga värdena för sådana data finns det ett flertal mer eller mindre bra metoder.

Ett par av dem presenteras nedan.

Overlap är ett sätt att mäta likheten genom att kontrollera om värdena är samma eller ej, är de samma är likheten 1 och är de inte samma är likheten 0 [5]. Denna metod ger inget mått på likheten mellan två värden, utan konstaterar endast om de är lika eller ej.

Levenshteinavstånd eller editeringsavstånd är en metod som mäter avståndet mellan strängarna som representerar de kategoriska värdena. Om två värden repre- senteras av strängarna “aaa” och “abc” kan olikheten dem emellan beräknas till två då strängarna skiljer sig på två positioner.[18] Denna metod tar inte hänsyn till att skillnaden mellan de strängar som representerar värdena inte behöver vara kopplade till skillnaden mellan det som strängarna representerar.

Ett slumpmässigt likhetsmått innebär att låta slumpen avgöra hur långt avstån- det är mellan två värden. Metoden garanterar inte att avståndet värdena emellan är konsekvent mellan flera körningar. Metoden är därmed inte pålitlig men kan utnyttjas som en referens för att jämföra andra avståndsmått.

2.3.1 Statistiska avståndsmått

Det finns även en hel kategori med metoder som statistiskt beräknar skillnaden mellan alla par av kategoriska värden hos ett attribut. De baseras på hur det aktuella attributet som jämförs förhåller sig till andra attribut i databasen, till skillnad från tidigare nämnda mått som alla baseras på någon tumregel. Beroende på hur många värden ett visst attribut kan anta kan värdena viktas på olika sätt. Ett flertal sådana metoder beskrivs av Boriah et al. [5]. Dessa metoder tar ingen hänsyn till vad de olika attributens värden representerar utan endast till hur de förhåller sig till andra attribut i databasen. Ett par metoder från rapporten för att göra detta beskrivs nedan.

Formlerna som anges i metoderna Eskin, Inverse Occurrence Frequency (IOF), Occurrence Frequency (OF) och Burnaby beräknar likheten mellan par av attribut, för att omvandla mellan likhet och avstånd används följande förhållande.

sim =

1+dist1

(14)

2.3. OLIKA AVSTÅNDSMÅTT

Eskins formel mäter likhet enligt följande formel:

sim =

1 om X

k

= Y

k

n2k

n2k+2

annars

Denna metod viktar likheten högre om attributet som beräknas kan anta många värden och lägre om det antar få värden. Likhetsvärdena varierar mellan [23,NN2+22 ], det minsta värdet antas då ett attribut endast antar två värden och det största värdet antas då varje instans har ett unikt värde för attributet.

Inverse occurrence frequency mäter likhet enligt formeln nedan. fk(Xk) är an- talet gånger värdet Xk förekommer i databasen för attribut k.

sim =

1 om X

k

= Y

k

1

1+log fk(Xk)×log fk(Yk)

annars

Metoden viktar likheten så att värden som förekommer färre gånger blir mer lika andra värden och värden som förekommer många gånger blir mindre lika andra vär- den. Likhetsvärdena varierar mellan [ 1

1+(logN2)2, 1]. Det minsta värdet antas när båda de jämförda värdena förekommerN2 gånger, där N är antalet instanser i databasen.

Occurence frequency viktar likheterna på motsatt sätt jämfört med Inverse Oc- currence Frequency, med denna metod blir vanliga värden mer lika andra värden och ovanliga värden blir mindre lika andra värden. Likheten beräknas enligt formeln nedan. fk(Xk) är antalet gånger värdet Xk förekommer i databasen för attribut k och N är antalet instanser i databasen.

sim =

1 om X

k

= Y

k

1 1+log N

fk(Xk)×log N

fk(Xk)

annars

Likhetsvärdena varierar mellan [1+(log N )1 2,1+(log 2)1 2].

Med Burnabys metod blir vanliga värden mer lika andra värden och ovanliga värden blir mindre lika andra värden. Värdena beräknas enligt nedanstående formel.

pˆk(Xk) är andelen av förekomster i databasen som för attribut Ak har värdet Xk.

sim =

 

 

 

 

 

 

1 om X

k

= Y

k

X

qAk

2 log(1 − ˆ p

k

(q))

log(1− ˆpk(Xk)ˆˆ pk(Yk)

pk(Xk))(1−ˆpk(Yk))+

X

qAk

2 log(1 − ˆ p

k

(q) annars

(15)

KAPITEL 2. BAKGRUND

Metoden bygger på informationsteori och utgår från att ovanliga värden ger oss mer information än vanliga. Värdena varierar i nedanstående intervall där N är antalet instanser i databasen:

[ N log(1−

1 N)

N log(1−N1)−log(N −1), 1]

2.3.2 Det manuella avståndsmåttet

Den metod som här kommer att kallas för manuellt avståndsmått går ut på att avståndet mellan värde X och värde Y sätts till ett numeriskt värde. Det numeriska värdet är ofta baserat på information utöver den som återfinns i databasen och bestäms av insatta personer på området. Metoden är osäker i och med att likheten mellan två värden inte går att bestämma entydigt och det valda värdet bestäms av svårtolkade parametrar. Det är denna metod som ligger i fokus i rapporten.

2.4 Om databasen

Databasen från Airbnb består av 213451 användarkonton och innehåller 13 attribut med information om användaren. Attributen innehåller information om kön, ålder, språk, registreringsinformation, information om använd enhet och första resmål. För en mer detaljerad genomgång av databasen, se appendix A.

(16)

Kapitel 3

Metod

I detta avsnitt gås först sättet prestandan kommer att utvärderas igenom, därefter presenteras den implementation som genomförts.

3.1 Utvärderingsmetod

För att utvärdera prestandan hos de olika avståndsmåtten gjordes en uppdelning av databasen i en testmängd och en träningsmängd. Användarkontona i testmäng- den klassificerades därefter med KNN-algoritmen och de olika avståndsmåtten uti- från användarkontona i träningsmängden. Resultaten av klassificeringen från KNN- algoritmen jämfördes slutligen med de faktiska resmål som fanns registrerade för de utvalda användarkontona i testmängden. Genom att räkna antalet korrekta klas- sificeringar gick det att jämföra de olika implementerade avståndsmåttens träff- säkerhet. För att ytterligare belysa skillnaderna mellan de olika avståndsmåtten genomfördes testerna med ett flertal olika K-värden i KNN-algoritmen.

Metoden är bland de enklaste och vanligast förekommande sätten att mäta pre- standan hos en KNN-algoritm och valdes därefter. Andelen av databasen som väljs ut som testmängd sätts ofta till 30-40%[11, 6]. På grund av prestandamässiga orsa- ker sattes denna andel i de flesta testerna till 10%. För att påvisa skillnaderna mellan olika teststorlekar genomfördes även flera tester med det förbestämda K-värdet 1 i KNN-algoritmen där testandelen varierades.

Vid framtagandet av resultat slumpades fem testmängder fram. På dessa mäng- der kördes samtliga metoder med K-värdena 1, 3, 5, 10 respektive 20. För att få en referenspunkt användes det vanligast förekommande resmålet som baseline.

3.2 Implementationen

3.2.1 Justeringar i databasen

På grund av orimliga värden som återfanns i databasen gjordes justeringar för att få bättre prediktioner. Alla instanser utan bokning togs bort från databasen då predik-

(17)

KAPITEL 3. METOD

tioner för de instanserna inte är utvärderingsbara. Efter borttagning kvarstod 88908 användarkonton. Det vanligast förekommande resmålet blev, efter borttagning av NDF, US som var resmålet för 70,2% av de kvarvarande användarna.

För attributet age gjordes vissa justeringar. Ursprungligen antog attributet hel- talsvärden mellan 0 och 2014 men för att få rimligare värden justerades innehållet.

Den nedre gränsen för ålder sattes till 18, en vanlig ålder för att få ingå juridiskt bindande avtal. Den övre gränsen för ålder grundar sig i att den äldsta då levande personen var 114 [3]. Alla värden utanför dessa gränser ersattes med medelvärdet av övriga åldrar i databasen.

3.2.2 Det manuella avståndsmåttet

Avståndet mellan två instanser med avseende på de attribut som anger datum sattes till antalet dagar mellan datumen. Måttet är en numerisk tolkning av datumen och borde ge en representation av trender i tiden.

Avstånden mellan de värden som gender antar skattades som följer: Avståndet sinsemellan värdena “MALE”, “FEMALE” och “OTHER” sattes till 1 och avståndet mellan “-unknown-” och de andra som 1

3. Avstånden är geometriskt grundade enligt figur 3.1. Målet var att maximera avståndet mellan de explicita könen och minimera “unknown”-förekomsternas påverkan.

Figur 3.1: Geometrisk representation av avstånden för attributet gender Avståndet mellan värdena för attributet age beräknades som differensen mellan

(18)

3.2. IMPLEMENTATIONEN

siffervärdena. Måttet är en tolkning av åldern och borde ge en representation av trender i åldersgrupperna.

För attributet signup_method skattades avstånden enligt figur 3.2. Skattningen var ett försök att representera att både facebook och google är sociala medie-tjänster utan direkt koppling till Airbnb:s tjänst och därför ansågs närmre varann än till exempel basic och google.

Figur 3.2: Geometrisk representation av avstånden för attributet signup_method

För signup_flow fanns ingen information tillgänglig om vad attributets specifika värden representerade, därför gjordes bedömningen att avståndet mellan värdena skulle beräknas med Overlap.

Avståndet mellan language värden beräknades med hjälp av ett språkträd, se appendix B. Språkträdet som användes grundades i en simplifierad sammanställning av ett flertal språkträd[14, 16, 12, 8, 13, 10, 15, 9]. Målet med simplifieringen var att få trädet någorlunda balanserat för att få avstånden mellan språken i samma storleksordning. Avståndet mellan två språk sågs som antalet kanter mellan språkens noder i trädet. Motiveringen bakom valet av representation var att språk som är nära besläktade borde talas i snarlika kulturer. Därmed borde även användare som talar samma språk ha snarlika preferenser vad gäller resor.

För attributen affiliate_channel, affiliate_provider och first_affiliate_tracked togs beslutet att använda Overlap då den undermåliga informationen om attributens värden gjorde dem svårtolkade.

För avståndet mellan punkter i dimensionen för signup_app gjordes en uppdel- ning efter typen av applikation som användaren använt vid registrering. Antagandet var här att användare som registrerat sig med en mobilapplikation var mycket lika varandra samt ganska lika användare som använde sig av mobilens webbläsare. An- vändare som registrerat sig via webbläsaren på en PC eller annan stationär enhet ansågs ligga längre bort på likhetsskalan. Se figur 3.3 för grafisk representation.

(19)

KAPITEL 3. METOD

Figur 3.3: Grafisk representation av avstånden för attributet signup_app

First_device_types avstånd skattades enligt bilden nedan. Illustrationen i figur 3.4 är ett försök att illustrera enheternas likheter och grundar sig i typen av enhet det registrerade operativsystemet vanligen körs på. Genom att dela upp enheterna i grupperna mobil, stationär och okänd fångas enhetenas karaktäristiska egenskaper upp på ett sätt sådant att det går att bestämma ett avstånd mellan dem. Avståndet grundar sig i sin tur i att de två grupperna stationär och mobil är olika och att de okända enheterna bör vara lika nära dessa två grupper.

Figur 3.4: Grafisk representation av avstånden för attributet first_device_type

För avstånden mellan värden för attributet first_browser användes en blandning av metoderna ovan. Genom att gruppera upp webbläsarna i grupperna “Chrome”,

“Firefox”, “Safari”, “Safari Mobile”, “Internet Explorer” och “Other” fångades ma- joriteten av webbläsarna upp av en grupp som motsvarar attributets faktiska värde.

Genom att sedan modellera grupperna på samma sätt som för attributet gender, fast här i fyra dimensioner, kunde ett ungefärligt avstånd mellan de olika punkterna bestämmas. Avståndet från gruppen “Other” till de övriga bestämdes till 0,77 och övriga avstånd till 1.

Samtliga likhetsmått normerades så att de antog värden mellan 0 och 1.

(20)

3.2. IMPLEMENTATIONEN

3.2.3 Slumpgenerering

För samtliga slumpmässiga beräkningar som genomfördes användes Javas inbyggda slumptalsgenerator[17]. Javaversionen som användes var JavaSE-1.7.

(21)
(22)

Kapitel 4

Resultat

I det här avsnittet presenteras resultaten av ett antal tester med KNN-algoritmen på databasen. Först presenteras ett antal figurer där avståndsmåtten testats med olika K-värden i algoritmen och därefter presenteras ett fåtal figurer med fixt K- värde och varierande storlek på testmängden. Varje figur motsvararar fem tester och visar medelvärdet av antalet korrekta klassificeringar för varje avståndsmått.

4.1 Varierande K-värde

Nedan presenteras körningarna med varierande K-värde i stigande ordning efter K-värdet. Andelen av databasen som testas är i alla dessa figurer satt till 10% av prestandaskäl. Detta motsvarar 8890 klassificeringar.

(23)

KAPITEL 4. RESULTAT

Figur 4.1: Genomsnittet av 5 test med K = 1 på 10% av databasen för de 8 olika avståndsmåtten.

Överlag är spridningen i figur 4.1 mellan de olika avståndsmåtten liten. De icke- statistiska avståndsmåtten presterade i detta test förhållandevis bra. Det manuella avståndsmåttet presterade i nivå med måttet Overlap.

(24)

4.1. VARIERANDE K-VÄRDE

Figur 4.2: Genomsnittet av 5 test med K = 3 på 10% av databasen för de 8 olika avståndsmåtten.

I figur 4.2 kan det ses att de statistiska måtten presterar sämre än övriga.

Avståndsmåttet manual är endast sämre än det slumpmässiga avståndsmåttet.

(25)

KAPITEL 4. RESULTAT

Figur 4.3: Genomsnittet av 5 test med K = 5 på 10% av databasen för de 8 olika avståndsmåtten.

I figur 4.3 utmärker sig avståndsmåtten OF och Burnaby genom att prestera sämre än övriga avståndsmått. Övriga avståndsmått håller en mycket jämn nivå.

(26)

4.1. VARIERANDE K-VÄRDE

Figur 4.4: Genomsnittet av 5 test med K = 10 på 10% av databasen för de 8 olika avståndsmåtten.

I testet till figur 4.4 presterade samtliga mått mycket snarlikt och skillnaden i andelen korrekta klassificeringar mellan det bäst presterande avståndsmåttet, Eskin, och det sämst presterande måttet, OF, var 0.44 procentenheter.

(27)

KAPITEL 4. RESULTAT

Figur 4.5: Genomsnittet av 5 test med K = 20 på 10% av databasen för de 8 olika avståndsmåtten.

I figur 4.5 kan det ses att alla avståndsmått presterar näst intill identiskt. Skill- naden mellan måtten är mindre än 0.1 procentenheter.

(28)

4.2. VARIERANDE TEST- OCH TRÄNINGSUPPDELNING

Figur 4.6: Samling av resultaten för testerna med K-värden 1, 3, 5, 10 och 20. Linjen US används som Baseline och ligger på 70.3%. Värdet motsvarar att alla användare klassificeras som US.

Avståndsmåtten presterar alla mycket likvärdigt för vardera K-värde. I figur 4.6 ses att när K-värdet ökar konvergerar antalet korrekta klassificeringar mot vald baseline.

4.2 Varierande test- och träningsuppdelning

Nedan presenteras körningarna med varierande testandel i stigande ordning efter testandelandelen. K-värdet i algoritmen har fixerats till 1 för att uppnå maximal variation i klassificeringarna.

(29)

KAPITEL 4. RESULTAT

Figur 4.7: Genomsnittet av 5 test med K = 1 på 5% av databasen för de 8 olika avståndsmåtten.

I figur 4.7 visas att med 5% testandel presterar alla metoder ungefär lika bra, skillnaden mellan högsta och lägsta andelen korrekta klassificeringar är 1.3 procen- tenheter.

Här rekommenderas läsaren att gå tillbaka och titta på figur 4.1 för att få en kontinuerlig utveckling av resultaten vid utökad testandel.

(30)

4.2. VARIERANDE TEST- OCH TRÄNINGSUPPDELNING

Figur 4.8: Genomsnittet av 5 test med K = 1 på 20% av databasen för de 8 olika avståndsmåtten.

De statistiska måtten presterade i figur 4.8 konsekvent sämre än de icke-statistiska måtten.

(31)

KAPITEL 4. RESULTAT

Figur 4.9: Genomsnittet av 5 test med K = 1 på 30% av databasen för de 8 olika avståndsmåtten.

Figur 4.9 visar på små prestandaskillnader mellan samtliga avståndsmått men ändå viss skillnad mellan de icke-statistiska och de statistiska måtten. De statistiska måtten presterade här konsekvent sämre än de icke-statistiska måtten.

(32)

4.2. VARIERANDE TEST- OCH TRÄNINGSUPPDELNING

Figur 4.10: Genomsnittet av 5 test med K = 1 på 40% av databasen för de 8 olika avståndsmåtten.

I figur 4.10 kan det ses att vid test med 40% testmänd presterade det manuella avståndsmåttet bäst.

(33)

KAPITEL 4. RESULTAT

Figur 4.11: Samling av resultaten för testerna med testandelarna 5, 10, 20, 30 och 40%. Linjen US används som Baseline och ligger på cirka 70%. Värdet motsvarar att alla användare klassificeras som US.

Avståndsmåttens prestanda varierar inte nämnvärt för de olika testandelarna.

I figur 4.11 ses att andelen korrekta klassificeringar ligger runt 50% för samtliga testandelar.

(34)

Kapitel 5

Diskussion

Det kan konstateras att de mått som presterade bäst var Levenshtein, Manual och Random. Levenshtein presterade bäst i en tredjedel av testerna och Manual och Random i 2 av 9 tester vardera. Resultaten är glädjande då det egenkonstruerade måttet Manual presterade bland de bästa och dessutom höll en genomgående hög nivå i förhållande till de andra måtten.

Dock så finns det ett genomgående drag hos alla tester som gjordes, prestan- daskillnaden mellan de olika måtten är ytterst liten, mindre än 2 procentenheter mellan den bästa och sämsta metoden för varje test. Detta beror förmodligen på den skeva fördelningen mellan användarnas resmål i databasen. Då en stor majori- tet av användarna hade samma resmål, US, blev sannolikheten stor att användare som skulle klassificeras hamnade nära flera användare med US som resmål och där- för klassades så. Detta fenomen var oberoende av vilket mått som användes och tycks ha varit den dominerande faktorn i resultaten. Därmed minskades de olika avståndsmåttens påverkan på resultaten.

Detta illustreras i figur 4.6 där resultaten från testerna med varierande K-värden sammanfattas. Alla avståndsmåtts prestanda för de olika K-värdena följer en kurva som tydligt konvergerar då K ökar mot den baseline som användes, nämligen andelen användare vars resmål var US. De bästa resultaten som uppnåddes motsvarar alltså grovt sett en naiv algoritm som klassificerar alla användares resmål som US.

En marginell men likväl förvånande systematisk skillnad mellan de olika måtten som kan ses i resultaten är att de simpla och naiva måtten Manual, Levenshtein och Overlap i huvudsak presterade bättre än eller lika bra som de beräkningsmässigt betydligt tyngre metoderna Eskin, OF, IOF och Burnaby, se till exempel figurerna 4.1, 4.2, 4.8 och 4.9.

Eftersom samtliga mått i de flesta fall ändå presterade mycket snarlikt är det därför svårt att säga om ett visst mått faktiskt presterade bättre än ett annat mått.

Till exempel kan det ses att det slumpmässiga måttet i flera tester presterade bättre än övriga, exempelvis i figurerna 4.2, 4.3 och 4.5. Detta borde kunna ses som en indikation på en av två saker. Den första är att prestandaskillnaden inte kunde urskiljas tydligt nog på grund av den databas som användes som utgångspunkt

(35)

KAPITEL 5. DISKUSSION

i kombination med algoritmens utformning. Den andra är att prestandan beror mer på slumpen än på måttets faktiska prestanda. Det första alternativet är mest troligt då vissa, framförallt de icke-statistiska avståndsmåtten, höll en relativt jämn prestandanivå genom samtliga tester.

När det gäller det manuella avståndsmåttet presterade det ändå förvånansvärt bra med tanke på de enkla och grova medel som det använder sig utav. För de flesta attributen bygger det på att attributets värden har delats upp i flera grupper där varje grupps värden har ansetts väldigt lika, sedan har en geometrisk tolkning använts för att visualisera och representera de avstånd som använts mellan de olika grupperna. Dessa grupperingar har varit grova uppskattningar på skillnaderna mel- lan värdena och viss information har gått förlorad vilket kan ha påverkat resultaten.

För attributet language användes en annorlunda metod jämfört med de övriga attributen, här användes ett språkträd för att beräkna avståndet mellan två språk.

Då inget språkträd med alla databasens språk fanns tillgängligt användes istället da- ta från flera träd för att bygga upp ett nytt träd innehållandes alla relevanta språk.

Då de träd som användes var olika detaljerade och ibland gick in i varandra blev det slutliga trädet en grov och relativt förenklad sammanställning av ursprungs- träden där viss information gick förlorad. Detta kan ha påverkat resultaten genom att språkens avstånd kan ha blivit för långa eller för korta. I ett tidigt skede dis- kuterades en alternativ lösning där avstånden mellan språkens geografiska centrum skulle användas för att beräkna avstånden mellan dem i algoritmen. Denna lösning förkastades då en del språk inte har ett tydligt geografiskt centrum, till exempel engelska som talas över stora delar av världen. Möjligen skulle en sådan lösning ge ett annorlunda resultat, men som tidigare nämnt kunna vara svår att implementera.

När det gäller de ändringar som gjordes i databasen är det endast ändringarna på datan i attributet age som kan ha påverkat resultaten. Denna ändring har tro- ligen inte haft någon större negativ inverkan på resultaten utan snarare förbättrat rimligheten i resultaten. Eftersom användare som inte anger sin ålder eller anger en orimlig sådan endast ger upphov till ytterligheter borde medelåldern som sattes va- ra närmare verkligheten. Övriga ändringar innebar endast att irrelevanta användare togs bort ur databasen.

En utveckling av KNN-algoritmen som hade kunnat generera bättre resultat hade varit att vikta de olika attributens betydelse i avståndsmätningen. Genom att låta de attribut som har mest korrelation med resmål påverka avstånden mellan användare mer än andra attribut som har mindre korrelation skulle bättre klassi- ficeringar ha kunnat gjorts. Denna teknik skulle vara oberoende av avståndsmått och därmed kunna appliceras på samtliga mått. Detta skulle dock kräva en närmare analys av databasen.

Algoritmen hade också kunnat utvecklas vidare genom att vikta betydelsen av de K närmsta användarna vid klassificeringen. I algoritmen som använts vid fram- tagandet av resultaten ovan spelade alla K närmsta användare lika mycket in i klassificeringen, men genom att låta den närmaste användaren betyda mest och de resterande gradvis mindre hade ett bättre resultat förmodligen kunnat fås.

De två ovannämnda vidareutvecklingarna av algoritmen hade förmodligen inte

(36)

påverkat resultaten nämnvärt på grund av databasens utseende.

(37)
(38)

Kapitel 6

Slutsats

I studien har flera olika avståndsmått i en KNN-algoritm undersökts och jämförts prestandamässigt. För att jämföra prestandan har antalet korrekta klassificeringar jämförts. Utgångspunkten för datan som undersökts har varit en databas innehål- lande användaruppgifter hos ett resebolag. Fokus har legat på att jämföra redan existerande avståndsmått och ett avståndsmått som speciellt utvecklats med hän- syn till databasens attribut.

I de resultat som studien resulterade i var det manuella avståndsmåttet bland de bästa för att klassificera användares resmål. Alla avståndsmått presterade ändå väldigt lika oberoende av förändrade parametrar i KNN-algoritmen. Slutsatsen som kan dras är därför att fortsatta studier kommer behövas för att kunna ge ett defini- tivt svar på hur väl ett egenutvecklat manuellt avståndsmått presterar. Baserat på denna studie verkar det bästa vara att använda det mått som är effektivitetsmässigt bäst eller enklast att implementera.

(39)
(40)

Litteraturförteckning

[1] Airbnb new user bookings. https://www.kaggle.com/c/

airbnb-recruiting-new-user-bookings/data. Hämtad: 2016-04-04.

[2] Iso-639-1:2002, codes for the representation of names of languages. https:

//www.loc.gov/standards/iso639-2/php/code_list.php. Hämtad: 2016- 04-04.

[3] List of the verified oldest people. https://en.wikipedia.org/wiki/List_

of_the_verified_oldest_people. Hämtad: 2016-02-02.

[4] R. A. Adams and C. Essex. Calculus - a complete course. Pearson, 8th edition, 2013.

[5] S. Boriah, V. Chandola, and V. Kumar. Similarity measures for categorical data: A comparative evaluation. SDM 2008: Proceedings of the 8th SIAM International Conference on Data Mining, 2008.

[6] Jason Brownlee. Tutorial to implement k-nearest neighbors in python from scratch. http://machinelearningmastery.com/

tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/, September 2014. Hämtad: 2016-04-04.

[7] Dell Inc. Statistics: Methods and applications. http://documents.software.

dell.com/Statistics/Textbook/k-nearest-neighbors, 2013. Hämtad:

2016-04-04.

[8] Matthew S. Dryer. Genealogical language list. The World Atlas of Language Structures, (ISBN: 0199255911), 2005.

[9] Raymond G. Gordon. Ethnologue: Languages of the World. SIL Interna- tional, Dallas, Texas, 15th edition, 2005. Online version http://archive.

ethnologue.com/15/web.asp.

[10] Joseph H. Greenberg. Indo-European and Its Closest Relatives: The Eurasiatic Language Family, volume 2, Lexicon. Stanford: Stanford University Press, 2002.

(41)

LITTERATURFÖRTECKNING

[11] Natasha Latysheva. Implementing your own k-nearest neighbour al- gorithm using python. http://blog.cambridgecoding.com/2016/01/16/

machine-learning-under-the-hood-writing-your-own-k-nearest-neighbour-algorithm/, Januari 2016. Hämtad: 2016-04-04.

[12] MultiTree: A digital library of language relationships. Institute for Language Information and Technology: Ypsilanti, MI. Austronesian: Dryer 2005. http:

//new.multitree.org/trees/id/10595, Juli 2013. Hämtad: 2016-04-04.

[13] MultiTree: A digital library of language relationships. Institute for Language Information and Technology: Ypsilanti, MI. Eurasiatic: Greenberg 2002. http:

//new.multitree.org/trees/id/14640, Juli 2013. Hämtad: 2016-04-04.

[14] MultiTree: A digital library of language relationships. Institute for Language Information and Technology: Ypsilanti, MI. Indo-european: Composite. http:

//new.multitree.org/trees/id/19655, Juli 2013. Hämtad: 2016-04-04.

[15] MultiTree: A digital library of language relationships. Institute for Language Information and Technology: Ypsilanti, MI. Sino-tibetan: Ethnologue 2005.

http://new.multitree.org/trees/id/12738, Juli 2013. Hämtad: 2016-04- 04.

[16] MultiTree: A digital library of language relationships. Institute for Language Information and Technology: Ypsilanti, MI. Tai-kadai: Composite. http://

new.multitree.org/trees/id/25658, Juli 2013. Hämtad: 2016-04-04.

[17] Oracle, https://docs.oracle.com/javase/7/docs/api/java/util/

Random.html. Class Random, 2016. Hämtad: 2016-04-04.

[18] L. Yujian and L. Bo. A normalized levenshtein distance metric. IEEE Trans- action on Pattern Analysis and Machine Intelligence, 29(6), Juni 2007.

(42)

Bilaga A

Databasen

Databasen från Airbnb består av 213451 användarkonton och innehåller följande at- tribut: id, date_account_created, timestamp_first_active, date_first_booking, gen- der, age, signup_method, signup_flow, language, affiliate_channel, affiliate_provider, first_affiliate_tracked, signup_app, first_device_typ, first_browser, country_destination.

Här följer en förklaring om typen av data som återfinns under varje attribut.

• id består endast utav unika autogenererade textsträngar för varje användare.

• date__account_created, timestamp_first_active och date_first_booking be- står alla utav datum.

• gender antar värdena “-unknown-”, “FEMALE”, “MALE” och “OTHER”.

• age antar heltalsvärden mellan 0 och 2014.

• signup_method anger typen av konto som användaren registrerat, värdena

“basic”, “facebook” och “google” antas.

• signup_flow antar heltalsvärden mellan 0 och 25, siffrorna representerar sidor som användarna kom till registreringen från. Det finns ingen information om vilka specifika sidor som siffrorna representerar.

• language antar 25 olika värden representerades användarens föredragna språk.

Språkkoderna är angivna enligt standarden ISO-639[2].

• affiliate_channel anger genom vilken kanal användaren hittade Airbnb:s hem- sida. Följande värden återfinns i databasen: “api”, “content”, “direct”, “other”,

“remarketing”, “sem-brand”, “non-sem-brand” och “seo”.

• affiliate_provider anger vilken specifik förmedlare av kanalen som användaren gick via.

• first_affiliate_tracked anger vilken typ av marknadsföring som användaren först var i kontakt med innan registreringen.

(43)

BILAGA A. DATABASEN

• signup_app vilken applikation som användes vid registreringen.

• first_device_type anger genom vilken enhet användaren först besökte hemsi- dan.

• first_browser anger med vilken webbläsare användaren först besökte hemsi- dan.

• country_destination anger vilken destination användaren bokade sin första resa till. country_destination antar 12 olika värden, varav två är NDF (Not defined, ingen bokning har gjorts) och Other (en bokning har gjorts till en ej specificerad destination). Det vanligast förekommande värdena var NDF med 124543 förekomster följt av US med 62376 förekomster.

(44)
(45)

BILAGA B. SPRÅKTRÄDET

Bilaga B

Språkträdet

(46)
(47)

BILAGA B. SPRÅKTRÄDET

(48)
(49)

BILAGA B. SPRÅKTRÄDET

(50)
(51)

BILAGA B. SPRÅKTRÄDET

Figur B.1: Språkträdet som användes i det manuella avståndsmåttet

(52)

References

Related documents

OECD, som representerar de rika länderna, antog för tio år sedan en konvention ”mot bestickning av utländska offentliga tjänstemän”, som tar sikte på

Därför är denna undersökning intressant för oss, eftersom att sociala mediers väg in i populärkulturen kan potentiellt lära oss något om hur andra fenomen, i vårt fall e-

Genom att kartlägga adoptörers gemensamma IAT med avseende på informationskällor och erfarenheter bidrar uppsatsen till ökade insikter inom ramen för littera- turen kring

67 Findahl (2010) Unga svenskar och internet s 21. 68 Bergström (2008)

The objective of this thesis is to evaluate if changes in pupil dilation and blinking rate can be used to predict different levels of stress using the classification algorithm

[r]

För att framställa en DTM av punktmolnet användes både Cloud Compare och Agisoft Photoscan (numera Metashape). Geo användes sedan för att ta ut höjdavvikelserna från modellen.

Andra situationer som har visat gett upphov till etisk stress bland sjuksköterskor är att genomföra onödiga test och behandlingar (Patti, 2007), behandla patienter som