«

»

Kas 01 2015

Veri madenciliğinde R programlama ile Apriori uygulaması

Apriori Algoritması (Birliktelik Kuralları Çıkarımı)

RlogoApriori, genellikle market-sepet analizinde kullanılan bir algoritma. Her bir alışveriş bir transection olarak değerlendiriliyor. Her transection’ın içerdiği ürünlere göre; hangi ürünlerin birlikte alındığını belirlemek için kullanılıyor. Bu nedenle, “birliktelik kuralları çıkarımı” ismi de veriliyor bu çalışmalara.

Sadece market-sepet analizi değil tabii, çok sayıda öznitelik içeren veri setlerinde de kullanılıyor. Bu yazıda SAÜ’den Yrd. Doç. Dr. Nilüfer Yurtay‘ın bir örnek çalışması üzerinden uygulayacağız. Bu çalışmada kişisel özelliklerin (boy, kilo, yaş, kan grubu, ağrı şikayeti) arasındaki ilişki araştırılmaya çalışılacak.

Çalışma sırasında R Programlama dilini kullanacağız. IDE olarak; Windows ve Linux üzerinde çalışabilen ve kişisel kullanım için ücretsiz olan RStudio programını kullandım.

Kullanılan Veri Seti

Basit ve anlaşılır olması açısından 13 tane veri içeren küçük bir veri seti kullanacağız. veri seti şöyle:

gender age height weight blood relative headache
female 18 165 53 A Rh + yes
female 18 171 60 0 Rh + yes
male 19 167 73 0 Rh + yes
male 18 170 65 AB Rh + no
male 18 183 76 0 Rh + no
male 20 179 100 0 Rh + no
male 18 175 72 A Rh + yes
male 18 175 90 0 Rh + yes
male 18 179 61 0 Rh + yes
female 18 163 57 A Rh + yes
male 18 181 82 B Rh + yes
male 18 177 81 0 Rh + yes
male 19 181 93 0 Rh + yes

Bu veri setini veriler.csv ismi ile kaydettim. Aşağıda da CSV dosyasının ilk birkaç satırını fikir vermesi için ekledim:

Şimdi bu veriler.csv dosyasını, R kodları ile açıp işleyeceğiz.

R ile Apriori Uygulaması

R ile kullanmaya hazır halde iki tane Apriori kütüphanesi geliyor. Yüklenme işi de IDE üzerinden birkaç tıklama ile yapılabiliyor. Bu kütüphaneler şöyle:

  • arules: Apriori için temel komutları barındırıyor.
  • arulesViz: Yapılan Apriori uygulamasının görselleştirilmesi için kullanılıyor.

Aşağıda uygulamanın kodları verilmiştir. Uygulamanın çalışabilmesi için, kütüphanelerin yüklenmiş olması ve veriler.csv dosyasının da uygulama ile aynı klasörde olması gerekmektedir. Kodlar içerisinde bolca açıklama olduğundan, ayrıca açıklama yapmayacağım.

Çıktılar

Üstteki kodlar çalıştırıldığında; belirlenen destek (%40) ve güven (%85) eşik değerleri için elde edilen kuralları, verilerle ilgili grafikleri ve kuralların görselleştirilmiş halini veriyor. Aşağıda bunları göstermeye çalıştım:

Elde Edilen Birliktelik Kuralları

Destek ve güven eşiklerine binaen iki tane kural çıktı. Confidence (güven) kısmından veriler arasındaki ilişki oranını görebiliyoruz. Kuralların açıklaması aşağıda verilmiştir:

  1. Boyu uzun olanlar içerisinde, erkek olanların oranı %100’dür.
  2. Kan grubu 0Rh+ olanlar içerisinde erkek olanların oranı %88’dir.

Veri sayısı az olduğu için bu kurallar çok anlamlı gelmemiş olabilir. Ancak çok sayıda verilerle oldukça faydalı çıkarımlar elde edilebilir. Hatta ikili, üçlü çıkarımlar yapıldığında fayda miktarı da artabilir. Örneğin; “erkek olup boyu kısa ve kilosu fazla olanların falanca hastalık riski yüksektir” şeklinde magazinsel çıkarımlar da elde edilebilir.

Grafikler

Elde edilen grafikleri yorumlamaya çalışmayacağım. Çünkü veri sayısı az olduğundan çok işlevsel değiller. Zaten 2 tane kural varsa, basit bir pasta grafiği ile süsleyerek sunabilirsiniz. Kural sayısı çok olduğunda, geniş açıdan bakabilmek ve ilişkileri daha rahat okuyabilmek için grafikler elzem olabilmektedir. Üstteki uygulamanın sonucunda elde edilen grafikleri bu nedenle yorumsuz olarak ekliyorum.

1 yorum

  1. Bülent

    Çok faydalı oldu teşekkürler…

Bir Cevap Yazın

Bad Behavior has blocked 49 access attempts in the last 7 days.