Machine Learning — Association Rule Mining ( Birliktelik Kural Çıkarımı ) — APriori Algorithm —Eclat Algorithm — Part 14

Image for post
Image for post

Olayların birlikte gerçekleşme durumlarını çözümleyip verileri arası ilişkiler kuran bir makine öğrenmesi yöntemidir. Birçok makine öğrenme algoritması sayısal verilerle çalışır ve bu algoritmaların çok matematiksel olma eğilimindedir (Logistic Regression, Support Vector Machines ). Ancak, Association Rule Mining algoritmaları kategorik veriler ile çok başarılı bir şekilde çalışabilirler.

Association Rule Mining’ e ( Birliktelik Kural Çıkarımı ) örnek olarak genellikle market sepeti uygulaması verilir. Bu işlem, müşterilerin yaptıkları alışverişlerdeki ürünler arasındaki birliktelikleri bularak müşterilerin satın alma alışkanlıklarını çözümler.( Örneğin kola alan müşteri ekmekte alır ya da yumurta alan müşteri gofrette alır vs. ) Bu tip birlikteliklerin keşfedilmesi, müşterilerin hangi ürünleri bir arada aldıkları bilgisini ortaya çıkarır ve market yöneticileri de bu bilgi ışığında raf düzenlerini belirleyerek satış oranlarını artırabilir ve etkili satış stratejileri geliştirebilirler.

Destek ( Support ): Bir varlığı içeren eylem sayısının toplam eylem sayısına oranıdır. ( A / Tüm eylem sayısı )
Güven ( Confidence ): İki varlığı içeren eylem sayısının birine oranıdır.((A+B ) / A ) )

Bir birliktelik kuralı oluşturmak için destek ve güven değerlerine bakılır. Kural için minumum destek ve minumum güven şartı aranır.

Birliktelik kuralı için diğer ölçüler Lift ( Kaldırmak ), Conviction ( Kanaat), All-Confidence ( Tam Güven ), Collective Strength ( Kolektif güç ) ve Leverage’tır. ( Kaldıraç )

Yaygın olarak kullanılan iki tane Association Rule Mining algoritması vardır.

  • APriori Algoritması
  • Eclat Algoritması

APriori Algoritması

Image for post
Image for post
Örnek APriori algoritma çalışması

Makine öğrenmesinde veriler arasındaki ilişkiyi çıkarmak için geliştirilmiş bir algoritmadır. Algoritma aşağıdan yukarıya (bottom-up) yaklaşımı kullanmakta olup, her seferinde tek bir veriyi incelemekte ve bu veriyle diğerleri arasında bir ilişki aramaktadır.

Örneğin yukarıdaki şekilin bir marketteki müşterilerin alışveriş sepetleri olduğunu düşünelim. 1. tabloya baktığımızda alınan ürünleri görüyoruz. ( 1 3 4–2 3 4 vs. ) Algoritma ilk olarak bu ürünlerin frekansını bulur yani toplam alınma sayısını. ( 1. ürün 2 defa alınmış, 3. ürün 3 defa vs. ) Bu değerleri bulduktan sonra en yüksek frekanslının minumum support değerini alır ( %50–3*50/100 = 1.5 ) ve frekansı bu değerden küçük olanlar elenir. Kalan değerlerin kombinasyonu alınarak aynı işlem tekrarlanır ve tablo daha da küçültülür. Bu durum bir ilişki bulununcaya kadar devam eder.

Image for post
Image for post
Çıkan sonuca göre ilişkili ürünler

Eclat Algoritması

Eclat algoritmasının adı Equivalence Class Transformation ( Eşdeğerlik Sınıf Dönüşümü ) kelimelerinin birleşimden gelmektedir. Apriori algoritmasından en büyük farkı Breadth First Search yerine Depth First Search kullanmasıdır. Apriori algoritması ile benzer çalışır. Apriori algoritmasında eleman ( Alışveriş sepetindeki ürün 1,2,3 vs. ) bazlı işlem yapılır ancak Eclat algoritmasında ise elemanların geçtiği transaction ( Alışveriş sepeti 100,200 vs. ) baz alınır.

Sonuç

Hepsi bu kadar. Bu yazıda Association Rule Mining( Birliktelik Kural Çıkarımı), APriori ve Eclat algoritmalarının ne olduğunu ve Python dili ile nasıl kodlanabileceğini öğrendiniz.

Okuduğunuz için teşekkürler.

Written by

Android Developer at Huawei

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store