Voorwoord. Maar nu eerst Latex leren.

Maat: px
Weergave met pagina beginnen:

Download "Voorwoord. Maar nu eerst Latex leren."

Transcriptie

1 Voorwoord We schrijven 17 juni 2006, na bijna een jaar proberen er iets van te maken is de meet in zicht. Het is niet altijd even makkelijk geweest, vaak te weinig concentratie, niet voldoende druk om hard door te werken op sommige momenten... waarschijnlijk de belangrijkste redenen dat deze tekst nu pas volledig wordt in elkaar gestoken. De krabbels op losse papieren worden verzameld, de kladblok files op de verschillende computers bij elkaar gesprokkeld om er 1 groot afrondend geheel uit te fabriceren. Uiteraard met de nodige code, tests en resultaten zou dit moeten leiden tot een thesis die voldoet aan de eisen en zo af te studeren als Licenciaat Informatica. Het is mooi geweest, de jaren als student, het ene jaar al succesvoller dan het andere, maar de eindstreep,of de meet zoals ik ze al noemde, is,nog steeds, in zicht Nog een laatste inspanning en dan, hopelijk, het echte leven in... Alea iacta est en ook morituri te salutant en hopelijk daarna: Veni,Vidi,Vici, want wij informatici zijn de dappersten van allemaal... Maar nu eerst Latex leren. Thesis geschreven door Samuel Dom voor het behalen van het diploma: Licenciaat in de Informatica. Aan de K.U. Leuven,

2 Inhoudsopgave Voorwoord Inleiding Machine Learning Doel van de thesis Overzicht van de hoofdstukken Beslisbomen Geschiedenis Terminologie Optimaliseren van bomen Stop Criterium en pruning Split-criteria Algoritmes ID C CART Overzicht Lookahead Wat en waarom? Pathologie Fuzzy TDIDT en Lookahead Skewing Algoritmes ID3-k Lookahead met stochastische ID Besluit Lookahead Achteruitkijken: een voorstel Algoritme 1: gulzig algoritme Algoritme Algoritme Algoritme 4:Lookahead

3 5 ILP, ACE en Tilde ILP Logische beslisbomen en Tilde Logische beslisbomen Tilde Lookahead in Tilde ACE MIP Wat zijn Multi Instantie Problemen? MIP en Tilde Studie originele code van Tilde Tdidt.gen cprefine.gen flocks.gen Uitbreidingen van de code tdidt.gen flocks.gen Datasets Mutagenesis Diterpenes Musk PTE Bongard Tests Resultaten en conclusies Accuracy Snelheid Grootte van de boom Besluit 46 Dank- en Nawoord Referenties

4 Hoofdstuk 1 Inleiding 1.1 Machine Learning Sinds de dageraad van de het computertijdperk zijn we al op zoek naar een antwoord op de vraag of machines intelligentie kunnen vertonen. Door de jaren heen werd uitvoerig onderzoek gedaan naar artificiële intelligentie. Een grote domein binnen de A.I. is dat van machine learning. Hier wordt onderzocht of machines kunnen leren, of ze zelf door ervaring nieuwe dingen kunnen ontdekken. Dit met behulp van een uitgebreid gamma aan uiteenlopende algoritmes en technieken. Machine learning heeft een groot aantal toepassingen die we onder ander terugvinden bij zoekmachines, medische diagnose,beursanalyes,spraakherkenning, computer vision, etc Doel van de thesis Context Een belangrijke taak in het domein van machine learning is het voorspellen van de klasse van voorbeelden in een dataset. Bouwen van beslissingsbomen is hiervoor een populaire methode. Er bestaan enorm veel algoritmes en varianten op algoritmen voor het bouwen van deze beslisbomen, in hoodstuk 2 geven we een overzicht met de belangrijkste algoritmen,hun voordelen,nadelen en specificaties. De meest gekende en gebruikte algoritmes zijn de zogenaamde greedy of gulzige algoritmes. Hierbij wordt een boom gebouwd knoop voor knoop en wordt voor elke knoop op zich de beste beslissing gemaakt. De tijd nodig voor deze werkwijze is relatief kort. Tilde is bijvoorbeeld zulk een algoritme om een beslissingsboom te leren, uit een relationele databank.tilde is geïmplementeerd in het ACE data mining systeem. Dit is het systeem waarin we voor de thesis gaan werken. In hoofdstuk 5 bekijken we dit systeem samen met de specificaties van Tilde. Een eerste bekende techniek voor het verbeteren van de performantie van gulzige algoritmen zoals Tilde is het vooruitkijken in een boom of lookahead. Hierbij gaan we in een knoop van de boom voor de keuze van een test proberen te schatten wat het effect van deze keuze is op knopen lager in de boom. Aan de hand van die schattingen gaan we dan de beste test kiezen. Er zijn al een redelijk aantal uitwerkingen en bevindingen over deze methode voorhanden en we zullen hier dan ook nog uitgebreid op terug komen op het einde van hoofdstuk 3. 4

5 Een andere techniek, die het uitproberen waard is, is achteruitkijken. Dit houdt in dat we eerst een test kiezen voor een knoop K. Daarna kijken we of die nog geoptimaliseerd kan worden. Deze optimalisatie gebeurt door het naar boven verschuiven van de test in zijn linkerkind indien de samengevoegde test van ouder en kind betere resultaten zou geven dan die van de ouder alleen. We kijken dus achteruit in de boom naar de ouderknoop K bij het bouwen van het linkerkind. Deze aanpak heeft een lagere tijdscomplexiteit dan lookahead. Het doel is nu na te gaan of deze methode een potentieel gulden middenweg kan zijn tussen gewone gulzige algoritmes en de vaak tijds-intensieve lookahead-algoritmes. Hiertoe stellen we enkele algoritmen voor om achteruit te kijken in hoofdstuk 4. Deze gaan we dan implementeren in ACE(Hoofdstuk 8) en testen op een aantal datasets(hoofdstuk 9). Met deze achteruitkijk-techniek zouden we Tilde bovendien kunnen gebruiken voor multiinstance problemen. De bestaande Tilde kan hiervoor niet optimaal gebruikt worden. Dit wordt verduidelijkt in hoofdstuk 6. Doel Om het voorgaande samen te vatten: het doel van de thesis is het uitwerken en implementeren van een achteruitkijk -techniek in Tilde en het vergelijken van deze techniek met vooruitkijken. Ook dient de toepassing van deze techniek in het multi-instance domein onderzocht te worden Overzicht van de hoofdstukken Hoofdstuk 2 geeft een inleiding op beslisbomen, enkele veelgebruikte algoritmes en technieken. Tevens wordt een blik geworpen op lookahead,vooruitkijken in een boom. Wat is lookahead juist en we geven enkele bevindingen uit eerder onderzoek. Hoofdstuk3, we stellen enkele algoritmes voor die we in deze thesis gaan onderzoeken en situeren ze tussen de bestaande gulzige algoritmes enerzijds en lookahead-algoritmes anderzijds. Hoofdstuk 4 bespreekt bondig het systeem waarin we de algoritmes gaan implementeren en testen. Hoofdstuk 5 werpt een licht op het begrip multi instantieproblemen en duidt aan waarin het huidige systeem te kort schiet om deze problemen op te lossen en wat het doel van de thesis hier is. Hoofdstuk 6 overloopt de modules van het systeem die intressant zijn voor deze thesis en licht kort de werking toe. Hoofdstuk 7, de eigen aanpassingen aan de code worden bekeken en besproken 5

6 Hoofdstuk 8 vertelt over de testen die we uitvoeren, welke datasets we gebruiken en bespreekt de resultaten en bevindingen. De experimentele fase bestaat uit 2 delen: vergelijken van de predictieve performantie en grootte van bomen bij Tilde met vooruitkijken en met achteruitkijken op een aantal benchmark datasets. het uitproberen van de nieuwe techniek op een aantal multi-instance benchmark datasets en de resultaten vergelijken met die van andere multi-instance systemen Hoofdstuk 9 vormt een besluit. 6

7 Hoofdstuk 2 Beslisbomen Zoals we in de inleiding zagen is een van de meest gebruikte machine learning technieken de beslissingsboom. Beslisbomen worden gebruikt voor het benaderen van een functie met discrete waarden. We geven in het eerste deek van dit hoofdstuk een korte inleiding op beslissingsbomen, hun geschiedenis, gebruik, terminologie, etc.. Dan bekijken we de belangrijkste en meest invloedrijke algoritmen van het domein. 2.1 Geschiedenis De eerste ideeën omtrent deze tak gaan terug naar het werk van Hoveland en Hunt uit de jaren 50 van vorige eeuw. EPAM (Elementary Perceiver And Memorizer) van Feigenbaum was in 1961 het eerste syteem dat beslisbomen gebruikte, onder de naam van discriminatie-nets. Het werk dat echter voor de grote boost zorgde in de ontwikkeling van het domein dateert uit 1966: Experiments in Induction door de psychologen E.B. Hunt, J. Marin en P.J. Stone. Hun CLS gebruikte heuristische lookahead om bomen te bouwen voor het modelleren van het leren van menselijke concepten. In de jaren 70 werd de basis gelegd voor de populairste algoritmen uit het domein. We schrijven 1977 als Breiman en Friedman simultaan de basis leggen voor CART en in 79 introduceerde Quinlan het idee om informatie-inhoud te gebruiken voor de keuze van splits in een boom uitgewerkt in een prototype van ID3. De eighties brachten in 1984 de eerste publieke versie van CART software, 2 jaar later,1986, komt Quinlan s baanbrekende paper over ID3 uit, welk hij later zal updaten tot C4.5(1993). In navolging van dit laatste algoritme komen er meer optimalisaties op het vlak van pruning en andere heuristieken om overfitten van data tegen te gaan doorheen het laatste decennium. 7

