logo

Apriori Algoritması

Apriori algoritması, nesneler arasındaki birliktelik kurallarını hesaplamak için kullanılan algoritmayı ifade eder. İki veya daha fazla nesnenin birbiriyle nasıl ilişkili olduğu anlamına gelir. Başka bir deyişle apriori algoritmasının, A ürününü alan kişilerin B ürününü de satın aldığını analiz eden bir birliktelik kuralı olduğunu söyleyebiliriz.

Apriori algoritmasının temel amacı farklı nesneler arasında birliktelik kuralı oluşturmaktır. Birliktelik kuralı, iki veya daha fazla nesnenin birbiriyle nasıl ilişkili olduğunu açıklar. Apriori algoritmasına sık desen madenciliği de denir. Genellikle Apriori algoritmasını çok sayıda işlemden oluşan bir veritabanı üzerinde çalıştırırsınız. Bir örnek yardımıyla apriori algoritmasını anlayalım; Diyelim ki Big Bazar'a gidip farklı ürünler aldınız. Müşterilerin ürünlerini kolaylıkla satın almalarına yardımcı olur ve Big Bazar'ın satış performansını artırır. Bu derste apriori algoritmasını örneklerle tartışacağız.

giriiş

Konsepti daha iyi anlamak için bir örnek alıyoruz. Pizza dükkanı satıcısının pizza, meşrubat ve galeta karışımını bir arada hazırladığını fark etmişsinizdir. Bu kombinleri satın alan müşterilerine ayrıca indirim de sunuyor. Neden böyle yaptığını hiç düşündün mü? Pizza satın alan müşterilerin aynı zamanda meşrubat ve galeta da satın aldığını düşünüyor. Ancak kombinler yaparak müşterilerin işini kolaylaştırıyor. Aynı zamanda satış performansını da artırıyor.

Benzer şekilde Big Bazar'a gidersiniz ve bisküvi, cips ve Çikolata'yı bir arada bulacaksınız. Bu durum, esnafın müşterilerin bu ürünleri aynı yerden satın almalarında kolaylık sağladığını gösteriyor.

