Geavanceerde data wetenschappen

advertisement
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
Download