Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Sammenligning av algoritmisk ytelse | Høyytelses Regelutvinning og Skaleringsoptimalisering
Market Basket Analysis og Anbefalingssystemer

Sammenligning av algoritmisk ytelse

Sveip for å vise menyen

Forståelse av de beregningsmessige forskjellene mellom Apriori og FP-Growth er avgjørende ved utvinning av assosiasjonsregler i stor skala. Her er en strukturert oversikt som hjelper deg å sammenligne disse to algoritmene effektivt:

Minnebruk

Apriori
expand arrow

Genererer alle mulige elementsett og lagrer dem i minnet, noe som kan føre til at minnebruken øker eksponentielt etter hvert som antall unike elementer øker;

FP-Growth
expand arrow

Bygger en kompakt FP-tre-struktur som lagrer transaksjoner mer effektivt ved å slå sammen felles prefikser, noe som reduserer minneforbruket betydelig for tette datasett.

Hastighet

Apriori
expand arrow

Gjentar skanning av datasettet for å telle forekomster av elementsett, noe som fører til høy kjøretid, spesielt når størrelsen på elementsettet øker;

FP-Growth
expand arrow

Krever kun to fulle gjennomganger av dataene—én for å identifisere hyppige elementer og en annen for å bygge FP-treet—noe som gjør den betydelig raskere for store datasett.

Skalerbarhet

Apriori
expand arrow

Har utfordringer med skalerbarhet på grunn av den kombinatoriske eksplosjonen av kandidatsett, noe som gjør den upraktisk for svært store eller tette datasett;

FP-Growth
expand arrow

Skalerer bedre ved å unngå generering av kandidatsett og utnytte trekomprimering, noe som muliggjør effektiv utvinning selv når datamengde og kompleksitet i elementsett øker.

Praktiske scenarier

Bruk Apriori
expand arrow

Når datasett er små eller spredte, tolkbarhet og enkelhet er viktig, eller når du ønsker å enkelt justere minimum støtteverdier;

Bruk FP-Growth
expand arrow

Når datasett er store, tette, eller minneeffektivitet og hastighet er prioritert.

Følgende kodeeksempel viser hvordan man kan opprette et syntetisk datasett med markedskurv-transaksjoner og sammenligne kjøretid for Apriori- og FP-Growth-algoritmene ved bruk av Python-biblioteket mlxtend. Du vil se hvordan hver algoritme håndterer de samme dataene og hvordan kjøretidene deres varierer, noe som fremhever effektiviteten deres i praktiske scenarier.

123456789101112131415161718192021222324252627
import pandas as pd from mlxtend.frequent_patterns import apriori, fpgrowth import numpy as np import time # Create a medium-sized synthetic dataset np.random.seed(42) items = ['apple', 'banana', 'milk', 'bread', 'butter', 'cheese', 'eggs', 'juice'] n_transactions = 3000 data = [] for _ in range(n_transactions): basket = np.random.choice(items, size=np.random.randint(2, 6), replace=False) data.append({item: (item in basket) for item in items}) df = pd.DataFrame(data) # Timing Apriori start_apriori = time.time() apriori(df, min_support=0.05, use_colnames=True) end_apriori = time.time() # Timing FP-Growth start_fpgrowth = time.time() fpgrowth(df, min_support=0.05, use_colnames=True) end_fpgrowth = time.time() print(f"Apriori runtime: {end_apriori - start_apriori:.3f} seconds") print(f"FP-Growth runtime: {end_fpgrowth - start_fpgrowth:.3f} seconds")

1. Når bør du foretrekke FP-Growth fremfor Apriori for å finne assosiasjonsregler?

2. Hvilket utsagn beskriver best forskjellen i beregningskompleksitet mellom Apriori og FP-Growth?

question mark

Når bør du foretrekke FP-Growth fremfor Apriori for å finne assosiasjonsregler?

Velg det helt riktige svaret

question mark

Hvilket utsagn beskriver best forskjellen i beregningskompleksitet mellom Apriori og FP-Growth?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 2. Kapittel 2
some-alt