8 2.2 Terminologie In onderstaande tabel geven we eerst een korte beschrijving van termen die veel worden gebruikt in verband met beslissingsbomen. We geven dan een iets meer uitgebreide uitleg bij de tabel aangevuld met enkele figuren. Voorbeeld Sample,object, een eenheid van informatie Attribuut Een eigenschap of variabele in de testset, beschrijft de data Waarde De waarde van een attribuut voor een bepaald voorbeeld. Klasse Doel variabele, elk voorbeeld moet worden geklassificeerd in een klasse Knoop Interne knoop van een boom, bevat een test Blad eindknoop in een boom, heeft geen kinderen, heeft een klasse label Test voorwaarde in een knoop waarop de data wordt gesplitst Diepte Het level van een knoop, de afstand tot de wortel, met wortel heeft diepte 1. Een boom bestaat uit knopen en verbindingen, de takken, tussen deze knopen. Een boom heeft een wortel en vanuit de wortel bestaat er juist 1 pad naar elke knoop, er zijn dus geen lussen in een boom. Een knoop kan 1 of meerdere kinderen hebben, zoals we zien in figuur 1.1. Indien een knoop geen kinderen meer heeft noemen we het een blad. Zoals we in de figuur zien heeft elke knoop ook een diepte. Deze is bepalen aan de hand van de afstand van de knoop tot de wortel en is gelijk aan de lengte van het pad, waarbij elke tak even lang is. Dus als de wortel diepte 0 heeft dan hebben de kinderen van de wortel diepte 1, de kinderen daarvan hebben diepte 2 enzovoort... Figuur 2.1: Terminologie Een beslisboom is een boom met in de knopen een test en in zijn bladeren een klasse. De tests zijn mutueel exclusief, er is maar 1 mogelijke tak die kan worden genomen vanuit een knoop naar 1 van de kinderen. Tevens zal een pad van de wortel naar een knoop een test niet meer dan 1 keer doorlopen,de tests zijn exhaustief. Zulk een test is een test op een attribuut. Het doel van een beslissingsboom kan verschillen maar we kunnen 3 grote klassen onderscheiden binnen de problemen die een beslisboom kan aanpakken: Regressie. Bomen bepalen voor een continue doelvariabele de afhankelijkheid van onderling onafhankelijke variabelen. Klassificatie. Objecten worden in een klasse ingedeeld aan de hand van een boom. De doel variabele is een discrete waarde. Data Beschrijving. Bomen kunnen gebruikt worden om een beschrijving te geven van objecten en zo kunnen we op een compacte manier data te bewaren 8

9 In deze tekst focussen we op bomen die we gebruiken om te klassificeren. We gaan dus een boom gebruiken om voorbeelden uit een dataset in te delen in een klasse. Hiertoe gaan we elk voorbeeld doorheen de boom leiden via een pad van de wortel uit naar een blad, het pad wordt bepaald door de tests in de knopen. We testen data in elke knoop die hij passeert op zijn pad op attributen van de voorbeelden door de test in de knoop en op die manier worden voorbeelden in klasse ingedeeld in een blad. Een boom kan binair zijn, waarbij elke knoop maar 2 kinderen heeft of hij kan meerdere kinderen hebben. Ook een individuele test kan binair zijn, zoals alle tests in een binaire boom, of kan meerdere mogelijke uitkomsten hebben. Het aantal kinderen van een knoop hangt dus af van de test. Er kunnen 2 of meer klassen zijn waartoe voorbeelden kunnen behoren. De attributen waarop getest wordt kunnen zowel numeriek als categoriek zijn. Als we een boom willen gebruiken om data in klassen te verdelen moeten we uiteraard eerst een boom bouwen. Een boom wordt gebouwd aan de hand van een set van trainingsvoorbeelden die aan een algoritme worden gegeven. Als een boom is gebouwd kan hij worden getest met andere voorbeelden en indien hij voldoet verder worden gebruikt. Iets specifieker beginnen we bij de wortel van de boom waarvoor we aan de hand van een split-criteria de beste test bepalen aan de hand van de gegeven data. We trainen de boom dus op door hem voorbeelden aan te reiken die liefst representatief zijn voor alle mogelijke data die later aan de boom kan worden gegeven om te klassificeren, dus de boom gaat ook niet eerder gezien data juist moeten kunnen klassificeren. In figuur 1.2 zien we schematisch de levensweg van een beslisboom. Figuur 2.2: Levensweg van een beslisboom We bekijken kort het voorbeeld van een beslisboom uit figuur 1.3. Het is een fictieve beslisboom om een dier in te delen in 1 van 6 klassen. De data zal dus uit een aantal dieren bestaan met eigenschappen of attributen zoals het aantal poten, het hebben van een staart of beharing. We zien dat elke knoop ofwel 2 kinderen heeft ofwel geen. Het is dus een binaire boom. We beginnen in de wortel met de test of een dier haar heeft, zoja gaan we verder naar het linkerkind anders naar het rechter. De test van het linkerkind vraagt of het voorbeeld veren heeft, zoja behoort het tot de klasse vogel, zo nee gaan we naar het rechterkind. Zo doorlopen we voor elk dier, elk voorbeeld, de boom van de wortel tot in een blad tot we de klasse kennen. 9

10 Figuur 2.3: Voorbeeld van een beslisboom 2.3 Optimaliseren van bomen Een van de uitdagingen bij beslisboominductie is het bouwen van kleine en ondiepe bomen. Kleinere bomen verminderen de berkeningskost voor het klassificeren van testvoorbeelden enerzijds en wat belangrijker is; grotere bomen geven slechtere resultaten qua generalisatie van testvoorbeelden. Met dit doel zijn een aantal methodes met verschillende inslag over de jaren heen ontwikkeld. We kunnen deze verdelen groepen: spilt-criteria, ten tweede stop criteria plus snoeien (pruning) en als derde lookahead. Al deze methodes zijn er op gericht om betere bomen in het algemeen te verkrijgen.in wat volgt zal elk van deze methodes worden overlopen. Daarna bespreken we enkele specifieke algoritmen Stop Criterium en pruning Overfitten kan een probleem vormen Als we een boom groeien met behulp van set trainings-voorbeelden kunnen problemen optreden indien de gegevens ruis bevatten of als de set te klein is om representatief te zijn voor de doelfunctie. We krijgen dan een boom met pure bladeren die een hypothese geeft zodat een andere hypothese bestaat die slechter presteert over de trainingsdata maar over verdeling van alle mogelijke voorbeelden beter is. Dit noemen we overfitten van de trainingsdata. Uit onderzoek blijkt dat door dit probleem de juistheid van een boom 10 tot 25% daalt. Het is dus belangrijk overfitten te vermijden. We onderscheiden 2 technieken om overfitten tegen te gaan; stop-criterium en pruning, waarbij de laatste de meest efficiënte is. 10

11 Stop-criterium Een eerste methode is gebruik maken van een stop-citerium zodat de boom stopt met groeien voor hij gaat overfitten. We kunnen de groei van de boom stoppen in een bepaalde knoop als de waarde van het splitcriterium onder een bepaalde waarde gaat. Een ander criterium dat we kunnen gebruiken is een grens zetten op het aantal voorbeelden dat nog over blijft in een knoop, als het aantal onder de grens gaat stoppen we met splitten. Pruning We kunnen uiteraard de boom niet willekeurig gaan bijknippen en kleiner maken. Daarom moeten we ons eerst volgende vraag stellen: Wat is nu de beste grootte van een boom? Zo klein mogelijk uiteraard, maar een boom met een enkele knoop gaat waarschijnlijk niet denderend presteren en aan de andere kant zoals gezegd een boom met pure bladeren ook niet. Dus waar ligt de grens? De meest gebruikte methode om deze grens te bepalen is kruisvalidatie. Hierbij wordt een deel van de data, vaak e en derde, gebruikt als test of validatie set. Het andere deel wordt eerst gebruikt om de boom te bouwen. Daarna wordt met behulp van de testset de juistheid van de boom nagekeken. Het idee is dat uitzonderingen of foute data die in de trainingset voorkomen waarschijnlijk niet of minder gaan terugkomen in de testset. Bij het testen van algoritmes wordt de data zo vaak op meerdere manieren gevouwen, waarbij dan telkens een willekeurig,verschillende derde van de data wordt genomen als testset. Nadeel is dat bij een kleine dataset, deze methode de data die wordt gebruikt nog vermindert en zo fouten nog meer gaat uitvergroten. We kunnen deze validatie-strategie gebruiken om voor knopen na te gaan of de boom zonder die knoop en bijhorende deelboom al dan niet slechter presteert. Indien de boom zonder de knoop niet slechter presteert wordt de knoop en zijn deelboom verwijdert. Zo worden alle knopen die de boom niet slechter maken verwijdert. Een andere manier van snoeien de boom gewoon bouwen en nadien omzetten in regels, indien dit de juistheid van de boom verhoogt wordt een regel verwijdert of gegeneraliseert. De overblijvende regels gaan we sorteren op hun geschatte juistheid en deze worden dan in volgorde gebruikt voor klassificatie Split-criteria De centrale keuze bij het bouwen van bomen is welke attribuut we gaan gebruiken voor de test in een knoop. In het algemeen kunnen we zeggen dat het attribuut dat we kiezen voor de split de dataset moet verdelen op zulk een manier dat elke subset zoveel mogelijk objecten bevat van dezelfde klasse en zo weinig mogelijk van een andere klasse. We willen een zo puur mogelijke subset. In wat volgt worden een aantal criteria gebruikt voor het kiezen van attributen die worden gebruikt voor een split in een knoop om de dataset in subsets te verdelen. Men gebruikt soms meer dan 1 criteria om de resultaten te vergelijken, maar er is niet 1 criterium dat absoluut het beste is,we bekijken eerst enkele veel gebruikte criteria. Informatie Winst Deze statistische informatie-theoretische methode maakt gebruik van het begrip entropie. Entropie geeft weer hoe puur of onpuur een set van voorbeelden is voor een doelattribuut. Wanneer we nu met een split de data in subsets splitsen hebben we voor een set S dat de 11

12 entropie tov de doelfunctie, die n verschillende waarden kan aannemen,gelijk is aan: Entropie(S) n i=1 p i log 2 p i Hierbij is p i de de verhouding waarin voorbeelden tot klasse i behoren in S De entropie van S zal 0 zijn als alle voorbeelden tot dezelfde klasse behoren. Hieruit kunnen we besluiten dat het attribuut dat we prefereren voor een split hetgene is dat de entropie van zijn subsets minimaliseert. Doorgaans gebruikt men niet puur de entropie zelf om dit te doen,maar maakt men gebruik van Inf ormatie winst om de effectiviteit van een attribuut voor het klassificeren te berekenen. We doen dit als volgt: W inst(a, S) = Entropie(S) vɛwaarden(a) S v S Entropie(S v) Waarbij de laatste term gelijk is aan de gemiddelde entropie van elk van de subsets als we splitsen op attribuut A. Dit is de verwachte vermindering in entropie aan de hand van de kennis over het attribuut A. W inst(a, S) is dus de informatie over de doelfunctie vanuit de waarde van een ander attribuut. Split Informatie Inf ormatiewinst bevat echter de natuurlijke neiging om attributen te verkiezen met meer verschillende waarden boven anderen, daar subsets puurder zijn als er meer subsets zijn. Gevaar hierbij is dat wanneer attributen met enorm veel waarden eerst gaan gekozen worden er een goede kans bestaat voor overfitten van de trainingsdata. Daarom ontwikkelde Quinlan een alternatieve methode; winstratio. Deze bestraft attributen met teveel waarden door middel van split informatie, deze is gevoelig voor hoe breed en uniform een attribuut data opsplitst. SplitInformatie(S, A) c S i i S log 2 S i S Dit is de entropie van S in verhouding tot de waarden van A in tegenstelling tot de entropie van het vorige criterium die in verhouding was tot het doelattribuut. We gebruiken nu deze entropie en W inst(a, S) en definieren: W instratio(s, A) W inst(s,a) SplitInformatie(S,A) Gevaar is dat wanneer een attribuut voor de meeste voorbeelden dezelfde waarde heeft, die subset bijna evengroot is als S zelf en bijgevolg W instratio heel groot wordt. Daarom berekenen we eerst de W inst van elk attribuut en berekenen we dan de W instratio enkel voor de attributen die een W inst hebben boven een bepaalde grens. Gini-Index De Gini-index, voor het eerst beschreven door Corrado Gini in 1912, is een statistische methode die de ongelijkheid van een verdeling meet, gedefiniëerd als de verhouding tussen de zogenaamde Lorenz-curve van de verdeling en de curve van de normaalverdeling. De meeste 12

