3de bach HI Datamining Inclusief opgeloste oefeningen Q 182 uickprinter Koningstraat 13 2000 Antwerpen www.quickprinter.be 3,50 € Nieuw!!! Online samenvattingen kopen via www.quickprintershop.be Geavanceerde data wetenschappen Prof D. Martens & Prof J. Springael Data science & Data mining Semester 1 Data science for business – What you need to know about data mining and data-analytic thinking 0 Lecture 1 (Ch. 1 & 2 ) Chapter 1: Introduction: Data-analytic thinking Terminology Data science/wetenschappen = fundamentele principes om kennis/info te halen uit je data Data mining = automatisch info halen uit data via verschillende technologieën; patronen in data vinden Big data = zo veel data dat de gewone, traditionele verwerkingssystemen er geen info of kennis kunnen uithalen Quering = naar bepaalde data zoeken in een gigantische dataset, je weet perfect waar je naar zoekt (SQL) OLAP = On-Line Analytical Processing; multidimensionele analyse; je data wordt visueel voorgesteld & je weet waar je naar zoekt (SQL) (in tegenstelling tot data mining). Business Intelligence (BI) = juiste info krijgen naar de juiste persoon op het juiste moment Explanatory modeling = hypotheses testen Predictive modeling = zo accuraat mogelijk voorspellingen maken Voorbeeld: Real time bidding = persoon zit op een site waar adverteerders hun advertenties op kunnen zetten. Die adverteerders bieden op dat moment, dat de persoon op de site zit, om hun advertentie daar te plaatsen. Ze gaan bieden naargelang ze denken dat die persoon wel geïnteresseerd zou kunnen zijn in hun product. => persoonlijke aanpak Data mining process = data mining is een proces want er heeft enorm veel mee te maken: creativiteit, gezond verstand, wetenschap,… CRISP-DM = CRoss Industry Standard Process for Data Mining Mini cases Case 1: Hoe kunnen kranten data gebruiken voor betere online reclame? Wat gaan we voorspellen? In welke producten de personen geïnteresseerd zijn. Input: artikelen die gelezen worden (rij = abonnee), op welke advertenties dus geklikt is, want dan is de kans dat ze geïnteresseerd zijn toch groter 1 Case 2: Hoe kan een HR-afdeling van een groot bedrijf data mining gebruiken voor een betere retentie & aanwerving van werknemers? Wat gaan we voorspellen? De waarde van een persoon in het bedrijf => moeilijk om te berekenen. Dus beter het verloop voorspellen: gaan ze ontslag nemen of niet; ziekteverzuim; worden ze ontslagen; … Input: persoonlijke gegevens, details van een persoon (rij = persoon) Data mining = top trend Data mining is een enorme trend geworden, enorm belangrijk, want tegenwoordig is er zoveel informatie overal beschikbaar, omdat het toch niets kost om al die informatie op te slaan. Obama heeft bijvoorbeeld bij de verkiezingen proberen voorspellen wie de twijfelaars zijn bij de stemmers. Diegene die al voor hem gingen stemmen, daar moest hij zijn campagne niet meer op afstellen, maar dus eerder op de mensen die twijfelden, zodat hij dan met een gepaste campagne die ook nog zou kunnen overhalen om voor hem te stemmen. Mini cases II Telco (gsm provider) heeft problemen met klanten die overstappen naar de concurrent. Welke data kunnen helpen om dit te managen? Input: hebben ze klacht in gediend; welke producten hebben ze gekocht; wie heeft er gekocht (sociodemografische data); prijs/concurrentie vergelijken; hoe lang is de persoon klant (geweest) ; sociaal netwerk (als vrienden bvb ook zijn overgestapt) ; Recency, Frequency & Monetary Doel: gaat de klant weg of niet Data mining: opslag – networking – algoritmes – rekencapaciteit van pc Essentieel voor effectieve en succesvolle data mining 2 Wat zal er behandeld worden in de lessen? Data mining lectures Pre-processing: Data eerst voorbereiden voor het data mining algoritme. Problemen: soms ontbrekende waarden, uitschieters, data van meerdere databases, … Voorspellend o Classificatie: Doelvariabele zijn discreet Toepassingen: financieel, marketing, terrorisme o Regressie: Continue doelvariabele Toepassingen: financieel & marketing Beschrijvend o Similarity matching: neem gelijke individuen waar gebaseerd op data die je over hen hebt => basis voor aanbevelingen bij mensen o Clustering: data verdelen in groepen die binnenin de groep allemaal gelijkend zijn, maar tussen de verschillende groepen zelf is er zo weinig mogelijk gelijkenis (toepassing: segmentatie) o Associaties: veel voorkomende patronen detecteren (vb. market basket analysis) o Profiling (& anomaly detection): een typisch profiel van een individu, groep of populatie typeren/kenmerken o Link voorspellend: voorspel linken tussen verschillende data onderdelen => vrienden voorstellen op sociale netwerken o Data reductie: vervang een groot deel van de data door een klein deel die meeste van de informatie bevat o Causal modeling: welke dingen beïnvloeden uiteindelijk elkaar Post processing: interpreteren en valideren van de informatie: is het interessant, is het bruikbaar, wat is onze intuïtie erbij. Wat wordt er verwacht voor de lessen & het examen? Lessen: hoofdstukken op voorhand lezen & actief meedoen in de les Examen: o 1e semester: D. Martens: Data science & data mining o 2e semester: J. Springael: Forecasting o Zowel voor 1e semester als voor 2e semester slagen o Mondeling examen o Extra WEKA praktisch examen o Data science challenge: optioneel, niet verplicht, kan je wel een extra punt mee verdienen 3 Chapter 2: Business problems & data science solutions Data pre-processing Sampling: o Een sample is een deel van de populatie. Bij sampling zoeken we een deel van de populatie die representatief is voor een groot deel van de populatie om zo dingen te bepalen voor de hele populatie. o Waarom doen we het? Voor het economisch voordeel, voor grote populaties, voor gedeeltelijk bereikbare populaties o Een staal (sample) moet representatief zijn. o Timing van de data (sample) moet goed zitten. We hebben te maken met een tradeoff tussen veel data versus recente data: welk is nu het best? Het meest representatief? o Probeer seizoenseffecten uit te schakelen, het moet een zo normaal mogelijke situatie zijn om een zo accuraat mogelijk beeld te schetsen. o Voorbeeld: Bij een bank gaan zien/voorspellen wie er failliet zou gaan of niet. Populatie = iedereen die de bank binnenwandelt Sample: diegene die je een lening hebt gegeven, want daar heb je info over Populatie ≠ sample! Variabelen: o Continue variabelen: bvb inkomen o Discrete variabelen: Nominale: burgerlijke status: is niet te plaatsen in een bepaalde volgorde Ordinale: leeftijd als jong, middelmatig, oud (want kan men dus in een bepaalde volgorde zetten) Binair: geslacht: ofwel vrouwelijk, ofwel mannelijk K Nearest Neighbour (kNN) = meest gelijkaardige persoon zoeken in de dataset en daarop je target bijpassen. John ~ David: dus John zal ook een goede klant zijn (waarden voor John ontbraken => hoe gaan voorspellen?) Encoding: o Nominale variabelen: dummy’s (betekenis aan variabelen geven!) o Ordinale variabelen thermometer encoding (zie figuur slide) Voorbeeld thermometer encoding: MS = {S, M, D} (single, married, divorced) nominale variabelen: hier dummies voorzien want er zit geen orde in Dsingle Dmarried Ddivorced Single 1 0 0 Married 0 1 0 Hoe encoderen: I (inkomen) = {A, M, R} => arm, medium, rijk. Dit zijn ordinale variabelen, dus er zit een orde in. Stel dat je dummy encoding toepast: Arm Medium Rijk Darm 1 0 0 Dmedium 0 1 0 Drijk 0 0 1 4 Afstand tussen iemand die rijk is en tussen iemand die medium is? Hoe afstand gaan berekenen (tussen de twee vectoren)? Bvb: Som (0-0)² +(1-0)²+(0-1)² = 2. Maar afstand tussen iemand die arm is en iemand die medium is, is even groot als de afstand tussen iemand die arm is en iemand die rijk is => KAN NIET! Dus thermometer encoding gaan toepassen . Thermometer zegt heeft iemand meer als 1000€ of heef iemand meer dan € 10 000 T €1 000 T €10 000 Arm 0 0 Medium 1 0 Rijk 1 1 Dus nu wel de formule gaan toepassen! Want nu wel dubbel zo grote afstand tussen rijk en arm (afstand is 2) ten opzichte van rijk en medium (afstand is 1). Missing values: Hoe omgaan met ontbrekende waarden/variabelen? o Keep: het feit dat een men een variabele mist kan net belangrijke informatie bevatten. => Men kan best de variabele op een speciale manier dan gaan coderen o Delete: als er teveel variabelen van een observatie missen, kan men de observatie beter verwijderen Horizontaal verticaal ontbrekende variabele o Replace: men kan de ontbrekende variabele proberen schatten. Continue observaties: vervangen door het gemiddelde Ordinale/nominale observaties: vervangen door modale waarde Regressie of ‘Tree based imputation’: ontbrekende waarde voorspellen op basis van andere variabelen Nearest neighbour imputation: schatten op basis van te kijken naar de meest gelijkende in de buurt, en daar dan de gegevens van overnemen Outliers: o Uitschieters ten gevolge van verkeerde inputgegevens of ruis o Soms zijn uitschieters echt nuttige en correcte waarden, soms zijn het gewoon foute metingen o Univariate uitschieter detectie methode: Visueel: histogram of box plots Z-score: o μ = gemiddelde van x ; σ = standaardafwijking Uitschieters zijn dan alles wat buiten drie keer de standaardafwijking ligt (3* σ) Box plot: mediaan (0,5), eerste (0,25) en derde kwantiel (0,75), minimum en maximum (zie figuur). Hoe gaan we ze aanpakken? Verwijder de observatie indien te extreem Kijken of de variabele verantwoordelijk is voor de meeste uitschieters. Zo ja, variabele verwijderen 5 o o Truncation: alle variabelen vervangen die buiten drie keer de standaardafwijking liggen Bij kNN gaan we kijken wat de meest gelijkende in de buurt is. Maar omdat het zo goed als altijd verschillende schalen bevat, moeten we normaliseren. Voorbeeldje van John: John lijkt op eerste gezicht het meest gelijkend aan David, maar via euclidische afstand te hebben berekend, merken we dat de afstand tussen John en Bart kleiner is dan tussen John en David. Dus moeten we normaliseren zodat we zullen merken dat John en David het meest gelijkend zijn. Normaliseren van data: Zo gaan de data allemaal dezelfde schaal bekomen. Inkomen en leeftijd kan men bijvoorbeeld moeilijk gaan vergelijken omdat ze niet dezelfde schaal hebben. 𝑋𝑜𝑙𝑑 −𝑚𝑒𝑎𝑛 (𝑋) 𝑠𝑡.𝑑𝑒𝑣.(𝑋) Xnew = Binning: Equal-width (distance) partioning Equal-depth (frequency) partioning Zo kan men het best leeftijden gaan onderverdelen in categorieën. Voorbeeldje zie slides: kijken naar pieken en dalingen, zo kunnen opsplitsen 6