Data Mining: Schatgraven in Gegevensbergen Peter van der Putten ALP Group, LIACS & KiQ Ltd 6 April 2004 Agenda (ovb) • • • • College: Pauze: Practicum: Bespreken: 1400 -1500 1500 -1515 1515 -1615 1615 -1645 Bronnen van (kunstmatige) intelligentie • Redeneren versus leren • Leren uit data: – – – – – – – Klantgegevens Beurskoersen Pianomuziek Foto’s van verdachten Websites op het internet Robotwaarnemingen Etc. Data Mining & Knowledge Discovery in Databases • Werkdefinitie – Het ontdekken van interessante, nuttige en verborgen kennis in grote hoeveelheden data met intelligente patroonherkenningstechnieken • Data mining is een interdisciplinair vakgebied: – Kunstmatige intelligentie, machine learning, information retrieval, statistiek, statistische patroonherkenning, econometrie, cognitieve psychologie, neuroscience, etc. Voorbeelden van data mining taken • Zoeken – Matching: het zoeken naar best matchende objecten / patronen • Voorspellen – classificatie: het toekennen van een bekende klasse aan een object (‘nominale/categoriale voorspelling’) – predictie/regressie: het voorspellen van een numerieke kenmerk voor een object (‘numerieke voorspelling’) • Beschrijven – clusteren: het vinden van groepen van objecten (groepen/klassen van te voren niet bekend) – rule discovery: het afleiden van interessante regels en verbanden (‘associatieregels’) Zoeken in de patroonruimte Zoeken naar best matchende patronen / objecten bvb. inkomen Elk object is een punt in de ‘patroonruimte’. Dimensies zijn de eigenschappen van het object, bvb leeftijd en inkomen voor een klantendatabase, of aantal keren ‘Matej’ en ‘Kezman’ op een webpagina. Patroonruimtes zijn vaak hoogdimensionaal (10 tot duizenden dimensies) bvb. leeftijd Voorbeelden van voorspelalgoritmen • • • • • • • Beslisbomen (decision trees) Nabuuralgoritmen (nearest neighbor) Neurale netwerken Good old statistics Genetische algoritmen / evolutionairy computing Artificial Immune Systems ….. Voorbeeld voorspel algoritme 1: Decision Trees (Beslisbomen) • Vraag-antwoord spel 20000 klanten respons 1% inkomen>150000? ja nee 1200 klanten saldo>50000? ja 400 klanten respons 0,1% 18800 klanten aankopen>10? nee 800 klanten respons 1,8% nee etc. Decision trees in de patroonruimte Doel classifier is onderscheid te maken tussen klasse ‘cirkel’ en klasse ‘vierkant’ op basis van leeftijd en inkomen. bvb. inkomen Decision tree heeft lijnstukken loodrecht op assen beschikbaar bvb. leeftijd Elk lijnstuk stelt een beslissing voor (splitsing in de boom) Decision trees in de patroonruimte Lijnstukken loodrecht op assen beschikbaar bvb. inkomen Elk lijnstuk stelt een beslissing voor (splitsing in de boom) bvb. leeftijd Voorbeeld voorspel algoritme 2: Nearest Neighbour • Data zelf is het voorspellingsmodel, dus geen abstracte representatie zoals een boom oid • Voor een gegeven object x zoek die n objecten waarvan de klasse bekend is en die het meest lijken op x • Voorspel voor object x de klasse die het meest voorkomt bij de best lijkende objecten Nearest Neighbor in de patroonruimte Voorspellen = nieuw geval bvb. inkomen Elk willekeurig complex scheidingsvlak mogelijk Voorwaarde: er moet wel genoeg data aanwezig zijn bvb. leeftijd Nearest Neighbor in de patroonruimte Voorspellen bvb. inkomen Elk willekeurig complex scheidingsvlak mogelijk Voorwaarde: er moet wel genoeg data aanwezig zijn bvb. leeftijd Voorspel algoritme 3: Neurale Netwerken • Geinspireerd door werking neuronen in hersenen (McCullough & Pitts 1943 (!)) invoer: bvb. klantkenmerken uitvoer: bvb. respons • Invoer (bvb klantkenmerken) wordt gecodeerd op invoerlaag, activatie stroomt door netwerk over verbindingen en leidt tot uitvoer op output laag (bvb interesse in product) • Netwerk leert verbanden (gewicht verbindingen) aan de hand van voorbeelden en leerregel Neurale Netwerken • Voorbeeld simpel netwerk (2 lagen) leeftijd gewichtleeftijd inkomen gewichtinkomen interesse in product • Interesse in product = leeftijd * gewichtleeftijd + inkomen * gewichtinkomen Neurale netwerken in de patroonruimte Voorspellen Simpel netwerk: slechts een lijn beschikbaar Meerlaags netwerk: bvb. inkomen Elk willekeurig scheidingsvlak mogelijk bvb. leeftijd e Beslisboom demo in WEKA, Een open source mining tool Beschrijvende data mining: Clusteren • Het vinden van groepen van objecten • Binnen een groep (cluster, segment) lijken objecten op elkaar, groepen onderling zijn juist verschillend • Toepassingen bvb: – Welke verschillende soorten wodkadrinkers bestaan er? – Voor een gegeven ziekte, zijn er verschillende groepen patienten te onderscheiden die elk een verschillende behandeling nodig hebben? – Etc. Clusteren in de patroonruimte Clusteren is het vinden van groepen in de patroon ruimte bvb. inkomen In 2 of 3 dimensionale patroonruimtes zou je de data set kunnen visualiseren en het herkennen van clusters aan een gebruiker kunnen overlaten bvb. leeftijd Clusteren in de patroonruimte Clusteren is het vinden van groepen in de patroon ruimte bvb. inkomen In 2 of 3 dimensionale patroonruimtes zou je de data set kunnen visualiseren en het herkennen van clusters aan een gebruiker kunnen overlaten bvb. leeftijd Met meer dimensies kan dat niet Beschrijvende data mining: associatie regels • Ontdekken van regelmatigheden • Vorm: als A en B dan C • Voorbeeld: – als aardappelen en boerenkool dan worst • Belangrijke maten – Support regel: hoe vaak komen aardappelen en boerenkool (A,B) voor (hoeveelheid ‘bewijs’) – Confidence regel: hoe vaak komt worst dan voor / support (geldt A,B C altijd?) e Associatie regel demo in WEKA, Wat is behandeld? • • • • • • • Leren versus redeneren Definitie data mining Overzicht data mining taken Voorbeeldalgoritmen voor voorspelling Voorbeeldalgoritme associatieregels Demo’s in WEKA En nu: pauze en practicum (305)