Data Mining: Classificatie



Vergelijkbare documenten
Oplossingen Datamining 2II15 Juni 2008

Data Mining: Classificatie

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

Data Mining: Data kwaliteit, Preprocessing

Data Mining: Inleiding

Data Mining: Clustering

Tentamen Data Mining

Data Mining: Opdracht 2

Uitwerking Tentamen Datamining (2II15) 26/06/09

Tentamen Kunstmatige Intelligentie (INFOB2KI)

AI en Software Testing op de lange termijn

DATA MINING (TI2730-C)

Voorspellen van webwinkel aankopen met een Random Forest

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

AI introductie voor testers

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

Data mining Van boodschappenmandjes tot bio-informatica

Twaalfde college complexiteit. 11 mei Overzicht, MST

Classification - Prediction

Het classificeren van hoortoestel modaliteiten m.b.v. een Big Data benadering: Latent Class Trees analyse

Datastructuren en Algoritmen voor CKI

Flying Sensor Rapport

Vierde college complexiteit. 14 februari Beslissingsbomen

Predictieve modellen - overzicht

TW2020 Optimalisering

2WO12: Optimalisering in Netwerken

TW2020 Optimalisering

Hoofdstuk 18,19.1,21.1/3,17.1/2 Russell/Norvig = [RN] Leren

Vierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search

Tweede college algoritmiek. 12 februari Grafen en bomen

Benaderingsalgoritmen

Inhoud. Neuronen. Synapsen. McCulloch-Pitts neuron. Sigmoids. De bouwstenen van het zenuwstelsel: neuronen en synapsen

twee partijen zijn. Aangezien het bij data mining gaat om grote hoeveelheden data is het belangrijk om praktische oplossingen te hebben.

Opgave 2 ( = 12 ptn.)

Inl. Adaptieve Systemen

Data Mining. Eindverslag 7 juni 2009

Continuous Learning in Computer Vision S.L. Pintea

Tentamen Kunstmatige Intelligentie (INFOB2KI)

Kunstmatige Intelligentie (AI) Hoofdstuk 18.7 van Russell/Norvig = [RN] Neurale Netwerken (NN s) voorjaar 2016 College 9, 19 april 2016

2WO12: Optimalisering in Netwerken

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

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

Voorwoord. Maar nu eerst Latex leren.

Transparanten bij het vak Inleiding Adaptieve Systemen: Introductie Machine Leren. M. Wiering

Hoe AI kan ingezet worden voor de analyse van asbesthoudende daken

College 4 Inspecteren van Data: Verdelingen

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

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek

Neurale Netwerken en Deep Learning. Tijmen Blankevoort

Principe Maken van een Monte Carlo data-set populatie-parameters en standaarddeviaties standaarddeviatie van de bepaling statistische verdeling

Algoritmiek. 15 februari Grafen en bomen

College 6 Eenweg Variantie-Analyse

INZET VAN MACHINE LEARNING

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III

AI en Data mining. Van AI tot Data mining. dr. Walter Kosters, Universiteit Leiden. Gouda woensdag 17 oktober

Datastructuren: stapels, rijen en binaire bomen

Java Programma structuur

Let op dat de scoping regels gerespecteerd blijven; het volgende voorbeeld mag geen fout melden.

Veel van weinig. Hoe vinden we diagnostische markers voor kanker op basis van een beperkt aantal genetische profielen?

Indexen.

Triple P (Positive Parenting Program): effectief bij gedragsproblemen?

User Profile Repository Testrapportage kwaliteit

Link prediction op het RU domein

XPath voor beginners. HVA-IAM-V1-TDI Internetstandaarden /2009. Fons van Kesteren

Toepassingen op differentievergelijkingen

Een eenvoudig algoritme om permutaties te genereren

Invloed van MetaCost op imbalanced classificatie problemen

Examen Datastructuren en Algoritmen II

Gids voor geautomatiseerd handelen met Proorder

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

8C080 deel BioModeling en bioinformatica

Gebruik van classificatie om gebruikspieken van een elektronische leeromgeving te voorspellen.

20 maart Prof. Dr. Katrien Verleye

Inleiding Programmeren 2

Machinaal leren, neurale netwerken, en deep learning

Inleiding Programmeren 2

Vijfde college algoritmiek. 2/3 maart Exhaustive search

Oude tentamens Kunstmatige intelligentie Universiteit Leiden Informatica 2005

Abstraheren van modellen