Yukarıdaki iki örnek Birliktelik Kurallarının en iyi örnekleridir.

  • Destek
  • Kendinden emin
  • Kaldırmak
  • Bu kavramı anlamak için bir örnek verelim.

    Yukarıda daha önce tartışmıştık; çok sayıda işlem içeren devasa bir veritabanına ihtiyacınız var. Bir Big Bazar'da 4000 müşterinizin işlemi olduğunu varsayalım. İki ürün için Destek, Güven ve Artışı hesaplamanız gerekir; Bisküvi ve Çikolata diyebilirsiniz. Bunun nedeni müşterilerin sıklıkla bu iki ürünü birlikte satın almasıdır.

    4000 işlemin 400 adedi Bisküvi, 600 adedi Çikolata içermektedir ve bu 600 işlemin 200 adedi Bisküvi ve çikolata içermektedir. Bu verileri kullanarak desteği, güveni ve artışı bulacağız.

    Destek

    Destek, herhangi bir ürünün varsayılan popülerliğini ifade eder. Desteği, söz konusu ürünü içeren işlem sayısının toplam işlem sayısına bölünmesinin bir bölümü olarak bulursunuz. Dolayısıyla elde ederiz

    Destek (Bisküvi) = (Bisküviye ilişkin işlemler) / (Toplam işlem sayısı)

    = 400/4000 = yüzde 10.

    Kendinden emin

    Güven, müşterilerin hem bisküvi hem de çikolatayı birlikte satın alma olasılığını ifade etmektedir. Bu nedenle güveni sağlamak için hem bisküvi hem de çikolata içeren işlem sayısını toplam işlem sayısına bölmeniz gerekir.

    Buradan,

    Güven = (Hem bisküvi hem de Çikolataya ilişkin işlemler) / (Bisküviye ilişkin toplam işlemler)

    = 200/400

    = yüzde 50.

    Bu, bisküvi alan müşterilerin yüzde 50'sinin çikolata da aldığı anlamına geliyor.

    Kaldırmak

    Yukarıdaki örneği düşünün; lift, bisküvi satışı yaptığınızda çikolata satış oranındaki artışı ifade eder. Kaldırma kuvvetinin matematiksel denklemleri aşağıda verilmiştir.

    Artış = (Güven (Bisküvi - çikolata)/ (Destek (Bisküvi)

    = 50/10 = 5

    Bu, insanların hem bisküvi hem de çikolatayı birlikte satın alma olasılığının, bisküviyi tek başına satın alma olasılığından beş kat daha fazla olduğu anlamına geliyor. Yükselme değeri birin altındaysa, insanların her iki ürünü birlikte satın alma ihtimalinin düşük olması gerekir. Değer ne kadar büyük olursa kombinasyon o kadar iyi olur.

    Veri Madenciliğinde Apriori Algoritması nasıl çalışır?

    Bu algoritmayı bir örnek yardımıyla anlayacağız.

    Ürün setinin P = {Pirinç, Bakliyat, Yağ, Süt, Elma} olduğu bir Büyük Pazar senaryosunu düşünün. Veritabanı, 1'in ürünün varlığını ve 0'ın ürünün yokluğunu temsil ettiği altı işlemden oluşur.

    İşlem Kimliği Pirinç Nabız Yağlı Süt Elma
    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ı verilen varsayımları yapar

    • Sık görülen bir öğe kümesinin tüm alt kümeleri sık olmalıdır.
    • Sık olmayan bir öğe kümesinin alt kümeleri seyrek olmalıdır.
    • Bir eşik destek düzeyi belirleyin. Bizim durumumuzda bunu yüzde 50 olarak sabitledik.

    Aşama 1

    Tüm işlemlerde görünen tüm ürünlerin sıklık tablosunu yapın. Şimdi, yalnızca eşik destek düzeyi yüzde 50'nin üzerinde olan ürünleri eklemek için sıklık tablosunu kısaltın. Verilen frekans tablosunu buluyoruz.

    Ürün Sıklık (İşlem sayısı)
    Pirinç (R) 4
    Darbe(P) 5
    Yağ(O) 4
    Süt(M) 4

    Yukarıdaki tablo müşterilerin sıklıkla satın aldığı ürünleri göstermektedir.

    Adım 2

    RP, RO, RM, PO, PM, OM gibi ürün çiftleri oluşturun. Verilen frekans tablosunu alacaksınız.

    Ürün seti Sıklık (İşlem sayısı)
    RP 4
    RO 3
    RM 2
    SONRASINDA 4
    ÖĞLEDEN SONRA 3
    HAKKINDA 2

    Aşama 3

    Aynı eşik destek yüzde 50 uygulanıyor ve yüzde 50'nin üzerinde olan ürünler değerlendiriliyor. Bizim durumumuzda 3'ten fazla

    Böylece RP, RO, PO ve PM elde ederiz

    Java'da soyutlama

    4. Adım

    Şimdi müşterilerin birlikte satın aldığı üç üründen oluşan bir sete bakın. Verilen kombinasyonu elde ederiz.

    1. RP ve RO RPO'yu verir
    2. PO ve PM, POM'u verir

    Adım 5

    İki öğe kümesinin sıklığını hesapladığınızda verilen sıklık tablosunu elde edersiniz.

    Ürün seti Sıklık (İşlem sayısı)
    RPO 4
    POM 3

    Eşik varsayımını uygularsanız müşterilerin üç üründen oluşan setinin RPO olduğunu anlayabilirsiniz.

    Veri madenciliğinde apriori algoritmasını tartışmak için kolay bir örnek düşündük. Gerçekte bu tür binlerce kombinasyon bulabilirsiniz.

    Apriori Algoritmasının verimliliği nasıl artırılır?

    Apriori algoritmasının etkinliği için kullanılan çeşitli yöntemler vardır.

    Karma tabanlı öğe kümesi sayımı

    Karma tabanlı öğe kümesi sayımında, eşdeğer karma kümesi sayısı eşikten en az olan, nadir bir öğe kümesi olan k-öğe kümesini hariç tutmanız gerekir.

    İşlem Azaltımı

    İşlem azaltmada, herhangi bir sık ​​X öğe kümesini içermeyen bir işlem, sonraki taramalarda değerli hale gelmez.

    Veri madenciliğinde Apriori Algoritması

    Sık öğe kümesi oluşturmayla ilgili apriori algoritmasının bir örneğini daha önce tartışmıştık. Apriori algoritmasının veri madenciliğinde birçok uygulaması vardır.

    Veri madenciliğinde birliktelik kurallarını bulmak için temel gereksinimler aşağıda verilmiştir.

    Kaba Kuvvet Kullan

    Tüm kuralları analiz edin ve bireysel kural için destek ve güven seviyelerini bulun. Daha sonra eşik desteği ve güven seviyesinin altında kalan değerleri eleyin.

    İki aşamalı yaklaşımlar

    İki aşamalı yaklaşım, birliktelik kurallarını bulmak için Kaba Kuvvet yönteminden daha iyi bir seçenektir.

    Aşama 1

    Bu makalede, frekans tablosunun nasıl oluşturulacağını ve eşik desteğinden daha büyük destek değerine sahip öğe kümelerinin nasıl hesaplanacağını zaten tartışmıştık.

    Adım 2

    Birliktelik kuralları oluşturmak için sık öğe kümelerinin ikili bölümünü kullanmanız gerekir. Güven düzeyi en yüksek olanları seçmeniz gerekir.

    Yukarıdaki örnekte RPO kombinasyonunun sık görülen öğe kümesi olduğunu görebilirsiniz. Şimdi RPO kullanarak tüm kuralları öğreniyoruz.

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

    Altı farklı kombinasyonun olduğunu görebilirsiniz. Bu nedenle, eğer n elemanınız varsa, 2 tane olacaktır.N- 2 aday birliktelik kuralı.

    Apriori Algoritmasının Avantajları

    • Büyük öğe kümelerini hesaplamak için kullanılır.
    • Anlaşılması ve uygulanması basittir.

    Apriori Algoritmalarının Dezavantajları

    • Apriori algoritması, hesaplamanın tüm veritabanından geçmesi gerektiğinden destek bulmak için pahalı bir yöntemdir.
    • Bazen çok sayıda aday kuralına ihtiyaç duyarsınız, bu nedenle hesaplama açısından daha pahalı hale gelir.