logo

Apriori algoritmas

Apriori algoritmas reiškia algoritmą, kuris naudojamas skaičiuojant susiejimo taisykles tarp objektų. Tai reiškia, kaip du ar daugiau objektų yra susiję vienas su kitu. Kitaip tariant, galime sakyti, kad apriori algoritmas yra asociacijos taisyklė, kuri analizuoja, kad žmonės, įsigiję produktą A, taip pat pirko produktą B.

java rūšiavimo masyvų sąrašas

Pagrindinis apriori algoritmo tikslas yra sukurti susiejimo taisyklę tarp skirtingų objektų. Susiejimo taisyklė apibūdina, kaip du ar daugiau objektų yra susiję vienas su kitu. Apriori algoritmas taip pat vadinamas dažnu modelių kasimu. Paprastai Apriori algoritmą naudojate duomenų bazėje, kurią sudaro daugybė operacijų. Supraskime apriori algoritmą pavyzdžio pagalba; Tarkime, einate į Didįjį turgų ir nusiperkate įvairių produktų. Tai padeda klientams lengvai įsigyti savo produktus ir padidina „Big Bazar“ pardavimų rezultatus. Šioje pamokoje aptarsime apriori algoritmą su pavyzdžiais.

Įvadas

Imame pavyzdį, kad geriau suprastume sąvoką. Turbūt pastebėjote, kad picų parduotuvės pardavėjas kartu gamina picos, gaiviųjų gėrimų ir duonos lazdelės derinį. Jis taip pat siūlo nuolaidą savo klientams, kurie perka šiuos derinius. Ar kada pagalvoji, kodėl jis taip daro? Jis mano, kad picą perkantys klientai perka ir gaiviuosius gėrimus bei duonos lazdeles. Tačiau kurdamas kombinacijas jis palengvina klientams. Tuo pačiu metu jis taip pat padidina savo pardavimų rezultatus.

Panašiai nueisite į Didįjį turgų ir rasite kartu supakuotų sausainių, traškučių ir šokolado. Tai rodo, kad parduotuvės savininkas leidžia klientams patogiai pirkti šiuos produktus toje pačioje vietoje.

