Analys av prediktiv precision av maskininlärningsalgoritmer

Storlek: px
Starta visningen från sidan:

Download "Analys av prediktiv precision av maskininlärningsalgoritmer"

Transkript

1 Teknik och samhälle Datavetenskap Examensarbete 15 högskolepoäng, grundnivå Analys av prediktiv precision av maskininlärningsalgoritmer Analysis of predictive precision of Machine Learning algorithms Jonas Remgård Examen: kandidatexamen 180 hp Huvudområde: datavetenskap Program: Applikationsutveckling Datum för slutseminarium: Handledare: Ivan Kruzela Examinator: Johan Holmgren

2

3 Sammanfattning Maskininlärning (eng: Machine Learning) har på senare tid blivit ett populärt ämne. En fråga som många användare ställer sig är hur mycket data det behövs för att få ett så korrekt svar som möjligt. Detta arbete undersöker relationen mellan inlärningsdata, mängd såväl som struktur, och hur väl algoritmen presterar. Fyra olika typer av datamängder (Iris, Digits, Symmetriskt och Dubbelsymetriskt) studerades med hjälp av tre olika algoritmer (Support Vector Classifier, K-Nearest Neighbor och Decision Tree Classifier). Arbetet fastställer att alla tre algoritmers prestation förbättras vid större mängd inlärningsdata upp till en viss gräns, men att denna gräns är olika för varje algoritm. Datainstansernas struktur påverkar också algoritmernas prestation där dubbelsymmetri ger starkare prestation än enkelsymmetri.

4

5 Abstract In recent years Machine Learning has become a popular subject. A challange that many users face is choosing the correct amount of training data. This study researches the relationship between the amount and structure of training data and the accuracy of the algorithm. Four different datasets (Iris, Digits, Symmetry and Double symmetry) were used with three different algorithms (Support Vector Classifier, K-Nearest Neighbor and Decision Tree Classifier). This study concludes that all algorithms perform better with more training data up to a certain limit, which is different for each algorithm. The structure of the dataset also affects the performance, where double symmetry gives greater performance than simple symmetry.

6

7 Innehåll 1 Inledning Bakgrund Maskininlärning Övervakad och Oövervakad inlärning Utvärdering av Algoritmernas Prestation Syfte Frågeställning Avgränsning Tidigare forskning Metod Metodbeskrivning Litteraturstudie Nyckelord Val av artiklar Fastställande av komplett litteraturlista samt kvalitet av artiklar Scikit Learn Algoritmer Support Vector Classifier K-Nearest Neighbor Decision Tree Classifier Datamängder Iris Digits Symmetri Dubbelsymmetri Utvärdering Cross-validation Confusion Matrix ROC Skew Experiment Metoddiskussion Resultat Symmetriskt datamängd Dubbelsymmetriskt datamängd Iris datamängd Digits datamängd Analys Mängden inlärningsdata Symmetri och Dubbelsymmetri Iris Digits

8 4.2 Datamängdens struktur Diskussion Support Vector Classifier K-Nearest Neighbor Decision Tree Classifier Tidigare forskning Slutsatser och vidare forskning 27 Referenser 30 A Bilaga, Skapandet av dataset 32 B Bilaga, Skapandet av Confusion Matrix 34

9 1 Inledning 1.1 Bakgrund Människan har sedan länge haft drömmar om maskiner med intelligens. Bland annat skrev Mary Shelly redan i början av 1800-talet om en tillverkad människoliknande varelse som hade en viss form av intelligens i boken Frankenstein. Vidare skrev Karel Čapek pjäsen R.U.R (Rossum Universal Robots) som hade premiär redan Detta kan ha varit grunden till forskningens försök till att skapa Artificiell Intelligens. Forskningsområdet Artificiell Intelligens skapades under en konferens som kom till att kallas The Dartmouth Artificial Intelligence Conference [15]. Därefter påbörjades en del forskning kring Artificeill Inteligens och maskininlärning, bland annat skrev Jaime G. Carbonell, Ryszard S. Michalski och Tom M. Mitchell tillsammans med flertalet författare ett arbete redan 1983, An overview of Machine Learning, som skulle ha stor betydelse för utvecklingen av ämnet maskininlärning. 1.2 Maskininlärning Lärandet har många delar. Själva processen inkluderar bland annat intaget av ny kunskap, utvecklingen av motorik och kognitivt beteende och upptäckten av ny fakta genom bland annat observationer. Man har sedan den första datorn strävat efter att göra det möjligt för maskiner att uppnå denna förmåga. Att implementera detta har dock visat sig vara utmanande. Detta område inom datavetenskap har kommit att kallas maskininlärning och är ett långsiktigt mål för Artificiell Intelligens[3]. För maskininlärning är nyckelkonceptet att lära sig från data, vilket kan liknas med människans inlärning från erfarenheter. För att hantera detta på maskinell nivå går det att dela in problemet i tre delar; att komma ihåg, att anpassa sig och att generalisera[14]. Maskininlärning är ett på senare tid särskilt uppmärksammat ämne[10] Övervakad och Oövervakad inlärning Den vanligaste formen av inlärning inom maskininlärning är en övervakad inlärning. Ett typiskt scenario inom maskininlärning är ett klassificeringsproblem. Utifrån ett visst antal variabler klassificeras en datainstans att tillhöra någon av (N) grupper. Detta baseras på den tidigare datan som algoritmen fått i inlärningsprocessen. För övervakad inlärning krävs det en datamängd för träning av algoritmen. I denna datamängd finns det dels input data som är de vanliga variabler som utger de olika datamängdernas struktur. Därefter finns det även en så kallad target input som visar på vad för klassificering den givna datan representerar[14]. På så sätt övervakas vilken inlärningsdata som algoritmen får från datamängden. En annan form av inlärning, som syftar till att gruppera liknande element, är den oövervakade vilket är inlärning av en datamängd som inte innehåller ett targetattribut. Detta leder till att algoritmen inte vet vad den korrekta klassificeringen är och kan därför inte veta om den gjort rätt eller fel[14] Utvärdering av Algoritmernas Prestation En viktig del inom maskininlärning är att utvärdera hur bra algoritmen presterar efter inlärningsprocessen. Detta för att slippa sätta en algoritm i produktion som inte presterar 1

10 som den ska. Det finns flera olika metoder för att mäta prestationen av en algoritm. En algoritm kan ge bra resultat på ett mätsätt medan det ger dåliga resultat på ett annat. De olika mätsätten ger alltså olika bilder av hur väl algoritmen faktiskt presterar med den givna inlärningsdatan[4]. Under senare tid har ROC grafen, se 2.6.3, blivit allt mer populär bland forskare och fått fler efterföljare mycket på grund av insikten att vanliga enklare mättekniker inte ger en rättvis bild vid mätning av prestationen[20]. 1.3 Syfte Det finns över olika algoritmer i området maskininlärning, många av dessa är väldigt lika varandra i sitt utförande[14]. Detta arbete fokuserar på att jämföra tre olika algoritmer, Support Vector Classifier, K-Nearest Neighbor och Decision Tree Classifier. Jag har valt att hålla mig till klassificeringsalgoritmer på grund av de datamängder som använts, nämligen Iris, Digits, Symmetri och Dubbelsymmetri. De tre algoritmerna valdes ut på grund av dess olikheter i klassificeringsstadiet, men även på grund av deras popularitet inom forskarvärlden[5][19][21]. Jag vill se hur mängden inlärningsdata påverkar algoritmens prestation att klassificera nya datainstanser rätt. Jag vill även se om datamängdens struktur så som skillnaden på symmetri och dubbellsymmetri spelar roll. 1.4 Frågeställning För maskininlärningsalgoritmerna K-Nearest Neighbor, Support Vector Classifier och Decision Tree Classifier ställdes följande frågor: Hur påverkar mängden inlärningsdata algoritmens prediktiva precision? Hur påverkar strukturen av inlärningsdata algoritmens prediktiva precision? 1.5 Avgränsning Inriktningen för studien är binär klassificering. Jag fokuserar på tre olika algoritmer och sex olika datamängder som ger en god överblick av resultatet. Testerna ger endast en indikation för algoritmernas egenskaper, och inte några definitiva svar. För att utföra en fullständigare men också mer tidskrävande utvärdering bör metoder som ROC kurvor och AUC användas vilket möjligen kan ge mer definitiva svar[26][7]. 1.6 Tidigare forskning Det som går att finna i litteraturen om tidigare forskning i ämnet för min studie är av mycket olika karaktär. Däremot är det lättare att finna forskning som tar upp grunderna för mitt arbete så som analyser av existerande mätmetoder och algoritmer samt forskning om inlärningskurvor. Det arbete som främst relaterar till de metoder som är relevanta för min forskning är Louis Yelle som forskat om inlärningkurvor[31]. Det han tar upp i sitt arbete är hur mängden inlärningsdata förhåller sig till algoritmers prestation, men studien är relativt gammal och fokuserar på litteratur om inlärningskurvor från andra världskriget fram till Vidare redovisar Gong Huang ett arbete om inlärningskurvor[12]. Han beskriver i sin forskning hur företag skall gå till väga för att skapa bra applikationer. Något annat arbete som tidigare använt sig av struktur och symmetri på det sättet som jag 2

11 använder mig av kunde inte hittas. Det närmaste jag kunde komma var ett arbete som försökte hitta symmetri i mänskliga ansikten[30]. Ännu ett annat arbete som kunde kopplas till min forskning var en studie av Defeng Wang som gjort ett arbete om att välja rätt inlärningsdata för SVMs med hjälp av en analys av strukturen. I sitt arbete beskriver han hur han utvecklat en algoritm som skall förenkla valet av datainstanser för inlärning. Algoritmen han utvecklat kallar han för SR-DSA vilket är en förkortning av Sample Reduction by Data Structure Analysis [29]. Vidare finns ett arbete av Greg Schohn och David Cohn som även de går igenom SVMs[22]. De beskriver ett sätt att välja inlärningsdata för en algoritm genom heuristik. Detta är en metod för att välja ut inlärningdata utan att använda sig av information om datan. Författarna kommer i sin forskning fram till att med rätt teknik kan man minimera mängden inlärningsdata och få ut bättre precision än om man använder mer eller hela datamängden. De visar även på att precisionen faktiskt kan bli sämre vid en inlärning av hela datamängden istället för en utvald del. Detta är även någonting som Shai Shalev-Shwartz och Nathan Srebro visar på i sin forskning[24], precisionen på en SVM minskar i takt med att inlärningsmängden ökar. Vidare utför även George Forman och Ira Cohen liknande tester där de analyserar fyra algoritmer, SVM, Logic Regresion, Naive Bayes och Multinomial Naive Bayes, med olika verklighetstrogna scenarion[8]. Även de kommer fram till att precisionen för en SVM faktiskt är bättre med ett fåtal inlärningsdata medans detta inte är fallet för de resterande algoritmer som de testar. Någonting som även är användbart för min forskning är analysen och utvärderingen av mätverktyget ROC, se Den forskning som gjorts inom detta område är Tom Fawcett som gjort en tidigare forskning i hur ROC kurvor används och hur de ska skapas för bästa resultat[6]. Ett annat arbete inom ämnet är skrivet av James A. Hanley och Barbara J. McNeil som arbetat fram meningen med arean under en ROC kurva, även kallat AUC[11]. Andra intressanta områden för mitt arbete innefattar även Cross-validation vilket Sylvain Arlot har arbetat med. Arlot redovisar hur en Cross-validation metod skall väljas för ett givet problem[1]. 2 Metod 2.1 Metodbeskrivning För att hantera forskningsfrågan utför jag flertalet experiment där jag analyserar precisionen av de olika algoritmerna vid olika mängder inlärningsdata. Flera olika typer av inlärningsdata används för att ge en rättvis bild av algoritmernas prestation. Dessa datamängder är Iris, se 2.5.1, vilket är en välkänd datamängd inom maskininlärning, Digits, se 2.5.2, även det en välkänd datamängd, samt några egenskapade datamängder baserade på symmetri, se och De utvalda algoritmerna lärdes upp med olika mängder datainstanser från datamängderna varefter omfattande tester utfördes på de upplärda algoritmerna. Mängden datainstanser ökades stegvis och algoritmens prestation testades med resterande mängd. Resultatet av experimenten är analyserade med hjälp av olika metoder som återfinns i litteraturen. 3