Hoofdvraag. Hoe kan interne en externe data gebruikt worden voor ziektepreventie bij klanten van DFZ?

Hoe krijg je je motie aangenomen

Tentamen Object Georiënteerd Programmeren TI oktober 2014, Afdeling SCT, Faculteit EWI, TU Delft

Toetsende Statistiek Week 5. De F-toets & Onderscheidend Vermogen

TEXT ANALYTICS 11/22/2015. Inleiding Text mining & Machine learning Ludieke voorbeelden. Twee klant cases. AGENDA

Tree traversal. Bomen zijn overal. Ferd van Odenhoven. 15 november 2011

definities recursieve datastructuren college 13 plaatjes soorten Graph = ( V, E ) V vertices, nodes, objecten, knopen, punten

Bloom. Taxonomie van. in de praktijk

Tentamen Kunstmatige Intelligentie

Monte Carlo-analyses waarschijnlijkheids- en nauwkeurigheidsberekeningen van

Samenvatting (Summary in Dutch)

Artificial Intelligence in uw dagelijkse praktijk. Hilversum, 22 September 2016

Opgaven Kunstmatige intelligentie 4 mei 2012

Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra

TECHNISCHE UNrVERSITElT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica

9. Lineaire Regressie en Correlatie

Hoofdstuk 9. Hashing

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

Kortste Paden. Algoritmiek

Vakgroep CW KAHO Sint-Lieven

TW2020 Optimalisering

Transcriptie:

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 bij classificatie Evalueren van een model

Overzicht Wat is classificatie? Definitie Soorten modellen Voorbeelden Leren van een beslissingsboom. Problemen bij classificatie Evalueren van een model Classificatie: Definitie Gegeven een verzameling objecten (training set) ingedeeld in klasses. Vind een model voor de klasse in functie van de andere attributen. Doel: onbekende voorbeelden moeten zo accuraat mogelijk in klassen ingedeeld kunnen worden. Accuraatheid wordt gemeten op een test set.

10 10 Illustratie van een classificatie taak Tid Attrib1 Attrib2 Attrib3 Class 1 Yes Large 125K No 2 No Medium 100K No 3 No Small 70K No 4 Yes Medium 120K No 5 No Large 95K Yes 6 No Medium 60K No 7 Yes Large 220K No 8 No Small 85K Yes 9 No Medium 75K No 10 No Small 90K Yes Learn Model Tid Attrib1 Attrib2 Attrib3 Class 11 No Small 55K? 12 Yes Medium 80K? 13 Yes Large 110K? 14 No Small 95K? 15 No Large 67K? Apply Model Voorbeelden van classificatie Voorspellen of tumor kwaadaardig is Classificeren van kredietkaart transacties als al dan niet fraudulent. Classificeren van nieuwsberichten als: financieel, weersvoorspelling, entertainment, sport, etc. Classificeren van meetingen als al dan niet foutief.

10 Classificatie technieken Op basis van het soort model dat geleerd wordt: Beslissingsbomen Classificatieregels Geheugengebaseerde methodes NaïveBayes en Bayesiaanse belief netwerken Neurale netwerken Support Vector Machines Voorbeeld van een beslissingsboom categorical Tid Refund Marital Status categorical Taxable Income continuous Cheat class Splitting Attributes 1 Yes Single 125K No 2 No Married 100K No 3 No Single 70K No 4 Yes Married 120K No 5 No Divorced 95K Yes 6 No Married 60K No 7 Yes Divorced 220K No 8 No Single 85K Yes 9 No Married 75K No 10 No Single 90K Yes Refund Yes No MarSt Single, Divorced TaxInc < 80K > 80K YES Married Training Data Model: Beslissingsboom

10 10 10 Voorbeeld van een beslissingsboom categorical Tid Refund Marital Status categorical Taxable Income continuous 1 Yes Single 125K No 2 No Married 100K No 3 No Single 70K No 4 Yes Married 120K No Cheat 5 No Divorced 95K Yes 6 No Married 60K No 7 Yes Divorced 220K No 8 No Single 85K Yes 9 No Married 75K No 10 No Single 90K Yes class Married MarSt Yes Single, Divorced Refund No TaxInc < 80K > 80K YES Er is mogelijk meer dan 1 boom voor dezelfde trainingset! Classificeren met de beslissingsboom Tid Attrib1 Attrib2 Attrib3 Class 1 Yes Large 125K No 2 No Medium 100K No 3 No Small 70K No 4 Yes Medium 120K No 5 No Large 95K Yes 6 No Medium 60K No 7 Yes Large 220K No 8 No Small 85K Yes 9 No Medium 75K No 10 No Small 90K Yes Learn Model Tid Attrib1 Attrib2 Attrib3 Class 11 No Small 55K? 12 Yes Medium 80K? 13 Yes Large 110K? 14 No Small 95K? 15 No Large 67K? Apply Model Decision Tree

