Apriori Algorithm (Apriori Algoritması)

Sık öğe kümelerini keşfedip birliktelik kuralları üreten, veri madenciliğinin temel referans algoritması.

Apriori, 1994 yılında Rakesh Agrawal ve Ramakrishnan Srikant tarafından geliştirilen temel bir birliktelik kuralı madenciliği algoritmasıdır. Adı, "apriori bilgi" kavramından gelir: algoritma, sık öğe kümelerini bulmak için önceden hesaplanmış küçük kümelerin sonuçlarını önsel bilgi olarak kullanır. Algoritmanın temel ilkesi Apriori Özelliği olarak bilinir: bir öğe kümesi seyrek (minimum destek eşiğinin altında) ise, bu kümenin tüm üst kümeleri de seyrek olacaktır. Bu anti-monotonluk özelliği, aday üretiminde büyük budama (pruning) sağlar ve arama uzayını önemli ölçüde daraltır. Algoritma üç aşamada ilerler: İlk aşamada minimum destek eşiğini karşılayan sık öğe kümeleri keşfedilir; tek öğeden başlanarak her iterasyonda k+1 öğeli adaylar üretilir, eşiği karşılamayanlar budanır. İkinci aşamada bu sık kümelerden minimum güven ve kaldıraç eşiklerini sağlayan birliktelik kuralları türetilir. Üçüncü aşamada kurallar destek, güven ve lift değerleriyle sıralanır. Apriori üç temel metrikle değerlendirilir. Destek (support), bir kural kombinasyonunun tüm işlemlerde görülme sıklığını gösterir. Güven (confidence), öncül verildiğinde sonucun ne kadar olası olduğunu ölçer. Kaldıraç (lift), birlikte görülmenin rastlantısal beklentinin kaç katı olduğunu hesaplar; lift değeri 1'den büyükse pozitif birliktelik vardır. Uygulama alanları oldukça geniştir: perakendede ürün yerleşimi ve promosyon stratejisi, e-ticarette çapraz satış ve kişiselleştirilmiş öneri sistemleri, sağlık sektöründe hastalık-semptom birlikteliği analizi ve siber güvenlikte ağ log'larında saldırı örüntüsü tespiti bunların başında gelir. Apriori'nin temel sınırlılığı, büyük veri kümelerinde çok sayıda veritabanı taraması yapmasıdır. Bu nedenle FP-Growth algoritması, tüm veriyi tek bir FP-ağacına sıkıştırarak yalnızca iki tam tarama yapar; büyük ölçekte Apriori'den genellikle 10-100 kat daha hızlıdır. Bununla birlikte Apriori, şeffaflığı ve adım adım takip edilebilirliği sayesinde veri madenciliği eğitiminde standart referans algoritması olmayı sürdürmektedir.

Apriori Özelliği ve Budama Mekanizması

Algoritmanın çekirdeğini Apriori Özelliği oluşturur: seyrek bir öğe kümesinin tüm üst kümeleri de seyrek olacağından, minimum destek eşiğini karşılamayan bir küme keşfedildiğinde onun tüm uzantıları otomatik olarak elenir. Bu budama, algoritmanın üstel aday uzayını etkin biçimde daraltmasını sağlar.

Algoritmanın Adım Adım Çalışması

  • check_circle Sık Öğe Kümesi Keşfi: Tek öğeli kümelerden başlanır; her iterasyonda k-öğeli sık kümelerden k+1-öğeli adaylar üretilir ve destek değerleri hesaplanır.
  • check_circle Birliktelik Kuralı Üretimi: Sık kümelerden, minimum güven (confidence) eşiğini karşılayan tüm kural kombinasyonları türetilir.
  • check_circle Kaldıraç ile Eleme: Kurallar lift değerine göre sıralanır; lift > 1 olan kurallar rastlantısal birlikteliğin ötesine geçtiğinden tercih edilir.

Temel Metrikler: Destek, Güven ve Kaldıraç

Destek (support), bir kural öğe kombinasyonunun tüm işlemler içindeki oranını verir. Güven (confidence), öncül öğe alındığında sonucun da alınma olasılığını ölçer. Kaldıraç (lift), birlikte görülmenin bağımsız görülmeden kaç kat fazla olduğunu hesaplar: lift = 1 bağımsızlığı, lift > 1 pozitif birlikteliği ifade eder. Minimum eşikler alan uzmanı tarafından belirlenir; çok düşük destek değerleri anlamsız çok sayıda kural üretir.

Uygulama Alanları

  • check_circle Market Sepeti Analizi: Birlikte satın alınan ürünlerin tespiti; raf düzeni ve çapraz satış kampanyası planlaması.
  • check_circle E-Ticaret Öneri Sistemleri: 'Bu ürünü alanlar şunu da aldı' gibi kişiselleştirilmiş ürün önerileri.
  • check_circle Sağlık ve Biyoinformatik: Hastalık-semptom birlikteliği, ilaç-yan etki örüntüsü ve gen ekspresyon analizi.
  • check_circle Ağ Güvenliği: Log kayıtlarında birlikte ortaya çıkan olay dizilerinin tespiti ve saldırı imzası madenciliği.
  • check_circle Belge ve Web Madenciliği: Birlikte tıklanan bağlantılar veya birlikte okunan makalelerin örüntü analizi.

Apriori ile FP-Growth Karşılaştırması

Apriori'nin en büyük zayıflığı, k öğeli her aday için veritabanının baştan taranmasıdır; büyük veri kümelerinde bu I/O maliyeti katlanarak artar. FP-Growth algoritması tüm veriyi tek bir FP-ağacına sıkıştırarak yalnızca iki tam tarama yapar; bu nedenle büyük ölçekte Apriori'den genellikle 10-100 kat daha hızlıdır. Apriori ise şeffaflığı ve adım adım takip edilebilirliği ile eğitim ortamlarında ve küçük veri kümelerinde tercih edilir.

Sık Sorulan Sorular

  • check_circle Minimum destek değeri nasıl seçilir?: Çok düşük destek anlamsız çok sayıda kural üretir, çok yüksek destek nadir fakat değerli örüntüleri kaçırır. Genellikle veri boyutu ve alan bilgisiyle deneme-yanılma yöntemiyle ayarlanır.
  • check_circle Apriori yalnızca market sepeti için mi kullanılır?: Hayır; web tıklama akışı, sağlık kayıtları, ağ güvenliği logları ve eğitim verisi gibi her türlü işlem tabanlı veride uygulanabilir.
  • check_circle Python'da nasıl kullanılır?: mlxtend kütüphanesindeki apriori() ve association_rules() fonksiyonları ile birkaç satır kodla uygulanabilir.
  • check_circle Apriori ile negatif birliktelik tespit edilebilir mi?: Standart Apriori yalnızca pozitif birliktelikleri bulur; negatif kurallar için ek ön işleme adımları gerekir.
  • check_circle Lift değeri ne zaman anlamlıdır?: Lift > 1 pozitif, lift < 1 negatif, lift = 1 bağımsız birliktelik anlamına gelir. Yüksek lift ve yeterli destek kombinasyonu en değerli kuralları işaret eder.