12 2.2 Litteraturstudie En litteraturstudie genomfördes för att förstå vad tidigare forskning inom maskininlärning och utvärdering av maskininlärningsalgoritmer visar. De vanligaste databaser och sökmotorer att använda sig av inom detta ämne är ACM Digital Library, IEEE Xplore Digital Library, SpringerLink och Google Scholar. Detta gör att jag har utgått ifrån dessa när jag utfört min litteraturstudie. I början av min litteraturstudie använde jag mig av ACM, IEEE samt Springer som är mer specifika för datavetenskap. Där skapade jag mig en förståelse av vilka artiklar som var av vetenskapligt värde och tyngd. Med dessa artiklar som bas kunde jag sedan använda mig av Google Scholar för att täcka ett bredare område och därigenom säkerställa att jag inte missat viktig litteratur. Som kan ses i Tabell 1 på rad 4 så söker jag efter Machine Learning AND scikit AND evaluating och får då 1 träff på IEEE. På nästa rad lägger jag till ett sökord, score och får då 1,637 resultat på IEEE. Vid dessa tillfällen har jag valt att använda mig av den sökmotor som givit mest regelbundet resultat av mina sökningar, vilket i detta fallet varit Google Scholar. Litteraturstudien fortlöpte under forskningsstudien då nya problem och aspekter uppenbarades Nyckelord För att göra informationssökningen effektiv lades ett antal nyckelord fram som riktlinjer vid sökningar. Dessa nyckelord användes både tillsammans och var för sig för att finna tillförlitliga resultat i givna databaser. Se Tabell 1 för att få en överblick av de olika sökningar som gjordes. Nyckelorden som användes vid varje sökning var två fundamentala ord för mitt forskningsområde som filtrerar bort största delen av det som inte var relevant för min forskning. Dessa två ord var Machine och Learning som kombinerat blir en fras att använda i min systematiska litteratursökning. Machine Learning kan ses i Tabell 1 resulterar i ca 2,180,000 träffar på Google Scholar och tusentals träffar i resterande databaser, men det ger trots allt en tydlig avgränsning av mitt område som var nödvändigt att göras vid mitt sökande. Därför gjorde jag valet att använda Machine Learning i samtliga sökningar följt av nyckelord från följande lista baserad på frågeställningen. Evaluation Score Performance Accuracy Comparison Learning Curve Structure Symmetry Size Dataset 4

13 Dessa nyckelord användes vid sökande av relaterad forskning. Vidare användes även andra nyckelord för att finna information om metodval och liknande. Dessa nyckelord var: ROC Space Cross Validation Confusion Matrix Scikit Val av artiklar Vid varje sökning gick jag igenom de första 100 resultaten för att analysera titel samt nyckelord. Om dessa var intressanta för studien sparades artikeln ned för en vidare analys av informationen. Efter första genomgången av titlar läste jag sammanfattningen vilket avgör om texten innehåller relevant information så som titeln antytt. Om innehållet i sammanfattningen var relevant sparade jag undan artikeln för ytterligare bedömning och analys. Uppfyllde artikeln kraven fram till denna punkt läste jag artikeln i sin helhet och fattade ett slutgiltigt beslut om artikelns innehåll var relevant information för forskningen, och sparades då undan för användning. Ett resultat av sökningarna kan ses i Tabell Fastställande av komplett litteraturlista samt kvalitet av artiklar Om artikeln nådde det stadiet att jag läste sammanfattningen så gick jag oavsett resultat också igenom referenslistan. Detta för att finna andra möjliga källor samt att värdesätta artikelns vetenskapliga kvalitet och relevans, men också för att säkerställa att min litteraturlista var komplett. Fann jag referenser som är relevanta i denna genomgång så skedde ytterligare sökningar med dessa referenser som nyckelord. Tabell 1: Använda sökord samt antal resultat för de använda sökmotorerna. Sökord GOOGLE ACM SPRINGER IEEE Artikel Machine Learning 2,180,000 25,581 18,639 40,972 - Machine Learning AND 9, ,864 8 [17] scikit Machine Learning AND 1,240,000 3,668 53, [4] Empirical Comparison Machine Learning AND 3, ,864 1 [17] scikit AND evaluating Machine Learning AND 2, ,864 1,637 [17] scikit AND evaluating AND score Machine Learning AND 251, , [2][9] evaluating AND score Machine Learning AND evaluating AND ROC 78, , [6][7][11] 5

14 Machine Learning AND evaluating AND ROC space Machine Learning AND accuracy AND ROC space AND evaluating Machine Learning AND performance Machine Learning AND performance AND comparison Machine Learning AND performance AND comparison AND classification Machine Learning AND performance AND confusion-matrix Machine Learning AND iris dataset Machine Learning AND digits dataset Machine Learning AND symmetry Machine Learning AND KNN Machine Learning AND K-Nearest Neighbor Machine Learning AND Support Vector Machine Machine Learning AND Support Vector Classifier Machine Learning AND Decision Tree Classifier Machine Learning AND Imbalanced Data machine learning AND roc AND auc Machine Learning AND cross-validation Machine Learning AND Learning Curve 55, , [6][11] 45, ,679 3,978 [6][7][11] 3,260,000 15, ,283 17,498 [3][10][15] 2,680, ,862 1,378 [16][18] 2,410, , [4] 42, , [16][6] 28, , [17] 41,300 3,484 4, [17] 141, , [10][11] 55, , [17][11] 84,300 2,080 13,688 1,000 [17][19] 1,700,000 11,398 99,663 14,939 [5] 733,000 11,398 42,412 4,770 [5][17] 256,000 7,442 23, [21] 62, , [20] 37, , [11] 689,000 7, ,068 [1][25][13] 15, , [31] [12] 6

15 Machine Learning AND training AND dataset structure Machine Learning AND Symmetry Machine Learning AND data set AND size 236,000 1,559 33, [29] [27] 152, , [30] 1,060, ,002 56, [22][8][24] Titel Tabell 2: Resultatet av litteraturstudien med titlar och dess referensnummer. A survey of cross-validation procedures for model selection. [1] Pattern Recognition [2] An overview of Machine Learning. [3] An empirical comparison of supervised Learning algorithms. [4] LIBSVM: a library for support vector Machines. [5] An introduction to ROC analysis. [6] Learning decision trees using the area under the ROC curve. [7] Learning from Little: Comparison of Classifiers Given Little Training [8] The predictive sample reuse method with applications [9] Genetic algorithms and Machine Learning. [10] The meaning and use of the area under a receiver operating characteristic [11] (ROC) curve. Learning curve: principle, application and limitation. [12] The art of forecasting an analysis of predictive precision of Machine [13] Learning models.. A proposal for the dartmouth summer research project on artificial intelligence, [15] august 31, Data analysis, including statistics. [16] Scikit-learn: Machine Learning in Python. [17] Tree induction vs. logistic regression: A Learning-curve analysis. [18] K-nearest neighbor. [19] Machine Learning from imbalanced data sets 101. [20] CLOUDS: A decision Tree classifier for large datasets. [21] Less is More: Active Learning with Support Vector Machines [22] SVM optimization: inverse dependence on training set size. [24] Cross-validatory choice and assessment of statistical predictions. [25] A comparison of machine learning algorithms applied to hand gesture [27] recognition. Selecting valuable training samples for SVMs via datastructure analysis. [29] Learning to compute the plane of symmetry for human faces. [30] The learning curve: Historical review and comprehensive survey. [31] Referensnummer 7

16 2.3 Scikit Learn Python har under senare tid blivit allt mer använt inom den vetenskapliga sektorn på grund av sitt allt växande ekosystem av vetenskapliga bibliotek. Detta har gjort att ett välkänt ramverk inom maskininlärning har skapats just i Python. Ramverket kallas Scikit Learn och tillhandahåller implementeringar av många välkända och använda algoritmer för maskininlärning samtidigt som det behåller användarvänligheten av Python[17]. Användandet av Scikit Learn ger mig en snabb och enkel åtkomst till både Iris och Digits datamängd som finns packeterade med Scikit Learn, liksom ett effektivt ramverk för åtkomst av flera olika maskininlärningsalgoritmer. De tre algoritmer jag valt att arbeta med finns alla implementerade i Scikit Learn. Utöver de algoritmer och datamängder som tillhandahålls fick jag via Scikit Learn även tillgång till ett flertal olika mätinstrument för att utvärdera de olika algoritmernas prestation. De mätinstrument som jag använde mig av var Cross-validation samt Confusion Matrix. 2.4 Algoritmer För att utvärdera min frågeställning använde jag tre algoritmer baserade på olika inlärningsmetoder för att få ett tillräckligt omfångsrikt resultat. Samtliga algoritmer finns implementerade i Scikit Learn. Nedan beskrivs varje algoritm mer utförligt samt vilka parametrar jag använt mig av vid implementationen Support Vector Classifier Support Vector Machine eller SVM är en av de mest populära algoritmer använda vid maskininlärning. Den introducerades av Vapnik 1992 och och är en flexibel algoritm vilket gör den möjlig att använda till både klassificering, regression och andra inlärningsuppgifter[14][5]. Den ger ofta en bättre klassificeringsprestation än andra algoritmer på de flesta datamängder, däremot inte på större datamängder då den använder sig av en data matrix invertion vilket kräver hög processorkraft. Att implementera en egen Support Vector Machine är mycket komplicerat och kräver djupare kunskap och tid än vad detta arbete omfattar[14]. Jag använde mig därför av en redan implementerad version av en Support Vector Machine som finns tillgänglig i Scikit Learn som tillät mig att manipulera de parametrar jag önskade. Support Vector Classifier eller SVC är den typ av Support Vector Machine som används vid klassificering. För den Support Vector Classifier som ingår i detta arbete användes en Linjär kärna vilket resulterar i en Linear Support Vector Classifier. Jag använde följande rad för att anropa den aktuella Support Vector Classifier algoritmen: svc = SVC(kernel= linear, C=1.0) Vilket resulterar i en Support Vector Classifier med följande egenskaper: SVC(C=1.0, cache_size=200, class_weight=none, coef0=0.0, decision_function_shape=none, degree=3, gamma= auto, kernel= linear, max_iter=-1, probability=false, random_state=none, shrinking=true, tol=0.001, verbose=false) 8

