frequent pattern growth algorithm data mining
Gedetailleerde tutorial over frequent patroongroei-algoritme dat de database weergeeft in de vorm van een FP-boom. Inclusief FP-groei versus Apriori-vergelijking:
Apriori-algoritme werd in onze vorige tutorial in detail uitgelegd. In deze tutorial zullen we leren over Frequent Pattern Growth - FP Growth is een methode om frequente itemsets te minen.
beste gratis hulpprogramma voor het opschonen van Windows 10
Zoals we allemaal weten, is Apriori een algoritme voor frequente patroonontginning dat zich richt op het genereren van itemsets en het ontdekken van de meest voorkomende itemsets. Het vermindert de grootte van de itemset in de database aanzienlijk, maar Apriori heeft ook zijn eigen tekortkomingen.
Lees onze Volledige datamining-trainingsreeks voor een volledige kennis van het concept.
Wat je leert:
- Tekortkomingen van het apriori-algoritme
- Frequent patroongroei-algoritme
- FP Tree
- Frequente patroonalgoritme-stappen
- Voorbeeld van FP-groei-algoritme
- Voordelen van FP-groei-algoritme
- Nadelen van FP-groei-algoritme
- FP Growth versus Apriori
- SCHIJNEN
- Gevolgtrekking
- Aanbevolen literatuur
Tekortkomingen van het apriori-algoritme
- Het gebruik van Apriori vereist een generatie van kandidaatitemsets. Deze itemsets kunnen groot in aantal zijn als de itemset in de database enorm is.
- Apriori heeft meerdere scans van de database nodig om de ondersteuning van elke gegenereerde itemset te controleren en dit leidt tot hoge kosten.
Deze tekortkomingen kunnen worden ondervangen met behulp van het FP-groei-algoritme.
Frequent patroongroei-algoritme
Dit algoritme is een verbetering van de Apriori-methode. Er wordt een frequent patroon gegenereerd zonder dat er kandidaten hoeven te worden gegenereerd. Het FP-groeialgoritme vertegenwoordigt de database in de vorm van een boom die een frequente patroonboom of FP-boom wordt genoemd.
Deze boomstructuur zal de associatie tussen de itemsets behouden. De database is gefragmenteerd met één veel voorkomend item. Dit gefragmenteerde deel wordt 'patroonfragment' genoemd. De itemsets van deze gefragmenteerde patronen worden geanalyseerd. Met deze methode wordt het zoeken naar frequente itemsets dus relatief verminderd.
FP Tree
Frequent Pattern Tree is een boomachtige structuur die is gemaakt met de initiële itemsets van de database. Het doel van de FP-boom is om het meest voorkomende patroon te ontginnen. Elk knooppunt van de FP-boom vertegenwoordigt een item van de itemset.
Het hoofdknooppunt vertegenwoordigt null, terwijl de onderste knooppunten de itemsets vertegenwoordigen. De associatie van de knooppunten met de lagere knooppunten, dat wil zeggen de itemsets met de andere itemsets, wordt gehandhaafd tijdens het vormen van de boom.
Frequente patroonalgoritme-stappen
Met de frequentiegroeimethode kunnen we het veelvoorkomende patroon vinden zonder kandidaat-generatie.
Laten we de stappen bekijken die zijn gevolgd om het veel voorkomende patroon te ontginnen met behulp van het algoritme voor frequent patroongroei:
# 1) De eerste stap is het scannen van de database om te zien of de itemsets in de database voorkomen. Deze stap is hetzelfde als de eerste stap van Apriori. Het aantal 1-itemsets in de database wordt het aantal ondersteuningen of de frequentie van 1-itemset genoemd.
#twee) De tweede stap is het construeren van de FP-boom. Maak hiervoor de wortel van de boom. De wortel wordt vertegenwoordigd door null.
# 3) De volgende stap is om de database opnieuw te scannen en de transacties te onderzoeken. Bekijk de eerste transactie en ontdek de itemset erin. De itemset met het maximale aantal wordt bovenaan genomen, de volgende itemset met het lagere aantal enzovoort. Het betekent dat de tak van de boom is opgebouwd met transactie-itemsets in aflopende volgorde van telling.
# 4) De volgende transactie in de database wordt onderzocht. De itemsets zijn gerangschikt in aflopende volgorde van telling. Als een itemset van deze transactie al aanwezig is in een andere branch (bijvoorbeeld in de 1e transactie), dan deelt deze transactietak een gemeenschappelijk prefix voor de root.
Dit betekent dat de gemeenschappelijke itemset is gekoppeld aan de nieuwe node van een andere itemset in deze transactie.
Welke laag van het OSI-model wordt gebruikt voor zaken als signalen, bits, kabels en connectoren?
# 5) Ook wordt de telling van de itemset verhoogd zoals deze voorkomt in de transacties. Zowel het aantal gemeenschappelijke knooppunten als het aantal nieuwe knooppunten wordt met 1 verhoogd wanneer ze worden gemaakt en gekoppeld volgens transacties.
# 6) De volgende stap is om de gemaakte FP Tree te minen. Hiervoor wordt eerst het laagste knooppunt onderzocht samen met de verbindingen van de laagste knooppunten. Het laagste knooppunt vertegenwoordigt de frequentiepatroonlengte 1. Beweeg van hieruit het pad in de FP Tree. Dit pad of deze paden worden een voorwaardelijke patroonbasis genoemd.
Voorwaardelijke patroonbasis is een subdatabase die bestaat uit voorvoegselpaden in de FP-boom die voorkomt met het laagste knooppunt (achtervoegsel).
# 7) Construeer een voorwaardelijke FP-boom, die wordt gevormd door een aantal itemsets in het pad. De itemsets die voldoen aan de drempelondersteuning worden beschouwd in de Conditional FP Tree.
# 8) Frequente patronen worden gegenereerd vanuit de Conditional FP Tree.
Voorbeeld van FP-groei-algoritme
Ondersteuningsdrempel = 50%, vertrouwen = 60%
tafel 1
Transactie | Lijst van items |
---|---|
Geheugengebruik | |
T1 | I1, I2, I3 |
T2 | I2, I3, I4 |
T3 | I4, I5 |
T4 | I1, I2, I4 |
T5 | I1, I2, I3, I5 |
T6 | I1, I2, I3, I4 |
Oplossing:
Ondersteuningsdrempel = 50% => 0,5 * 6 = 3 => min_sup = 3
1. Telling van elk item
tafel 2
Item | Tellen |
---|---|
I1 | 4 |
I2 | 5 |
I3 | 4 |
I4 | 4 |
I5 | twee |
2. Sorteer de itemset in aflopende volgorde.
tafel 3
Item | Tellen |
---|---|
I2 | 5 |
I1 | 4 |
I3 | 4 |
I4 | 4 |
3. Bouw FP Tree
- Gezien het hoofdknooppunt null.
- De eerste scan van transactie T1: I1, I2, I3 bevat drie items {I1: 1}, {I2: 1}, {I3: 1}, waarbij I2 als kind is gekoppeld aan root, I1 is gekoppeld aan I2 en I3 is gekoppeld aan I1.
- T2: I2, I3, I4 bevat I2, I3 en I4, waarbij I2 is gekoppeld aan root, I3 is gekoppeld aan I2 en I4 is gekoppeld aan I3. Maar deze tak zou het I2-knooppunt net zo vaak delen als het al wordt gebruikt in T1.
- Verhoog de telling van I2 met 1 en I3 wordt als kind aan I2 gekoppeld, I4 wordt als kind aan I3 gekoppeld. De telling is {I2: 2}, {I3: 1}, {I4: 1}.
- T3: I4, I5. Evenzo wordt een nieuwe tak met I5 gekoppeld aan I4 als een kind wordt aangemaakt.
- T4: I1, I2, I4. De volgorde is I2, I1 en I4. I2 is al gekoppeld aan het rootknooppunt, daarom wordt het verhoogd met 1. Evenzo wordt I1 verhoogd met 1 omdat het al is gekoppeld aan I2 in T1, dus {I2: 3}, {I1: 2}, {I4: 1}.
- T5: I1, I2, I3, I5. De volgorde is I2, I1, I3 en I5. Dus {I2: 4}, {I1: 3}, {I3: 2}, {I5: 1}.
- T6: I1, I2, I3, I4. De volgorde is I2, I1, I3 en I4. Dus {I2: 5}, {I1: 4}, {I3: 3}, {I4 1}.
4. Mijnbouw van FP-tree wordt hieronder samengevat:
- Het laagste knooppunt I5 wordt niet in aanmerking genomen omdat het geen minimale ondersteuningstelling heeft, daarom wordt het verwijderd.
- Het volgende onderste knooppunt is I4. I4 komt voor in 2 takken, {I2, I1, I3:, I41}, {I2, I3, I4: 1}. Als daarom I4 als achtervoegsel wordt beschouwd, zullen de voorvoegselpaden {I2, I1, I3: 1}, {I2, I3: 1} zijn. Dit vormt de voorwaardelijke patroonbasis.
- De conditionele patroonbasis wordt beschouwd als een transactiedatabase, er wordt een FP-boom geconstrueerd. Dit bevat {I2: 2, I3: 2}, I1 wordt niet in aanmerking genomen omdat het niet voldoet aan het aantal min. Ondersteuning.
- Dit pad genereert alle combinaties van veel voorkomende patronen: {I2, I4: 2}, {I3, I4: 2}, {I2, I3, I4: 2}
- Voor I3 zou het voorvoegselpad zijn: {I2, I1: 3}, {I2: 1}, dit genereert een FP-boom met 2 knooppunten: {I2: 4, I1: 3} en frequente patronen worden gegenereerd: {I2 , I3: 4}, {I1: I3: 3}, {I2, I1, I3: 3}.
- Voor I1 zou het voorvoegselpad zijn: {I2: 4} dit genereert een FP-tree met één knooppunt: {I2: 4} en frequente patronen worden gegenereerd: {I2, I1: 4}.
Item | Voorwaardelijke patroonbasis | Voorwaardelijke FP-boom | Frequente patronen gegenereerd |
---|---|---|---|
I4 | {I2, I1, I3: 1}, {I2, I3: 1} | {I2: 2, I3: 2} | {I2, I4: 2}, {I3, I4: 2}, {I2, I3, I4: 2} |
I3 | {I2, I1: 3}, {I2: 1} | {I2: 4, I1: 3} | {I2, I3: 4}, {I1: I3: 3}, {I2, I1, I3: 3} |
I1 | {I2: 4} | {I2: 4} | {I2, I1: 4} |
Het onderstaande diagram geeft de voorwaardelijke FP-boom weer die is gekoppeld aan het voorwaardelijke knooppunt I3.
beste gratis Windows 10-onderhoudssoftware
Voordelen van FP-groei-algoritme
- Dit algoritme hoeft de database slechts twee keer te scannen in vergelijking met Apriori, dat de transacties voor elke iteratie scant.
- Het koppelen van items gebeurt niet in dit algoritme en dit maakt het sneller.
- De database wordt in een compacte versie in het geheugen opgeslagen.
- Het is efficiënt en schaalbaar voor het delven van zowel lange als korte frequente patronen.
Nadelen van FP-groei-algoritme
- FP Tree is omslachtiger en moeilijker te bouwen dan Apriori.
- Het kan duur zijn.
- Als de database groot is, past het algoritme mogelijk niet in het gedeelde geheugen.
FP Growth versus Apriori
FP-groei | Apriori |
---|---|
Patroon genereren | |
FP-groei genereert patroon door een FP-boom te construeren | Apriori genereert een patroon door de items te paren in singletons, paren en triplets. |
Kandidaat-generatie | |
Er is geen kandidaat-generatie | Apriori gebruikt kandidaatgeneratie |
Werkwijze | |
Het proces is sneller in vergelijking met Apriori. De looptijd van het proces neemt lineair toe met een toename van het aantal itemsets. | Het proces is relatief langzamer dan FP Growth, de looptijd neemt exponentieel toe naarmate het aantal itemsets toeneemt |
Een compacte versie van de database wordt opgeslagen | De combinaties van kandidaten worden in het geheugen opgeslagen |
SCHIJNEN
De bovenstaande methode, Apriori en FP-groei, mijnt frequente itemsets met behulp van een horizontaal gegevensformaat. ECLAT is een methode om frequente itemsets te minen met behulp van het verticale gegevensformaat. Het zal de gegevens in het horizontale gegevensformaat omzetten in het verticale formaat.
Bijvoorbeeld,Gebruik van Apriori en FP-groei:
Transactie | Lijst van items |
---|---|
T1 | I1, I2, I3 |
T2 | I2, I3, I4 |
T3 | I4, I5 |
T4 | I1, I2, I4 |
T5 | I1, I2, I3, I5 |
T6 | I1, I2, I3, I4 |
De ECLAT heeft het formaat van de tabel als:
Item | Transactieset |
---|---|
I1 | {T1, T4, T5, T6} |
I2 | {T1, T2, T4, T5, T6} |
I3 | {T1, T2, T5, T6} |
I4 | {T2, T3, T4, T5} |
I5 | {T3, T5} |
Deze methode vormt 2-itemsets, 3 itemsets, k itemsets in het verticale gegevensformaat. Dit proces met k wordt met 1 verhoogd totdat er geen kandidaatitemsets zijn gevonden. Sommige optimalisatietechnieken, zoals diffset, worden samen met Apriori gebruikt.
Deze methode heeft een voordeel ten opzichte van Apriori omdat het niet nodig is om de database te scannen om de ondersteuning van k + 1 itemsets te vinden. Dit komt doordat de Transactieset het aantal keren dat elk item in de transactie voorkomt (ondersteuning) zal tellen. De bottleneck komt wanneer er veel transacties zijn die enorm veel geheugen en rekentijd vergen om de sets te doorsnijden.
Gevolgtrekking
Het Apriori-algoritme wordt gebruikt voor regels voor mijnbouwassociaties. Het werkt volgens het principe 'de niet-lege subsets van frequente itemsets moeten ook frequent zijn'. Het vormt kandidaten voor k-itemset uit (k-1) itemsets en scant de database om de frequente itemsets te vinden.
Frequent Pattern Growth Algorithm is de methode om frequente patronen te vinden zonder het genereren van kandidaten. Het construeert een FP Tree in plaats van de genereer- en teststrategie van Apriori te gebruiken. De focus van het FP Growth-algoritme ligt op het fragmenteren van de paden van de items en het delven van frequente patronen.
We hopen dat deze tutorials in de Data Mining Series je kennis over Data Mining hebben verrijkt !!
PREV-zelfstudie EERSTE Tutorial
Aanbevolen literatuur
- Technieken voor datamining: algoritme, methoden en toptools voor datamining
- Apriori-algoritme in datamining: implementatie met voorbeelden
- Voorbeelden van beslissingsboomalgoritmen in datamining
- Voorbeelden van datamining: meest voorkomende toepassingen van datamining 2021
- Datamining: proces, technieken en grote problemen bij gegevensanalyse
- Dataminingproces: modellen, processtappen en betrokken uitdagingen
- CSTE Software Testing Certificatie Examen Vraagpatroon
- Datamining versus machine learning versus kunstmatige intelligentie versus diep leren