Data Mining: lassificatie docent: dr. Toon alders Gebaseerd op slides van Tan, Steinbach, and Kumar. Introduction to Data Mining Vorige les lassificatie: Het groeperen van objecten in voorgedefinieerde categorieen. lassifier inductie: Het leren classificeren gebaseerd op een trainingsset met gelabelde data. lassificatie algoritmes leren een model van de data.
Vorige les Decision tree induction Leren van een beslissingsboom gebaseerd op gelabelde data Hunts algoritme Maakt gebruik van lokale criteria Gebruik van bvb. GINIindex om beste split te kiezen Vorige les Voorbeeld: classificeren van diersoort (Weka)
Vorige les Problemen met beslissingsbomen: Sommige functies zijn moeilijk uit te drukken Overfitting Underfitting Overzicht van deze les De Naïveayes classifier Overzicht van andere classificatiemethodes eslissingsregels Nearest neighbors Lineaire discriminant (perceptron learning) Performantie van classifiers beoordelen? ccuracy, precision, recall ost sensitivity
Naïve ayes lassifier Maakt een probabilistisch model van de data Werkt op discrete data Ook uitbreidingen voor normaal verdeelde data De Naïve ayes classifier Gebaseerd op de stelling van ayes: P( ) P( ) P ( ) = P( ) = attributen = klasse attribuut
Voorbeeld van het theorema van ayes Gegeven meningitis veroorzaakt nekpijn in 50% van de gevallen 1/50,000 patienten heeft meningitis 1/20 van de patienten heeft nekpijn ls een patient nekpijn heeft, wat is dan de kans op meningitis? Voorbeeld van het theorema van ayes ls een patient nekpijn heeft, wat is dan de kans op meningitis? P(S) = 1/20 P(M) = 1/50,000 P(S M) = ½ Kans op meningitis gegeven nekpijn: P( S M ) P( M ) 0.5 1/ 50000 P( M S) = = = 0.0002 P( S) 1/ 20
ayesiaanse classifiers eschouw elke variabele (ook klasse) als stochastische variabele Gegeven een record ( 1, 2,, n,) Doel is het voorspellen van klasse ; we zoeken die die P( 1, 2,, n ) maximaliseert Hoe kunnen we P( 1, 2,, n ) direkt uit de data bepalen? ayesiaanse classifiers anpak: ereken de posterior P( 1, 2,, n ) voor alle klassen : P ( 1 2 K ) = n P ( K ) P ( ) 1 2 n P ( K ) Kies de waarde van met maximale P( 1, 2,, n ) 1 2 n Hoe kunnen we P( 1, 2,, n ) benaderen met de data die we hebben?
Hoe kunnen we P( 1, 2,, n ) benaderen? Tellen: voor elke combinatie van 1,, n, tel de frequentie van de klassen Echter, niet elke combinatie komt voor in de trainingset Daarom: veronderstellingen maken over de attributen Naïve ayes veronderstelt dat attributen onafhankelijk zijn N classifier verondersteld dat afhankelijkheden expliciet gegeven zijn Naïve ayes lassifier We veronderstellen onafhankelijkheid gegeven het klasse attribuut: P( 1, 2,, n ) = P( 1 ) P( 2 ) P( n ) P( i ) kan wel uit de data gehaald worden voor elk attribuut. Wat is de formule voor P( 1, 2,, n ) uitgaande van de veronderstelling van onafhankelijkheid?
Naïve ayes lassifier Wat is de formule voor P( 1, 2,, n ) uitgaande van de veronderstelling van onafhankelijkheid? ) ( ) ( ) ( ) ( ) ( ) ( )... ( ) ( ) ( ) ( ) ( 2 1 1 2 1 2 1 2 1 2 1 n i n i n n n n P P P P P P P P P P P K K K K = = = = Naïve ayes lassifier Voor elk attribuut : Voor elke waarde v van dat attribuut: Voor elke klasse : Schat de kans P(=v ) als volgt: P(=v ) # o van klasse met o. = v #o van klasse Het model: De prior: P() voor alle klassen Voor elke (,v,) : schatting P(=v )
Toepassen van de classifier Gegeven: het model geleerd door de classifier: Prior P() voor alle klassen Voor elk triplet (,v,) : P(=v ) Gegeven een nieuw voorbeeld (v 1,, v n,?) Welke klasse voorspellen we? Toepassen van de classifier Gegeven een nieuw voorbeeld (v 1,, v n,?) Welke klasse voorspellen we? ereken voor elke klasse : n P( i i= 1 = v i ) P( ) Voorspel de klasse die dit produkt maximaliseert
Voorbeeld (DM = klasse) D Stat DM Model: Voorbeeld (DM = klasse) D Stat DM Model: Klasse = (60%) D: 1 2 0 Stat: 1 2 0 Klasse = (40%) D: 1 0 1 Stat: 0 1 1
Voorbeeld (DM = klasse) D Stat DM Voorspelling voor een student met D=, Stat=? Model: Klasse = (60%) D: 1 2 0 Stat: 1 2 0 Klasse = (40%) D: 1 0 1 Stat: 0 1 1 Voorbeeld (DM = klasse) D Stat DM Voorspelling voor een student met D=, Stat=? Klasse : 40% x 50% x 50% = 0.1 Klasse : 60% x 33% x 66% = 0.13 Model: Klasse = (60%) D: 1 2 0 Stat: 1 2 0 Klasse = (40%) D: 1 0 1 Stat: 0 1 1
Wat met continue attributen? Voor continue attributen: Discretiseren Houdt steeds informatie verlies in. Moeilijk om het juiste aantal intervallen te bepalen: Meer intervallen [l,u] = relatief slechtere benadering van P( in [l,u] ). Twoway split: ( < v) or ( > v) kies een enkel splitpunt (bvb. Meest informatieve) Schat parameters van de distributie: ij discrete data karakteriseren we eigenlijk de volledige distributie Dit kunnen we ook doen bij continue data indien we een bepaalde klasse van distributies veronderstellen Schatten van parameters De kansdichtheid in een punt x drukt de waarschijnlijkheid uit dat X zich rond x bevindt Veronderstel dat X normaal verdeeld is met gemiddelde µ en standaardafwijking σ; dan is de kansdichtheid in punt x: ( µ ) 1 x 2 2σ e 2 2πσ 2
Wat met continue attributen? Indien we veronderstellen dat een variable X normaal verdeeld is gegeven de klasse: P( X ) wordt volledig bepaald door de parameters µ en σ We kunnen deze parameters in de data schatten De waarden van de parameters wordt in het model opgenomen (sample mean, sample variation)
1 0 Voorbeeld: Mix van attributen c c Tid Refund Marital Status c Taxable Income 1 Yes Single 125K No 2 No Married 100K No 3 No Single 70K No 4 Yes Married 120K No Evade 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 naive ayes lassifier: P(Refund=Yes No) = 3/7 P(Refund=No No) = 4/7 P(Refund=Yes Yes) = 0 P(Refund=No Yes) = 1 P(Marital Status=Single No) = 2/7 P(Marital Status=Divorced No)=1/7 P(Marital Status=Married No) = 4/7 P(Marital Status=Single Yes) = 2/7 P(Marital Status=Divorced Yes)=1/7 P(Marital Status=Married Yes) = 0 For taxable income: If class=no: sample mean=110 sample variance=2975 If class=yes: sample mean=90 sample variance=25 Voorbeeld: mix van attributen Gegeven test record: X = ( Refund = No,Married,Income = 120K) naive ayes lassifier: P(Refund=Yes No) = 3/7 P(Refund=No No) = 4/7 P(Refund=Yes Yes) = 0 P(Refund=No Yes) = 1 P(Marital Status=Single No) = 2/7 P(Marital Status=Divorced No)=1/7 P(Marital Status=Married No) = 4/7 P(Marital Status=Single Yes) = 2/7 P(Marital Status=Divorced Yes)=1/7 P(Marital Status=Married Yes) = 0 For taxable income: If class=no: sample mean=110 sample variance=2975 If class=yes: sample mean=90 sample variance=25 P(X lass=no) = P(Refund=No lass=no) P(Married lass=no) P(Income=120K lass=no) = 4/7 4/7 0.0072 = 0.0024 P(X lass=yes) = P(Refund=No lass=yes) P(Married lass=yes) P(Income=120K lass=yes) = 1 0 1.2 10 9 = 0 P(X No)P(No) > P(X Yes)P(Yes) Dus P(No X) > P(Yes X), en we voorspellen lass = No
Probleem met Naïve ayes lassifier ls 1 van de probabiliteiten 0 is, wordt alles 0 Daarom meestal aangepaste schatting: Originele : P( = v ) = Laplace : P( = v ) = N N N N m estimate : P( = v ) = ic c ic c 1 c Nic mp N m c c: aantal klassen p: prior voor P(=v ) m: parameter Naïve ayes (Samenvatting) Robuust m.b.t. ruis en irrelevante attributen Ontbrekende waarden makkelijk op te vangen Maakt erg sterke veronderstellingen Onafhankelijkheid: zelden of nooit waar preprocessing! Voor continue data: normale distributie Vaak niet waar normalisatie toepassen! Dus: gebruik preprocessing fase om randcondities waar te maken
Overzicht van deze les De Naïveayes classifier Overzicht van andere classificatiemethodes eslissingsregels Nearest neighbors Lineaire discriminant (perceptron learning) Performantie van classifiers beoordelen? ccuracy, precision, recall ost sensitivity eslissingsregels eslissingsregels Model is een (geordende) set van regels Verschillende interpretaties R1: (Give irth = no) (an Fly = yes) irds R2: (Give irth = no) (Live in Water = yes) Fishes R3: (Give irth = yes) (lood Type = warm) Mammals R4: (Give irth = no) (an Fly = no) Reptiles R5: (Live in Water = sometimes) mphibians Name lood Type Give irth an Fly Live in Water lass turtle cold no no sometimes?
eslissingsregels Leeralgoritmes zijn erg gelijkaardig aan die voor beslissingsbomen Iteratie: Leer de beste regel Topdown of bottomup Verwijder alle voorbeelden die door deze regel gecovered worden uit de dataset Totdat een stopconditie waar is eslissingsregels Leeralgoritmes zijn erg gelijkaardig aan die voor beslissingsbomen Iteratie: Leer de beste regel Topdown of bottomup Verwijder alle voorbeelden die door deze regel gecovered worden uit de dataset Totdat een stopconditie waar is
Voordelen van beslissingsregels Even expressief als beslissingsbomen Makkelijk te interpreteren Snel te genereren Nieuwe instanties snel genereren Performantie vergelijkbaar met beslissingsbomen
Nearest neighbor If it walks like a duck, quacks like a duck, then it s probably a duck Model = de volledige dataset Nieuw voorbeeld: Vind k dichtste buren Voorspel de klasse die het vaakst voorkomt
Problemen en voordelen van knn knn kan maar zo goed zijn als de afstandsmaat Schaling urse of dimensionality knn model : geen informatie over de data Lazy learner Tijdsintensief om grote hoeveelheden nieuwe gegevens te classificeren Indexstructuren Erg simpel en vaak erg doeltreffend Lineaire discriminant Enkel bij continue data Zoek een hypervlak dat de data zo goed mogelijk scheidt
Lineaire discriminant Enkel bij continue data Zoek een hypervlak dat de data zo goed mogelijk scheidt Lineaire discriminant Dus, model = hypervlak w 0 w 1 x 1 w 2 x 2 w k x k = 0 Nieuw voorbeeld x: Kijk of w.x al dan niet kleiner is dan w 0 lgoritmes maken hier een optimalisatieprobleem van: Gegeven een criterium, bvb: kleinste kwadraten E = [ Y w ] 2 0 w1 x1... w n x n ( x, Y ) D Zoek de optimale gewichten
Overzicht van deze les De Naïveayes classifier Overzicht van andere classificatiemethodes eslissingsregels Nearest neighbors Lineaire discriminant (perceptron learning) Performantie van classifiers beoordelen? ccuracy, precision, recall ost sensitivity Volgende les