17 Figur 1: Demonstration av en SVM[14] En SVM försöker manipulera datan så att den enklare kan separeras i klasser. För att åstadkomma den bästa möjliga separationen mäter algoritmen upp en s.k. Margin, se Figur 1, för att enklare kunna hitta en rak linje mellan de olika klasserna med en marginal mellan linjen och de närmaste datainstanserna. Algoritmen försöker skapa en marginal som är så stor som möjligt utan att någon av datainstanserna hamnar innanför[14] K-Nearest Neighbor K-Nearest Neighbor eller KNN är en algoritm som är utvecklad för användning vid både övervakad och oövervakad maskininlärning[19]. I en K-Nearest Neighbor klassificeras datainstansen beroende på de N-närmaste grannar av den tidigare inlärda datan. Detta kräver att avstånden till alla olika datainstanser kalkyleras i minnet vilket är relativt kostsamt i processorkraft[14]. Detta gör en K-Nearest Neighbor algoritm effektiv och användbar för mindre datamängder, och mindre värdefull för större datamängder. Mängden grannar definieras för algoritmen genom variabeln K. Användes en K=1 kollar algoritmen på den datainstansen som är närmast, eller mest lik, för att sedan klassificera den givna datainstansen. I detta arbete användes en K=5 och algoritmen klassificerar därför datan utifrån klasserna av de fem närmaste datainstanserna som finns i inlärningsdatan. Anpassningen av K är viktig. Anges ett K-värde som är för litet blir algoritmen känslig för utstickande data i datamängden. Anges däremot ett för högt värde på K blir träffsäkerheten lägre då algoritmen tar hänsyn till datainstanser som ligger för långt borta för att vara relevanta[14]. Jag använde följande rad för att anropa K-Nearest Neighbor algoritmen: knn = KNeighborsClassifier(n_neighbors=5, weights= uniform ) 9

18 Vilket ger mig en K-Nearest Neighbor med följande egenskaper: KNeighborsClassifier(algorithm= auto, leaf_size=30, metric= minkowski, metric_params=none, n_jobs=1, n_neighbors=5, p=2, weights= uniform ) Figur 2: Demonstration av en KNN med K=5[19] Antag att K-Nearest Neighbor algoritmen lärs upp med datainstanser av två olika klasser och ger den sedan en ny okänd datainstans att klassificera. Har en K=5 angivits kommer algoritmen att titta på de 5 närmaste grannarnas klasser för att avgöra datainstansens klass, se Figur 2. Algoritmen ser här att två av de närmsta grannarna är av den röda klassen medan tre av de närmaste grannarna är av den blå klassen, vilket resulterar i att den nya datainstansen klassificeras till blå[14] Decision Tree Classifier Binära träd är vanligt inom datavetenskapen för att skapa en enkel datastruktur att traversera genom. Skapandet och användningen av ett binärt träd är kostnadseffektivt vilket gör det mycket användbart i en implementering av maskininlärning[14][21]. Andra egenskaper som gjort att algoritmer som använder binära träd har blivit populära inom maskininlärning är att de är enkla att förstå till skillnad från andra komplexa algoritmer som till exempel neurala nätverk[14]. Inom maskininlärning kallas en sådan implementering för Decision Tree, och i detta fall för Decision Tree Classifier. En Decision Tree Classifier bryter ned varje egenskap hos datainstansen till en mängd olika val med sin början i roten, eller root, och traverserar sedan genom trädet till klassificeringen i löven, eller leaf[14]. Jag använde mig av en Decision Tree Classifier som finns tillgänglig i ramverket Scikit Learn. Denna algoritm användes tillsammans med Gini impurity för att mäta kvaliteten av en 10

19 delning. En Gini impurity innebär att algoritmen försöker skapa en Decision Tree Classifier där varje löv representerar en mängd av datainstanser av samma klass. Detta för att inte skapa några missanpassningar[14]. För att anropa Decision Tree Classifier algoritmen användes följande rad: dtc = DecisionTreeClassifier(criterion= gini ) Vilket resulterar i en Decision Tree Classifier med följande egenskaper: DecisionTreeClassifier(class_weight=None, criterion= gini, max_depth=none,max_features=none, max_leaf_nodes=none, min_impurity_split=1e-07, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, presort=false, random_state=none, splitter= best ) Figur 3: Demonstration av en Decision Tree Classifier[21] Om målet med ett Decision Tree skulle vara att bestämma vilken skola en person skulle gå på, se Figur 3, kan en möjlig början vara att kontrollera åldern. Är personen över 30 år? Om detta är fallet avgörs om personen redan har en utbildning och bestämmer skola utefter det. Är personen istället under 30 år, kontrolleras kanske någon annan egenskap som kön och bestämmer skola utefter det. 2.5 Datamängder Jag använde mig av flertalet olika datamängder för att få ut en bred och tillförlitlig data, vilka är beskrivna i följande avsnitt Iris En datamängd av olika sorters blommor av arten Iris. Datamängden skapades av R.A. Fisher 1932 och består av tre klasser med 50 datainstanser av varje klass. Varje datainstans består av fyra värden i form av dimensioner i cm som representerar kronbladens (petal) längd samt bredd och foderbladens (sepal) längd samt bredd, samt ett heltal mellan 0 och 2 för klassificering. Klassen 0, Iris Setosa, är linjärt separerbar från de andra två klasserna, medan klass 1 och 2, Iris Versicolor och Iris Virginica, inte är linjärt separerbara. Då jag 11

20 valt att göra en binär klassificering av datan innebär detta att i implementeringen har alla datainstanser med klassificering 0 tagits bort då denna klass är linjärt separerbar från de andra klasserna och därmed enklare att känna igen[28]. Figur 4: Exempel av Iris datamängd[28]. Här ses nio datainstanser av klass 2, Iris Virginica Digits En datamängd med handskrivna siffror. Består av 10 klasser med 250 handskrivna siffror från 44 olika personer. Ur denna kollektion har Scikit Learn valt ut 1797 datainstanser och skapat en egen datamängd speciellt utvecklat för testning av maskininlärning[23]. Varje datainstans består av en 8x8 matris med värden från 0.0 till 16.0 som representerar en gråskala. Detta resulterar i 64 attribut för varje datainstans samt ett värde för kategoriseringen. I min implementation har jag valt att slå samman klasserna 0-4 samt klasserna 5-9 för att skapa ett scenario där algoritmen får bestämma om den givna datainstansen tillhör siffrorna 0-4 eller 5-9. På så sätt kunde jag skapa ett liknande scenario som i Iris, se 2.5.1, och mina egna symmetriska och dubbelsymmetriska datamängder, se och 2.5.4, där jag använde mig av en binär klassificering. Figur 5: Exempel av Digits datamängd[23]. Här ses fyra exempel av datainstanser i Digits datamängd. 12

21 2.5.3 Symmetri För att utvärdera algoritmerna jag valt ut har jag skapat ett antal datamängder som bygger på symmetri och dubbelsymmetri, se Den första datamängden består av 1000 symmetriska och 1000 asymmetriska bilder i storleken 6x6 pixlar. Varje datainstans innehåller 36 värden av antingen 0 eller 1, ett värde för varje pixel som bilden består av. I denna datamängd innebär symmetri att den högra halvan av bilden är en spegelbild av den vänstra, se Figur 6. Då det finns 2 36, alltså , möjliga datainstanser av vilka 2 18, alltså , är symmetriska valde jag endast ut 1000 slumpmässiga datainstanser från varje kategori. Jag använde mig även av liknande datamängder som istället består av datainstanser med måtten 8x8 pixlar. Här har jag precis som i det tidigare datamängder använt mig av 1000 symmetriska och 1000 asymetriska bilder. Dessa är symmetriska på samma sätt, nämligen att högra sidan är en spegelbild av den vänstra. Figur 6: Exempel på en symmetrisk datainstans av formen 8x8 Skapandet av denna datamängd har gjorts programatiskt med Python och koden för detta finns att tillgå i Bilaga A Dubbelsymmetri Den andra datamängd som jag har skapat är en dubbelsymmetriskt datamängd. Det är precis som tidigare en datamängd bestående av bilder i storleken 6x6 med värden mellan 0 och 1 för varje pixel. I en dubbelsymmetrisk datainstans är den högra sidan en spegelbild av den vänstra samt den undre sidan är en spegelbild av den övre, se Figur 7. Detta ger fortfarande en möjlighet av 2 36, alltså , olika datainstanser, men endast 2 9, alltså 512, dubbelsymmetriska datainstanser. Detta innebar att jag endast kunde skapa en datamängd med 512 datainstanser i varje klass. Jag har även här gjort en 8x8 variation av datamängden, men i detta fallet med 1000 datainstanser i varje klass då jag här har 2 18, alltså , olika möjligheter för dubbelsymmetriska datainstanser. 13

22 Figur 7: Exempel på en dubbelsymmetrisk datainstans av formen 8x8 2.6 Utvärdering Cross-validation Att träna en algoritm och testa den med samma data ger ett felaktigt prestationsresultat. Detta kan motverkas genom Cross-Validation då detta tränar algoritmen med en viss data och testar den med en annan[16][9][25]. I de flesta scenarion finns det endast ett begränsat antal data att tillgå. Därför delas datan upp i delar, en del för inlärning och resterande för test, se exemplet i Figur 8. På så sätt kan testdatan ses som ny data. Endast en delning skapar en validation estimation, medan fler delningar ger en Cross-Validation estimate [1]. En delning En Hold-out, eller simple validation", består av endast en delning[1]. Som exempel kan ges en delning av Iris datamängd. Iris består av 150 datainstanser vilket i en Hold-out situation delas i två delar på 75 datainstanser vardera. En del används till inlärning och den andra till test eller validering av algoritmen för att ge en bild av hur bra algoritmen kan identifiera kategorier. Som motsats till detta kan istället algoritmen läras med alla 150 datainstanser utan att veta hur bra algoritmen sedan presterar på vidare datainstanser. N-delningar En Cross-validation består av fler än en delning av datamängden. Till skillnad från Hold-out delas datamängden i N delar och och använder sedan en del för testning och resten för inlärning enligt principen LOO (Leave One Out)[1]. Låt oss säga att vi har 100 datainstanser och vill uppskatta träffsäkerheten med hjälp av Cross-Validation med 5 delningar med 20 datainstanser var, se Figur 8. I den första iterationen tränas algoritmen med S 2, S 3, S 4 och S 5 och testas med S 1. Vi får då en träffsäkerhet på 11/20. I nästa iteration tränas istället algoritmen med S 1, S 3, S 4 och S 5 och testas med S 2. Detta ger istället en träffsäkerhet på 17/20. På samma sätt utförs testen på varje delning för att få ett sammanställt värde av alla delningar. 14