1 0 1 0 Toepassen van het model op de nieuwe data Start vanaf de root van de boom. Refund Yes No Nieuwe data Refund Marital Status Taxable Income No Married 80K? Cheat MarSt Single, Divorced Married TaxInc < 80K > 80K YES Toepassen van het model op de nieuwe data Nieuwe data Refund Marital Status Taxable Income Cheat Yes Refund No No Married 80K? MarSt Single, Divorced Married TaxInc < 80K > 80K YES

10 10 Toepassen van het model op de nieuwe data Nieuwe data Refund Marital Status Taxable Income Cheat Yes Refund No No Married 80K? MarSt Single, Divorced Married TaxInc < 80K > 80K YES Toepassen van het model op de nieuwe data Nieuwe data Refund Marital Status Taxable Income Cheat Yes Refund No No Married 80K? MarSt Single, Divorced Married TaxInc < 80K > 80K YES

10 10 Toepassen van het model op de nieuwe data Nieuwe data Refund Marital Status Taxable Income Cheat Yes Refund No No Married 80K? MarSt Single, Divorced Married TaxInc < 80K > 80K YES Toepassen van het model op de nieuwe data Nieuwe data Refund Marital Status Taxable Income Cheat Yes Refund No No Married 80K MarSt Single, Divorced Married TaxInc < 80K > 80K Ken klasse No toe YES

10 10 Overzicht Wat is classificatie? Leren van een beslissingsboom Algoritme van Hunt. Hoe vinden we de beste split? Wanneer stoppen? Problemen bij classificatie Evalueren van een model Leren van een beslissingsboom Tid Attrib1 Attrib2 Attrib3 Class 1 Yes Large 125K No 2 No Medium 100K No 3 No Small 70K No 4 Yes Medium 120K No 5 No Large 95K Yes 6 No Medium 60K No 7 Yes Large 220K No 8 No Small 85K Yes 9 No Medium 75K No 10 No Small 90K Yes Learn Model Tid Attrib1 Attrib2 Attrib3 Class 11 No Small 55K? 12 Yes Medium 80K? 13 Yes Large 110K? 14 No Small 95K? 15 No Large 67K? Apply Model Beslissingsboom

Algoritmes voor beslissingsbomen Vinden van de beste beslissingsboom is niet wenselijk Hoge complexiteit Beste boom voor trainingdata is daarom nog niet de beste boom voor nieuwe data (cfr. Later: overfitting) Daarom: heuristieken Meeste algoritmes optimaliseren lokale criteria. Meeste algoritmes vinden suboptimale oplossingen. Inductie van een Beslissingsboom Vele algoritmes: Algoritme van Hunt (een van de eerste) CART ID3, C4.5 SLIQ, SPRINT

Algoritme van Hunt Zoek de beste split voor D B.v.b. A 5 >5 Splits D volgens dit criterium in D 1,, D k Hier dus: D 1 = records met A 5 D 2 = records met A>5 Werk recursief verder op de delen D 1,, D k Vind boom voor D 1, boom voor D 2, Combineer de bomen Algoritme van Hunt Zoek de beste split voor D Splits D volgens dit criterium in D 1,, D k Werk recursief verder op de delen D 1,, D k Vind boom voor D 1, boom voor D 2, Combineer de bomen: A 5 >5 T 1 T 2

Algoritme van Hunt (Binaire attributen) Algoritme: Hunt(dataset D(A 1,, A k, class)) Maak een nieuwe node root If ( Stopconditie(D) ) Label root met de grootste klasse in D Return root Else Selecteer het attribuut A dat Split_Kwaliteit( D 0, D 1 ) maximaliseert, waarbij D j = {t in D t.a = j} T 0 = Hunt(D 0 ); T 1 = Hunt(D 1 ) Label root met A, Voeg edges van de root naar T 0.root, resp. T 1.root met label 0, resp. 1. Return root Beslissingsboom Induction Greedy strategie. Splits de nodes gebaseerd op een lokaal criterium: slechts 1 attribuut tegelijk. Nog te bepalen/generisch Hoe splitsen we? Nietbinaire attributen Hoe meten we de kwaliteit van een split? Split_Kwaliteit( D 0, D 1 ) Wanneer moeten we stoppen? Stopconditie(D)

