In de introductie van de AI technieken heb je gezien dat AI applicaties data gestuurd zijn. Hoe werkt dat sturen door die data? In deze sectie en volgende secties gaan we dat in een aantal technieken bekijken. De meeste toepassingen gebruiken artificiële intelligentie om b.v. patronen te herkennen of groeperingen te maken.
De berekeningen in dit en de sectie Cluster Analyse zijn niet heel erg ingewikkeld en zouden voor iedere leerling op havo en vwo uit te voeren moeten zijn. Lukt het niet stel dan vragen aan je docent.
Na het bestuderen van deze sectie:
- Kun je in eigen woorden het doel en de taak van associatie analyse bij datamining toelichten.
- Kun je de begrippen verzamelingenleer, associatieanalyse en associatieregel uitleggen.
- Weet je de toepassingen van associatie analyse, bijvoorbeeld winkelmandjesanalyse (basket analysis).
- Ben je in staat praktische voorbeelden van associaties op te noemen.
- Kun je de berekeningen binnen het apriori algoritme uitvoeren, onder andere:
- het bepalen van de doorsnede en de vereniging van twee of meer verzamelingen;
- het berekenen van de support van een deelverzameling;
- het vinden van de associatieregels in een eenvoudig probleem;
- het berekenen van de betrouwbaarheid (confidence) van een associatieregel van een deelverzameling;
- het uitvoeren van alle nodige iteraties in het apriori algoritme.
Introductie
Stel je wordt manager van een supermarkt in een wijk waar veel studenten wonen. Na een paar dagen krijg je onder andere de indruk dat er veel bananen en chocolade verkocht worden. Daarom overweeg je de bananen en de chocolade samen vlak bij de kassa's te leggen om zo de klanten die langs lopen tot meer impuls inkopen te verleiden. Je wilt als verkoper ook niet impulsief te werk gaan, dus ga je een onderzoek doen met alle kassaregistraties van de klanten als gegevens voor je onderzoek. Eén kassaregistratie geeft dan natuurlijk aan wat de klant in het winkelmandje had.
De methoden die je als onderzoeker tot je beschikking hebt om deze gegevens te onderzoeken vallen onder associatie analyse. Voor we algemeen aan de slag gaan en één van de methoden, het apriori algoritime, in detail uitwerken gaan we eerst intuïtief met bovenstaand voorbeeld aan de slag. Na een week heb je deze gegevens verzameld:
- er blijken 8051 klanten te zijn geweest;
- 905 keer stond banaan op de rekening;
- 750 keer stond chocolade op de rekening;
- samen kwamen bananen en chocolade 653 keer voor.
Begrippen die centraal staan in de associatie analyse zijn support, associatieregel en betrouwbaarheid.
Support van één of meerder artikelen is niets anders dan de experimentele kans dat een mandje deze artikelen bevat. Zo is $\mathrm{support}(\{\mathrm{banaan}\}) = 905/8051 \approx 0.112$ of wel ongeveer 11%. Verder is $\mathrm{support}(\{\mathrm{chocolade}\}) = 750/8051 \approx 0.093$ en $\mathrm{support}(\{\mathrm{chocolade}, \mathrm{banaan}\}) = 653/8051 \approx 0.081$.
Om nu te weten te komen of het vermoeden dat bananen vaker samen met chocolade wordt verkocht werkelijkheid is, ben je geïnteresseerd in de vraag: als een klant bananen koopt, hoe groot is dan de kans dat deze klant ook chocolade koopt? Ofwel hoe waar is de uitspraak: Als een klant bananen koopt, koopt de klant ook chocolade? Een dergelijke uitspraak noemt men een associatieregel. Met de gegevens hierboven kunnen we de betrouwbaarheid (=confidence) van deze uitspraak uitrekenen in de vorm van een kans.
Confidence( Als een klant bananen koopt, koopt de klant ook chocolade ) = aantal winkelmandjes met bananen en chocolade / aantal winkelmandjes met alleen bananen= 653/905=0,72.
In ongeveer driekwart van de gevallen zal de klant die bananen in zijn mandje legt doorlopen naar de chocolade. Zullen we het die klant maar eens gemakkelijker maken door deze producten dichter bij elkaar te plaatsen?
In het voorbeeld hierboven hebben we specifiek gekeken naar bananen en chocolade. Het is zinvoller als we uitgaan van alle aankopen en met een methode uitvissen wat de interessante combinaties zijn. De apriori methode, die we hier straks uitwerken, is zo'n methode. Eerst even een meer algemene introductie over associatie analyse.
Bij associatie analyse is het de bedoeling dat een gegeven set kenmerken die een gebruiker in een toepassing aanlevert, bijvoorbeeld jouw leeftijd, geslacht, ingetypte zoekopdracht, beluisterde muziek, artikelen in je winkelmand, wordt vergeleken met dezelfde kenmerken van andere gebruikers. Gezocht wordt dan naar overeenkomsten tussen de gebruikers. Het resultaat van de associatie is dan bijvoorbeeld de uitvoer van de toepassing, bijvoorbeeld de reclame die in de zoekmachine verschijnt, muziek die jij ook wel leuk zou vinden, artikelen die jij ook zou willen kopen. Om zinvolle suggestie te doen moet een grote hoeveelheid gegevens worden geanalyseerd.
De AI techniek associatie analyse die voor deze situaties wordt gebruikt heeft als belangrijkste AI-kenmerk: de invoer die het programma krijgt, is niet volledig te bepalen en is complex . Het leerproces dat in associatieanalyse wordt gebruikt is unsupervised learning. Voor we de theorie van associatie analyse behandelen en leren toepassen geven we een aantal voorbeelden van gebieden waarin associatie analyse wordt gebruikt:
- Gezondheidszorg
- Artsen kunnen associatieregels gebruiken om een diagnose van patiënten te stellen. Omdat veel ziekten overeenkomstige symptomen hebben, zijn er veel variabelen waarmee rekening moet worden gehouden bij het stellen van een diagnose. Met behulp van associatie analyse, die getraind is met alle symptomen en de daarbij behorende ziekten, kan aan een arts, bij de symptomen die een patiënt heeft, die ziekten tonen die het meest waarschijnlijk zijn. Als er nieuwe symptomen bij een ziekte optreden of als er nieuwe ziekten bijkomen, kan het machine learning-model opnieuw getraind worden met de oude en bijgewerkte gegevens.
- Detailhandel
- Ontwikkelaars kunnen gegevens verzamelen over hoe consumenten een door hen gemaakte website/app gebruiken. Ze kunnen vervolgens associaties in de gegevens gebruiken om de gebruikersinterface van de website te optimaliseren - door bijvoorbeeld te analyseren waar gebruikers op klikken en hoe ze de kans dat een bezoeker een gewenste handeling verricht kan vergroten.
- User experience (UX) design
- Ontwikkelaars kunnen gegevens verzamelen over hoe consumenten een door hen gemaakte website/app gebruiken. Ze kunnen vervolgens associaties in de gegevens gebruiken om de gebruikersinterface van de website te optimaliseren - door bijvoorbeeld te analyseren waar gebruikers op klikken en hoe ze de kans dat een bezoeker een gewenste handeling verricht kan vergroten.
- Sociale media en entertainment
- Services zoals Facebook, Youtube, Netflix, Twitter, Spotify kunnen associatieregels gebruiken om hun engine voor contentaanbeveling van brandstof te voorzien. Machine learning-modellen analyseren gegevens over gebruikersgedrag uit het verleden op frequente patronen, ontwikkelen associatieregels en gebruiken die regels om gebruikers aanbevelingen te doen die hun ook zal interesseren, b.v. die leuke foto van een ooievaar, omdat je als vogelaar heel vaak foto's van vogels bekijkt.
Theorie
In de opwarmer aan het begin van dit hoofdstuk hebben we geprobeerd om op een intuïtieve manier het doel van associatie analyse, een AI algoritme, duidelijk te maken. We meldden daar ook al dat we op basis van alle kassaregistraties zinvolle verbanden willen vinden. Zoals typisch is voor AI bepalen de gegevens, door deze te in te voeren in een iteratief proces, de uitkomst van de analyse.
De wiskundige techniek die wordt gebruikt in associatie analyse is gebaseerd op wiskunde op verzamelingen, de zogenaamde verzamelingenleer. Het is dus nuttig eerst wat begrippen in de verzamelingen leer te introduceren. Een aantal van deze begrippen ben je waarschijnlijk al eens in de wiskundeles tegengekomen. Daarna gebruiken we deze begrippen in de apriori methode, een veel gebruikte methode in de associatie analyse.
Symbolen | |
---|---|
Notatie | Betekenis |
$\in$ | ’is een element van’, ’behoort tot’ |
$\subset$ | ’is een deelverzameling van’ |
{,} | accolades worden gebruikt om een verzameling aan te duiden |
$\cap$ | ’doorsnede’, het gemeenschappelijke deel van de twee verzamelingen |
$\cup$ | ’vereniging’, de elementen van de eerste en tweede verzameling worden samengenomen |
$\#$ | ’aantal’, $\# A$ is het aantal elementen in $A$. |
$\Rightarrow$ | ’implicatie’, al links waar is dan is ook rechts waar. |
Verzamelingenleer
Als leerling zit je in een klas, als voetballer zit je in een team, je ‘play list’ bevat een
aantal leuke liedjes, .... Zo kunnen we nog een tijd doorgaan met het geven van voorbeelden.
Voorbeelden die allemaal gaan over verzamelingen.
In plaats van een ‘klas’, ‘team’, ‘play list’ spreken we van een verzameling, in het Engels.
In een verzameling bevindt zich elementen (leerlingen, spelers, liedjes). We noteren een verzameling als volgt:
$$V=\{v_{1},v_{2},v_{3},\cdots ,v_{n}\}.$$
Verzameling $V$ bevat elementen $v$ die we kunnen nummeren. $v_{1}$ is dan het eerste element in de verzameling, $v_{2}$ het tweede, $v_{1}$ is dan het derde, enz.
Een verzameling bestaat dus uit elementen, en als $v$ een element is van een verzameling $\small V$ noteren we dit wiskundig als $\small v \in V$. We gebruiken accolades om verzamelingen te noteren.
Voorbeeld: De verzameling winkelmandje met de elementen melk, brood, en kaas noteren we als: $$ \small \text{winkelmandje} = \{\text{melk}, \text{brood}, \text{kaas}\} $$
Als we schrijven $\small \textbf{melk} \in \textbf{winkelmandje}$, dan zeggen we dus dat melk in het winkelmandje aanwezig is.
Relaties tussen verzamelingen |
|
$X \subset Y$
|
Deelverzameling
Als voor twee verzamelingen $X$ en $Y$ geldt dat elk element van $X$ ook een element is van $Y$, dan zeggen we dat $X$ een deelverzameling (subset) is van $Y$.
Notatie: $X \subset Y$
Zo geldt bijvoorbeeld voor $\small X=\{\text{melk},\text{kaas}\}$ en $\small Y=\{\text{melk},\text{brood},\text{kaas}\}$ dat $\small X ⊂ Y$, $\small X$ is een deelverzameling van $\small Y$ want melk en kaas, de elementen van $X$, zijn ook aanwezig in $Y$. |
$X \cap Y$
|
Doorsnede
De doorsnede (intersection) $X \cap Y$ van twee verzamelingen $X$ en $Y$ bestaat uit de gemeenschappelijke elementen van $X$ en $Y$.
In de figuur links is de doorsnede het lichtgroene gebied.
Zo is bijvoorbeeld de doorsnede van de verzameling $\small X = \{\text{melk}, \text{brood}, \text{kaas}\}$ en $\small Y = \{\text{melk}, \text{brood}, \text{pindakaas}\}$ de verzameling met melk en brood, $\small \{\text{melk}, \text{brood}\}$, want die zijn in beide verzameling aanwezig. In wiskundige notatie is dit: $$ \small \{\text{melk}, \text{brood}, \text{kaas}\} \cap \{\text{melk}, \text{brood}, \text{pindakaas}\} = \{\text{melk}, \text{brood}\} $$ |
$X \cup Y$
|
Vereniging
De vereniging (union) $X \cup Y$ van twee verzamelingen $X$ en $Y$ bestaat uit de elementen die tot $X$, tot $Y$ of tot beide horen.
In de figuur links bestaat de vereniging uit alle enigszins gele gebieden.
Zo is bijvoorbeeld de vereniging van de verzamelingen $\small X = \{\text{melk}, \text{brood}, \text{kaas}\}$ en de verzameling $\small Y = \{\text{melk}, \text{brood}, \text{pindakaas}\}$ verzameling met de elementen Kaas, Melk, Brood en Pindakaas, $\small \{\text{melk}, \text{brood}, \text{kaas}, \text{pindakaas}\}$ want alle elementen uit $X$ en $Y$ zijn aanwezig. Notatie: $$ \small \{\text{melk}, \text{brood}, \text{kaas}\} \cap \{\text{melk}, \text{brood}, \text{pindakaas}\} = \{\text{melk}, \text{brood}, \text{kaas}, \text{pindakaas}\} $$ |
Een element van een verzameling kan zelf ook een verzameling zijn. Zo bestaat de verzameling $$ \small \begin{array}{rcl}C &=& \{\{\text{chips}, \text{zeep}, \text{appels}\}\\&&, \{\text{chips}, \text{zeep}, \text{appels}\}\\&&, \{\text{zeep}, \text{bananen}\}\\&&, \{\text{chips}, \text{zeep}, \text{bananen}\}\\&&\}\end{array} $$ uit vier elementen, ieder element is een verzameling.
Een verzameling waarin de elementen ook weer verzamelingen zijn noemt men een collectie.
Nog een voorbeeld van een collectie is de registratie van aankopen door acht klanten in een klein avondwinkeltje: $$ \small \begin{array}{lcl}D&=&\{\{\text{banaan}\}\\ & & ,\{\text{chips}\}\\ & & ,\{\text{melk}\}\\ & & ,\{\text{pruim}\}\\ & & ,\{\text{banaan}, \text{rum}\}\\ & & ,\{\text{chips}, \text{rum}\}\\ & & ,\{\text{banaan}, \text{chips}, \text{melk}\}\\ & & ,\{\text{banaan}, \text{rum}, \text{melk}, \text{pruim}\}\\ & & \}\end{array} $$ De collectie D bestaat nu uit de inhoud van de acht winkelmandjes, van iedere klant één. Ieder mandje is een verzameling van producten: $$ \small\begin{array}{rcl}D_1&=& \{\text{banaan}\} \\D_2&=& \{\text{chips}\} \\D_3&=& \{\text{melk}\} \\D_4&=& \{\text{pruim}\} \\D_5&=& \{\text{banaan},\text{rum}\} \\D_6&=& \{\text{chips},\text{rum}\} \\D_7&=& \{\text{banaan},\text{chips},\text{melk}\} \\D_8&=& \{\text{banaan},\text{rum},\text{melk},\text{pruim}\}\end{array} $$
Associatieregels
Om uitspraken te kunnen doen over verbanden tussen verzamelingen en de waarde van die verzamelingen zijn de volgende definities van belang:
-
AssociatieregelDe associatieregel $X \Rightarrow Y $ betekent: als de deelverzameling $X$ voorkomt dan komt ook de deelverzameling $Y$ voor.
Bijvoorbeeld $\small \{\text{melk}\} ⇒ \{\text{melk},\text{brood}\}$ betekent dat als melk in een winkelmand zit, dan zit er ook brood in. In een winkelmandjes analyse is dit natuurlijk niet altijd waar, maar in associatie analyse is het van belang om te kijken hoe groot de kans op deze associatieregel is, ofwel hoe betrouwbaar is deze regel. Om de betrouwbaarheid te bepalen hebben we nog wat gereedschap nodig.
-
Support
De support van een deelverzameling $\small X$ is het aantal deelverzamelingen van een collectie $\small C$ waar de elementen van $\small X$ in voorkomen gedeeld door het aantal elementen van deze collectie.
$$ \small \mathrm{support}(X)=\frac{\mathrm{freq}(X)}{\#C} $$Hierin is $\mathbf{ \mathrm{freq}(X)}$ het aantal (frequentie) van de (deel)verzamelingen waarin de elementen van $\small X$ voorkomen. Support is dus vaktaal voor de experimentele kans (of relatieve frequentie) dat een mandje de (deel)verzameling $X$ bevat.
Bekijk weer de bovenstaande collectie winkelmandjes $D$ dan vind je bijvoorbeeld:
- $freq(\{banaan\})=4$, want er zijn 4 deelverzamelingen waartoe element banaan behoort, namelijk $T_{1},T_{5},T_{7},T_{8}$.
- $support(\{melk\})=\frac{3}{8}$, want er zijn $freq(\{melk\})=3$ van de $\#D=8$ deelverzamelingen van D waar het element $melk$ in voorkomt.
- $support(\{banaan,rum\})=\frac{2}{8}$, want er zijn 2 van de 8 deelverzamelingen waarin de elementen banaan en rum samen voorkomen.
Nog een voorbeeld van een praktische toepassing. Bij marktonderzoek is de support van een stel artikelen (bijvoorbeeld $\small K=\{\text{televisie},\text{surroundset}\}$) het aantal klanten dat al die artikelen samen koopt, op het totaal aantal klanten, meestal weergegeven als percentage.
In de winkelmandjesanalyse kan niet altijd alles worden meegenomen. Vaak is men alleen geïnteresseerd in artikelen en combinaties van artikelen die vaak voorkomen en dus frequent
In de associatieanalyse (b.v. winkelmandjesanalyse) is het van belang dat men wil handelen op basis van associatieregels. Deze associatieregels stelt men dan op voor frequente deelverzamelingen. Maar dat is niet voldoende, de associatieregel met ook nog interessant zijn, ofwel deze moet een hoge waarschijnlijkheid hebben om maatregelen die genomen woorden op basis van die associatieregels te kunnen onderbouwen. Er moet voldoende dus vertrouwen zijn in de associatieregel. In de vaktaal heet dat de confidence ofwel de betrouwbaarheid van de associatieregel.
In notatievorm: $confidence(X \Rightarrow Y) = \frac{support(X \cap Y)}{support(X)}$
Omdat $\frac{support(X \cap Y)}{support(X)}=\frac{freq(X \cap Y)}{freq(X)}$, geldt ook: $confidence(X \Rightarrow Y) =\frac{freq(X \cap Y)}{freq(X)}$
Bij de winkelmandjesanalyse is de betrouwbaarheid een maat voor de kans dat iemand $Y$ gaat kopen, als gegeven is dat hij $X$ al in zijn winkelmandje heeft. We gaan dit alles weer bekijken vanuit de collectie winkelmandjes $D$ voor de associatieregel $ \{\text{banaan}\}⇒\{\text{rum}\}$.
- Welke vorm van leren vindt plaats in associatie analyse?
antwoord
- Unsupervised learning.
- Geef twee voorbeelden van werkgebieden waar van associatie analyse gebruik wordt gemaakt.
antwoord
- Bijvoorbeeld twee van de gebieden uit deze paragraaf: gezondheid, detailhandel, sociale media, user experience.
- Gegeven: $A=\{1,2,3,4,5\}$, $B=\{4,5,6,7\} $ en $C=\{5,8,11\}$
- Schrijf de verzamelingen $A \cup B$, $A \cup C$ en $B \cup C$ op.
antwoord
- $A \cup B=\{1,2,3,4,5,6,7\}$,
$A \cup C=\{1,2,3,4,5,8,11\}$ en
$B \cup C=\{4,5,6,7,8,11\}$
- $A \cup B=\{1,2,3,4,5,6,7\}$,
- Schrijf de verzamelingen $A \cap B$, $A \cap C$ en $B \cap C$ op.
antwoord
- $A \cap B=\{4,5\}$,
$A \cap C=\{5\}$ en
$B \cap C=\{5\}$
- $A \cap B=\{4,5\}$,
- Schrijf de verzameling $A \cup B \cup C$ op.
antwoord
- $A \cup B \cup C = \{1,2,3,4,5,6,7,8,11\}$
- Schrijf de verzamelingen $A \cup B$, $A \cup C$ en $B \cup C$ op.
- Gegeven zijn de volgende deelverzamelingen:
$T_{1}=\{chips,zeep,appel\}$, $T_{2}=\{chips,zeep\}$, $T_{3}=\{zeep,bananen\}$ en $T_{4}=\{chips,zeep,bananen\}$
van de collectie $C=\{T_{1},T_{2},T_{3},T_{4}\}$
- Schrijf de verzamelingen $T_{1} \cap T_{2}$, $T_{1} \cap T_{4}$ en $T_{3} \cap T_{4}$ op.
antwoord
-
$T_{1} \cap T_{2} = \{chips,zeep\}$,
$T_{1} \cap T_{4}= \{chips,zeep\}$ en
$T_{3} \cap T_{4}= \{zeep,bananen\}$
-
$T_{1} \cap T_{2} = \{chips,zeep\}$,
- Schrijf de verzamelingen $T_{1} \cup T_{2}$, $T_{1} \cup T_{4}$ en $T_{3} \cup T_{4}$ op.
antwoord
- $T_{1} \cup T_{2} = \{chips,zeep,appel\}$, $T_{1} \cup T_{4}= \{chips,zeep,appel,bananen\}$ en $T_{3} \cup T_{4}=\{chips,zeep,bananen\}$
- Schrijf de verzameling $T_{1} \cup T_{2} \cup T_{3} \cup T_{4} $ op.
antwoord
- $T_{1} \cup T_{2} \cup T_{3} \cup T_{4} = \{chips,zeep,appel,bananen\}$
- Schrijf de verzameling $T_{1} \cap T_{2} \cap T_{3} \cap T_{4} $ op.
antwoord
- $T_{1} \cap T_{2} \cap T_{3} \cap T_{4} = \{zeep\}$
- Bereken de support van $\{chips,zeep\}$ en de confidence van de implicatie $\{chips\} \Rightarrow \{zeep\}$ in $C$.
antwoord
- $support(\{chips,zeep\}) = \frac{3}{4}$, $support(\{chips\}) = \frac{3}{4}$, $confidence(\{chips\} \Rightarrow \{zeep\}) = \frac{support(\{ chips,zeep\})}{support(\{chips\})}=\frac{\frac{3}{4}}{\frac{3}{4}}= 1$. Ofwel als er chips wordt gekocht wordt er ook zeep gekocht.
- Schrijf de verzamelingen $T_{1} \cap T_{2}$, $T_{1} \cap T_{4}$ en $T_{3} \cap T_{4}$ op.
- Gegeven is de collectie
$A = \{ \{5,8 \},\{2,6,8\} ,\{5,6,8 \},\{5,4,7,10 \},\{2,5,8\}\}$.
Bereken- de support van $\{1\}$ in $A$.
antwoord
- $\{1\}$ zit in geen van de deelverzamelingen van $A$ dus $support(\{1\})=\frac{0}{5}=0$
- de support van $\{4,5\}$ in $A$.
antwoord
- $\{4,5\}$ zit in één van de deelverzamelingen van $A$ dus $support(\{4,5\})=\frac{1}{5}$
- de betrouwbaarheid van de implicatie $\{1\} \Rightarrow \{5\}$ in $A$.
antwoord
- $confidence(\{1\} \Rightarrow \{5\}) = \frac{support(\{1,5 \})}{support(\{1\})}=\frac{0}{0}= $ ongedefiniëerd, want delen door 0 kan niet.
- de betrouwbaarheid van de implicatie $\{2\} \Rightarrow \{6\}$ in $A$.
antwoord
- $confidence(\{2\} \Rightarrow \{6\}) = \frac{freq(\{2,6 \})}{freq(\{2\})}=\frac{1}{2}$
- de support van $\{1\}$ in $A$.
- Gegeven is de collectie $S = \{ \{P,K,T \},\{P,R\} ,\{P,T\},\{K,R\}\}$ waarin
P=Pasta, K=Kaas, T=Tomaat, R=Room.
Bereken- de support van $\{R\}$ in $S$.
antwoord
- $\{R\}$ is een element van twee van de vier deelverzamelingen van $S$ dus $support(\{R\})=\frac{2}{4}=\frac{1}{2}$
- de support van $\{P,T\}$ in $S$.
antwoord
- $\{P,T\}$ is een element van twee van de vier deelverzamelingen van $S$ dus $support(\{P,T\})=\frac{2}{4}=\frac{1}{2}$
- de confidence van de implicatie $\{P\} \Rightarrow \{T\}$ in $S$.
antwoord
- $confidence(\{P\} \Rightarrow \{T\}) = \frac{freq(\{P,T \})}{freq(\{P\})}=\frac{2}{3} $.
- de support van $\{R\}$ in $S$.
-
Stel: S=Spaghetti, T=tomatensaus, B=brood.
$W_{1}$ is de 1-itemset ofwel de collectie van de deelverzamelingen met grootte 1 (met slechts één element S of T of B):
$W_{1}=\{\{S\},\{T\},\{B\}\}$
Verder is $W_{2}$ de 2-itemset of de collectie van de deelverzamelingen met grootte 2 (met twee verschillende elementen S of T of B ) . Dus $W_{2}=\{\{S,T\},\{T,B\},\{S,B\}\}$.
Als laatste is $W_{3}=\{\{S,T,B\}\}$ de 3-itemset of de collectie van de deelverzamelingen met grootte 3 (S,T en B zijn alle aanwezig).
Bereken- de support van alle deelverzamelingen van $W_{1}$ in $W_{2} \cup W_{3}$.
antwoord
- Antwoord
$W_{2} \cup W_{3} = \{\{S,T\},\{T,B\},\{S,B\},\{S,T,B\}\}$.
$\{S\}$ is een element van drie van de vier deelverzamelingen dus $support(\{S\})=\frac{3}{4}$ of 75%.
$\{T\}$ is een element van drie van de vier deelverzamelingen dus $support(\{T\})=\frac{3}{4}$ of 75%.
$\{B\}$ is een element van drie van de vier deelverzamelingen dus $support(\{B\})=\frac{3}{4}$ of 75%.
- Antwoord
$W_{2} \cup W_{3} = \{\{S,T\},\{T,B\},\{S,B\},\{S,T,B\}\}$.
- de support van alle deelverzamelingen van $W_{2}$ in $W_{2} \cup W_{3}$.
antwoord
- $W_{2} \cup W_{3} = \{\{S,T\},\{T,B\},\{S,B\},\{S,T,B\}\}$.
$\{S,T\}$ is een element van twee van de vier deelverzamelingen dus $support(\{S,T\})=\frac{2}{4}$ of 50%.
$\{T,B\}$ is een element van twee van de vier deelverzamelingen dus $support(\{T,B\})=\frac{2}{4}$ of 50%.
$\{S,B\}$ is een element van twee van de vier deelverzamelingen dus $support(\{S,B\})=\frac{2}{4}$ of 50%.
- $W_{2} \cup W_{3} = \{\{S,T\},\{T,B\},\{S,B\},\{S,T,B\}\}$.
- De vraag
de support van alle deelverzamelingen van $W_{3}$ in $W_{2} \cup W_{3}$.
- $W_{2} \cup W_{3} = \{\{S,T\},\{T,B\},\{S,B\},\{S,T,B\}\}$.
$\{S,T,B\}$ is een element van één van de vier deelverzamelingen dus $support(\{S,T,B\})=\frac{1}{4}$ of 25%.
- $W_{2} \cup W_{3} = \{\{S,T\},\{T,B\},\{S,B\},\{S,T,B\}\}$.
- de support van alle deelverzamelingen van $W_{1}$ in $W_{2} \cup W_{3}$.
- Gegeven is de collectie $I$ hieronder. Een kok experimenteert met gerechten met verschillende ingrediënten.
Collectie $I$ Id Items 0 $\{Pasta,Kaas,Tomaat\}$ 1 $\{Pasta,Room\}$ 2 $\{Pasta,Tomaat\}$ 3 $\{Kaas,Room\}$ 4 $\{Kaas,Tomaat\}$ 5 $\{Pasta,Tomaat,Room\}$ 6 $\{Tomaat,Room\}$ 7 $\{Kaas,Tomaat\}$ 8 $\{Pasta,Kaas,Tomaat,Room\}$ 9 $\{Pasta\}$ - Laat zien dat $confidence(\{Pasta,Kaas\}\Rightarrow\{Tomaat\})$ hoger is dan die van $\{Pasta\}\Rightarrow\{Kaas,Tomaat\}$.
antwoord
- $confidence(\{Pasta,Kaas\}\Rightarrow\{Tomaat\}) = \frac{freq(\{Pasta,Kaas,Tomaat \})}{freq(\{Pasta,Kaas\})}=\frac{2}{2} =1 $.
$confidence(\{Pasta\}\Rightarrow\{Kaas,Tomaat\}) = \frac{freq(\{Pasta,Kaas,Tomaat \})}{freq(\{Pasta\})}=\frac{2}{6} $.
De eerste is inderdaad hoger.
- $confidence(\{Pasta,Kaas\}\Rightarrow\{Tomaat\}) = \frac{freq(\{Pasta,Kaas,Tomaat \})}{freq(\{Pasta,Kaas\})}=\frac{2}{2} =1 $.
- Bereken voor welke $X \in \{ \{Pasta,Room\},\{Room,Kaas\} ,\{Kaas\}\}$
de $confidence(\{X\}\Rightarrow\{Tomaat\})$ in $I$ het grootst is.
antwoord
- $confidence(\{Pasta,Room\}\Rightarrow\{Tomaat\}) = \frac{freq(\{Pasta,Room,Tomaat \})}{freq(\{Pasta,Room\})}=\frac{2}{3} $.
$confidence(\{Room,Kaas\}\Rightarrow\{Tomaat\}) = \frac{freq(\{Room,Kaas,Tomaat \})}{freq(\{Room,Kaas\})}=\frac{1}{2} $.
$confidence(\{Kaas\}\Rightarrow\{Tomaat\}) = \frac{freq(\{Tomaat,Kaas\})}{freq(\{Kaas\})}=\frac{4}{5} $.
- $confidence(\{Pasta,Room\}\Rightarrow\{Tomaat\}) = \frac{freq(\{Pasta,Room,Tomaat \})}{freq(\{Pasta,Room\})}=\frac{2}{3} $.
- Laat $Y$ de vereniging zijn van alle items (deelverzamelingen) uit de collectie
$I$ en $Z$ een willekeurige item uit $I$.
Waarom is de $confidence(\{Y\}\Rightarrow\{Z\})$ altijd 1?
antwoord
- De vereniging van alle items bevat alle ingrediënten. Dus deze vereniging bevat iedere deelverzameling van $I$ en impliceert deze
deelverzameling dan ook. In formulevorm
$confidence(\{Y\}\Rightarrow\{Z\}) = \frac{freq(\{Y \cup Z \})}{freq(\{Y\})} = \frac{freq(\{Y \})}{freq(\{Y\})}=1$
- De vereniging van alle items bevat alle ingrediënten. Dus deze vereniging bevat iedere deelverzameling van $I$ en impliceert deze
deelverzameling dan ook. In formulevorm
- Laat zien dat $confidence(\{Pasta,Kaas\}\Rightarrow\{Tomaat\})$ hoger is dan die van $\{Pasta\}\Rightarrow\{Kaas,Tomaat\}$.
Apriori algoritme
Er bestaan veel algoritmes om associatieregels te ontdekken. De oudste en meest bekende methode is het Apriori algoritme
(a priori bekent: op basis van eerder onderzoek) ontwikkeld voor transacties (verkopen). Het is in de jaren negentig bedacht door Agrawal en anderen.
Met het algoritme wordt je in staat gesteld om interessante voldoende voorkomende verbanden (implicaties) in een collectie te vinden (b.v. welke aankopen van anderen toon ik jou als jij net in de online winkel een slaapzak koopt?). Voldoende voorkomend (frequent) betekent in dit geval dat we niet alle
verbanden even nuttig vinden. Als producten te weinig voorkomen, ofwel te
weinig support hebben, dan nemen we die niet mee in het algoritme.
We stellen dus een ondergrens aan het support, de minimale support.
Naast deze minimale support kun je ook instellen hoe betrouwbaar de implicaties moeten zijn (hoe sterk zijn de aanwijzingen), ofwel je geeft een minimale confidence op.
We gaan door deze twee fasen heen aan de hand van het volgende voorbeeld:
Fase 1: Het maken van een collectie $F$ met verzamelingen die voldoende frequent (groter dan een minimale support) zijn in $C$
In deze fase gebruikt het Apriori algoritme een iteratief proces met een "bottom up" aanpak op de collectie $C$. Van te voren kies je een minimale support (minimale aanwezigheid) en bouwen we een steeds groter wordende collectie $F$ met deelverzamelingen in C met voldoende support, totdat er geenvoldoende frequente verzamelingen zijn toe te voegen aan $F$. Het algoritme is in de figuur hiernaast weergegeven. We zullen je aan de hand van het voorbeeld door dit algoritme heen leiden.
Na de start van het algoritme maken we eerst de lege collectie $F = \{\}$ en zetten het aantal elementen $k$ aanwezig in een itemset op 0. Gelijk daarna maken we $k$ gelijk aan 1 en gaan we naar het oranje blok:
Vervolgens gaan we naar de stap in het blauwe blok:
Als laatste gaan we in de eerste iteratie naar het paarse blok:
We komen nu aan bij de test "Is er in deze ronde een $k$-itemset aan $F$ toegevoegd?". In het voorbeeld hebben we net drie verzamelingen met 1-item toegevoegd en is het antwoord dus ja, we zijn dus nog niet klaar. We verhogen k naar 2 en gaan weer verder bij het oranje blok:
Op naar het blauwe blok om de support te berekenen:
Kunnen we weer itemsets toevoegen aan $F$?
We komen nu weer aan bij de test "Is er in deze ronde een $k$-itemset aan $F$ toegevoegd?". In het voorbeeld hebben we er weer 3 toegevoegd en is het antwoord dus ja, we zijn dus nog steeds niet klaar. We verhogen $k$ naar 3 en gaan weer verder bij het oranje blok:
Het blauwe blok levert nu de support:
Kunnen we weer itemsets toevoegen aan F?
We komen nu weer aan bij de test "Is er in deze ronde een $k$-itemset aan $F$ toegevoegd?". In het voorbeeld hebben we niets meer hebben toegevoegd dus nee, we zijn klaar en eindigen dus met de verzameling
$$F=\{\{Spaghetti\}, \{Tomatensaus\}, \{Brood\},\{Spaghetti,Tomatensaus\}, \{Spaghetti, Brood \},\{Tomatensaus, Brood \}\} $$In het voorbeeld zijn in het algoritme dus 3 iteraties nodig geweest om het proces te stoppen. Andere samenstellingen van de winkelmandjes met vooral meer artikelen zal ervoor zorgen dat er veel meer iteraties nodig zijn.
We zijn nu aan het eind van fase 1 gekomen en gaan nu kijken welke associatieregels interessant zijn.
Fase 2: Het opstellen van associatieregels met verzamelingen uit $F$ met voldoende betrouwbaarheid (groter dan een minimale confidence) in $C$.
Als de collectie $F$ is gevonden kunnen we met de verzamelingen in $F$ associatieregels gaan maken. Voor elke associatieregel bepalen we de confidence. Alleen in die associatieregels met voldoende confidence zijn we geïnteresseerd. We gaan dit duidelijker maken met het voorbeeld.
Tijd om dit zelf toe te passen:
- Gegeven is de transactiedatabase gerepresenteerd door de
collectie $W$
Collectie $W$ Id Items 0 $\{a,b,c\}$ 1 $\{b,c,d,e\}$ 2 $\{c,d \}$ 3 $\{a,b,d\}$ 4 $\{a,b,c\}$ - Pas Fase 1 van het Apriori-algoritme toe op deze collectie met een support van minimaal 50%
antwoord
- Iteratie met k=1
- Genereer alle deelverzamelingen (itemsets) kandidaten met lengte $1$.
$S_{1}=\{\{a\}, \{b\},\{ c \}, \{d \}, \{e \}\}$ - Bereken support van de kandidaat deelverzamelingen (1-itemsets) uit $S_{1}$ in $W$.
Itemset Support $\{a\}$ 60% $\{b\}$ 80% $\{c \}$ 80% $\{d\}$ 60% $\{e\}$ 20% -
De support van kandidaat itemset $\{e\}$ is onder de 40% en voldoet dus niet.
De frequente 1-itemsets zijn dus: $F=\{\{a\}, \{b\}, \{c\}, \{d\}\}$ - $F$ is niet leeg. We gaan op zoek naar grotere frequente itemsets namelijk die uit twee elementen bestaan. k=2
Iteratie met k=2
- Genereer alle deelverzamelingen (itemsets) kandidaten met lengte $2$ met elementen uit $F$.
$S_{2}=\{\{a,b\}, \{a, c \}, \{a, d \}, \{b, c \}, \{b, d \} , \{c, d \}\}$ - Bereken support van de kandidaat deelverzamelingen (2-itemsets) uit $S_{2}$ in $W$.
Itemset Support $\{a,b\}$ 60% $\{a,c\}$ 40% $\{a,d\}$ 20% $\{b,c\}$ 60% $\{b,d\}$ 40% $\{c,d\}$ 40% - De frequente 2-itemsets zijn:$\{\{a,b\}, \{b,c\}\}$ dus $F$ wordt $F=\{\{a\}, \{b\}, \{c\}, \{d\},\{a,b\}, \{b,c\}\}$
- We hebben weer items toegevoegd aan $F$ en gaan dus op zoek naar grotere frequente itemsets namelijk die uit drie elementen bestaan. k=3
Iteratie met k=3
- Genereer alle deelverzamelingen (itemsets) kandidaten met lengte $3$ met elementen uit $F$.
$S_{3}=\{\{a,b,c \}\}$ - Bereken support van de kandidaat deelverzamelingen (3-itemsets) uit $S_{3}$ in $W$.
Itemset Support $\{a,b,c\}$ 40% - Er zijn geen frequente 3-itemssets.
- We zijn bij het einde gekomen.
De uiteindelijke set van voldoende frequente verzamelingen is
$F=\{\{a\}, \{b\}, \{c\}, \{d\}, \{a, b \}, \{b, c \}\}$. - Genereer alle deelverzamelingen (itemsets) kandidaten met lengte $1$.
- Iteratie met k=1
- Geef in Fase 2 alle associatieregels met een confidence van minimaal 70%.
antwoord
-
De uiteindelijke set van voldoende frequente verzamelingen is
$F=\{\{a\}, \{b\}, \{c\}, \{d\}, \{a, b \}, \{b, c \}\}$.
De daaruit voortvloeiende associatieregels met voldoende confidence zijnAssociatieregels Confidence $\{a\} \Rightarrow \{a,b\}$ $\frac{60}{60}= 100 \% $ $\{b\} \Rightarrow \{a,b\}$ $\frac{60}{80}= 75 \% $ $\{b\} \Rightarrow \{b,c\}$ $\frac{60}{80}= 75 \% $ $\{c\} \Rightarrow \{b,c\}$ $\frac{60}{80}= 75 \% $
-
- Pas Fase 1 van het Apriori-algoritme toe op deze collectie met een support van minimaal 50%
- Gegeven is de transactiedatabase gerepresenteerd door de
collectie $P$
Collectie $P$ Id Items 0 $\{brood,melk\}$ 1 $\{brood,luier,bier,eieren\}$ 2 $\{melk,luier,bier,cola \}$ 3 $\{brood,melk,luier,bier\}$ 4 $\{brood,melk,luier,cola\}$ - DPas het Apriori-algoritme toe op deze collectie met een support van minimaal 50%
antwoord
- Iteratie met k=1
- Genereer alle deelverzamelingen (itemsets) kandidaten met lengte $1$.
$S_{1}=\{\{brood\}, \{bier\},\{ melk \}, \{luier \}, \{cola \}, \{eieren \}\}$ - Bereken support van de kandidaat deelverzamelingen (1-itemsets) uit $S_{1}$ in $P$.
Itemset Support $\{brood\}$ 80% $\{bier\}$ 60% $\{melk \}$ 60% $\{luier\}$ 80% $\{cola\}$ 40% $\{eieren\}$ 20% -
De support van kandidaat itemsets $\{cola\}$ en $\{eieren\}$ is onder
de 40% en voldoen dus niet.
De frequente itemsets zijn dus: $F=\{\{brood\}, \{bier\},\{ melk \}, \{luier \}\}$ - $F$ is niet leeg. We gaan op zoek naar grotere frequente itemsets namelijk die uit twee elementen bestaan. k=2
Iteratie met k=2
- Genereer alle deelverzamelingen (itemsets) kandidaten met lengte $2$ met elementen uit $F_{1}$.
$S_{2}=\{\{brood,bier\}, \{brood,melk\}, \{brood,luier\}, \{bier,melk\}, \{bier,luier\} , \{melk,luier\}\}$ - Bereken support van de kandidaat deelverzamelingen (2-itemsets) uit $S_{2}$ in $P$.
Itemset Support $\{brood,bier\}$ 40% $\{brood,melk\}$ 60% $\{brood,luier\}$ 60% $\{bier,melk\}$ 40% $\{bier,luier\}$ 60% $\{melk,luier\}$ 60% - De frequente 2-itemsets zijn:$\{\{brood,melk\}, \{brood,luier\}, \{bier,luier\} , \{melk,luier\}\}$ dus $F=\{\{brood\}, \{bier\},\{ melk \}, \{luier \},\{brood,melk\}, \{brood,luier\}, \{bier,luier\} , \{melk,luier\}\}$
- Er zijn itemsets toegevoegd. We gaan dus op zoek naar grotere frequente itemsets namelijk die uit drie elementen bestaan. k=3
Iteratie met k=3
- Genereer alle deelverzamelingen (itemsets) kandidaten met lengte $3$ met elementen uit $F$.
$S_{3}=\{\{brood,melk,luier\}, \{brood,melk,bier\}, \{bier,melk,luier\}\}$ - Bereken support van de kandidaat deelverzamelingen (3-itemsets) uit $S_{3}$ in $P$.
Itemset Support $\{brood,melk,luier\}$ 40% $\{brood,melk,bier\}$ 20% $\{bier,melk,luier\}$ 40% - Er zijn geen voldoende frequente 3-itemsets.
- We zijn bij het einde gekomen.
De uiteindelijke set van voldoende frequente verzamelingen is
$F=\{\{brood\}, \{bier\},\{ melk \}, \{luier \},\{brood,melk\}, \{brood,luier\}, \{bier,luier\} , \{melk,luier\}\}$. - Genereer alle deelverzamelingen (itemsets) kandidaten met lengte $1$.
- Iteratie met k=1
- Geef alle associatieregels met een confidence van minimaal 60%.
De uiteindelijke set van voldoende frequente verzamelingen is
$F=\{\{brood\}, \{bier\},\{ melk \}, \{luier \},\{brood,melk\}, \{brood,luier\}, \{bier,luier\} , \{melk,luier\}\}$.
De daaruit voortvloeiende associatieregels met voldoende confidence zijnAssociatieregels Confidence $\{brood\} \Rightarrow \{brood,melk\}$ $\frac{60}{80}= 75 \% $ $\{brood\} \Rightarrow \{brood,luier\}$ $\frac{60}{80}= 75 \% $ $\{melk\} \Rightarrow \{brood,melk\}$ $\frac{60}{80}= 75 \% $ $\{melk\} \Rightarrow \{luier,melk\}$ $\frac{60}{80}= 75 \% $ $\{luier\} \Rightarrow \{luier,brood\}$ $\frac{60}{80}= 75 \% $ $\{luier\} \Rightarrow \{luier,bier\}$ $\frac{60}{80}= 75 \% $ $\{luier\} \Rightarrow \{luier,melk\}$ $\frac{60}{80}= 75 \% $ $\{bier\} \Rightarrow \{bier,luier\}$ $\frac{60}{60}= 100 \% $
- DPas het Apriori-algoritme toe op deze collectie met een support van minimaal 50%