13 bekende toepassing is het meten van de ongelijkheid van inkomen. tussen 1 en 0 met 0 de perfecte gelijkheid en 1 de totale ongelijkheid. De index is een getal Figuur 2.4: Gini Index Men kan de formule van de gini index ook gebruiken zonder referentie naar de Lorenz- Curve. Zoals ook in het domein van beslissingsbomen deze methode wordt gebruikt om de puurheid van een split te bepalen, bijvoorbeel het CART algoritme,waar we later kort op terugkomen, maakt er gebruik van. De gini-index schat de afstand tussen waarschijnlijkheids verdelingen van klassen. Gini(c) = 1 n i=1 p 2 i Met c de huidige knoop en p i de kans dat een element in knoop c tot klasse j behoort. Deze zal 0 zijn als als er maar 1 klasse aanwezig is in een knoop. Als in een knoop de grootte van alle klassen gelijk is zal de gini-index maximaal zijn. 2.4 Algoritmes Iterative Dichotomiser 3 Door zijn gebruiksgemak en efficientie is ID3 een van de bekendste en meest gebruikte algoritmes in het domein van machine learning en specifieker ook heel populair bij het bouwen van beslisbomen. Het is gebaseerd op Occams Scheermes die simpelere theorieën en dus kleinere bomen verkiest boven grotere. De keuze van een attribuut voor de classificatietest gebeurt door middel van een statistische methode zoals informatie winst, waarbij attributen met hoge informatiewinst verkozen worden boven attributen met lage informatiewinst Elke keuze streeft dus naar een zo zuiver mogelijke splitsing van de dataset in subsets. 13

14 ID3-Algoritme ID3 ( Voorbeelden, DoelAttribuut, Attributen) Maak een wortel voor de boom Als alle voorbeelden positief zijn, geef dan de boom met 1 knoop Wortel terug met label = +. Als alle voorbeelden negatief zijn, geef dan de boom met 1 knoop Wortel terug met label = -. Als er geen voorspellende attributen geet dan met 1 knoop Wortel terug met label = meest voorkomende waarde van het doel-attribuut in uit de voorbeeldenset Anders: Begin A = Het attribuut dat de voorbeelden het best klassificeert Beslisboom attribuut voor Wortel = A Voor elke moglijke waarde ν van A doe : Voeg een nieuwe tak toe aande wortel voor de test A = v i. Neem Voorbeelden(ν) de subset van de voorbeelden die waarde ν hebben voor A Als Voorbeelden(ν) leeg is voeg dan een blad toe aan de tak met als label de meest voorkomende doelwaarde in Voorbeelden Anders: Voeg de deelboom ID3 ( Voorbeelden(ν), DoelAttribuut, Attributen-{A}) toe aan de tak. Enkele minpuntjes van ID3k Het kan niet zo goed om met ruis en fouten in de data. Deze methode stopt pas met trainen als er geen enkele uitzondering meer is in een blad en dus alle bladeren zuiver to 1 klasse behoren. Zo krijgen we bijzonder uitgebreide bomen met gevaar op overfitten van de data gebruikt voor de training C4.5 C4.5 is een uitbreiding op het standaard ID3- algoritme van Quinlan. Het maakt gebruik van na-snoeien van regels. Het omvat de volgende stappen: 1. Bouw gewoon de beslisboom uit de trainingset totdat deze data niet meer beter kan worden weergegeven door de boom, overfitten is dus toegelaten 2. De boom wordt omgezet in regels, elk pad van de wortel naar een blad is een regel. 3. We gaan elke regel bijwerken, snoeien, door voorwaarden die de juistheid van de boom op ongeziene voorbeelden verhoogt, aan de hand van een heuristiek. 4. Sorteer de regels op hun geschatte juistheid en gebruik ze in deze volgorde voor het klassificeren van voorbeelden. 14

15 C4.5 optimaliseert ID3 op volgende vlakken: Het vermijdt overfitten van trainingsdatadata Het kan continue attributen aan Kan omgaan met incomplete data en ruis Juistere en kleinere bomen worden gebouwd Classification And Regression Trees (CART) CART construeert net zoals ID3(en dus C4.5) een boom door het splitsen van dataset in subsets. Belangrijk verschil is dat CART een binaire boom opbouwt waar bij ID3 een knoop in principe oneindig veel kinderen kan hebben.de splits zelf zijn in s e gelijk aan die van ID3. Bij het selecteren van een split wordt getracht de homogeniteit van de klassen van de resterende subsets te optimaliseren. Met andere woorden: CART probeert een split zo te kiezen dat de resterende subsets voorbeelden van één klasse bevatten. De bruikbaarheid van een split kan dus worden gedefinieerd als de mate van zuiverheid of onzuiverheid. Dus wordt bij het splitsen van de dataset geprobeerd de beste scheiding van de klassen te bereiken volgens een zuiverheids-criterium. Een boom wordt dan op de volgende manier gecreerd. Alle mogelijke kandidaat-splits worden bekeken om die split te vinden die de grootste afname bewerkstelligt met betrekking tot één of andere maatstaf van onzuiverheid. Het uitbreiden (opsplitsen) van een knoop stopt zodra er geen significante afname van deze maatstaf meer is. De klasse die dan aan deze knoop wordt toegewezen is de klasse die het meest voorkomt tussen de voorbeelden uit de subset. 2.5 Overzicht We hebben nu een beknopte inhoud op beslisbomen gegeven. Als afsluiter zagen we enkele algoritmes. Deze algoritmen hadden alleen een heuristiek een split-criterium aan de hand waarvan,bij het bouwen van de boom, een test wordt gekozen voor elke knoop waarop voorbeelden worden gesplitst. De criteria keken daarbij enkel naar het effect van de split in de knoop zelf. Het zijn lokaal optimale beslissingen. Er wordt niet gekeken naar het effect van deze beslissingen. Op deze manier wordt door telkens het lokaal optimale te nemen gehoopt globaal het optimale te bereiken. Dit laatste is uiteraard niet altijd het geval. Dit type van algoritmen noemen we greedy of gulzige algoritmen. We kijken nu in een volgend hoofdstuk naar een methode om verder te kijken dan lokaal optimale beslissingen. 15

16 Hoofdstuk 3 Lookahead 3.1 Wat is lookahead en waarom is het nodig? We zagen in het vorige hoofdstuk dat de algoritmes die we tot nu toe hebben vernoemd hebben steeds lokaal optimale beslissingen maakten. Ook verbruikten ze een niet te kiezen relatief korte tijdsduur. Door deze begrenzing op de tijd en door het maken van de lokaal optimale beslissingen worden niet altijd globaal optimale bomen gebouwd. Dit zijn 2 beperkingen die we willen tegen gaan. Lookahead-gebaseerde algoritmes zijn hiervoor geschikt. We bekijken in dit hoofdstuk waar we lookahead moeten situeren en wat lookahead juist is. Dan bespreken we ook enkele papers met onderzoek naar lookahead algoritmes. We besluiten met een overzicht met de voor en nadelen. We weten dus dat de geziene algoritmes een vaste en relatief beperkte hoeveelheid tijd nodig hebben om een boom te bouwen. Indien men wenst meer tijd te investeren om betere bomen te genereren is dit een optie waarvoor niet kan worden geopteerd. Daarom zijn andere methodes nodig die wel toelaten deze trade-off van tijd voor kwaliteit te maken. Een wijdverspreide manier om deze problematiek aan te pakken zijn de zogenaamde anytime algoritmes. Dit zijn algemeen algoritmes die toelaten om te kiezen hoeveel tijd we willen investeren in het bouwen van betere bomen. Een eerste soort van anytime algoritmes zijn de onderbreekbare methodes.hierbij moet niet op voorhand vermeld zijn hoeveel recources worden toegekend maar kan elk moment het algoritme worden onderbroken en er moet ten allen tijde een bruikbaar antwoord kunnen gegeven worden. De tweede klasse is die van de contract-gebaseerde algoritmes waarbij op voorhand een soort contract wordt afgesloten tussen het algoritme en de gebruiker over hoeveel tijd we zouden willen investeren. Dit contract is een parameter die een indicatie geeft over hoeveel tijd het algoritme gaat mogen verbruiken, echter het gaat geen opgelegde vaste reeële tijd vastleggen. Tot deze klasse rekenen we de lookahead-gebaseerde algoritmes Later zullen we enkele lookahead-algoritmes bekijken waarin het idee achter de contract-parameter duidelijker wordt. Maar met lookahead-gebaseerde algoritmen kunnen we het probleem van de trade-off dus tijd en kwaliteit oplossen. Een ander minpunt van gewone gulzige algoritmes is dat ze lokaal beslissingen maken en geen backtracking toelaten, bijgevolg heeft een slechte keuze bij 1 knoop onomkeerbare 16