Hoe splitsen we? Hangt af van het attribuuttype Nominaal Ordinaal Continu en het aantal vertakkingen dat is toegestaan 2way split Multiway split Splitsen op basis van nominale attributen Multiway: Gebruik zoveel vertakkingen als er waarden zijn. Family CarType Sports Luxury Binaire split: Verdeel de waarden in twee verzamelingen. Zoek een optimale opdeling. {Sports, Luxury} CarType {Family} OF {Family, Luxury} CarType {Sports}

Splitsen op basis van een continu attribuut Different ways of handling Discretiseren ordinale attributen Binaire split: splits op in (A < v) en (A v) Beschouw alle mogelijke splitpunten Mogelijk computationeel erg complex Splitsen op basis van een continu attribuut

Beslissingsboom Induction Greedy strategie. Splits de nodes gebaseerd op een lokaal criterium: slechts 1 attribuut tegelijk. Nog te bepalen/generisch Hoe splitsen we? Nietbinaire attributen Hoe meten we de kwaliteit van een split? Split_Kwaliteit( D 0, D 1 ) Wanneer moeten we stoppen? Stopconditie(D) Welke split heeft jouw voorkeur? Vooraf: 10 records met klasse 0 10 records met klasse 1

Welke split heeft jouw voorkeur? Vooraf: 10 records met klasse 0 10 records met klasse 1 Niet homogeen Vrij homogeen Meest homogeen Te veel splits! Hoe bepalen we de kwaliteit van een split? We willen nodes met een homogene klasse distributie We hebben een maat van homogeniteit nodig: Niet homogeen Homogeen

Maten van homogeniteit Dataset D: k klassen, n records d j records met klasse j, j=1..k Gini Index GINI( D) = 1 k j= 1 d j n 2 Vraag Dataset D heeft slechts 2 klassen, 0 en 1 GINI( D) = 1 k j= 1 d j n 2 Bij welke verdeling tussen de klassen is de GINIindex maximaal? Minimaal?

Vraag Dataset D heeft slechts 2 klassen, 0 en 1 GINI( D) = 1 k j= 1 d j n 2 Bij welke verdeling tussen de klassen is de GINIindex maximaal? Minimaal? d 1 = n.x d 2 = n.(1x) Gini(x) = 1 (x 2 ) (1x) 2 = 2x 2x 2 (Gini(x)) = 24x nulpunt op 0.5 (Gini(x)) = 4 < 0 maximum

GINI: algemeen k klassen Maximum 11/k wordt bereikt als de klassen elk een relatieve frequentie van 1/k hebben Minst interessante geval Minimum 0 wordt bereikt als alle records tot 1 klasse behoren Meest interessante geval. C1 0 C2 6 Gini=0.000 C1 1 C2 5 Gini=0.278 C1 2 C2 4 Gini=0.444 C1 3 C2 3 Gini=0.500 Voorbeelden berekening GINI C1 0 C2 6 GINI( D) = 1 k j= 1 d j n 2 C1 1 C2 5 C1 2 C2 4

Voorbeelden berekening GINI C1 0 C2 6 d 1 = 0/6 = 0 d 2 = 6/6 = 1 GINI( D) = 1 Gini = 1 d 1 2 d 2 2 = 1 0 1 = 0 k j= 1 d j n 2 C1 1 C2 5 d 1 = 1/6 d 2 = 5/6 Gini = 1 (1/6) 2 (5/6) 2 = 0.278 C1 2 C2 4 d 1 = 2/6 d 2 = 4/6 Gini = 1 (2/6) 2 (4/6) 2 = 0.444 Splitsen gebaseerd op GINI Gebruikt in CART, SLIQ, SPRINT. Kwaliteit van een split is het gewogen gemiddelde over alle kinderen: GINI split = k i= 1 ni n GINI ( i) met, n i = aantal records voor het kind c i, n = totale aantal nodes in p.