23 Figur 8: Demonstration av Cross-validation[25] Confusion Matrix För att räkna ut ROC space, se 2.6.3, använde jag mig av en Confusion Matrix. Vid skapandet av de Confusion Matrix som ingår i detta arbete användes följande metod. Givet en algoritm och en datainstans finns det fyra möjliga resultat, se Figur 9. Om datainstansen är positiv och algoritmen klassificerar den som positiv kallas det för en True Positive, om den däremot blir klassificerad som negativ kallas det en False Negative. Vidare om datainstansen är negativ och algoritmen klassificeras som negativ kallas detta för en True Negative samt om den klassificeras som positiv kallas det för False Positive. Vidare givet en full datamängd kan en två gånger två matris skapas med resultatet av varje datainstans värde och klassifisering där varje instans blir placerad i respektive ruta i matrisen[6]. Figur 9: Definition av Confusion Matrix[6] ROC Jag använde mig av metoden Receiver Operating Characteristic space, förkortat ROC space, för att göra resultaten tydligare. ROC uppstod i samband med analysen av radarbilder 15

24 och är en del av Signal Detection Theory som utvecklades under andra världskriget[11]. En ROC space visar hur bra en algoritm presterar tillammans med en visst datamängd. ROC har blivit ett populärt sätt att mäta prestationen på algoritmer inom maskininlärning, mycket på grund av den enkelheten att avläsa prestationen visuellt, se Figur 10[6]. För att skapa en ROC space användes en Confusion Matrix, se 2.6.2, för att ta reda på algoritmens True Positive Rate samt False Positive Rate. För att räkna ut dess värden använde jag mig av följande formel: True Positive Rate = False Positive Rate = accuracy = T P actual pos = F P actual neg = T P + T N T P + F P + F N + T N T P T P + F N F P T N + F P Då ROC ger ett intressantare visuellt resultat än endast accuracy använde jag mig av ett ROC space. För att skapa ett ROC space skapas en graf där True Positive Rate plottas på Y-axeln och False Positive Rate plottas på X-axeln. På demonstrationsbilden, se Figur 10, ses fem punkter markerade. Dessa punkter, A till E, representerar ett resultat av en körning av en lärd algoritm. Det strävas efter ett så lågt False Positive Rate som möjligt, samtidigt som ett så högt True Positive Rate som möjligt. Detta innebär att om ett värde på 0 samt 1, vilket representeras av punkt D i figuren, representerar en perfekt klassificering av alla datainstanser. Detta till skillnad från ett värde på 0,5 samt 0,5 som är ett värde mitt i grafen vilket är en algoritm som endast gissar. Det kan även ses en diagonal streckad linje genom grafen. Den linjen visar var gränsen går för en värdelös algoritm. Ett värde som är enligt E i figuren presterar alltså sämre än en algoritm som väljer kategori slumpmässigt, men detta kan inverteras och göras till det bättre genom att vända på alla svar från algoritmen. Punkten E är i själva verket en spegelbild av punkt B vilket gör dem precis lika effektiva[6]. 16

25 Figur 10: Demonstration av ROC space[6] Skew En utmaning som många utövare av maskininlärning stöter på är att hantera skewed klasser i klassificeringsproblem. En skewed klass är en klass som är överrepresenterad i en datamängd[20]. I vårt fall är det en symmetridatamängd där den asymmetriska klassen är överrepresenterad i form av 2 36 alltså olika möjligheter. Detta mot 2 18 alltså möjligheter för symmetrisk samt 2 9 alltså 512 möjligheter för dubbelsymmetrisk när det gäller vår 6x6 datamängd. Detta gör att algoritmen kan gissa på att en ny datainstans är asymmetrisk och nästan alltid ha rätt. Detta problemet löste jag genom att begränsa den specifika klassens representation i datamängden. Skapas en datamängd med lika stor representation bland de olika klasserna kommer algoritmen inte favorisera någon klass och problemet kringgås[20]. 2.7 Experiment För att utvärdera algoritmernas prestationer med de givna datamängderna utfördes flertalet experiment med hjälp av metoderna beskrivna i föregående avsnitt. Dessa experiment är program skrivna i Python med ramverket Scikit Learn och ett exempel på program som genererats finns att tillgå i Bilaga B. För att göra utvärdering av de olika algoritmernas prestation så kan i Bilaga B ses att en datamängd importerades och sedan delades upp i olika stora delar för att testas mot diverse olika algoritmer. Tio tester kördes för varje algoritm respektive datamängd och det genomsnittliga resultatet av dessa körningar utformade den slutgiltiga Confusion Matrix som användes för skapandet av ROC-space diagrammet som återfinns i resultatet. 17

26 2.8 Metoddiskussion Valet att skapa datamängder som bygger på symmetri är ett ytterst personligt val. Symmetri är ett naturligt förekommande fenomen som finns runt omkring oss i vårt dagliga liv, inte minst i växt och djurriket. Symmetri tilltalar oss människor då detta är någonting som ligger i vår natur. Någonting som är intressant för mig är om detta fenomen är lika enkelt för en maskininlärningsalgoritm att upptäcka som för en människa. Därför skapades en datamängd som bygger på symmetri, men även en datamängd som bygger på dubbelsymmetri för att identifiera om detta har någon påverkan på inlärningsförmågan. Det kan inte lika enkelt ses hur strukturen påverkar inlärningsförmågan i datamängderna Iris och Digits då de är så olika varandra i struktur. Därför skapades det symmetriska och dubbelsymmetriska datamängderna för att underlätta undersökningen av strukturens påverkan. Dessa två datamängder kommer att ge en bild av hur strukturen påverkar inlärningen och därmed den prediktiva precisionen. I litteraturstudien kunde jag inte finna någon referens som använde sig av symmetri för att utvärdera skillnader i den prediktiva precisionen beroende på datamängdernas struktur. Detta gör att jag inte kan sätta resultaten av min studie i relation till någon tidigare forskning. Den valda metoden att öka inlärningsmängden successivt och köra experiment på dessa visade sig vara mycket effektivt. Från början hade jag ingen uppfattning om vad resultatet av min studie skulle bli. Att sammanfatta resultaten i CM och analysera dem senare med grafer av ROC-space var mycket praktiskt och visade sig ge väldigt tydliga resultat. Jag prövade mig fram med olika träningsmängder, algoritmer och datamängder innan jag kunde fastställa vilken metod som skulle passa mig bäst. En alternativ metod hade kunnat vara att använda sig av andra algoritmer och andra datamängder. Med tanke på den tidigare forskning om hur mängden inlärningsdata påverkar algoritmens prestation hade ett alternativ varit att använda sig av ännu större datamängder för ett generaliserbart resultat av större datamängder. Det kanske även ger ytterligare insikter i hur inlärningsmängden påverkar algoritmens effektivitet. 3 Resultat Resultatet sammanställdes i en Confusion Matrix varpå det fördes in i en ROC space. Ett exempel på en Confusion Matrix som användes kan ses i Figur 11. Figuren visar resultatet av experimenten på 6x6 symmetriska datamängd med algoritmen K-Nearest Neighbor. Figur 11: Confusion Matrix av resultatet för K-Nearest Neighbor på 6x6 symmetri datamängd och input data till ROC space. 18

27 3.1 Symmetriskt datamängd Resultaten av försöken på de två symmetriska datamängderna presenteras i två grafer med ROC space, se Figur 12 och 13. Algoritmerna K-Nearest Neighbor, gul markering, Decision Tree Classifier, röd markering samt Support Vector Classification, blå markering. Siffrorna 50 respektive 500 visar mängden inlärningsdata för de givna resultaten. Figur 12: ROC space på 6x6 symmetriskt datamängd Resultatet av experimenten med det 6x6 symmetriska datamängden illustreras i Figur 12. Vi kan konstatera att Support Vector Classifier med endast 50 inlärningsinstanser ger ett resultat av 0.50 i True Positive Rate samt 0.50 i False Positive Rate. Vi kan också se att vid 500 inlärningsinstanser så ökar True Positive Rate drastiskt till 1.0 och False Positive Rate sjunker något till Skillnaden i precisionen mellan 50 och 500 inlärningsinstanser är betydligt större för Support Vector Classifier jämfört med de andra algoritmerna. För K-Nearest Neighbor och Decision Tree Classifier är skillnaden mellan de två inlärningsmängderna inte lika stor men resulterar däremot i högre True Positive Rates och lägre False Positive Rates. Den algoritm som resulterar i högst True Positive Rate respektive lägst False Positive Rate är Decision Tree Classifier med 500 inlärningsinstanser. 19

28 Figur 13: ROC space på 8x8 symmetriskt datamängd I Figur 13 ser vi resultatet av experiment utförda på det 8x8 symmetriska datamängden. Resultatet visar är att en inlärningsmängd på 50 för Support Vector Classifier ger en True Positive Rate på 0.51 och en False Positive Rate på Skillnaden är inte särskilt stor för 500 inlärningsinstanser där vi kan se ett resultat på 0.69 i True Positive Rate och 0.45 i False Positive Rate. Vidare är skillnaden mellan inlärningsmängderna betydligt större för de två andra algoritmer med det högsta True Positive Rate respektive det lägsta False Positive Rate för Decision Tree Classifier med 500 inlärningsinstanser. 3.2 Dubbelsymmetriskt datamängd Experimenten på de symmetriska datamängderna upprepades på de två dubbelsymmetriska datamängderna och resultaten är sammanställda i två grafer med ROC space, se Figur 14 och 15. För de dubbelsymmetriska datamängderna representeras algoritmerna K-Nearest Neighbor av gul markering, Decision Tree Classifier av röd markering samt Support Vector Classification av blå markering. Siffrorna 25 och 256 respektive 50 och 500 visar mängden inlärningsdata för de givna resultaten. 20

29 Figur 14: ROC space på 6x6 dubbelsymmetriskt datamängd Resultatet av experimentet på det 6x6 dubbelsymmetriska datamängden är sammanställt i Figur 14. Det som ska noteras här är att till skillnad från Figur 12, 13 och 15 som har inlärningsmängder på 50 och 500 så är inlärningsmängder här istället 25 och 256, se avsnitt för förklaring. Det vi kan se är att Support Vector Classifier med 25 inlärningsinstanser ligger vid 0.52 i True Positive Rate samt 0.49 i False Positive Rate. Decision Tree Classifier samt K-Nearest Neighbor ligger aningen högre i True Positive Rate på 0.65 och 0.75 samt lägre i False Positive Rate på 0.33 och Vidare kan vi se att alla algoritmer sänker False Positive Rate vid 256 inlärningsinstanser samt höjer True Positive Rate till Figur 15: ROC space på 8x8 dubbelsymmetriskt datamängd 21

