Birliktelik Kuralları ve Ardışık Örüntüler Nedir?

Basira Editör Ekibi · · 7 dk okuma · Güncellendi: 8 Ekim 2026

Bilimsel inceleme: Doç. Dr. Hasan Yıldırım ·

  • #makine-ogrenmesi

Anahtar çıkarımlar

  • Birliktelik kuralları, işlemlerde birlikte görülen öğeleri "A varsa B de var" biçiminde özetleyen, etiket gerektirmeyen bir veri madenciliği yöntemidir.
  • Bir kural üç ölçütle değerlendirilir. Destek kuralın ne kadar sık görüldüğünü gösterir. Güven, A'yı içeren işlemlerin ne kadarında B'nin de bulunduğudur. Kaldıraç bu güvenin B'nin genel sıklığına oranıdır.
  • Yüksek güven tek başına ilişki göstermez: sonuç öğesi zaten çok yaygınsa güven yüksek, kaldıraç ise 1'e yakın çıkabilir.
  • Ardışık örüntüler aynı müşterinin zaman içindeki işlemlerinde öğelerin sırasını da hesaba katar; bir dizinin desteği o sırayı içeren müşterilerin payıdır.
  • Kurallar nedensellik göstermez; çok sayıda kural tarandığı için rastlantısal kurallar da çıkar ve önemli bulgular yeni veride doğrulanır.
İçindekiler

Birliktelik kuralları, işlemlerde birlikte görülen öğeleri “A varsa B de var” biçiminde özetleyen bir veri madenciliği yöntemidir. Market sepetlerinde birlikte alınan ürünleri, web sitelerinde birlikte ziyaret edilen sayfaları bulmak için kullanılır. Ardışık örüntüler ise aynı müşterinin alışverişlerinde öğelerin hangi sırayla geldiğini bulur.

Birliktelik kuralları nedir?

Bir birliktelik kuralı A → B biçiminde yazılır: A öğe kümesini içeren işlemler B öğe kümesini de içerme eğilimindedir. A kuralın öncülü (sol tarafı), B sonucudur (sağ tarafı); A ile B ortak öğe taşımaz. Kavramı Agrawal vd. (1993) tanımlamıştır; ilk tanımda sonuç tek bir öğeydi. Örneğin Kahve → Süt kuralı, kahve alan müşterilerin süt de alma eğiliminde olduğunu söyler.

Yöntem gözetimsizdir: önceden belirlenmiş bir hedef değişken ya da etiket yoktur. Veri bir tabloda tutulur: her satır bir işlem (bir alışveriş, bir oturum), her sütun bir öğedir. Hücre, öğenin o işlemde bulunup bulunmadığını gösterir. Klasik birliktelik kuralı öğelerin miktarını değil, yalnızca varlığını kullanır.

  • Perakende: Birlikte alınan ürünleri raf düzeninde ve kampanyalarda kullanmak.
  • Web ve içerik: Birlikte okunan sayfalardan öneri listeleri kurmak.
  • Sağlık: Hasta kayıtlarında birlikte görülen tanıları ya da ilaçları keşfetmek; bulgular klinik olarak ayrıca değerlendirilir.

Ardışık örüntüler nedir?

Ardışık örüntüler, aynı müşterinin zaman içindeki işlemlerinde öğelerin hangi sırayla görüldüğünü inceler (Agrawal ve Srikant, 1995). Birliktelik kuralı tek bir işlemin içine bakar; ardışık örüntü bir müşterinin işlem dizisine bakar. ⟨Telefon, Kılıf⟩ dizisi, önce telefon sonra kılıf alan müşterileri sayar. Aynı alışverişte birlikte alınmaları yetmez.

Bir dizinin desteği, o diziyi sırasıyla içeren müşterilerin payıdır. Öğelerin arka arkaya gelmesi gerekmez; sıranın korunması yeter. Dört müşteriyi düşünün: A önce telefon, sonra kılıf, sonra kulaklık almış. B telefon, sonra kulaklık; C kılıf, sonra telefon; D telefon, sonra kılıf almış.