17 gevolgen voor al de latere beslissingen. Men kan wel de bomen snoeien en op die manier de boom kleiner en beter maken maar dit is geen oplossing om minder goede beslissingen ongedaan te maken, logisch, gezien deze techniek bedoeld is om overfitten van de training data tegen te gaan. Ook dit probleem kan worden opgelost door gebruik te maken van lookahead. We weten nu waarom lookahead nuttig kan zijn, tijd om uit te leggen wat lookahead nu precies inhoudt. Stel we bouwen een boom en we zijn in een knoop en we willen een test bepalen voor deze knoop. In plaats van enkel het effect van de keuze van een attribuut op het niveau van de knoop zelf te bepalen gaan we ook verder kijken. We gaan vooruit kijken hoe de boom er zou uitzien als we een bepaalde keuze voor een test maken. We kijken eigenlijk naar knopen die later gevormd zullen worden op een dieper niveau en naar wat het effect is van de keuze in de huidige knoop. We kunnen zo bijvoorbeeld bij een keuze van een test een niveau dieper gaan kijken wat het effect is van de keuze op de performantie van de kinderen. We zien dit geillustreerd in figuur 3.1. Links zien we de situatie zonder lookahead, dus zoals we zagen bij de gulzige algoritmes uit het vorig hoofdstuk. We kiezen de beste test uit alle mogelijke n testen aan de hand van een lokaal optimale heuristiek. In het midden zien we lookahead tot op diepte 1, waarbij we gaan kijken wat het effect is van elke test een level lager. Het komt er op neer dat we alle mogelijke combinaties van n testen met de n 1 telkens overblijvende testen. De combinatie van de 2 testen die het beste resultaat geeft volgens de heuristiek wordt dan gezocht bvb(test 7, test 2) dan nemen we in dat geval test 7 als test om te splitsen in de knoop waarvoor we lookahead deden. In de meest rechtse strook zien we lookahead tot op diepte 2, voor elke test kijken we naar het effect tot op 2 levels later. Dit komt neer op de combinatie van alle n testen met alle n 1 overblijvende testen die ook weer met alle overblijvenden n 2 worden gecombineerd. De beste combinatie van 3 testen wordt weergezocht en de test in de knoop die voor de beste combinatie zorgt wordt gekozen als test voor de knoop. Zo kunnen we lookahead doen tot op diepte 3, diepte 4 etc tot op diepte n, waarbij we uiteindelijk uit alle mogelijke deelbomen de beste gaan halen. Volledige lookahead van uit de wortel geeft de optimale boom. Echter het doorzoeken van de volledige ruimte van alle mogelijke bomen kan erg tijdrovend worden en veel geheugen en rekenkracht vergen. Daarom wordt doorgaans gekozen voor lookahead tot op kleinere diepte uit te voeren om zo gemiddeld betere bomen te maken, naargelang we er meer tijd in steken. 17

18 Figuur 3.1: Lookahead We bespreken kort enkele papers en bevindingen omtrent Lookahead om een dieper inzicht te krijgen in het nut en bruikbaarheid van Lookahead-gebaseerde algoritmes. Nadien bekijken we enkele praktisch uitgewerkte algoritmes. 3.2 Pathologie van Lookahead Wanneer one-level lookahead wordt vergeleken met gewone greedy algoritmes zien we dat deze geen betere beslisbomen oplevert en soms zelfs minder goede resultaten geeft. De kwaliteitscriteria op basis waarvan de vergelijking wordt gemaak zijn accuraadheid, grootte en diepte. Het enige dat bij 1-level lookahead beter is, is de diepte van de boom. Dit is dan nog te wijten aan het slecht uitgebalanceerd zijn van de bomen die worden gebouwd door greedy algoritmes. Dit kan verholpen worden door de boom uit te balanceren door middel van rotaties. De grootte van de bomen bij lookahead is niet significant kleiner en wanneer we bij de greedy methodes gebruik maken vam pruning geeft dit zelfs kleinere en dus betere bomen 18

19 dan bij one-level-lookahead. Bij een aantal problemen is de accuraadheid bij lookahead zelfs minder goed. Dit is een pathologie, analoog aan spelbomen waarbij uitgebreider zoeken minder goede resultaten geeft. 3.3 Lookahead gebaseerde Fuzzy beslisboom-inductie Fuzzy ID3 is een variant op ID3 voor continue data. Het maakt gebruik van een aanpassing van entropie en informatie winst. Net zoals ID3 bevoordeelt het attributen met veel waarden en dit wordt op analoge wijze als bij ID3 opgelost.we gaan hier niet in de op de details, maar het doel bij lookahead is het evalueren van de klassificeerbaarheid van voorbeelden die gesplits worden langs takken van een knoop. De vraag is hoe die evaluatie moet gebeuren. Meestal gebeurt dit aan de hand van een paramater identiek aan aan degene die de split evalueert. M.Dong en R.Kothari stellen voor de klassificeerbaarheid met een niet-parametrische methode uit te voeren. Deze wordt duidelijk door het visualiseren van variabelen waarbij het relief de doelvariabele is.we zien hieronder de verdeling van enkele voorbeelden in 2 dimensies, met als derde dimensie dus de klasse. De verdeling van de voorbeelden in de rechtse figuur toont vlakke oppervlakten met samples van dezelfde klasse. Deze is beter om verder mee te gaan om de klassificeren.hoe minder waarden afhankelijk zijn van de waarden van een andere klasse hoe vlakker het oppervlak en hoe geschikter om te klassificeren. Voor de verdere uitwerking hiervan wordt gebruik gemaakt van cooccurentie matrices. 3.4 Skewing, een alternatief voor lookahead. Gulzig algoritmes zijn dus kortzichtig en lookahead is een goede manier om dit probleem op te lossen. Voor bepaakde functies, zoals de zogenaamde pariteitsfuncties (bvb. XOR) kan dit niet voldoende zijn indien lookahead niet diep genoeg gaat, hoewel een optimale boom kan worden verkregen door wel diep genoeg te gaan. Bijvoorbeeld x 95 x 96 x 97 x 98 x 99 x 100 kan door lookahead worden opgelost met een optimale boom op voorwaarde dat de lookahead gaat tot op diepte 6. Minder diepe lookahead geeft slechte resultaten. Een alternatief voor het rekenintensieve lookahead om deze probleemfuncties aan te pakken is skewing. We merken op dat de probleemfuncties geen probleem meer zouden geven indien de verdeling genoeg verschillend van de normaalverdeling zou zijn. Meestal hebben we maar 1 verdeling, we kunnen nu een tweede verdeling simuleren door middel van skewing ( scheef maken ) aan de hand van de eerste verdeling; waarbij de tweede significant verschillende frequenties heeft dan de originele. 19

20 Omdat we niet zomaar uit het niets nieuwe voorbeelden kunnen trekken moeten we het stellen met degene die we hebben. We veranderen de verdeling door gewichten toe te kennen aan deze voorbeelden. We geven eerst elk voorbeeld een gewicht van 1 en we gaan dan de gewichten herwegen. We nemen aan dat een variabele niet in elk voorbeeld dezelfde waarde aanneemt anders draagt de variabele niets bij en mag hij worden verwijdert. In het onderzoek werd uitgegaan van binaire variabelen, dus zowel waarden 1 en 0 worden dan aangenomen door een voorbeeld voor elke variabele. Vervolgens wordt voor elke variabele een waarde als favoriete setting gekozen. Voor elk voobeeld wordt dan voor elk attribuut waarvoor hij de favoriete setting heeft vermenigvuldigd met een skew-waarde s. Zo krijgt elke variabele een gewicht tussen 1 en s n. Het is zeer waarschijnlijk maar niet zeker dat we zo een compleet verschillende frequentie verdeling krijgen. Verder kunnen ook idiosyncrasies (individuele overgevoeligheid) uit de originele data worden uitvergroot. Deze problemen kunnen worden opgelost door meerdere verdelingen te genereren. Verschillende verdelingen hebben minder kans om dezelfde idiosyncrasies uit te vergroten. Daarom genereren we k verdelingen. Variabelen die geen deel uitmaken van de doelfuntie zullen een winst hebben die dicht bij 0 ligt in de meeste verdelingen. Een winst drempel zorgt dat enkel de variabelen die in de meeste verdelingen duidelijk meer dan 0 winst hebben worden beschouwd voor een split. We geven op de volgende pagina het skewing-algoritme voor de volledigheid. Het is niet belangrijk voor war volgt om dit te bekijken. 20

21 Algoritme Algorithm 1 Skewing Require: Matrix D met m datapunten over n boolse waarden, winstfractie G, aantalt trials T en skew 1 2 < s < 1 Ensure: Variabele x i voor een split, of 1 als er geen variabele met voldoende winst wordt gevonden 1: N Entropie van de klasse variabele in D 2: v Variabele met de hoogste winst in D 3: g winst van v in D 4: if g < G N then 5: v 1 6: end if 7: for i = 1 to n do 8: F (i) 0 9: end for {begin skewing loop} 10: for t = 1 to T do 11: for i= 1 to n do 12: V (i) Random gekozen waarde voor x i 13: end for 14: for e = 1 to m do 15: W (e) = 1 16: for e = 1 to n do 17: if t > 1 then 18: if D(e, i) = V (i) then 19: W (e) W (e) s 20: else 21: W (e) W (e) (1 s) 22: end if 23: end if 24: end for 25: end for 26: N Entropie van de klasse variabele in D onder W 27: for i=1 to n do 28: E W inst van x i onder verdeling W 29: if E >= G N then 30: F (i) F (i) : end if 32: end for 33: end for{einde skewing loop} 34: j arg max F (i) 35: if F(j) > 0 then 36: return x j 37: else 38: return v 39: end if 21

22 3.5 Lookahead gebaseerde algoritmes We bekijken nu enkele specifieke vormen van een anytime contract-gebaseerd algoritmes volgens het look-ahead principe. Ze zijn gebaseerd op het van de wortel naar beneden induceren van de bomen trees waarbij een attribuut wordt gekozen om de dataset in subsets te verdelen om zo recursief een boom op te bouwen, net zoals bij de greedy algoritmes. Het is dus vooral de manier waarop een attribuut voor de split wordt gekozen die het verschil zal maken ID3-k We zagen hoe we de entropie kunnen berekenen om het beste attribuut te zoeken voor een split. We herschrijven de formule voor het berekenen het gemiddelde van de entropie van de subsets na een split aan de hand van attribuut a als volgt: Entropie 1(E, a) = vɛwaarden(a) E v E Entropie(E v) Waarbij 1 vertelt dat het effect van de split is bekekeb tot op diepte 1. We kunnen deze definitie uitbreiden voor diepte k. We krijgen ze een recursief algoritme dat de k 1-entropie gaat minimaliseren voor elk kind. Waarbij k de parameter is die de contracttijd bepaalt voor de lookahead. Dit is de parameter die waar we in de inleiding van het hoofdstuk over vertelden, hij bepaalt hoe lang het algoritme gaat lopen zonder een specifieke tijd er op te zetten. De tijd tussen k en k + 1 lookahead neemt exponentieel toe bij stijgende k. Procedure 2 Entropie-k(E, A, a, k) 1: if k = 0 then 2: return I(P E (c 1 ),..., P E (c n )) 3: V domein(a) 4: end if 5: for all v i V do 6: E i {e E a(e) = v i } 7: for all a A do 8: A A {a } 9: h i (a ) Entropie k(e i, A, a, k 1) 10: end for 11: end for 12: return V E i i=1 E min a A(h i (a )) Lookahead met stochastische ID3 Om de kost van een lookahead te verminderen kunnen we een minder diepe lookahead uit te voeren of door op elk niveau enkel die attributen te gebruiken die het meest belovend zijn. ID3 wordt dan gebruikt om te kijken welk de meest belovende attributen zijn. Voor een attribuut a splitsen we data in subsets en op elk van deze sets passen we ID3 toe,wat niet erg intensief is qua tijd en recources. We krijgen zo een aantal deelbomen waarvan we de gemiddele grote nemen als schatter voor de totale boom indien a zou worden gebruikt als splitter. Dit is uiteraard nog geen contract gebaseerd algoritme.om dit probleem op te lossen 22