30 I Figur 15 presenteras resultatet av experiment på det 8x8 dubbelsymmetriskt datamängden. Resultatet för Support Vector Classifier vid 50 inlärningsinstanser ligger på 0.51 i True Positive Rate och 0.49 i False Positive Rate, medan K-Nearest Neighbor ligger på 0.90 och 0.38 samt Decision Tree Classifier ligger på 0.66 och Vidare ses att med ökad inlärningsmängd till 500 stiger även True Positive Rate på samtliga algoritmer till 1.00 medan False Positive Rate sjunker en aning. 3.3 Iris datamängd Den kända Iris datamängd av R.A. Fisher finns tillgängligt i Scikit Learn och är en av de datamängder som ingår i denna studie. Jag tog bort klass 0 (Iris Setosa) då denna klass är linjärt separerbar från de andra två, se 2.5.1, och använde mig enbart av klass 1 och 2 (Iris versicolor samt Iris Virginica). Resultaten av experimenten sammanställdes i en graf med ROC space, se Figur 16. För Iris datamängd representeras algoritmerna K-Nearest Neighbor av gul markering, Decision Tree Classifier av röd markering samt Support Vector Classification av blå markering. Siffrorna 5, 10 samt 20 visar mängden inlärningsdata som använts för det givna resultatet. Figur 16: ROC space på Iris datamängd Resultaten av experimenten gjorda på Iris datamängd presenteras i Figur 16. Här kan vi observera en punkt långt ifrån de andra nämligen K-Nearest Neighbor med en inlärning på 5 instanser. Den ligger på 0.00 i True Positive Rate och 0.51 i False Positive Rate. De andra punkterna för K-Nearest Neighbor ligger på 0.88 och 0.28 för 10 inlärningsinstanser samt 0.97 och 0.10 för 20 inlärningsinstanser. För Support Vector Classifier ligger resultaten av 5 inlärningsinstanser på 0.87 och Vidare ligger punkten för 10 inlärningsinstanser på 0.95 och 0.15 samt för 20 inlärningsinstanser på 0.96 och För Decision Tree Classifier ligger resultaten av 5 inlärningsinstanser på 0.76 i True Positive Rate och 0.34 i False Positive Rate. Vidare ligger punkten för 10 inlärningsinstanser på 0.93 och 0.13 samt för 20 instanser på 0.97 och

31 3.4 Digits datamängd Resultaten från experimenten utförda på Digits datamängd demonstreras i grafer med ROC space, se Figur 17, samt en kurva som visar hur True Positive Rate relaterar till False Positive Rate beroende på inlärningsmängd, se Figur 18. Siffrorna 18 till 900 visar de steg av inlärningsmängd som använts för att få det givna resultatet. Figur 17: ROC space på Digits datamängd I Figur 17 kan vi se att Decision Tree Classifier med 18 inlärningsinstanser ligger på 0.55 True Positive Rate samt 0.44 False Positive Rate. Vidare för 900 inlärningsinstanser ligger resultatet för True Positive Rate på 0.99 och False Positive Rate på För K- Nearest Neighbor ligger resultatet av 18 inlärningsinstanser på 0.56 i True Positive Rate samt 0.38 i Flase Positive Rate. För 900 i mängden inlärningsinstanser ligger True Positive Rate på 0.99 och False Positive Rate på Support Vector Classifier ligger för 18 inlärningsinstanser på 0.72 i True Positive Rate samt 0.26 i False Positive Rate, medan för 900 inlärningsinstanser ligger True Positive Rate på 0.99 och False Positive Rate på

32 Figur 18: Graf över TPR och FPR beroende på mängden inlärningsdata Det vi kan se i Figur 18 är en annan typ av graf för resultaten av experimenten av datamängden Digits. Det kan ses i denna grafen är mängden inlärningsinstanser på X- axeln samt ett värde 0-1 på Y-axeln som representerar värdet givet av True Positive Rate samt False Positive Rate. Vid 18 inlärningsinstanser ligger Decision Tree Classifier på 0.55 i True Positive Rate och 0.44 i False Positive Rate, vilket ses öka respektive sjunka i värde beroende på antalet inlärningsinstanser. Detta är gemensamt för samtliga algoritmer. 4 Analys 4.1 Mängden inlärningsdata Man kan tydligt se på resultaten att mängden inlärningsdata har stor betydelse för algoritmens prestation i att kategorisera nya datainstanser. I det här avsnittet analyserar jag de olika resultaten jag fått på mina egengjorda symmetriska och dubbelsymmetriska datamängder, min binära implementation av Iris datamängden, samt min implementation av Digits datamängd och jämför mina resultat med de från tidigare forskning Symmetri och Dubbelsymmetri De fyra grafer som formar resultaten av mina experiment visar att mängden inlärningsdata definitivt påverkar prestationen av algoritmen. Den första grafen, se Figur 12, visar att alla tre algoritmer får ett bättre resultat vid den högre inlärningsmängden. K-Nearest Neighbor samt Decision Tree Classifier visar båda en kraftig ökning i True Positive Rate samt en minskning i False Positive Rate vilket resulterar i en bättre position i ROC space. Support Vector Classifier är extremt dålig vid endast 50 datainstanser av inlärning, men däremot vid 500 datainstanser inlärning ses tydlig förbättring och prestationen har ökat till en perfekt True Positive Rate samt minskat sin False Positive Rate något. 24

Regression med Genetiska Algoritmer

Regression med Genetiska Algoritmer Regression med Genetiska Algoritmer Projektarbete, Artificiell intelligens, 729G43 Jimmy Eriksson, jimer336 770529-5991 2014 Inledning Hur många kramar finns det i världen givet? Att kunna estimera givet

Läs mer

729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann

729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann 729G43 Artificiell intelligens / 2015 Maskininlärning 3 Marco Kuhlmann Förra gången: Perceptroninlärning Beslutsregel predicerat y-värde Exempel: AND Välj parametrar θ 0, θ 1, θ 2 sådana att perceptronen

Läs mer

FUZZY LOGIC. Christopher Palm chrpa087

FUZZY LOGIC. Christopher Palm chrpa087 FUZZY LOGIC 900223-1554 Innehållsförteckning INLEDNING...2 HUR DET FUNGERAR...3 Crisp Sets och Fuzzy Sets...3 Operatorer...5 IF THEN regler...7 FUZZY INFERENCE...7 Fuzzification...8 Regelsättning...8

Läs mer

Föreläsning 9 Innehåll. Söndra och härska. Fibonaccitalen. Söndra och härska. Divide and conquer teknik för att konstruera rekursiva algoritmer.

Föreläsning 9 Innehåll. Söndra och härska. Fibonaccitalen. Söndra och härska. Divide and conquer teknik för att konstruera rekursiva algoritmer. Föreläsning 9 Innehåll Mer om rekursion söndra-och-härska-algoritmer dynamisk programmering backtracking Orientering om versionshantering med git Söndra och härska Divide and conquer teknik för att konstruera

Läs mer

Statistisk mönsterigenkänning

Statistisk mönsterigenkänning Statistisk mönsterigenkänning Jonas Sandström Artificiell intelligens II Linköpings universitet HT 2011 Innehållsförteckning 1. Innehållsförteckning sid 2 2. Inledning sid 3 3. Statistisk mönsterigenkänning

Läs mer

de var svåra att implementera och var väldigt ineffektiva.

de var svåra att implementera och var väldigt ineffektiva. OBS! För flervalsfrågorna gäller att flera alternativ eller inget alternativ kan vara korrekt. På flervalsfrågorna kan man bara ha rätt eller fel, dvs frågan måste vara helt korrekt besvarad. Totalt kan

Läs mer

FÖRBÄTTRA DIN PREDIKTIVA MODELLERING MED MACHINE LEARNING I SAS ENTERPRISE MINER OSKAR ERIKSSON - ANALYSKONSULT

FÖRBÄTTRA DIN PREDIKTIVA MODELLERING MED MACHINE LEARNING I SAS ENTERPRISE MINER OSKAR ERIKSSON - ANALYSKONSULT FÖRBÄTTRA DIN PREDIKTIVA MODELLERING MED MACHINE LEARNING I SAS ENTERPRISE MINER OSKAR ERIKSSON - ANALYSKONSULT VEM ÄR JAG? VAD SKA VI GÖRA? Pimafolket Vilka då? Diabetes Typ 2 Regressionsanalys Machine

Läs mer

Registerforskning Oktober 2018, Stockholm City Conference Centre. Möjligheter med Artificiell Intelligens inom registerforskningen

Registerforskning Oktober 2018, Stockholm City Conference Centre. Möjligheter med Artificiell Intelligens inom registerforskningen Registerforskning 2018 17 Oktober 2018, Stockholm City Conference Centre Möjligheter med Artificiell Intelligens inom registerforskningen Peter Funk Mälardalens Högskola Vem är Peter Funk? Artificiell

Läs mer

Föreläsning 9 Innehåll. Söndra och härska. Fibonaccitalen. Söndra och härska. Divide and conquer teknik för att konstruera rekursiva algoritmer.

Föreläsning 9 Innehåll. Söndra och härska. Fibonaccitalen. Söndra och härska. Divide and conquer teknik för att konstruera rekursiva algoritmer. Föreläsning 9 Innehåll Mer om rekursion söndra-och-härska-algoritmer dynamisk programmering backtracking Orientering om versionshantering med git Söndra och härska Divide and conquer teknik för att konstruera

Läs mer

Genetisk programmering i Othello

Genetisk programmering i Othello LINKÖPINGS UNIVERSITET Första versionen Fördjupningsuppgift i kursen 729G11 2009-10-09 Genetisk programmering i Othello Kerstin Johansson kerjo104@student.liu.se Innehållsförteckning 1. Inledning... 1

Läs mer

Googles sidrankning - linjär algebra värt en förmögenhet

Googles sidrankning - linjär algebra värt en förmögenhet Googles sidrankning - linjär algebra värt en förmögenhet Outline 1 Sökmotorer 2 Grafteori Linjär algebra 3 Målet Utifrån användarens sökord lista de mest relevanta webbsidorna. Dessutom i en ordning som

Läs mer

Tentamen del 2 SF1511, , kl , Numeriska metoder och grundläggande programmering

Tentamen del 2 SF1511, , kl , Numeriska metoder och grundläggande programmering KTH Matematik Tentamen del 2 SF1511, 2018-03-16, kl 8.00-11.00, Numeriska metoder och grundläggande programmering Del 2, Max 50p + bonuspoäng (max 4p). Rättas ast om del 1 är godkänd. Betygsgränser inkl