Aukščiau pateikti du pavyzdžiai yra geriausi asociacijos taisyklių pavyzdžiai

  • Palaikymas
  • Pasitikėjimas
  • Pakelkite
  • Paimkime pavyzdį, kad suprastume šią sąvoką.

    Mes jau aptarėme aukščiau; jums reikia didžiulės duomenų bazės, kurioje būtų daug operacijų. Tarkime, kad didžiajame turguje turite 4000 klientų sandorių. Turite apskaičiuoti dviejų produktų palaikymą, pasitikėjimą ir pakėlimą, ir galite pasakyti, kad sausainiai ir šokoladas. Taip yra todėl, kad klientai dažnai perka šias dvi prekes kartu.

    Iš 4 000 operacijų 400 yra sausainių, 600 – šokolado, o tarp šių 600 operacijų yra 200 – sausainių ir šokolado. Naudodami šiuos duomenis išsiaiškinsime palaikymą, pasitikėjimą ir pakėlimą.

    Palaikymas

    Palaikymas reiškia numatytąjį bet kurio produkto populiarumą. Paramą rasite kaip sandorių, sudarančių tą produktą, skaičiaus padalijimo iš bendro operacijų skaičiaus koeficientą. Vadinasi, gauname

    Pagalba (sausainiai) = (sausainiais susiję sandoriai) / (iš viso operacijų)

    = 400/4000 = 10 proc.

    Pasitikėjimas

    Pasitikėjimas reiškia galimybę, kad klientai kartu pirko ir sausainius, ir šokoladus. Taigi, norėdami gauti pasitikėjimą, turite padalyti operacijų, kuriose yra ir sausainių, ir šokoladinių saldainių, skaičių iš bendro operacijų skaičiaus.

    Vadinasi,

    Pasitikėjimas = (sausainiais ir šokoladu susiję sandoriai) / (visi su sausainiais susiję sandoriai)

    = 200/400

    = 50 proc.

    Tai reiškia, kad 50 procentų pirkėjų, pirkusių sausainius, pirko ir šokoladą.

    Pakelkite

    Apsvarstykite aukščiau pateiktą pavyzdį; liftas reiškia šokolado pardavimo santykio padidėjimą, kai parduodate sausainius. Žemiau pateiktos matematinės kėlimo lygtys.

    Pakėlimas = (pasitikėjimas (sausainiai – šokoladiniai saldainiai)/ (palaikymas (sausainiai))

    = 50/10 = 5

    Tai reiškia, kad tikimybė, kad žmonės kartu pirks ir sausainius, ir šokoladinius saldainius, yra penkis kartus didesnė nei vien tik sausainių. Jei pakėlimo vertė yra mažesnė nei viena, tai reiškia, kad žmonės vargu ar pirks abu daiktus kartu. Kuo didesnė vertė, tuo derinys geresnis.

    Kaip Apriori algoritmas veikia duomenų gavyboje?

    Šį algoritmą suprasime pavyzdžio pagalba

    Apsvarstykite „Big Bazar“ scenarijų, kai produktų rinkinys yra P = {Ryžiai, ankštiniai augalai, aliejus, pienas, obuoliai}. Duomenų bazėje yra šešios operacijos, kur 1 reiškia produkto buvimą, o 0 – produkto nebuvimą.

    Operacijos ID Ryžiai Pulsas Aliejus Pienas Apple
    t1 1 1 1 0 0
    t2 0 1 1 1 0
    t3 0 0 0 1 1
    t4 1 1 0 1 0
    t5 1 1 1 0 1
    t6 1 1 1 1 1

    Apriori algoritmas daro pateiktas prielaidas

    • Visi dažno elementų rinkinio poaibiai turi būti dažni.
    • Reto elementų rinkinio poaibiai turi būti nedažni.
    • Nustatykite slenksčio palaikymo lygį. Mūsų atveju fiksavome 50 proc.

    1 žingsnis

    Sudarykite visų produktų, kurie rodomi visose operacijose, dažnumo lentelę. Dabar sutrumpinkite dažnių lentelę, kad įtrauktumėte tik tuos produktus, kurių palaikymo slenkstis viršija 50 procentų. Randame pateiktą dažnių lentelę.

    Produktas Dažnis (operacijų skaičius)
    Ryžiai (R) 4
    Pulsas (P) 5
    Aliejus (O) 4
    Pienas (M) 4

    Aukščiau pateiktoje lentelėje buvo nurodyti produktai, kuriuos dažnai perka klientai.

    2 žingsnis

    Sukurkite produktų poras, pvz., RP, RO, RM, PO, PM, OM. Gausite nurodytą dažnių lentelę.

    Elementų rinkinys Dažnis (operacijų skaičius)
    RP 4
    RO 3
    RM 2
    PO 4
    PM 3
    APIE 2

    3 veiksmas

    Įgyvendinant tą pačią slenkstinę 50 procentų paramą ir atsižvelgti į produktus, kurie yra daugiau nei 50 procentų. Mūsų atveju tai yra daugiau nei 3

    Taigi gauname RP, RO, PO ir PM

    4 veiksmas

    Dabar ieškokite trijų produktų, kuriuos klientai perka kartu, rinkinio. Gauname nurodytą derinį.

    1. RP ir RO suteikia RPO
    2. PO ir PM suteikia POM

    5 veiksmas

    Apskaičiuokite dviejų elementų rinkinių dažnumą ir gausite nurodytą dažnių lentelę.

    Elementų rinkinys Dažnis (operacijų skaičius)
    RPO 4
    POM 3

    Jei įgyvendinsite slenksčio prielaidą, galite suprasti, kad klientų trijų produktų rinkinys yra RPO.

    Mes apsvarstėme paprastą pavyzdį, skirtą aptarti apriori algoritmą duomenų gavybos srityje. Realybėje tokių derinių rasite tūkstančius.

    Kaip pagerinti Apriori algoritmo efektyvumą?

    Apriori algoritmo efektyvumui užtikrinti naudojami įvairūs metodai

    Elementų rinkinių skaičiavimas maišos pagrindu

    Skaičiuodami maišos elementų rinkinį, turite išskirti k elementų rinkinį, kurio ekvivalentinis maišos segmento skaičius yra mažesnis už slenkstį, yra nedažnas elementų rinkinys.

    Sandorio sumažinimas

    Sumažinus operaciją, operacija, nesusijusi su dažnu X elementų rinkiniu, vėlesniuose nuskaitymuose tampa nereikšminga.

    Apriori algoritmas duomenų gavyboje

    Mes jau aptarėme apriori algoritmo pavyzdį, susijusį su dažnu elementų rinkinio generavimu. Apriori algoritmas turi daug pritaikymų duomenų gavyboje.

    Toliau pateikiami pagrindiniai reikalavimai, norint rasti duomenų gavybos susiejimo taisykles.

    Naudokite Brute Force

    Išanalizuokite visas taisykles ir suraskite atskiros taisyklės palaikymo ir pasitikėjimo lygius. Po to pašalinkite vertes, kurios yra mažesnės už slenkstinį palaikymo ir patikimumo lygį.

    Dviejų etapų metodai

    žvaigždžių topologija

    Dviejų etapų metodas yra geresnis pasirinkimas asociacijų taisyklėms rasti nei Brute Force metodas.

    1 žingsnis

    Šiame straipsnyje jau aptarėme, kaip sukurti dažnių lentelę ir apskaičiuoti elementų rinkinius, turinčius didesnę palaikymo vertę nei slenksčio palaikymo.

    2 žingsnis

    Norėdami sukurti susiejimo taisykles, turite naudoti dvejetainį dažnų elementų rinkinių skaidinį. Turite pasirinkti tuos, kurie turi didžiausią pasitikėjimo lygį.

    Aukščiau pateiktame pavyzdyje matote, kad RPO derinys buvo dažnas elementų rinkinys. Dabar mes sužinome visas taisykles naudodami RPO.

    RP-O, RO-P, PO-R, O-RP, P-RO, R-PO

    Matote, kad yra šeši skirtingi deriniai. Todėl, jei turite n elementų, bus 2n- 2 kandidatų asociacijos taisyklės.

    Apriori algoritmo privalumai

    • Jis naudojamas dideliems elementų rinkiniams apskaičiuoti.
    • Paprasta suprasti ir pritaikyti.

    Apriori algoritmų trūkumai

    • Apriori algoritmas yra brangus būdas rasti paramą, nes skaičiavimas turi praeiti per visą duomenų bazę.
    • Kartais jums reikia daugybės kandidatų taisyklių, todėl skaičiavimas tampa brangesnis.