Voorbeeld Voor split: C0 C1 N00 N01 M0 A? B? Yes No Yes No Node N1 Node N2 Node N3 Node N4 C0 N10 C0 N20 C0 N30 C0 N40 C1 N11 C1 N21 C1 N31 C1 N41 M1 M2 M3 M4 M12 Gain = M0 M12 vs M0 M34 M34 Waarom gewogen gemiddelde? Effect van het wegen: Grotere partities worden gezocht. B? Parent C1 6 Gini(N1) = 1 (5/6) 2 (2/6) 2 = 0.194 Gini(N2) = 1 (1/6) 2 (4/6) 2 = 0.528 Yes Node N1 N1 N2 C1 5 1 C2 2 4 Gini=0.333 No Node N2 C2 6 Gini = 0.500 Gini(Children) = 7/12 * 0.194 5/12 * 0.528 = 0.333

Beslissingsboom Induction Greedy strategie. Splits de nodes gebaseerd op een lokaal criterium: slechts 1 attribuut tegelijk. Nog te bepalen/generisch Hoe splitsen we? Nietbinaire attributen Hoe meten we de kwaliteit van een split? Split_Kwaliteit( D 0, D 1 ) Wanneer moeten we stoppen? Stopconditie(D) Stop criteria voor beslissingsbomen Verschillende mogelijkheden:

Stop criteria voor beslissingsbomen Verschillende mogelijkheden: Stop als alle nodes tot dezelfde klasse behoren. Stop als GINIindex beneden bepaalde waarde komt. Stop als aantal objecten te klein wordt. Stop als alle attributen ongeveer dezelfde waarde hebben. Early termination (zie later) Overzich beslissingsbomen Voordelen: Weinig tijd nodig om te berekenen Classificeren van nieuwe voorbeelden is erg snel Makkelijk te interpreteren modellen (indien niet te veel nodes) Voor vele datasets scoren beslissingsbomen meer dan behoorlijk Nadelen: In detail

Overzicht Wat is classificatie? Leren van een beslissingsboom. Problemen bij classificatie Evalueren van een model Practische problemen bij classificatie Sommige functies zijn moeilijk uit te drukken m.b.v. beslissingsbomen Parity (Is het aantal binaire attributen die True zijn, even?) Lager in de boom = minder trainingvoorbeelden = minder statistische relevantie Underfitting en Overfitting Gerelateerd aan de vraag: wanneer stoppen?

Moeilijk uit te drukken Hoe zien de beslissingbomen die door het algoritme van Hunt gegenereerd worden er uit voor de volgende dataset? A B Moeilijk uit te drukken Hoe zien de beslissingbomen die door het algoritme van Hunt gegenereerd worden er uit voor de volgende dataset? A B

Moeilijk uit te drukken Hoe zien de beslissingbomen die door het algoritme van Hunt gegenereerd worden er uit voor de volgende dataset? A B Moeilijk uit te drukken Hoe zien de beslissingbomen die door het algoritme van Hunt gegenereerd worden er uit voor de volgende dataset? A B

Moeilijk uit te drukken Hoe zien de beslissingbomen die door het algoritme van Hunt gegenereerd worden er uit voor de volgende dataset? A B Moeilijk uit te drukken Hoe zien de beslissingbomen die door het algoritme van Hunt gegenereerd worden er uit voor de volgende dataset? A B

Typische grafiek. Wat gebeurt er hier? Underfitting Overfitting Underfitting: Als het model te simpel is; de boom is nog te eenvoudig Overfitting: Het model is zo gedetailleerd dat het zelfs de ruis uit de input heeft geleerd

Overfitting door ruis Goed model B A Overfitting door ruis Slecht model, toch kleinere error op trainingsset B A

Bemerkingen over overfitting Resulteert in complexere bomen dan noodzakelijk. Training error is niet langer een goede maat om te meten hoe de classifier zal presteren op nieuwe data. Betere manieren nodig om fouten te meten. Hoe gaan we overfitting tegen? PrePruning (Early Stopping) Stop voordat de volledige boom gemaakt is. Stop indien het aantal instanties te klein wordt Stop als de klasdistributie onafhankelijk is van de afzonderlijke features (gebruik bvb. χ 2 test) Stop indien er geen split is die resulteert in een positive gain

Hoe gaan we overfitting tegen? Postpruning Maak de volledige beslissingsboom Behandel de splits bottomup Als de generalization error verkleint door het wegnemen van een split: haal de split weg en vervang door een blad. Label wordt de grootste klasse in het nieuwe blad. Vraag: Hoe meten we generalization error?

Vraag: Hoe meten we generalization error? Splits D vooraf in twee delen: D 1 en D 2 Leer de boom op D 1 Evalueer de generalization errors op D 2 Overzicht Wat is classificatie? Leren van een beslissingsboom. Evalueren van een model Volgende les