Läs mer

Slutrapport Vertikala Sökmotorer Uppdrag från.se:s Internetfond Våren 2008

Slutrapport Vertikala Sökmotorer Uppdrag från.se:s Internetfond Våren 2008 Slutrapport Vertikala Sökmotorer Uppdrag från.se:s Internetfond Våren 2008 Anders Ardö Elektro- och informationsteknik Lunds Universitet Box 118, 221 00 Lund June 18, 2009 1 Inledning Digitala bibliotek

Läs mer

Programschema för Kandidatprogram i teknisk matematik, 180 hp Gäller för läsåret 2019/2020 Om programschemat

Programschema för Kandidatprogram i teknisk matematik, 180 hp Gäller för läsåret 2019/2020 Om programschemat Programschema för Kandidatprogram i teknisk, 180 hp Programkod: Gäller för läsåret 2019/2020 Om programschemat Varje utbildningsprogram har en fastställd utbildningsplan där det bl.a. framgår alla i programmet

Läs mer

Samråd har skett med utbildningsledare vid akademin för innovation, design och teknik för de kurser de ansvarar för.

Samråd har skett med utbildningsledare vid akademin för innovation, design och teknik för de kurser de ansvarar för. Programschema för Kandidatprogram i teknisk, 180 hp Programkod: Gäller för läsåret 2018/2019 Programschemat är granskat och godkänt av utbildningsledare vid akademin för utbildning, kultur och kommunikation,

Läs mer

729G43 Artificiell intelligens (2016) Maskininlärning 3. Marco Kuhlmann Institutionen för datavetenskap

729G43 Artificiell intelligens (2016) Maskininlärning 3. Marco Kuhlmann Institutionen för datavetenskap 729G43 Artificiell intelligens (2016) Maskininlärning 3 Marco Kuhlmann Institutionen för datavetenskap Modell med vektornotation parametervektor särdragsvektor Perceptron kombinerar linjär regression med

Läs mer

Algoritmer och maskininlärning

Algoritmer och maskininlärning Algoritmer och maskininlärning Olof Mogren Chalmers tekniska högskola 2016 De här företagen vill Tjäna pengar Hitta mönster i stora datamängder Göra förutsägelser Klassificera data Förstå människan Maskininlärning

Läs mer

Titel Mall för Examensarbeten (Arial 28/30 point size, bold)

Titel Mall för Examensarbeten (Arial 28/30 point size, bold) Titel Mall för Examensarbeten (Arial 28/30 point size, bold) SUBTITLE - Arial 16 / 19 pt FÖRFATTARE FÖRNAMN OCH EFTERNAMN - Arial 16 / 19 pt KTH ROYAL INSTITUTE OF TECHNOLOGY ELEKTROTEKNIK OCH DATAVETENSKAP

Läs mer

Litteraturstudie. Utarbetat av Johan Korhonen, Kajsa Lindström, Tanja Östman och Anna Widlund

Litteraturstudie. Utarbetat av Johan Korhonen, Kajsa Lindström, Tanja Östman och Anna Widlund Litteraturstudie Utarbetat av Johan Korhonen, Kajsa Lindström, Tanja Östman och Anna Widlund Vad är en litteraturstudie? Till skillnad från empiriska studier söker man i litteraturstudier svar på syftet

Läs mer

Case-based resoning. och dess användning inom sjukvården. Linköpings universitet Artificiell intelligens II 729G11 HT 2011

Case-based resoning. och dess användning inom sjukvården. Linköpings universitet Artificiell intelligens II 729G11 HT 2011 Linköpings universitet Artificiell intelligens II HT 2011 Case-based resoning och dess användning inom sjukvården Sammanfattning Det här arbetet handlar om vad case-based resoning är, hur den funkar, vilka

Läs mer

Självbalanserande träd AVL-träd. Koffman & Wolfgang kapitel 9, avsnitt 1 2

Självbalanserande träd AVL-träd. Koffman & Wolfgang kapitel 9, avsnitt 1 2 Självbalanserande träd AVL-träd Koffman & Wolfgang kapitel 9, avsnitt 1 2 1 Balanserade träd Nodbalanserat träd: skillnaden i antalet noder mellan vänster och höger delträd är högst 1 Höjdbalanserat träd:

Läs mer

Lathund fo r rapportskrivning: LATEX-mall. F orfattare Institutionen f or teknikvetenskap och matematik

Lathund fo r rapportskrivning: LATEX-mall. F orfattare Institutionen f or teknikvetenskap och matematik Lathund fo r rapportskrivning: LATEX-mall F orfattare forfattare@student.ltu.se Institutionen f or teknikvetenskap och matematik 31 maj 2017 1 Sammanfattning Sammanfattningen är fristående från rapporten

Läs mer

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00 1 ( 7) Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00 Tillåtna hjälpmedel: Dator, penna, papper, linjal, suddgummi, godkänd(a) bok/böcker/kompendier (ej anteckningar,

Läs mer

Kravspecifikation Fredrik Berntsson Version 1.3

Kravspecifikation Fredrik Berntsson Version 1.3 Kravspecifikation Fredrik Berntsson Version 1.3 Status Granskad FB 2017-01-27 Godkänd FB 2017-01-27 Dokumenthistorik Version Datum Utförda ändringar Utförda av Granskad 1.0 2014-01-15 Första versionen

Läs mer

Hitta en artikel som använt samma teoretiker i samma sammanhang som du. Viktor Öman, bibliotekarie viktor.oman@mdh.se

Hitta en artikel som använt samma teoretiker i samma sammanhang som du. Viktor Öman, bibliotekarie viktor.oman@mdh.se Hitta en artikel som använt samma teoretiker i samma sammanhang som du Viktor Öman, bibliotekarie viktor.oman@mdh.se Stora Tänkare i tillämpad form Alla ämnen har sina Stora Tänkare, men inom vissa är

Läs mer

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor Abstrakta datatyper 1 Primitiva vektorer Vektorer kan skapas av primitiva datatyper, objektreferenser eller andra vektorer. Vektorer indexeras liksom i C från 0. För att referera en vektor används hakparenteser.

Läs mer

Tentamen Datastrukturer (DAT036/DAT037/DIT960)

Tentamen Datastrukturer (DAT036/DAT037/DIT960) Tentamen Datastrukturer (DAT036/DAT037/DIT960) Datum och tid för tentamen: 2016-04-07, 14:00 18:00. Författare: Nils Anders Danielsson. (Tack till Per Hallgren och Nick Smallbone för feedback.) Ansvarig:

Läs mer

TEM Projekt Transformmetoder

TEM Projekt Transformmetoder TEM Projekt Transformmetoder Utförs av: Mikael Bodin 19940414 4314 William Sjöström 19940404 6956 Sammanfattning I denna laboration undersöks hur Fouriertransformering kan användas vid behandling och analysering

Läs mer

Vala Ett optimeringsverktyg för resursfördelning inom grundskolan i Lunds kommun

Vala Ett optimeringsverktyg för resursfördelning inom grundskolan i Lunds kommun Teknik och samhälle Datavetenskap Examensarbete 15 högskolepoäng, grundnivå Vala Ett optimeringsverktyg för resursfördelning inom grundskolan i Lunds kommun Vala An optimization tool for resource allocation

Läs mer

8 < x 1 + x 2 x 3 = 1, x 1 +2x 2 + x 4 = 0, x 1 +2x 3 + x 4 = 2. x 1 2x 12 1A är inverterbar, och bestäm i så fall dess invers.

8 < x 1 + x 2 x 3 = 1, x 1 +2x 2 + x 4 = 0, x 1 +2x 3 + x 4 = 2. x 1 2x 12 1A är inverterbar, och bestäm i så fall dess invers. MÄLARDALENS HÖGSKOLA Akademin för utbildning, kultur och kommunikation Avdelningen för tillämpad matematik Examinator: Erik Darpö TENTAMEN I MATEMATIK MAA150 Vektoralgebra TEN1 Datum: 9januari2015 Skrivtid:

Läs mer

Upplägg. Binära träd. Träd. Binära träd. Binära träd. Antal löv på ett träd. Binära träd (9) Binära sökträd (10.1)

Upplägg. Binära träd. Träd. Binära träd. Binära träd. Antal löv på ett träd. Binära träd (9) Binära sökträd (10.1) Binära träd Algoritmer och Datastrukturer Markus Saers markus.saers@lingfil.uu.se Upplägg Binära träd (9) Binära sökträd (0.) Träd Många botaniska termer Träd, rot, löv, gren, Trädets rot kan ha ett antal

Läs mer

Att använda Weka för språkteknologiska problem

Att använda Weka för språkteknologiska problem Att använda Weka för språkteknologiska problem Systemet WEKA (Waikato Environment for Knowledge Acquisition) är en verktygslåda med olika maskininlärningsalgoritmer, metoder för att behandla indata, möjligheter

Läs mer

729G43 Artificiell intelligens (2016) Maskininlärning 2. Marco Kuhlmann Institutionen för datavetenskap

729G43 Artificiell intelligens (2016) Maskininlärning 2. Marco Kuhlmann Institutionen för datavetenskap 729G43 Artificiell intelligens (2016) Maskininlärning 2 Marco Kuhlmann Institutionen för datavetenskap Förra gången: Gradientsökning tangentens lutning i punkt θ steglängdsfaktor Översikt Introduktion

Läs mer

Människa-datorinteraktion och användarcentrerad design

Människa-datorinteraktion och användarcentrerad design Människa-datorinteraktion och användarcentrerad design Tisdagen den 7 februari 10-12, E33 Människa-datorinteraktion "HCI is a discipline concerned with the design, evaluation and implementation of interactive

Läs mer

Mobil streckkodsavläsare

Mobil streckkodsavläsare Avdelningen för datavetenskap Martin Persson Jan Eriksson Mobil streckkodsavläsare Oppositionsrapport, D-nivå 2005:xx 1 Generell utvärdering av projektet Projektet gick ut på att undersöka hur bra olika

Läs mer

Second handbook of research on mathematics teaching and learning (NCTM)

Second handbook of research on mathematics teaching and learning (NCTM) Second handbook of research on mathematics teaching and learning (NCTM) The effects of classroom mathematics teaching on students learning. (Hiebert & Grouws, 2007) Inledande observationer Undervisningens

Läs mer

Hur kan man CE-märka AI? PICTA workshop 29 Maj 2018

Hur kan man CE-märka AI? PICTA workshop 29 Maj 2018 Hur kan man CE-märka AI? PICTA workshop 29 Maj 2018 Mats Artursson Utredare/Inspektör Agenda Vad säger regelverket Olika typer av AI Sverige Internationellt Utmaningar Pågående EU arbete 2 Medicinteknisk

Läs mer

Mönster. Ulf Cederling Växjö University Ulf.Cederling@msi.vxu.se http://www.msi.vxu.se/~ulfce. Slide 1

Mönster. Ulf Cederling Växjö University Ulf.Cederling@msi.vxu.se http://www.msi.vxu.se/~ulfce. Slide 1 Mönster Ulf Cederling Växjö University UlfCederling@msivxuse http://wwwmsivxuse/~ulfce Slide 1 Beskrivningsmall Beskrivningsmallen är inspirerad av den som användes på AG Communication Systems (AGCS) Linda

Läs mer

Tentamen i Matematik 2: M0030M.

Tentamen i Matematik 2: M0030M. Tentamen i Matematik 2: M0030M. Datum: 203-0-5 Skrivtid: 09:00 4:00 Antal uppgifter: 2 ( 30 poäng ). Examinator: Norbert Euler Tel: 0920-492878 Tillåtna hjälpmedel: Inga Betygsgränser: 4p 9p = 3; 20p 24p

Läs mer

Robust och energieffektiv styrning av tågtrafik

Robust och energieffektiv styrning av tågtrafik 1 Robust och energieffektiv styrning av tågtrafik - CATO - Forskning inom OnTime - Vidareutveckling och möjligheter KAJT, temadag om punktlighet 2014-11-13 Tomas Lidén Transrail Sweden AB Dagens trafikledning

Läs mer

AI, musik & PLCGalgoritmen

AI, musik & PLCGalgoritmen LINKOPINGS UNIVERSITET, IDA AI, musik & PLCGalgoritmen AI inom en artistisk domän sarwi387 9/18/2012 ABSTRAKT AI har anpassats på de flesta naturvetenskapliga ämnen tidigare men man har de senaste årtionden

Läs mer

Stockholms Univ., Statistiska Inst. Finansiell Statistik, GN, 7,5 hp, HT2008 Numeriska svar till övningar

Stockholms Univ., Statistiska Inst. Finansiell Statistik, GN, 7,5 hp, HT2008 Numeriska svar till övningar Stockholms Univ., Statistiska Inst. Finansiell Statistik, GN, 7,5 hp, HT2008 Numeriska svar till övningar Nicklas Pettersson 1 Övningslektion6 Tidsserier, Beslutsteori 1.1 Kapitel 18 51) a) slumpmässig