23 en om beter schattingen te krijgen gaan we Stochastisch ID3(SID3) gebruiken. Bij SID3 gaan de split random kiezen met een kans rechtevenredig tot zijn inf ormatiewinst, behalve als er variabelen zijn met entropie 0, dan word daar eentje uit gekozen.verschillende runs van SID gaan dus andere attributen kiezen voor de testen en dus andere bomen construeren.lookahead met SID3 gaat dus voor elk kandidaat-attribuut de geschatte grootte van de deelbomen evalueren en de beste kiezen. Voor elke deelboom hebben we meerdere schattingen, allemaal bovengrenzen van de optimale boom. We onthouden dus alleen de laagste schatting voor van elk deelboom. Dit voor alle deelbomen voor een attribuut a. De contract-parameter vinden we in het aantal keer we een schatting gaan maken voor elke deelboom en de tijd zal lineair groeien ten opzichte van deze parameter. Procedure 3 LSID3-choose-Attribute(E, A, r) 1: if r = 0 then 2: return ID3-Choose-Attribute(E,A) 3: end if 4: for all a A do 5: for all v i domein(a) do 6: E i {e E a(e) = v i } 7: min i 8: Repeat r times 9: min i min(min i, SID3(E i, A {a})) 10: end for 11: totaal a domein(a) i=1 min i 12: end for 13: return a waarvoor totaal a minimaal is. 3.6 Besluit Lookahead De verschillende onderzoeken geven verschillende bevindingen, het ene onderzoek door Dong en Kothari met fuzzy beslisboom beweert dat lookahead betere bomen geeft waar Murthy en Salzberg juist een pathologie aantonen en aangeven dat lookahead zelfs minder goed zou presteren. Wat moeten we nu geloven? Als we beide papers bekijken zien we dat de onderzoekers opteren voor een lookahead tot op diepte 1. Dit kunnen we uiteraard niet erg exhaustief noemen,we kunnen zelfs niet echt van lookahead spreken, dus een algemeen besluit over lookahead op zich mogen en kunnen we er dan ook niet uit halen. Dit wordt ook aangehaald in de paper van Esmeir en Markovitch. Zij deden wel onderzoek met behulp van echte lookahead-algoritmes tot op grotere diepte en doorgaans gaven deze wel kleinere en ook juistere bomen dan algoritmes zonder vooruitkijken. Er werd geen gebruik gemaakt van snoeien, waardoor C4.5 wel kleinere bomen voortbrengt dan ID3-k en LSID, de juistheid van lookahead was niet minder dan die van C4.5. Voor sommige speciale problemen werkt lookahead niet optimaal, daarvoor werd skewing als alternatief bedacht. Maar algemeen denk ik dat we mogen besluiten dat voor een groot deel van de gekende problemen, lookahead gebaseerde algoritmes beter presteren op gebied van grootte en juistheid van de gebouwde bomen dan algoritmes zonder lookahead. Nadeel is dat deze lookahead soms heel tijdsintensief kan worden voor er duidelijk betere voorbeelden uitkomen. Het blijft een keuze die moet worden afgewogen. 23

24 Hoofdstuk 4 Achteruitkijken: een voorstel We hebben in hoofdstuk 2 enkele simpele gulzige algoritmes gezien en in hoofdstuk 3 kwamen lookahead-gebaseerde algoritmes aan bod. Ze hebben elk hun voor- en nadelen en het is een af te wegen keuze om al dan niet de ene of de andere te nemen. Enerzijds kort maar niet optimaal,anderzijds tijdsintensief en beter en indien volledige lookahead wordt toegepast zelfs optimaal. Nu is er nog een andere techniek die we kunnen gebruiken om gulzige algoritmes te verbeteren, namelijk achteruit kijken, we stellen 2 algoritmes voor. Doorheen deze thesis zullen we deze algoritme2ën algoritme3 noemen. Deze benaming komt van het feit dat ze een gulden middenweg zouden kunnen vormen tussen aan de ene kant gewone greedy algoritmes(1) en het rekenintensieve lookahead algoritme(4) aan de andere kant. We geven nu een beschijving en visualisatie van de algoritmes 4.1 Algoritme 1: gulzig algoritme Dit zijn de algoritmes uit hoofdstuk 2 zoals ID3, C4.5 of CART die lokaal optimale beslissingen maken. Figuur 4.1: Algoritme 1: gulzig algoritme 4.2 Algoritme 2 Eerst zoeken we in een knoop op de gewone manier de beste test, A. We splitsen dan de data aan de hand van deze set. We nemen nu het linkerkind en ook hier zoeken we de beste test, B. Vervolgens kijken we of de samengestelde test A,B een betere split zou uitvoeren dan 24

25 de originele test A, in de ouder-knoop. Als dat het geval is vervangen we test A door de samengestelde test A,B. Nu gaan we gewoon verder; we splitsen weer de data aan de hand van de test, zoeken de beste test in het linkerkind en weer kijken we of het betere zou zijn om deze naar boven te schuiven. Figuur 4.2: Algoritme Algoritme 3 Dit algoritme lijk sterk op algoritme 2. We kiezen weer eerst de beste test in de ouderknoop, A. Vervolgens splitsen we de data en bekijken we alle tests b 1, b 2,..., b n die we kunnen kiezen in het linkerkind om verder te splitsen. We bekijken nu alle mogelijke geconjugeerde test A, b i met 1 < i < n. We nemen de beste test uit deze geconjugeerde tests en kijken of deze beter presteert in de ouderknoop dan test A alleen. Indien dit het geval wordt test A vervangen door de beste geconjugeerde test A,b i en gaan we weer gewoon verder. Figuur 4.3: Algoritme 3 25

26 4.4 Algoritme 4:Lookahead Figuur 4.4: Algoritme 4: Lookahead gebaseerde methode 26

27 Hoofdstuk 5 ILP, ACE en Tilde 5.1 Inductief Logisch Programmeren Doorgaans hebben we bij machine learning-taken, een set van data waaruit we een algemeen model gaan induceren. We kunnen dit veralgemenen naar het leren van meer algemene kennis uit gegeven kennis. Om deze kennis te kunnen voorstellen hebben we een goede voorstellingsmethode nodig zoals eerste orde logica (FOL). Data staat vaak beschreven in een enkele tabel waarbij elk voorbeeld bestaat uit 1 vector met vaste attributen en hun waarden. Soms is deze manier van data beschrijven niet voldoende,denken we maar aan Multi Instance Problemen. Ook hier hebben we een betere manier van representatie nodig die eerste orde logica kan voorzien. Een ander voordeel van eerste orde logica is de mogelijkheid om buiten de voorbeelden extra informatie mee te geven om van te leren, een stuk extra achtergrondkennis. Logica is dus een goede manier om algemeen kennis voor te stellen. Logische programma s bestaan uit Horn clauses. Een voorbeeld wordt beschreven door een set van feiten, clauses, waarvan de grootte kan variëren. De manier waarop eerste orde logica de feiten weergeeft kunnen we ook weergeven als een relationele databank. Figuur 5.1: Voorbeeld uit Bongard dataset van hoe data wordt voorgesteld door eerste orde logica De voordelen van FOL zijn, om op te sommen, de mogelijkheid om complexere data voor te stellen, extra achtergrondkennis kan worden meegegeven en we hebben een krachtigere taal 27

28 om hypotheses te formuleren. Inductief logisch programmeren gebruikt FOL en voorziet dus deze voordelen. Een veelgebruikte programmeertaal om dit te implementeren is Prolog. Redeneren in logica gebeurt echter meestal door middel van deductie waarbij uit algemene concepten meer specifieke concepten worden afgeleid. Deze manier van redeneren is uiteraard altijd correct. Nu willen we logica gebruiken voor inductie; de omgekeerde bewerking. De operatoren die veel worden gebruikt voor inductie zijn gebaseerd op theta-subsumptie. Een clause c 1 theta-subsumed een andere clause c 2 als er een variabele bestaat zodat hij een subset wordt van de andere: c 1 θ θ : c 1 θ c 2 Dus is c 2 een speciaal geval van c 1. De operator voor generalisatie is de least general generalisation (lgg). 5.2 Logische beslisbomen en Tilde Wat betreft ILP is het domein van de beslissingsbomen lang genegeerd geweest. De grootste reden waarom bomen niet veel worden gebruikt met ILP komt door het verschil tussen de voorstelling van ILP met behulp van clauses en de onderliggende structuur van beslisbomen. Het werk van Blockeel en De Raedt bracht hier verandering in. Ze introduceerden een voorstelling van logische beslisbomen conform die van het clause-gebaseerde inductief logisch programmeren. Verder ontwikkelden ze op basis van deze voorstelling een algoritme voor het bouwen van bomen. Het is gebaseerd op het aanpassen van heuristieken van C4.5 en gaat onder de naam Tilde. We bespreken kort het werk Blockeel en De Raedt in deze sectie Logische beslisbomen De methode voorgesteld door Blockeel en De Raedt maakt gebruik van Prolog. Elk voorbeeld is een set van clauses gedefinieërd in Prolog. We hebben buiten de set van voorbeelden E ook extra achtergrondtheorie B en een set van klassen C. Het doel is het vinden van een hypothese bestaande uit welomlijnde clauses, zodat: e E, H e B = c en H e B niet = c met c is de klasse van voorbeeld e en c C {c} Definitie Logische Beslisboom Een logische beslisboom(lbb) is een binaire beslisboom waarbij elke test een conjunctie is van literals. Indien een variabele nieuw is in een knoop en dus niet voorkomt in hogere knopen, zal deze variabele niet voorkomen in de rechterdeelboom omdat de rechterdeelboom de voorbeeldenset zal bevatten die negatief zijn voor de test. Dit omdat nieuwe variabelen gekwantificeerd worden in de conjunctie en de rechterboom is net de deelboom relevant is voor wanneer de conjunctie niet slaagt voor de test en er dus geen X voldoet aan de test, dus is het zinloos om later nog van die onbestaande X te spreken. We gebruiken zulk een LBB nu voor de klassificatie van een voorbeeld, dit voorbeeld is nog steeds een Prolog-gegeven. Een test op het voorbeeld e komt overeen met kijken of de clause in de test slaagt met e B, met B de achtergrondkennis. Het voorbeeld begint in de wortel, de algemene query is waar. Als e voldoet aan de test 28

Data Mining: Classificatie

Data Mining: Classificatie Data Mining: Classificatie docent: dr. Toon Calders Gebaseerd op slides van Tan, Steinbach, and Kumar. Introduction to Data Mining Overzicht Wat is classificatie? Leren van een beslissingsboom. Problemen

Nadere informatie

Oplossingen Datamining 2II15 Juni 2008