⟨Telefon, Kılıf⟩ dizisi A ve D’de vardır, desteği 2/4 = 0.5’tir. C de iki ürünü almıştır ama ters sırayla; sıra gözetilmeseydi destek 3/4 olurdu. Birçok uygulamada iki alışveriş arasındaki süre de sınırlanır: telefondan iki yıl sonra alınan kılıf aynı örüntü sayılmayabilir.

Ardışık örüntüler, bir alışverişten sonra gelecek alışverişe dair ipucu bulmak için kullanılır. Öğrencilerin ders alma sırası ya da bir web sitesindeki gezinti yolları da böyle incelenir.

Her iki yöntem de makine öğrenmesinin gözetimsiz, keşfedici tarafındadır. Kendileri bir tahmin modeli değildir; bulunan örüntüler öneri ya da tahmin sistemlerine girdi olabilir. Bulgular, sonradan sınanacak hipotezler olarak okunur.

Yöntem: kurallar nasıl bulunur?

Kural bulma iki adımlıdır (Agrawal vd., 1993). Önce desteği belirlenen eşiğe eşit ya da ondan büyük olan öğe kümeleri, yani sık öğe kümeleri bulunur. Sonra bu kümelerden güveni belirlenen eşiğe eşit ya da ondan büyük olan kurallar üretilir. Eşikler analiz başlamadan seçilir.

Bütün öğe kümelerini saymak, öğe sayısı arttıkça olanaksız hâle gelir. Algoritmalar bu aramayı kısaltır:

  • Apriori: Sık bir öğe kümesinin bütün alt kümeleri de sıktır. Apriori bu özelliği kullanarak sık olmayan bir kümenin üst kümelerini hiç saymaz. Kümeleri küçükten büyüğe, katman katman büyütür (Agrawal ve Srikant, 1994).
  • FP-Growth: Veriyi sıkıştırılmış bir ağaçta (FP-ağacı) tutar ve aday küme üretmeden sık kümeleri bulur (Han vd., 2000). Aynı eşiklerle Apriori ile aynı sık kümeleri bulur; büyük veride genellikle daha hızlıdır.
  • Eclat: Her öğe için o öğeyi içeren işlemlerin listesini tutar (dikey biçim). Kümelerin desteğini bu listelerin kesişimiyle hesaplar (Zaki, 2000).
  • GSP, SPADE ve PrefixSpan: Ardışık örüntüler için kullanılır. GSP, Apriori’nin mantığını dizilere uygular (Srikant ve Agrawal, 1996). SPADE dikey biçimle çalışır (Zaki, 2001). PrefixSpan dizileri ortak öneklerinden büyütür (Pei vd., 2004).

Veri hazırlığı

Veri işlem × öğe tablosuna çevrilir. Aynı ürünün farklı adları (ör. “süt 1 L” ve “süt 1L”) birleştirilir. Ürün düzeyi soruya göre seçilir: marka düzeyinde çok seyrek olan ürünler kategori düzeyinde (ör. “süt ürünleri”) birleştirilebilir. Ardışık örüntülerde her işlemin müşteri kimliği ve zamanı da gerekir.

Değerlendirme ölçütleri: destek, güven ve kaldıraç

N işlemli bir veride üç ölçüt kullanılır. Destek (support), kuralın bütün işlemlerdeki sıklığıdır:

destek(A→B)=A ile B’yi birlikte ic¸eren is¸lem sayısıN\text{destek}(A \rightarrow B) = \frac{A \text{ ile } B\text{'yi birlikte içeren işlem sayısı}}{N}

Güven (confidence), A’yı içeren işlemlerin ne kadarında B’nin de bulunduğudur:

gu¨ven(A→B)=destek(A∪B)destek(A)\text{güven}(A \rightarrow B) = \frac{\text{destek}(A \cup B)}{\text{destek}(A)}

Burada destek(A ∪ B), A’daki ve B’deki öğelerin hepsini birlikte içeren işlemlerin payıdır; destek(A → B) ile aynıdır. Olasılıktaki “A ya da B” anlamına gelmez.

Kaldıraç (lift), bu güvenin B’nin genel sıklığına oranıdır (Brin vd., 1997):

kaldırac¸(A→B)=gu¨ven(A→B)destek(B)\text{kaldıraç}(A \rightarrow B) = \frac{\text{güven}(A \rightarrow B)}{\text{destek}(B)}

Kaldıraç 1 ise A ile B birbirinden bağımsız görünür. 1’den büyükse ikisi, bağımsız olsalardı beklenecek olandan daha sık birlikte görülür; 1’den küçükse daha seyrek. Güven yönlüdür, kaldıraç simetriktir: A → B ile B → A’nın kaldıracı aynıdır. Buradaki kaldıraç İngilizce lift’in karşılığıdır; yazılımların leverage adıyla verdiği destek(A ∪ B) − destek(A) × destek(B) farkı başka bir ölçüttür.

Ölçütlerin her biri tek başına yanıltabilir. Düşük destekli bir kural birkaç işleme dayanır ve rastlantıyla çıkmış olabilir. Yüksek güven, sonuç öğesi zaten yaygınsa hiçbir ilişki göstermeyebilir. Bu yüzden üçü birlikte okunur.

Sınırlar ve sorumluluk

Kural nedensellik göstermez: kahve alanların süt de alması, birinin ötekine yol açtığı anlamına gelmez. Binlerce olası kural tarandığı için bazı kurallar yalnızca rastlantıyla eşikleri geçer. Önemli bir bulgu yeni bir veri döneminde yeniden sınanır (Webb, 2007).

Kişisel veriyle çalışılıyorsa (sağlık kayıtları, gezinti geçmişi) yalnızca amaca yetecek kadar veri kullanılır. Ad ve kimlik numarasını silmek yetmez. Kart kayıtlarında dört alışverişin günü ve yeri, kişilerin %90’ının kimliğini yeniden belirlemeye yetmiştir (de Montjoye vd., 2015). Türkiye’de kişisel verilerin işlenmesi 6698 sayılı Kişisel Verilerin Korunması Kanunu’na tabidir.

Kural sayısı hızla büyür. Bu yüzden en anlamlı kuralları seçen ilginçlik ölçütleri ve kuralları istatistiksel olarak sınama yolları geliştirilmiştir (Tan vd., 2004; Webb, 2007).

Çözümlü örnek: market sepetleri

Öğretici amaçla hazırlanmış bu veri, bir mahalle marketinin 200 alışverişini taklit ediyor. Her satır bir alışveriştir; 1, ürünün o sepette bulunduğunu gösterir. Veriyi aşağıdan indirip aynı hesabı kendiniz yapabilirsiniz.

Bir mahalle marketinin 200 alışverişini taklit eden öğretici veri (her satır bir alışveriş, 1 = ürün sepette)
EkmekSütPeynirKahveÇayKek
110000
110000
100011
100010
100010
101000
100010
101000
111101
101000
100100
111100

İlk 12 satır (toplam 200) · Bu örnekteki tüm sayılar NumPy 2.2.6 ile bağımsız olarak yeniden hesaplanır. Veriyi indirin (CSV)

Önce her ürünün desteği, yani sepetlerin ne kadarında bulunduğu:

ÜrünSepet sayısıDestek
Ekmek1690.845
Süt790.395
Peynir610.305
Kahve620.310
Çay590.295
Kek440.220

Dört kural ve ölçütleri:

KuralDestekGüvenKaldıraç
Peynir → Ekmek0.2550.840.99
Kahve → Süt0.2300.741.88
Çay → Kahve0.0350.120.38
Kahve, Süt → Kek0.1150.502.27

Sonuçların yorumu

Peynir → Ekmek: Peynir alanların %84’ü ekmek de almış; güven yüksek. Ama ekmek zaten sepetlerin %84,5’inde var. Kaldıracın 0,99 olması, ekmek oranının peynir alanlarla almayanlarda neredeyse aynı olduğunu gösterir. Güvene bakıp bu kuralı kampanyaya taşımak yanlış olurdu.

Kahve → Süt: Kahve alanların %74’ü süt de almış; süt bütün sepetlerin %39,5’inde. Kahve alanlarda süt, bütün sepetlere göre yaklaşık 1,9 kat sık görülüyor. Kural 46 sepete dayanır; hem yaygın hem de belirgin bir birlikteliktir.

Çay → Kahve: Kaldıraç 0,38’dir: çay alanlar kahveyi beklenenden çok daha seyrek alıyor. İki ürün bağımsız olsaydı yaklaşık 18 sepette birlikte görülürdü; yalnızca 7 sepette görülmüşler. Olumsuz bir birliktelikte düşük destek bulgunun kendisidir. Birinin ötekinin yerine alınması yalnızca bir hipotezdir; çay ve kahve içenlerin farklı müşteriler olması da aynı deseni üretir.

Kahve, Süt → Kek: Kahve ile sütü birlikte alanların yarısı kek de almış; kek bütün sepetlerin %22’sinde. Kaldıraç 2,27’dir ve kural 23 sepete dayanır. Tek öğeli kurallar da birliktelik gösterir ama daha zayıf: Kahve → Kek için kaldıraç 1,76, Süt → Kek için 1,44. İki öğeli öncül, birlikteliğin en güçlü olduğu sepetleri ayırır.

Kaldıracı 1’den küçük bir kuralın güveni, sonucun desteğinden de küçüktür. Sonucun desteği güven eşiğinin (ör. 0,5) altındaysa kural listeden düşer. Çay → Kahve burada güven eşiği düşük tutulduğu için görünür. Sonuç çok yaygınsa kural eşiği yine de geçebilir: Peynir → Ekmek’in kaldıracı 1’in altında, güveni 0,84’tür.

Bu örnekte kurallar önceden seçildi. Gerçek bir analizde algoritma eşikleri geçen bütün kuralları listeler. Listeyi sıralayıp iş bilgisiyle süzmek analistin işidir.

Hangi araçlarla yapılır?

Basira’da birliktelik kuralı ve ardışık örüntü analizi henüz yok. Birliktelik kuralları için R’da arules paketi (Hahsler vd., 2005), Python’da mlxtend kütüphanesi kullanılabilir; scikit-learn’de birliktelik kuralı yoktur. Ardışık örüntüler için R’da arulesSequences paketi SPADE’i uygular; mlxtend ardışık örüntü bulmaz.

Bu örneğin kurallarını R’da şöyle bulabilirsiniz:

library(arules)
sepet <- read.csv("birliktelik-market-sepeti.csv", check.names = FALSE, fileEncoding = "UTF-8")
islemler <- as(as.matrix(sepet) == 1, "transactions")
kurallar <- apriori(islemler, parameter = list(supp = 0.03, conf = 0.1, minlen = 2))
secilen <- c("{Peynir} => {Ekmek}", "{Kahve} => {Süt}", "{Çay} => {Kahve}", "{Süt,Kahve} => {Kek}")
inspect(kurallar[labels(kurallar) %in% secilen])   # tablodaki dört kural
inspect(head(sort(kurallar, by = "lift"), 10))     # kaldıracı en yüksek on kural

Eşikler, Çay → Kahve kuralı da listeye girsin diye düşük seçildi; bu yüzden çıktıda tablodakilerden çok daha fazla kural vardır. arules sağ tarafa yalnız tek öğe koyar, mlxtend çok öğeli sağ taraflar da üretir; aynı eşiklerle iki araç farklı sayıda kural listeleyebilir.

Sık sorulan sorular

Destek ve güven eşiklerini nasıl seçmeliyim?

Veri büyüklüğüne ve soruya göre. Destek eşiği çok düşükse rastlantısal kurallar çoğalır, çok yüksekse ilginç ama seyrek birliktelikler kaybolur. Eşikler analizden önce belirlenir ve raporlanır.

Kaldıraç 1’den büyükse ilişki kesin midir?

Hayır. Kaldıraç az sayıda işleme dayanıyorsa rastlantıyla 1’den büyük çıkabilir. Tek bir kural, A’nın ve B’nin varlığından kurulan 2×2 tabloda ki-kare bağımsızlık testi ile sınanabilir. Çok sayıda kural tarandıysa p değerleri çoklu karşılaştırmaya göre düzeltilir ve önemli bulgular yeni veride doğrulanır.

Birliktelik kuralı ile korelasyon arasındaki fark nedir?

Korelasyon iki değişkenin birlikte değişimini tek bir sayıyla özetler. Birliktelik kuralı ise çok sayıda öğe arasında birlikte görülen öğe kümelerini tarar; yalnız güven yönlüdür, destek ve kaldıraç simetriktir. Tek bir öğe çifti için ikisi buluşur: iki öğe 2×2 bir tablo kurar ve phi katsayısı bu tablonun korelasyonudur. İki sürekli değişken için korelasyon analizi kullanılır.

Birliktelik kuralları ile ardışık örüntüler arasındaki fark nedir?

Birliktelik kuralı tek bir işlemin içinde birlikte görülen öğelere bakar. Ardışık örüntü aynı müşterinin işlemlerini zaman sırasıyla izler ve öğelerin sırasını da hesaba katar.

Bu yöntem makine öğrenmesinin hangi türüne girer?

Gözetimsiz öğrenmeye: veride hedef değişken yoktur. Makine öğrenmesinin genel çerçevesi için makine öğrenmesi ve alt bileşenleri yazısına, gözetimsiz öğrenmenin bir başka yöntemi için kümeleme analizi yazısına bakabilirsiniz.

Kaynakça

  1. Agrawal, R., Imieliński, T., & Swami, A. (1993). Mining association rules between sets of items in large databases. Proceedings of the 1993 ACM SIGMOD International Conference on Management of Data, 207–216.
  2. Agrawal, R., & Srikant, R. (1994). Fast algorithms for mining association rules. Proceedings of the 20th International Conference on Very Large Data Bases, 487–499.
  3. Agrawal, R., & Srikant, R. (1995). Mining sequential patterns. Proceedings of the Eleventh International Conference on Data Engineering, 3–14.
  4. Brin, S., Motwani, R., Ullman, J. D., & Tsur, S. (1997). Dynamic itemset counting and implication rules for market basket data. Proceedings of the 1997 ACM SIGMOD International Conference on Management of Data, 255–264.
  5. de Montjoye, Y.-A., Radaelli, L., Singh, V. K., & Pentland, A. S. (2015). Unique in the shopping mall: On the reidentifiability of credit card metadata. Science, 347(6221), 536–539.
  6. Hahsler, M., Grün, B., & Hornik, K. (2005). arules: A computational environment for mining association rules and frequent item sets. Journal of Statistical Software, 14(15).
  7. Han, J., Pei, J., & Yin, Y. (2000). Mining frequent patterns without candidate generation. Proceedings of the 2000 ACM SIGMOD International Conference on Management of Data, 1–12.
  8. Pei, J., Han, J., Mortazavi-Asl, B., Wang, J., Pinto, H., Chen, Q., Dayal, U., & Hsu, M.-C. (2004). Mining sequential patterns by pattern-growth: The PrefixSpan approach. IEEE Transactions on Knowledge and Data Engineering, 16(11), 1424–1440.
  9. Srikant, R., & Agrawal, R. (1996). Mining sequential patterns: Generalizations and performance improvements. In Advances in Database Technology — EDBT '96 (pp. 1–17). Springer.
  10. Tan, P.-N., Kumar, V., & Srivastava, J. (2004). Selecting the right objective measure for association analysis. Information Systems, 29(4), 293–313.
  11. Webb, G. I. (2007). Discovering significant patterns. Machine Learning, 68(1), 1–33.
  12. Zaki, M. J. (2000). Scalable algorithms for association mining. IEEE Transactions on Knowledge and Data Engineering, 12(3), 372–390.
  13. Zaki, M. J. (2001). SPADE: An efficient algorithm for mining frequent sequences. Machine Learning, 42(1–2), 31–60.

Analizinizi şimdi yapın

Basira’da kendiniz yapın

Verinizi yükleyin; Basira doğru testi önerir, varsayımları denetler ve sonucu raporlar.

Ücretsiz deneyin

Uzmanla çalışın

Tez ya da makaleniz için doktora düzeyinde uzmanlar analizinizi yapar veya denetler.

Uzmana danışın

İlgili yazılar