Läs mer

"Distributed Watchdog System"

Distributed Watchdog System Datavetenskap Emma Henriksson Ola Ekelund Oppositionsrapport på uppsatsen "Distributed Watchdog System" Oppositionsrapport, C-nivå 2005 1 Sammanfattande omdöme på exjobbet Projektet tycks ha varit av

Läs mer

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen Datastrukturer och algoritmer Föreläsning 15 Inför tentamen 1 Innehåll Kursvärdering Vi behöver granskare! Repetition Genomgång av gammal tenta 2 Första föreläsningen: målsättningar Alla ska höja sig ett

Läs mer

Kritisk reflektion av använd teori för införande av digitala teknologier, Tidsläckage Teorin.

Kritisk reflektion av använd teori för införande av digitala teknologier, Tidsläckage Teorin. Examensarbete Magisterprogrammet Digital Affärsutveckling, kurs uppgift 3 teori-reflektion. Kritisk reflektion av använd teori för införande av digitala teknologier, Tidsläckage Teorin. Författare: Magnus

Läs mer

Informationssökning - att söka och finna vetenskapliga artiklar! Linköpings Universitetsbibliotek

Informationssökning - att söka och finna vetenskapliga artiklar! Linköpings Universitetsbibliotek Informationssökning - att söka och finna vetenskapliga artiklar! Mikael.Rosell@liu.se 013-282248 Linköpings Universitetsbibliotek 2 FEM saker ni SKA ta med er härifrån! Välja ut och använda relevanta databaser

Läs mer

Hur kan vi söka och värdera vetenskaplig information på Internet?

Hur kan vi söka och värdera vetenskaplig information på Internet? EHSS-seminarium 2014-10-07 Hur kan vi söka och värdera vetenskaplig information på Internet? Göran M Hägg goran@ergomusic.se, tel. 070-262 48 02 Varför? Vad kan vi ha för motiv för att söka vetenskaplig

Läs mer

Bridging the gap - state-of-the-art testing research, Explanea, and why you should care

Bridging the gap - state-of-the-art testing research, Explanea, and why you should care Bridging the gap - state-of-the-art testing research, Explanea, and why you should care Robert Feldt Blekinge Institute of Technology & Chalmers All animations have been excluded in this pdf version! onsdag

Läs mer

Utbildningsplaner för kandidat-, magister och masterprogram. 1. Identifikation. Avancerad nivå

Utbildningsplaner för kandidat-, magister och masterprogram. 1. Identifikation. Avancerad nivå 1. Identifikation Programmets namn Omfattning Nivå Programkod Ev. koder på inriktningar Beslutsuppgifter Ändringsuppgifter Masterprogram i kognitionsvetenskap 120 hp Avancerad nivå HAKOG Fastställd av

Läs mer

Synkronisering av kalenderdata

Synkronisering av kalenderdata Datavetenskap Jonas Lindelöw, Richard Löfberg Sten Hansson Bjerke, Anders Friberg Synkronisering av kalenderdata Oppositionsrapport, C/D-nivå 2006:07 1 Sammanfattat omdöme av examensarbetet Vi tycker att

Läs mer

Business research methods, Bryman & Bell 2007

Business research methods, Bryman & Bell 2007 Business research methods, Bryman & Bell 2007 Introduktion Kapitlet behandlar analys av kvalitativ data och analysen beskrivs som komplex då kvalitativ data ofta består av en stor mängd ostrukturerad data

Läs mer

Patientutbildning om diabetes En systematisk litteraturstudie

Patientutbildning om diabetes En systematisk litteraturstudie Institutionen Hälsa och samhälle Sjuksköterskeprogrammet 120 p Vårdvetenskap C 51-60 p Ht 2005 Patientutbildning om diabetes En systematisk litteraturstudie Författare: Jenny Berglund Laila Janérs Handledare:

Läs mer

MMA132: Laboration 2 Matriser i MATLAB

MMA132: Laboration 2 Matriser i MATLAB MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen

Läs mer

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken får ha anteckningar,

Läs mer

1. Lära sig plotta en beroende variabel mot en oberoende variabel. 2. Lära sig skatta en enkel linjär regressionsmodell

1. Lära sig plotta en beroende variabel mot en oberoende variabel. 2. Lära sig skatta en enkel linjär regressionsmodell Datorövning 1 Regressions- och tidsserieanalys Syfte 1. Lära sig plotta en beroende variabel mot en oberoende variabel 2. Lära sig skatta en enkel linjär regressionsmodell 3. Lära sig beräkna en skattning

Läs mer

Vid Göteborgs universitet pågår sedan hösten 2013 ett projekt under

Vid Göteborgs universitet pågår sedan hösten 2013 ett projekt under Christina Skodras Muffles truffles Undervisning i multiplikation med systematiskt varierade exempel I Nämnaren 2015:4 beskrivs ROMB-projektet övergripande i Unga matematiker i arbete. Här redovisas och

Läs mer

1(15) Bilaga 1. Av Projekt Neuronnätverk, ABB Industrigymnasium, Västerås Vt-05

1(15) Bilaga 1. Av Projekt Neuronnätverk, ABB Industrigymnasium, Västerås Vt-05 1(15) Bilaga 1 2(15) Neuronnätslaboration Räknare Denna laboration riktar sig till gymnasieelever som går en teknisk utbildning och som helst har läst digitalteknik samt någon form av styrteknik eller

Läs mer

Öka prestanda i Shared-Cache multi-core processorer

Öka prestanda i Shared-Cache multi-core processorer Öka prestanda i Shared-Cache multi-core processorer 1. Abstract Många processorer har nuförtiden flera kärnor. Det är även vanligt att dessa kärnor delar på högsta nivås cachen för att förbättra prestandan.

Läs mer

TDDD92 Artificiell intelligens -- projekt

TDDD92 Artificiell intelligens -- projekt jonas.kvarnstrom@liu.se 2018 TDDD92 Artificiell intelligens -- projekt Individuella uppgifter UPG2: Individuell skriftlig rapport 2 Vad? Läsa och förstå vetenskaplig litteratur Varför? Framtiden: Inte

Läs mer

Teoretisk del. Facit Tentamen TDDC (6)

Teoretisk del. Facit Tentamen TDDC (6) Facit Tentamen TDDC30 2013-06-05 1 (6) Teoretisk del 1. (3p) "Snabba frågor" Alla svar motiveras väl. a) Vad skiljer en statisk metod från en icke-statisk? (0.5p) Svar:En statisk metod är associerad till

Läs mer

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 202-0-25 Skrivtid: 400-700 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens 2 2010-10-03 Erik Claesson 880816-1692

Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens 2 2010-10-03 Erik Claesson 880816-1692 Beräkning med ord -hur en dator hanterar perception 2010-10-03 Erik Claesson 880816-1692 Innehåll Inledning... 3 Syfte... 3 Kan datorer hantera perception?... 4 Naturligt språk... 4 Fuzzy Granulation...

Läs mer

Teoretisk del. Facit Tentamen TDDC (6)

Teoretisk del. Facit Tentamen TDDC (6) Facit Tentamen TDDC30 2014-08-29 1 (6) Teoretisk del 1. (6p) "Snabba frågor" Alla svar motiveras väl. a) Vad är skillnaden mellan synligheterna public, private och protected? (1p) Svar:public: Nåbar för

Läs mer

Oppositionsrapport. Opponent: Therese Sundström. Respondent: Malin Abrahamsson & Aleksandra Gadji

Oppositionsrapport. Opponent: Therese Sundström. Respondent: Malin Abrahamsson & Aleksandra Gadji Oppositionsrapport Opponent: Therese Sundström Respondent: Malin Abrahamsson & Aleksandra Gadji 2005-06-07 1 1 Huvudpunkter I denna sektion kommer jag att presentera de huvudpunkter som jag vill kommentera.

Läs mer

Ett Neuralt Nätverk Tittar På Kläder

Ett Neuralt Nätverk Tittar På Kläder [Skriv här] [Skriv här] [Skriv här] 2019 Ett Neuralt Nätverk Tittar På Kläder ETT KONVOLUTIONELLT NEURALT NÄTVERK KATEGORISERAR FASHION MNIST DATASETET WILHELM BRODIN, WILBR797 1.1 Inledning En människas

Läs mer

Maria Fransson. Handledare: Daniel Jönsson, Odont. Dr

Maria Fransson. Handledare: Daniel Jönsson, Odont. Dr Klassificering av allvarlig kronisk parodontit: En jämförelse av fem olika klassificeringar utifrån prevalensen av allvarlig kronisk parodontit i en population från Kalmar län Maria Fransson Handledare:

Läs mer

What Is Hyper-Threading and How Does It Improve Performance