Oplossingen Datamining 2II15 Juni 2008 Oplossingen Datamining II1 Juni 008 1. (Associatieregels) (a) Zijn de volgende beweringen juist of fout? Geef een korte verklaring voor alle juiste beweringen en een tegenvoorbeeld voor alle foute be-weringen:

Nadere informatie

2. Geef een voorbeeld van hoe datamining gebruikt kan worden om frauduleuze geldtransacties te identificeren.

2. Geef een voorbeeld van hoe datamining gebruikt kan worden om frauduleuze geldtransacties te identificeren. 1. Veronderstel dat je als datamining consultant werkt voor een Internet Search Engine bedrijf. Beschrijf hoe datamining het bedrijf kan helpen door voorbeelden te geven van specifieke toepassingen van

Nadere informatie

Continuous Learning in Computer Vision S.L. Pintea

Continuous Learning in Computer Vision S.L. Pintea Continuous Learning in Computer Vision S.L. Pintea Continuous Learning in Computer Vision Natura non facit saltus. Gottfried Leibniz Silvia-Laura Pintea Intelligent Sensory Information Systems University

Nadere informatie

Tentamen Data Mining

Tentamen Data Mining Tentamen Data Mining Algemene Opmerkingen Dit is geen open boek tentamen, noch mogen er aantekeningen gebruikt worden. Laat bij het uitvoeren van berekeningen zien hoe je aan een antwoord gekomen bent.

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Tentamen Kunstmatige Intelligentie (INFOB2KI)

Tentamen Kunstmatige Intelligentie (INFOB2KI) Tentamen Kunstmatige Intelligentie (INFOB2KI) 30 januari 2014 10:30-12:30 Vooraf Mobiele telefoons dienen uitgeschakeld te zijn. Het tentamen bestaat uit 7 opgaven; in totaal kunnen er 100 punten behaald

Nadere informatie

Twaalfde college complexiteit. 11 mei 2012. Overzicht, MST

Twaalfde college complexiteit. 11 mei 2012. Overzicht, MST College 12 Twaalfde college complexiteit 11 mei 2012 Overzicht, MST 1 Agenda voor vandaag Minimum Opspannende Boom (minimum spanning tree) als voorbeeld van greedy algoritmen Overzicht: wat voor technieken

Nadere informatie

Voorspellen van webwinkel aankopen met een Random Forest

Voorspellen van webwinkel aankopen met een Random Forest Voorspellen van webwinkel aankopen met een Random Forest Dorenda Slof Erasmus Universiteit Rotterdam Econometrie en Operationele Research 30 juni 2014 Samenvatting In dit empirische onderzoek voorspellen

Nadere informatie

Tentamen Data Mining. Algemene Opmerkingen. Opgave L. Korte vragen (L6 punten) Tijd: 14:00-17:00. Datum: 4januai20l6

Tentamen Data Mining. Algemene Opmerkingen. Opgave L. Korte vragen (L6 punten) Tijd: 14:00-17:00. Datum: 4januai20l6 Tentamen Data Mining Datum: 4januai2l6 Tijd: 4: - 7: Algemene Opmerkingen e Dit is geen open boek tentamen, noch mogen er aantekeningen gebruikt worden. o Laat bij het uitvoeren van berekeningen zien hoeje

Nadere informatie

3. Structuren in de taal

3. Structuren in de taal 3. Structuren in de taal In dit hoofdstuk behandelen we de belangrijkst econtrolestructuren die in de algoritmiek gebruikt worden. Dit zijn o.a. de opeenvolging, selectie en lussen (herhaling). Vóór we

Nadere informatie

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Giso Dal (0752975) Pagina s 5 7 1 Deelverzameling Representatie

Nadere informatie

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Sjoerd van Egmond LIACS, Leiden University, The Netherlands svegmond@liacs.nl 2 juni 2010 Samenvatting Deze notitie beschrijft een nederlandse

Nadere informatie

Uitleg van de Hough transformatie

Uitleg van de Hough transformatie Uitleg van de Hough transformatie Maarten M. Fokkinga, Joeri van Ruth Database groep, Fac. EWI, Universiteit Twente Versie van 17 mei 2005, 10:59 De Hough transformatie is een wiskundige techniek om een

Nadere informatie

Cover Page. The handle http://hdl.handle.net/1887/20358 holds various files of this Leiden University dissertation.

Cover Page. The handle http://hdl.handle.net/1887/20358 holds various files of this Leiden University dissertation. Cover Page The handle http://hdl.handle.net/1887/20358 holds various files of this Leiden University dissertation. Author: Witsenburg, Tijn Title: Hybrid similarities : a method to insert relational information

Nadere informatie

Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag 11 Januari 2013

Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag 11 Januari 2013 Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag Januari 20 Opgave. Python Gegeven is de volgende (slechte) Python code:. def t(x): 2. def p(y):. return x*y

Nadere informatie

Summary in Dutch 179

Summary in Dutch 179 Samenvatting Een belangrijke reden voor het uitvoeren van marktonderzoek is het proberen te achterhalen wat de wensen en ideeën van consumenten zijn met betrekking tot een produkt. De conjuncte analyse

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2012 2013, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Toets deel 2 Data-analyse en retrieval Vrijdag 1 Juli 2016:

Toets deel 2 Data-analyse en retrieval Vrijdag 1 Juli 2016: Toets deel 2 Data-analyse en retrieval Vrijdag 1 Juli 2016: 11.00-13.00 Algemene aanwijzingen 1. Het is toegestaan een aan beide zijden beschreven A4 met aantekeningen te raadplegen. 2. Het is toegestaan

Nadere informatie

Tiende college algoritmiek. 26 april Gretige algoritmen

Tiende college algoritmiek. 26 april Gretige algoritmen Algoritmiek 01/10 College 10 Tiende college algoritmiek april 01 Gretige algoritmen 1 Algoritmiek 01/10 Muntenprobleem Gegeven onbeperkt veel munten van d 1,d,...d m eurocent, en een te betalen bedrag

Nadere informatie

Machten, exponenten en logaritmen

Machten, exponenten en logaritmen Machten, eponenten en logaritmen Machten, eponenten en logaritmen Macht, eponent en grondtal Eponenten en logaritmen hebben alles met machtsverheffen te maken. Een macht als 4 is niets anders dan de herhaalde

Nadere informatie

Samenvatting (Summary in Dutch)

Samenvatting (Summary in Dutch) In dit proefschrift worden een aantal psychometrische methoden beschreven waarmee de accuratesse en efficientie van psychodiagnostiek in de klinische praktijk verbeterd kan worden. Psychodiagnostiek wordt

Nadere informatie

Classification - Prediction

Classification - Prediction Classification - Prediction Tot hiertoe: vooral classification Naive Bayes k-nearest Neighbours... Op basis van predictor variabelen X 1, X 2,..., X p klasse Y (= discreet) proberen te bepalen. Training

Nadere informatie

G0N11a Statistiek en data-analyse: project Eerste zittijd Modeloplossing

G0N11a Statistiek en data-analyse: project Eerste zittijd Modeloplossing G0N11a Statistiek en data-analyse: project Eerste zittijd 2007-2008 Modeloplossing Opmerking vooraf: Deze modeloplossing is een heel volledig antwoord op de gestelde vragen. Om de maximumscore op een vraag

Nadere informatie

Tweede college algoritmiek. 12 februari Grafen en bomen

Tweede college algoritmiek. 12 februari Grafen en bomen College 2 Tweede college algoritmiek 12 februari 2016 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices)

Nadere informatie

HOOFDSTUK VII REGRESSIE ANALYSE

HOOFDSTUK VII REGRESSIE ANALYSE HOOFDSTUK VII REGRESSIE ANALYSE 1 DOEL VAN REGRESSIE ANALYSE De relatie te bestuderen tussen een response variabele en een verzameling verklarende variabelen 1. LINEAIRE REGRESSIE Veronderstel dat gegevens

Nadere informatie

Populaties beschrijven met kansmodellen

Populaties beschrijven met kansmodellen Populaties beschrijven met kansmodellen Prof. dr. Herman Callaert Deze tekst probeert, met voorbeelden, inzicht te geven in de manier waarop je in de statistiek populaties bestudeert. Dat doe je met kansmodellen.

Nadere informatie

Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra

Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra Algoritmiek 017/Gretige Algoritmen Tiende college algoritmiek 13/1 april 017 Gretige Algoritmen Algoritme van Dijkstra 1 Algoritmiek 017/Gretige Algoritmen Muntenprobleem Gegeven onbeperkt veel munten

Nadere informatie

Uitgebreid eindwerkvoorstel Lokaliseren van personen en objecten met behulp van camera s

Uitgebreid eindwerkvoorstel Lokaliseren van personen en objecten met behulp van camera s Uitgebreid eindwerkvoorstel Lokaliseren van personen en objecten met behulp van camera s Sofie De Cooman 21 December 2006 Stagebedrijf: Interne begeleider: Externe begeleider: BarcoView Koen Van De Wiele

Nadere informatie

VERGELIJKENDE STUDIE VAN ALTERNATIEVE ONTWERPWAARDE SCHATTINGEN VAN SIGNIFICANTE GOLFHOOGTE

VERGELIJKENDE STUDIE VAN ALTERNATIEVE ONTWERPWAARDE SCHATTINGEN VAN SIGNIFICANTE GOLFHOOGTE Rapport aan isterie van de Vlaamse Gemeenschap Departement Leefmilieu en Infrastructuur Administratie Waterwegen en Zeewezen AFDELING WATERWEGEN KUST VERGELIJKENDE STUDIE VAN ALTERNATIEVE ONTWERPWAARDE

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

De statespace van Small World Networks

De statespace van Small World Networks De statespace van Small World Networks Emiel Suilen, Daan van den Berg, Frank van Harmelen epsuilen@few.vu.nl, daanvandenberg1976@gmail.com, Frank.van.Harmelen@cs.vu.nl VRIJE UNIVERSITEIT AMSTERDAM 2 juli

Nadere informatie

Het minimale aantal sleutels op niveau h is derhalve

Het minimale aantal sleutels op niveau h is derhalve 1 (a) In een B-boom van orde m bevat de wortel minimaal 1 sleutel en maximaal m 1 sleutels De andere knopen bevatten minimaal m 1 sleutels en maximaal m 1 sleutels (b) In een B-boom van orde 5 bevat elke

Nadere informatie

3. Structuren in de taal

3. Structuren in de taal 3. Structuren in de taal In dit hoofdstuk behandelen we de belangrijkst econtrolestructuren die in de algoritmiek gebruikt worden. Dit zijn o.a. de opeenvolging, selectie en lussen (herhaling). Vóór we

Nadere informatie

Tiende college algoritmiek. 14 april Gretige algoritmen

Tiende college algoritmiek. 14 april Gretige algoritmen College 10 Tiende college algoritmiek 1 april 011 Gretige algoritmen 1 Greedy algorithms Greed = hebzucht Voor oplossen van optimalisatieproblemen Oplossing wordt stap voor stap opgebouwd In elke stap

