tag BirliktelikKuralı
Apriori Algoritması (Apriori Algoritması)
Bu sayfada BirliktelikKuralı (Apriori Algoritması (Apriori Algoritması)) etiketi ile işaretlenmiş 3 yapay zeka kavramını bulabilirsiniz.
Apriori, işlem veritabanlarındaki sık geçen öğe kümelerini (frequent itemsets) bulmak ve bunlardan birliktelik kuralları (association rules) çıkarmak için kullanılan temel veri madenciliği algoritmasıdır. Rakesh Agrawal ve Ramakrishnan Srikant tarafından IBM'de geliştirilerek 1994 VLDB konferansında yayımlanan bu yöntem, özellikle market sepeti analizi alanında devrim yaratan bir teknik oldu. Algoritma üç temel ölçüte dayanır. Destek (Support), bir öğe kümesinin tüm işlemler içindeki görünme oranıdır. Güven (Confidence), bir öncül kümesi satın alındığında ardıl kümesinin de satın alınma olasılığını ifade eder. Kaldıraç (Lift), gözlemlenen destek ile rasgele beklentinin oranıdır; lift>1 ise iki öğe arasında pozitif bir korelasyon vardır. Algoritma yinelemeli (iterative) bir yaklaşımla çalışır. İlk adımda her ürünün tek başına minimum destek eşiğini geçip geçmediği kontrol edilerek sık 1-öğe kümeleri belirlenir. Ardından bu sık kümeler birleştirilerek aday k-öğe kümeleri oluşturulur. Burada Apriori'nin güç noktası devreye girer: bir öğe kümesinin sık olması için tüm alt kümelerinin de sık olması zorunludur (downward closure özelliği). Bu kural, herhangi bir alt kümesi seyrek olan adayları tarama yapılmadan elemeye olanak tanır ve hesaplama maliyetini önemli ölçüde azaltır. Her adımda veritabanı taranarak destek sayımı yapılır; minimum destek eşiğinin altındakiler elenerek bir sonraki adıma geçilir. Pratik bir örnekle açıklamak gerekirse: 10.000 süpermarket işleminden 3.000'inde {ekmek, tereyağı} birlikte satın alınmışsa destek %30'dur. Ekmek alanların %72'si tereyağı da almışsa güven %72'dir. Bu durumda kaldıraç 1'den büyük olduğundan bu kural rasgele birlikteliğin ötesinde anlamlı bir ilişkiye işaret eder; çapraz satış veya raf düzenleme kararı için kullanılabilir. Algoritmanın temel sınırlılığı her öğe kümesi boyutu için veritabanının baştan taranmasıdır; büyük veri setlerinde bu çok sayıda G/Ç işlemi anlamına gelir. FP-Growth algoritması tek geçişte bir ağaç (FP-Tree) yapısı oluşturarak bu sorunu büyük ölçüde ortadan kaldırır ve pratikte Apriori'nin yerini almıştır. Python'da mlxtend.frequent_patterns.apriori fonksiyonuyla, büyük ölçekte ise PySpark MLlib'in FP-Growth implementasyonuyla kolayca uygulanabilir. Kullanım alanları arasında e-ticaret ürün öneri sistemleri, tıbbi tanı örüntü tespiti, web kullanım madenciliği, dolandırıcılık tespiti ve ağ güvenliği anomali analizi öne çıkar. Türkiye'deki e-ticaret platformları ve perakende CRM sistemleri bu tür birliktelik analizine dayanmaktadır.
Apriori Algoritması (Apriori Algoritması)
Apriori, işlem veritabanlarındaki sık geçen öğe kümelerini (frequent itemsets) bulmak ve bunlardan birliktelik kuralları (association rules) çıkarmak için kullanılan temel veri madenciliği algoritmasıdır. Rakesh Agrawal ve Ramakrishnan Srikant tarafından IBM'de geliştirilerek 1994 VLDB konferansında yayımlanan bu yöntem, özellikle market sepeti analizi alanında devrim yaratan bir teknik oldu. Algoritma üç temel ölçüte dayanır. Destek (Support), bir öğe kümesinin tüm işlemler içindeki görünme oranıdır. Güven (Confidence), bir öncül kümesi satın alındığında ardıl kümesinin de satın alınma olasılığını ifade eder. Kaldıraç (Lift), gözlemlenen destek ile rasgele beklentinin oranıdır; lift>1 ise iki öğe arasında pozitif bir korelasyon vardır. Algoritma yinelemeli (iterative) bir yaklaşımla çalışır. İlk adımda her ürünün tek başına minimum destek eşiğini geçip geçmediği kontrol edilerek sık 1-öğe kümeleri belirlenir. Ardından bu sık kümeler birleştirilerek aday k-öğe kümeleri oluşturulur. Burada Apriori'nin güç noktası devreye girer: bir öğe kümesinin sık olması için tüm alt kümelerinin de sık olması zorunludur (downward closure özelliği). Bu kural, herhangi bir alt kümesi seyrek olan adayları tarama yapılmadan elemeye olanak tanır ve hesaplama maliyetini önemli ölçüde azaltır. Her adımda veritabanı taranarak destek sayımı yapılır; minimum destek eşiğinin altındakiler elenerek bir sonraki adıma geçilir. Pratik bir örnekle açıklamak gerekirse: 10.000 süpermarket işleminden 3.000'inde {ekmek, tereyağı} birlikte satın alınmışsa destek %30'dur. Ekmek alanların %72'si tereyağı da almışsa güven %72'dir. Bu durumda kaldıraç 1'den büyük olduğundan bu kural rasgele birlikteliğin ötesinde anlamlı bir ilişkiye işaret eder; çapraz satış veya raf düzenleme kararı için kullanılabilir. Algoritmanın temel sınırlılığı her öğe kümesi boyutu için veritabanının baştan taranmasıdır; büyük veri setlerinde bu çok sayıda G/Ç işlemi anlamına gelir. FP-Growth algoritması tek geçişte bir ağaç (FP-Tree) yapısı oluşturarak bu sorunu büyük ölçüde ortadan kaldırır ve pratikte Apriori'nin yerini almıştır. Python'da mlxtend.frequent_patterns.apriori fonksiyonuyla, büyük ölçekte ise PySpark MLlib'in FP-Growth implementasyonuyla kolayca uygulanabilir. Kullanım alanları arasında e-ticaret ürün öneri sistemleri, tıbbi tanı örüntü tespiti, web kullanım madenciliği, dolandırıcılık tespiti ve ağ güvenliği anomali analizi öne çıkar. Türkiye'deki e-ticaret platformları ve perakende CRM sistemleri bu tür birliktelik analizine dayanmaktadır.
Association Rule Mining (Birliktelik Kuralı Madenciliği)
Birliktelik kuralı madenciliği (association rule mining), büyük işlem veritabanlarında öğeler arasındaki anlamlı birlikte-oluşum örüntülerini keşfeden denetimsiz bir makine öğrenmesi yöntemidir. Temel çıktısı "Eğer A ise B" biçiminde ifade edilen kurallar bütünüdür; bu kurallar destek (support), güven (confidence) ve kaldıraç (lift) metrikleriyle değerlendirilir. Destek, bir kural ya da öğe kümesinin tüm işlemler içindeki görülme sıklığını gösterir; çok düşük destekli kurallar istatistiksel açıdan anlamsız kabul edilir. Güven, A gerçekleştiğinde B'nin de gerçekleşme olasılığını, yani öngörücü gücü ölçer. Lift ise A ve B'nin bağımsız olması durumuna göre gözlemlenen birlikteliğin kaç kat daha güçlü olduğunu hesaplar: lift değeri birden büyükse pozitif ilişki, birden küçükse negatif ilişki vardır, bire eşitse iki öğe birbirinden bağımsızdır. Temel algoritmalar üç ana grupta toplanır. Apriori, anti-monoton özelliği kullanan klasik yaklaşımdır: seyrek olan bir kümenin üst kümesi de seyrek olacağından budama (pruning) ile aday küme uzayı sistematik biçimde daraltılır. FP-Growth ise veriyi bir ağaç yapısına (FP-Tree) sıkıştırarak tek geçişte sık öğe kümelerini çıkarır; bu yöntem Apriori'den 10 ila 100 kat daha hızlı çalışabilmektedir. Eclat, dikey veri biçimini kullanarak küme kesişim işlemiyle destek hesabını hızlandırır. Uygulama alanları son derece geniştir: e-ticaret öneri motorları, market sepet analizi, ilaç yan etki kombinasyonu tespiti, siber güvenlikte saldırı örüntüsü tanıma, finans sektöründe dolandırıcılık tespiti ve biyoinformatikte gen ifadesi analizi bu yöntemin aktif kullanım alanlarıdır. Kural patlaması (rule explosion) sorununa karşı chi-kare testi ve conviction gibi ek filtreler uygulanabilir; ancak kuralların nedensellik değil yalnızca korelasyon gösterdiği her zaman göz önünde bulundurulmalıdır. Veri kalitesi, minimum destek ve güven eşiklerinin doğru ayarlanması, elde edilen kuralların pratik değerini doğrudan belirler.
Frequent Pattern Mining (Sık Kalıp Madenciliği)
Sık Kalıp Madenciliği (Frequent Pattern Mining), büyük veri kümelerinde birlikte sıklıkla ortaya çıkan öğe gruplarını, dizisel kalıpları veya yapısal örüntüleri belirlemeyi hedefleyen temel bir veri madenciliği tekniğidir. "Sık" (frequent) kavramı, bir kalıbın belirli bir minimum destek eşiğini (minimum support threshold) aşması anlamına gelir; yani o kalıbın, tüm işlemlerin (transaction) en az belirlenen yüzdesinde bulunması gerekir. En yaygın kullanım senaryosu birliktelik kuralı madenciliğidir (association rule mining). Süpermarket sepet analizinde "ekmek alan müşteri yüzde seksen olasılıkla tereyağı da alır" türünden kurallar bu yöntemle keşfedilir. Amazon ve Netflix'in öneri sistemleri, kredi kartı dolandırıcılık tespiti ve ağ güvenliği anomali analizi de sık kalıp madenciliğini yoğun biçimde kullanır. Alandaki ilk ve en yaygın algoritma, 1994'te Agrawal ve Srikant tarafından önerilen Apriori'dir. Aday öğe seti üretimi ve budama (candidate generation and pruning) prensibiyle çalışır; her adımda veritabanını yeniden tarar. Bu tarama maliyeti büyük veri setlerinde belirgin bir darboğaz oluşturduğundan, 2000 yılında Jiawei Han ve arkadaşları FP-Growth (Frequent Pattern Growth) algoritmasını geliştirdi. FP-Growth, veriyi kompakt bir FP-Tree yapısına sıkıştırır ve tekrarlı veritabanı taramasını ortadan kaldırarak Apriori'den genellikle 10 ila 100 kat daha hızlı çalışır. Kalıpların değerini belirleyen üç temel ölçüt vardır: destek (support), güven (confidence) ve lift. Destek, bir kalıbın tüm işlemler içindeki görülme oranıdır. Güven, A → B kuralında A'nın geçtiği işlemlerin ne kadarında B'nin de geçtiğini gösterir. Lift ise A ve B'nin bağımsız rastlantısına kıyasla birlikte görülme oranını ölçer; 1'den büyük lift pozitif ilişkiye işaret eder. Bu üçlü, anlamlı ve uygulanabilir kuralları önemsiz korelasyonlardan ayırt etmek için birlikte kullanılır. Günümüzde sık kalıp madenciliği yalnızca kural keşfiyle sınırlı değildir; özellik mühendisliğinde anlamlı özellik kombinasyonlarını bulmak için denetimsiz ön analiz adımı olarak da kullanılır. Python'da mlxtend kütüphanesi apriori() ve fpgrowth() fonksiyonlarıyla, Apache Spark'ta ise MLlib'in FPGrowth modülüyle ölçeklenebilir uygulamalar hayata geçirilebilir.