What Is Hyper-Threading and How Does It Improve Performance What Is Hyper-Threading and How Does It Improve Performance Ali Muthanna, Lunds Universitet, IDA2, EDT621 Abstract Hyper-Threading (HT) is Intel s version of simultaneous multi-threading (SMT). Hyper-Threading

Läs mer

Föreläsning Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT037) Föreläsning Datastrukturer (DAT037) Nils Anders Danielsson 2015-11-23 Idag Mer om grafer: Minsta uppspännande träd (för oriktade grafer). Djupet först-sökning. Minsta uppspännande träd Träd (utan rot)

Läs mer

Innehåll. Källkritik och vetenskaplighet. Introduktion till UB

Innehåll. Källkritik och vetenskaplighet. Introduktion till UB Introduktion till UB Saker du behöver veta om UB:s webb, Söktjänsten och vår katalog Album samt Artikelsök. Helen Hed Bibliotekarie, Umeå universitetsbibliotek, ht 2015 Innehåll Källkritik Vetenskapliga

Läs mer

2 Dataanalys och beskrivande statistik

2 Dataanalys och beskrivande statistik 2 Dataanalys och beskrivande statistik Vad är data, och vad är statistik? Data är en samling fakta ur vilken man kan erhålla information. Statistik är vetenskapen (vissa skulle kalla det konst) om att

Läs mer

Dependensregler - Lathund

Dependensregler - Lathund Dependensregler - Lathund INTRODUKTION I textprogrammet TeCST är det möjligt för en skribent att skriva, redigera och klistra in text för att få ut läsbarhetsmått och få förslag på hur texten kan skrivas

Läs mer

Inför projektuppgiften. Markus Buschle, markusb@ics.kth.se

Inför projektuppgiften. Markus Buschle, markusb@ics.kth.se Inför projektuppgiften Markus Buschle, markusb@ics.kth.se Agenda Möjligheter,ll samarbete Enterprise Architecture för beslutsfa8ande Modell Analys Resultat Projektuppgi? Exempel Möjligheter,ll samarbete

Läs mer

Att hitta projekt. Björn Victor. måndag 19 mars 12

Att hitta projekt. Björn Victor. måndag 19 mars 12 Att hitta projekt Björn Victor Övning: projektbeskrivning Till måndag: skriv en (1) sida som beskriver projektet på Distribuerade system med projekt Övning: inte obligatorisk, men nyttig! 1. vad var planen/avsikten/syftet/målet

Läs mer

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna

Läs mer

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna

Läs mer

Trädstrukturer och grafer

Trädstrukturer och grafer Översikt Trädstrukturer och grafer Trädstrukturer Grundbegrepp Binära träd Sökning i träd Grafer Sökning i grafer Programmering tillämpningar och datastrukturer Varför olika datastrukturer? Olika datastrukturer

Läs mer

Jesper Rydén. Matematiska institutionen, Uppsala universitet Tillämpad statistik för STS vt 2014

Jesper Rydén. Matematiska institutionen, Uppsala universitet Tillämpad statistik för STS vt 2014 Föreläsning 7. Jesper Rydén Matematiska institutionen, Uppsala universitet jesper@math.uu.se Tillämpad statistik för STS vt 2014 χ 2 -metoder Några varianter: Test av helt given fördelning [A & B, 8.2.1]

Läs mer

Sammanfattning av informationssökning VT19

Sammanfattning av informationssökning VT19 729G19 Tillämpad kognitionsvetenskap Sammanfattning av informationssökning VT19 För godkänt projekt på kursen 729G19 skall man haft ett handledningstillfälle i informationssökning och sammanfattning av

Läs mer

Föreläsningsanteckningar F6

Föreläsningsanteckningar F6 Föreläsningsanteckningar F6 Martin Andersson & Patrik Falkman Kortaste vägen mellan en nod och alla andra noder Detta problem innebär att givet en graf G = (E,V) hitta den kortaste vägen över E från en

Läs mer

public static void mystery(int n) { if (n > 0){ mystery(n-1); System.out.print(n * 4); mystery(n-1); } }

public static void mystery(int n) { if (n > 0){ mystery(n-1); System.out.print(n * 4); mystery(n-1); } } Rekursion 25 7 Rekursion Tema: Rekursiva algoritmer. Litteratur: Avsnitt 5.1 5.5 (7.1 7.5 i gamla upplagan) samt i bilderna från föreläsning 6. U 59. Man kan definiera potensfunktionen x n (n heltal 0)

Läs mer

Import av referenser till Mendeley

Import av referenser till Mendeley 2018-12-11 Linköpings universitetsbibliotek Import av referenser till Mendeley Sida 2 av 11 Introduktion Den här guiden innehåller instruktioner för att importera referenser till Mendeley i ris-filer från

Läs mer

Homework Three. Farid Bonawiede Samer Haddad Michael Litton Alexandre Messo. 28 november Time series analysis

Homework Three. Farid Bonawiede Samer Haddad Michael Litton Alexandre Messo. 28 november Time series analysis Homework Three Time series analysis Farid Bonawiede Samer Haddad Michael Litton Alexandre Messo 28 november 25 1 Vi ska här analysera en datamängd som består av medeltemperaturen månadsvis i New York mellan

Läs mer

Föreläsning Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT036) Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-18 Idag Mer om grafer: Minsta uppspännande träd (för oriktade grafer). Prims algoritm. Kruskals algoritm. Djupet först-sökning. Cykel

Läs mer

Beslutas att fastställa särskild behörighet för masterprogram enligt handling.

Beslutas att fastställa särskild behörighet för masterprogram enligt handling. PROTOKOLL LINKÖPINGS UNIVERSITET Fakultetsstyrelsen för tekniska fakulteten Dekanus Närvarande: Ulf Nilsson dekanus Ingela Wiklund föredragande Maria Boberg sekr 1 Särskild behörighet för masterprogram

Läs mer

Blockkedjor. en introduktion för datavetare. Rikard Hjort, 24 maj 2019

Blockkedjor. en introduktion för datavetare. Rikard Hjort, 24 maj 2019 Blockkedjor en introduktion för datavetare Vem är jag? Varför ska ni lära er om blockkedjor? Alla ska gå härifrån och kunna... förklara Bitcoin är uppbyggt bygga en egen blockkedja läsa på själva om blockkedjeprojekt

Läs mer

Datorövning 1 Fördelningar

Datorövning 1 Fördelningar Lunds tekniska högskola Matematikcentrum Matematisk statistik FMSF20: MATEMATISK STATISTIK, ALLMÄN KURS, 7.5HP FÖR E, HT-15 Datorövning 1 Fördelningar I denna datorövning ska du utforska begreppen sannolikhet

Läs mer

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

Tentamen, EDA501/EDAA20 Programmering M MD W BK L LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDA501/EDAA20 Programmering M MD W BK L 2017 05 31, 8.00 13.00 Anvisningar: Preliminärt ger uppgifterna 9 + 12 + 10 + 9 = 40 poäng.

Läs mer

Föreläsning 7 Datastrukturer (DAT037)

Föreläsning 7 Datastrukturer (DAT037) Föreläsning 7 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-21 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Förra

Läs mer

Tentamen Datastrukturer (DAT036)

Tentamen Datastrukturer (DAT036) Tentamen Datastrukturer (DAT036) Datum och tid för tentamen: 2013-12-16, 14:00 18:00. Ansvarig: Nils Anders Danielsson. Nås på 0700 620 602 eller anknytning 1680. Besöker tentamenssalarna ca 15:00 och

Läs mer

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET UMEÅ UNIVERSITET Datavetenskap 010824 TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET Datum : 010824 Tid : 9-15 Hjälpmedel : Inga Antal uppgifter : 7 Totalpoäng : 40 (halva poängtalet krävs normalt

Läs mer

729G11 Artificiell Intelligens Marcus Johansson Marjo581. Fuzzy logic. Marcus Johansson Marjo581

729G11 Artificiell Intelligens Marcus Johansson Marjo581. Fuzzy logic. Marcus Johansson Marjo581 Fuzzy logic 880328-2535 Innehåll Fuzzy logic... 1 1. Inledning... 4 2. Jämförelse mellan fuzzy logic och tvåvärdeslogik.... 4 3. Fuzzy sets.... 4 4. Linvistiska variabler... 5 5. Operatorer... 5 6. If-

Läs mer

Algoritmer och datastrukturer. HI1029 8,0 hp Introduktion

Algoritmer och datastrukturer. HI1029 8,0 hp Introduktion Algoritmer och datastrukturer HI1029 8,0 hp Introduktion Lärandemål Efter kursen ska studenten: Ha kunskaper om de vanligaste algoritmteknikerna och datastrukturerna I viss mån kunna utvärdera algoritmers

Läs mer

Programmering II (ID1019) :00-11:00

Programmering II (ID1019) :00-11:00 ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren

Läs mer

HYBRIDMODELLER FÖR PREDIKTIV

HYBRIDMODELLER FÖR PREDIKTIV HYBRIDMODELLER FÖR PREDIKTIV MODELLERING SKAPADE MED GENETISK PROGRAMMERING Examensarbete Systemarkitekturutbildningen Fredrik Johansson Markus Lindgren VT 2013:KSAI02 Systemarkitekturutbildningen är en

Läs mer

Checklista för systematiska litteraturstudier 3

Checklista för systematiska litteraturstudier 3 Bilaga 1 Checklista för systematiska litteraturstudier 3 A. Syftet med studien? B. Litteraturval I vilka databaser har sökningen genomförts? Vilka sökord har använts? Har författaren gjort en heltäckande

Läs mer

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud. Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra

Läs mer

Logging Module into the PRIME Core

Logging Module into the PRIME Core Datavetenskap Opponent: Andreas Lavén Respondenter: Anders Ellvin, Tobias Pulls Implementing a Privacy-Friendly Secure Logging Module into the PRIME Core Oppositionsrapport, E-nivå 2005:xx 1 Sammanfattat

Läs mer

Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA

Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA Evelina Andersson 18 maj 2011 1 Introduktion Att träna mycket för att bli duktig på ett språk

Läs mer

6. a) Visa att följande vektorer är egenvektorer till matrisen A = 0 2 0 0 0 0 1 1, och ange motsvarande

6. a) Visa att följande vektorer är egenvektorer till matrisen A = 0 2 0 0 0 0 1 1, och ange motsvarande MÄLARDALENS HÖGSKOLA Akademin för utbildning, kultur och kommunikation Avdelningen för tillämpad matematik Examinator: Erik Darpö TENTAMEN I MATEMATIK MAA5 Vektoralgebra TEN2 Datum: juni 25 Skrivtid: 3

Läs mer

Personifierad Netflix

Personifierad Netflix Linköpings universitet Personifierad Netflix Lisa Rönnqvist 2016-08-24 Sammanfattning INNEHÅLLSFÖRTECKNING 1. Inledning... 1 1.1 Bakgrund... 1 1.2 Syfte... 2 2. Netflix... Fel! Bokmärket är inte definierat.

Läs mer