Nadere informatie

9. Strategieën en oplossingsmethoden

9. Strategieën en oplossingsmethoden 9. Strategieën en oplossingsmethoden In dit hoofdstuk wordt nog even terug gekeken naar alle voorgaande hoofdstukken. We herhalen globaal de structuren en geven enkele richtlijnen voor het ontwerpen van

Nadere informatie

1 In deze opgave wordt vijftien maal telkens drie beweringen gedaan waarvan er één juist is. Kruis de juiste bewering aan. (2pt. per juist antwoord).

1 In deze opgave wordt vijftien maal telkens drie beweringen gedaan waarvan er één juist is. Kruis de juiste bewering aan. (2pt. per juist antwoord). Tentamen Optimalisering (IN2805-I) Datum: 3 april 2008, 14.00 17.00. Docent: Dr. J.B.M. Melissen Naam: Studienummer: 1 In deze opgave wordt vijftien maal telkens drie beweringen gedaan waarvan er één juist

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te

Nadere informatie

Minimum Opspannende Bomen. Algoritmiek

Minimum Opspannende Bomen. Algoritmiek Minimum Opspannende Bomen Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee greedy algoritmen + tijd en datastructuren: Het algoritme van

Nadere informatie

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Uitwerking tentamen Analyse van Algoritmen, 29 januari Uitwerking tentamen Analyse van Algoritmen, 29 januari 2007. (a) De buitenste for-lus kent N = 5 iteraties. Na iedere iteratie ziet de rij getallen er als volgt uit: i rij na i e iteratie 2 5 4 6 2 2 4

Nadere informatie

Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra

Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra College 10 Tiende college algoritmiek mei 013 Gretige algoritmen, Dijkstra 1 Muntenprobleem Gegeven onbeperkt veel munten van d 1,d,...d m eurocent, en een te betalen bedrag van n (n 0) eurocent. Alle

Nadere informatie

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Rick van der Zwet 13 november 2010 Samenvatting Dit schrijven zal uitwerkingen van opgaven behandelen uit het boek [JS2009]

Nadere informatie

Cover Page. The handle holds various files of this Leiden University dissertation.

Cover Page. The handle  holds various files of this Leiden University dissertation. Cover Page The handle http://hdl.handle.net/1887/29716 holds various files of this Leiden University dissertation. Author: Schraagen, Marijn Paul Title: Aspects of record linkage Issue Date: 2014-11-11

Nadere informatie

Programmeermethoden. Recursie. week 11: november kosterswa/pm/

Programmeermethoden. Recursie. week 11: november kosterswa/pm/ Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,

Nadere informatie

Modelonzekerheid in GeoTOP

Modelonzekerheid in GeoTOP Modelonzekerheid in GeoTOP TNO Geologische Dienst Nederland Versiehistorie Documentversie GeoTOP versie Toelichting 24 juni 2014 GeoTOP v1.2 De in dit document beschreven modelonzekerheid is opgenomen

Nadere informatie

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Rick van der Zwet 8 december 2010 Samenvatting Dit schrijven zal uitwerkingen van opgaven behandelen uit het boek [JS2009]

Nadere informatie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie Hoofdstuk 5 Recursion I N T R O D U C T I E Veel methoden die we op een datastructuur aan kunnen roepen, zullen op een recursieve wijze geïmplementeerd worden. Recursie is een techniek waarbij een vraagstuk

Nadere informatie

Indexen.

Indexen. Indexen joost.vennekens@kuleuven.be Probleem Snel gegevens terugvinden Gegevens moeten netjes geordend zijn Manier waarop hangt af van gebruik Sequentieel Gesorteerde gegevens, die in volgorde overlopen

Nadere informatie

EWMA Control Charts in Statistical Process Monitoring I.M. Zwetsloot

EWMA Control Charts in Statistical Process Monitoring I.M. Zwetsloot EWMA Control Charts in Statistical Process Monitoring I.M. Zwetsloot EWMA Control Charts in Statistical Process Monitoring Inez M. Zwetsloot Samenvatting EWMA Regelkaarten in Statistische Procesmonitoring

Nadere informatie

Uitwerking tentamen Algoritmiek 9 juni :00 17:00

Uitwerking tentamen Algoritmiek 9 juni :00 17:00 Uitwerking tentamen Algoritmiek 9 juni 2015 14:00 17:00 1. Clobber a. Toestanden: m x n bord met in elk hokje een O, een X of een -. Hierbij is het aantal O gelijk aan het aantal X of er is hooguit één

Nadere informatie

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007 Uitgebreide uitwerking Tentamen Complexiteit, mei 007 Opgave. a. Een beslissingsboom beschrijft de werking van het betreffende algoritme (gebaseerd op arrayvergelijkingen) op elke mogelijke invoer. In

Nadere informatie

8/2/2006 Examen Optimalisatietechnieken (6sp) 1

8/2/2006 Examen Optimalisatietechnieken (6sp) 1 8/2/2006 Examen Optimalisatietechnieken 2005-2006 (6sp) 1 Gesloten boek: Maximaal 25 minuten Beantwoord alle vragen op het opgavenblad. Schrijf je naam op elk blad en schrijf leesbaar. Beantwoord de vraag

Nadere informatie

Project Paper: Tiling problem

Project Paper: Tiling problem Project Paper: Tiling problem Groep 11: Said Hattachi, Ismael el Hadad Hakim, Muttalip Küçük Januari 015 Abstract Dit artikel beschrijft een heuristiek waarmee een veld op een systematische wijze gevuld

Nadere informatie

Tentamen Kunstmatige Intelligentie (INFOB2KI)

Tentamen Kunstmatige Intelligentie (INFOB2KI) Tentamen Kunstmatige Intelligentie (INFOB2KI) 12 december 2014 8:30-10:30 Vooraf Mobiele telefoons en dergelijke dienen uitgeschakeld te zijn. Het eerste deel van het tentamen bestaat uit 8 multiple-choice

Nadere informatie

ALGORITMIEK: antwoorden werkcollege 5

ALGORITMIEK: antwoorden werkcollege 5 ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit

Nadere informatie

Informatica: C# WPO 10

Informatica: C# WPO 10 Informatica: C# WPO 10 1. Inhoud 2D arrays, lijsten van arrays, NULL-values 2. Oefeningen Demo 1: Fill and print 2D array Demo 2: Fill and print list of array A: Matrix optelling A: Matrix * constante

Nadere informatie

Heuristieken en benaderingsalgoritmen. Algoritmiek

Heuristieken en benaderingsalgoritmen. Algoritmiek Heuristieken en benaderingsalgoritmen Wat te doen met `moeilijke optimaliseringsproblemen? Voor veel problemen, o.a. optimaliseringsproblemen is geen algoritme bekend dat het probleem voor alle inputs

Nadere informatie

Inleiding statistiek

Inleiding statistiek Inleiding Statistiek Pagina 1 uit 8 Inleiding statistiek 1. Inleiding In deze oefeningensessie is het de bedoeling jullie vertrouwd te maken met een aantal basisbegrippen van de statistiek, meer bepaald

Nadere informatie

Hoofdstuk 7: Statistische gevolgtrekkingen voor distributies

Hoofdstuk 7: Statistische gevolgtrekkingen voor distributies Hoofdstuk 7: Statistische gevolgtrekkingen voor distributies 7.1 Het gemiddelde van een populatie Standaarddeviatie van de populatie en de steekproef In het vorige deel is bij de significantietoets uitgegaan

Nadere informatie

Getallensystemen, verzamelingen en relaties

Getallensystemen, verzamelingen en relaties Hoofdstuk 1 Getallensystemen, verzamelingen en relaties 1.1 Getallensystemen 1.1.1 De natuurlijke getallen N = {0, 1, 2, 3,...} N 0 = {1, 2, 3,...} 1.1.2 De gehele getallen Z = {..., 4, 3, 2, 1, 0, 1,

Nadere informatie

Figuur 1. Schematisch overzicht van de structuur van het twee-stadia recourse model.

Figuur 1. Schematisch overzicht van de structuur van het twee-stadia recourse model. Samenvatting In dit proefschrift worden planningsproblemen op het gebied van routering en roostering bestudeerd met behulp van wiskundige modellen en (numerieke) optimalisatie. Kenmerkend voor de bestudeerde

Nadere informatie

8. Complexiteit van algoritmen:

8. Complexiteit van algoritmen: 8. Complexiteit van algoritmen: Voorbeeld: Een gevaarlijk spel 1 Spelboom voor het wespenspel 2 8.1 Complexiteit 4 8.2 NP-problemen 6 8.3 De oplossing 7 8.4 Een vuistregel 8 In dit hoofdstuk wordt het

Nadere informatie

Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3

Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3 Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3 Koen Rutten, Aris van Dijk 30 mei 2007 Inhoudsopgave 1 Verzamelingen 2 1.1 Definitie................................ 2 1.2 Eigenschappen............................

Nadere informatie

Universiteit Utrecht Departement Informatica

Universiteit Utrecht Departement Informatica Universiteit Utrecht Departement Informatica Uitwerking Tussentoets Optimalisering 20 december 206 Opgave. Beschouw het volgende lineair programmeringsprobleem: (P) Minimaliseer z = x 2x 2 + x 3 2x 4 o.v.

Nadere informatie

Exponentiële Functie: Toepassingen

Exponentiële Functie: Toepassingen Exponentiële Functie: Toepassingen 1 Overgang tussen exponentiële functies en lineaire functies Wanneer we werken met de exponentiële functie is deze niet altijd gemakkelijk te herkennen. Daarom proberen

Nadere informatie

Cover Page. The handle holds various files of this Leiden University dissertation.

Cover Page. The handle  holds various files of this Leiden University dissertation. Cover Page The handle http://hdl.handle.net/1887/29764 holds various files of this Leiden University dissertation. Author: Takes, Frank Willem Title: Algorithms for analyzing and mining real-world graphs

Nadere informatie

Vierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument

Vierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument Complexiteit 2019/04 College 4 Vierde college complexiteit 26 februari 2019 Beslissingsbomen en selectie Toernooimethode Adversary argument 1 Complexiteit 2019/04 Zoeken: samengevat Ongeordend lineair

Nadere informatie

Uitwerkingen Mei 2012. Eindexamen VWO Wiskunde C. Nederlands Mathematisch Instituut Voor Onderwijs en Onderzoek

Uitwerkingen Mei 2012. Eindexamen VWO Wiskunde C. Nederlands Mathematisch Instituut Voor Onderwijs en Onderzoek Uitwerkingen Mei 2012 Eindexamen VWO Wiskunde C Nederlands Mathematisch Instituut Voor Onderwijs en Onderzoek I Tjing Opgave 1. Het aantal hoofdstukken in de I Tjing correspondeert met het totale aantal

Nadere informatie

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen 08-04-2005

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen 08-04-2005 Transport-, Routing- en Schedulingproblemen Wi4062TU / Wi487TU / a86g Uitwerkingen 08-04-2005 1 Transportprobleem Onderdeel a Fabriek 1 kan 120 ton staal fabriceren in 40 uur. Voor fabriek 2 is dit 150

Nadere informatie

We zullen in deze les kijken hoe we netwerken kunnen analyseren, om bijvoorbeeld de volgende vragen te kunnen beantwoorden:

We zullen in deze les kijken hoe we netwerken kunnen analyseren, om bijvoorbeeld de volgende vragen te kunnen beantwoorden: Wiskunde voor kunstmatige intelligentie, 24 Les 5 Proces analyse Veel processen laten zich door netwerken beschrijven, waarin een aantal knopen acties aangeeft en opdrachten langs verbindingen tussen de

Nadere informatie

Automaten. Informatica, UvA. Yde Venema

Automaten. Informatica, UvA. Yde Venema Automaten Informatica, UvA Yde Venema i Inhoud Inleiding 1 1 Formele talen en reguliere expressies 2 1.1 Formele talen.................................... 2 1.2 Reguliere expressies................................

Nadere informatie

Meer Blokken. 1. Dit is een functie genaamd Maximum, die twee argumenten heeft: number1 en number2.

Meer Blokken. 1. Dit is een functie genaamd Maximum, die twee argumenten heeft: number1 en number2. Meer Blokken Voorkennis: SuperDojo, Snake Leerdoelen: Meer Blokken Introductie Meer Blokken zijn Scratch s manier van functies. Functies zijn een heel belangrijk concept in alle programmeertalen. Het staat

Nadere informatie

In Vlaanderen bestaat er nog geen leerlijn programmeren! Hierdoor baseren wij ons op de leerlijn die men in Nederland toepast voor basisscholen.

In Vlaanderen bestaat er nog geen leerlijn programmeren! Hierdoor baseren wij ons op de leerlijn die men in Nederland toepast voor basisscholen. Leerlijn programmeren In Vlaanderen bestaat er nog geen leerlijn programmeren! Hierdoor baseren wij ons op de leerlijn die men in Nederland toepast voor basisscholen. Deze leerlijn is opgebouwd aan de

Nadere informatie

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort Algoritmiek 018/Algoritme van Dijkstra Elfde college algoritmiek 18 mei 018 Algoritme van Dijkstra, Heap, Heapify & Heapsort 1 Algoritmiek 018/Algoritme van Dijkstra Uit college 10: Voorb. -1- A B C D

Nadere informatie

Local search. Han Hoogeveen. 21 november, 2011

Local search. Han Hoogeveen. 21 november, 2011 1 Local search Han Hoogeveen 21 november, 2011 Inhoud vandaag 2 Inhoud: Uitleg methode Bespreking oude opdrachten: ˆ Bezorgen wenskaarten ˆ Roosteren tentamens Slides staan al op het web www.cs.uu.nl/docs/vakken/opt/colleges.html

Nadere informatie

n-queens Local Search met Conflict Minimalizatie

n-queens Local Search met Conflict Minimalizatie n-queens Local Search met Conflict Minimalizatie Efficient Local Search with Conflict Minimalization: A Case Study of the n-queens Problem, door Rok Sosič en Jun Gu. Sjoerd van Egmond svegmond@liacs.nl

Nadere informatie

VBA voor Doe het Zelvers deel 20

VBA voor Doe het Zelvers deel 20 VBA voor Doe het Zelvers deel 20 Handleiding van Auteur: leofact Augustus 2015 handleiding: VBA voor Doe het Zelvers deel 20 Vorige aflevering In het vorige deel werd besproken hoe je de structuur en vensteropbouw

Nadere informatie

8. Analyseren van samenhang tussen categorische variabelen

8. Analyseren van samenhang tussen categorische variabelen 8. Analyseren van samenhang tussen categorische variabelen Er bestaat een samenhang tussen twee variabelen als de verdeling van de respons (afhankelijke) variabele verandert op het moment dat de waarde

Nadere informatie

Cover Page. The handle holds various files of this Leiden University dissertation.

Cover Page. The handle   holds various files of this Leiden University dissertation. Cover Page The handle http://hdl.handle.net/1887/39638 holds various files of this Leiden University dissertation. Author: Pelt D.M. Title: Filter-based reconstruction methods for tomography Issue Date:

Nadere informatie

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting?

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting? Inhoud Computervaardigheden Hoofdstuk 4 Scripting (Let op: dit is enkel voor studenten Biologie.) Dit hoofdstuk bekijkt heel kort de basis van scripting. - Opstellen van functies. - Conditionele code.

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2008 2009, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees elke

Nadere informatie

Benaderingsalgoritmen

Benaderingsalgoritmen Benaderingsalgoritmen Eerste hulp bij NP-moeilijkheid 1 Herhaling NP-volledigheid (1) NP: er is een polynomiaal certificaat voor jainstanties dat in polynomiale tijd te controleren is Een probleem A is

Nadere informatie

Geldwisselprobleem van Frobenius

Geldwisselprobleem van Frobenius Geldwisselprobleem van Frobenius Karin van de Meeberg en Dieuwertje Ewalts 12 december 2001 1 Inhoudsopgave 1 Inleiding 3 2 Afspraken 3 3 Is er wel zo n g? 3 4 Eén waarde 4 5 Twee waarden 4 6 Lampenalgoritme

Nadere informatie

Raamwerk voor Optimale Globale Belichting

Raamwerk voor Optimale Globale Belichting Raamwerk voor Optimale Globale Belichting Lukas Latacz Mathieu De Zutter Departement Computer Graphics K.U.Leuven 18 april 2005 Overzicht 1 Inleiding Situering Probleemstelling Vorig werk 2 Nieuw raamwerk

Nadere informatie

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 5 juni 2007, uur

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 5 juni 2007, uur Uitgebreide uitwerking tentamen Algoritmiek Dinsdag juni 00, 0.00.00 uur Opgave. a. Een toestand bestaat hier uit een aantal stapels, met op elk van die stapels een aantal munten (hooguit n per stapel).

Nadere informatie

Uitgebreid voorstel Masterproef Informatica. Titel van het project: Rolnummerherkenning van op een kraan

Uitgebreid voorstel Masterproef Informatica. Titel van het project: Rolnummerherkenning van op een kraan HoGent Uitgebreid voorstel Masterproef Informatica Titel van het project: Rolnummerherkenning van op een kraan Datum: 17/11/12 Naam student: Cédric Verstraeten Interne promotor: Tim De Pauw In samenwerking

Nadere informatie

Les 1: Waarschijnlijkheidrekening

Les 1: Waarschijnlijkheidrekening Les 1: Waarschijnlijkheidrekening A Men neemt een steekproef van 1000 appelen. Deze worden ingedeeld volgens gewicht en volgens symptomen van een bepaalde schimmel: geen, mild, gematigd of ernstig. Het

Nadere informatie

Robuustheid regressiemodel voor kapitaalkosten gebaseerd op aansluitdichtheid

Robuustheid regressiemodel voor kapitaalkosten gebaseerd op aansluitdichtheid Robuustheid regressiemodel voor kapitaalkosten gebaseerd op aansluitdichtheid Dr.ir. P.W. Heijnen Faculteit Techniek, Bestuur en Management Technische Universiteit Delft 22 april 2010 1 1 Introductie De

Nadere informatie

Opgave 2 ( = 12 ptn.)

Opgave 2 ( = 12 ptn.) Deel II Opgave 1 (4 + 2 + 6 = 12 ptn.) a) Beschouw bovenstaande game tree waarin cirkels je eigen zet representeren en vierkanten die van je tegenstander. Welke waarde van de evaluatiefunctie komt uiteindelijk

Nadere informatie

2 Data en datasets verwerken

2 Data en datasets verwerken Domein Statistiek en kansrekening havo A 2 Data en datasets verwerken 1 Data presenteren 1.4 Oefenen In opdracht van: Commissie Toekomst Wiskunde Onderwijs 1.4 Oefenen Opgave 9 Bekijk de genoemde dataset

Nadere informatie

Data Mining: Opdracht 2

Data Mining: Opdracht 2 Data Mining: Opdracht 2 7 juli 2006 Egbert Kroese (#0134252) Paul Lammertsma (#0305235) Inhoudsopgave 1. De datasets...3 1.1 Iris...3 1.2 Vote...3 1.3 Autos...4 2. De algoritmen...4 2.1 Naive Bayes...4

Nadere informatie

The knight s tour. Het paard in schaken beweegt als volgt: Steeds 1 vakje in een richting en 2 in een andere richting, of omgekeerd.

The knight s tour. Het paard in schaken beweegt als volgt: Steeds 1 vakje in een richting en 2 in een andere richting, of omgekeerd. The knight s tour In het Engels heet een paard uit schaken een Knight (Ridder). In het begin zaten er namelijk ridders op de paarden. (link wiki) Stel, je bent een paard uit het schaakspel en je staat

Nadere informatie

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek Divide & Conquer: Verdeel en Heers vervolg Algoritmiek Algoritmische technieken Vorige keer: Divide and conquer techniek Aantal toepassingen van de techniek Analyse met Master theorem en substitutie Vandaag:

Nadere informatie

Afhankelijk van wanneer je het programma uitvoert, zie je een van de volgende resultaten:

Afhankelijk van wanneer je het programma uitvoert, zie je een van de volgende resultaten: Hoofdstuk 4 Voorwaarden en vertakkingen Laten we eens teruggaan naar ons eerste programma. Zou het niet leuk zijn als we in plaats van het algemene Hallo wereld, afhankelijk van de tijd van de dag, Goedemorgen

Nadere informatie

Vierde college complexiteit. 16 februari Beslissingsbomen en selectie

Vierde college complexiteit. 16 februari Beslissingsbomen en selectie Complexiteit 2016/04 College 4 Vierde college complexiteit 16 februari 2016 Beslissingsbomen en selectie 1 Complexiteit 2016/04 Zoeken: samengevat Ongeordend lineair zoeken: Θ(n) sleutelvergelijkingen

Nadere informatie

Greedy algoritmes. Algoritmiek

Greedy algoritmes. Algoritmiek Greedy algoritmes Algoritmiek Algoritmische technieken Trucs, methoden, paradigma s voor het ontwerpen van algoritmen Dynamisch Programmeren Divide & Conquer Greedy 2 Greedy algoritme Bouwt de oplossing

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 28, 2016 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2008 2009, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees elke

Nadere informatie

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 2 juni 2009, uur

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 2 juni 2009, uur Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 2 juni 2009, 10.00 13.00 uur Opgave 1. a. Een toestand wordt bepaald door: het aantal lucifers op tafel, het aantal lucifers in het bezit van Romeo,

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie