Transaction (dikey) tabanlı veri ile birliktelik madenciliği

Birliktelik madenciliği ile ilgili gereken temel bilgiler bir önceki https://www.r-siz.com/2022/05/23/birliktelik-kurallarina-ve-oneri-sistemlerine-dayalikestirimci-analitik-yontemler/ yazımızda verilmişti.

Şüphesiz R platformunda en yaygın kullanılan birliktelik analiz paketi arules paketidir. Andrew Brooks Arules paketini kullanarak birliktelik kurallarını görselleştirmek için Shiny ile bir arayüz geliştirmiştir. Bence bu Shiny uygulaması İnteraktif Birliktelik Analizi için mükemmel bir araçtır (daha fazla bilgi). Ancak hem Andrew Brooks’un uygulamasında hem de yaygın olarak kullanılan diğer veri madenciliği uygulamalarında tam matris yapısında veri sağlanması gerekmektedir. Elbette çok geniş ölçekli verilerin dikey formatta kullanılması daha kolay ve etkindir.

Andrew Brooks’un uygulamasından yola çıkarak dikey formatta veri kabul eden bir arayüz geliştirilmiştir. Arayüze ademiriz/ShinyArules (github.com) sayfasından ulaşabilirsiniz. Daha fazla bilgi ise Readme dosyasında bulunabilir. Aşağıda bu yazının konusu olan Shiny uygulamasının kullanımını göstereceğiz.

Github dizininde bulunan tüm dosyaları bilgisayarınızda bir dizine indirin. Bu dizini setwd komutu ile çalışma dizini olarak belirleyin. Farklı olarak Rstudio’da aşağıdaki şekilde olduğu gibi çalışma dizini belirleyebilirsiniz.

Şekil 1. Çalışma dizini belirle

Sonrasında Run_arulesInterfaceXL.R dosyasının tümünü seçerek (Şekil 2) Ctrl+Enter tuş kombinasyonu ile RStudio’da çalıştırınız. Gereken tüm kütüphaneler sorunsuz yüklendikten sonra default parametreler kullanılarak SampleTranx.xlsx dosyasındaki veriler kullanılarak birliktelik analizi çalıştırılır ve kurallar elde edilir. Şekil 3’teki gibi bir Shiny ekranı elde edilir.

Dosyadaki kodun seçilmesi ve çalıştırılması
Şekil 2. Seç ve çalıştır
Şekil 3. Arules Kuralları Shiny Arayüzü

Arules paketinin default çalıştırdığı metod Apriori algoritmasıdır. Bir önceki yazımında daha ayrıntılı bilgi edinebileceğinizi tekrar hatırlatmak isterim. Support (Destek) ve Confidence (Güven) parametreleri anlamlı kuralların en hızlı şekilde bulunmasında en önemli algortitma parametreleridir. Support seviyesini 0.01 yapabilirsiniz. Etkileşimli bir şekilde Appriori algoritması çalışacak ve yeni kurallar elde edecektir. İlk ekranda bu kuralların gruplanmış hali görselleştirilmiştir (Şekil 4.) Kaç tane kurul grubu bulunmak isteniyorsa bu ekranda belirlenebilir. Ayrıca bir kuralda bulunması istenen minimum ve maksimum ürün (madde – item) sayıları da bu ekranda değiştirebilir. Bu değerler her zaman interaktif olarak değiştirilebilir. Shiny kullanılmasının en önemli faydası budur.

Şekil 4. Destek Değerini Belirle

Graph sekmesinde bulunan kuralların ağı (network) gösterilmektedir (Şekil 5.). Bu ağ grafiği Andrew Brooks’un uygulamasından farklı olarak visNetwork paketi kullanılarak hazırlanmıştır. Büyültme/küçültme, odaklanma gibi bir çok fonksiyon grafik üzerinde mevcuttur. Kuralın sol tarafında bulunan bir ürün, kural numarası (düğüm) üzerinde sağ tarafına bağlanır. Kuralı bu şekilde okumak gerekir.

Şekil 5. Kural Ağı

İlk 20 sık ürün (Top-20 Frequent Items) ItemFreq sekmesinde Şekil 6’da olduğu gibi gösterilir. Buradaki uygulamamızda renkli bir grafik kullanılmıştır. Andrew Brooks’un uygulamasında bu grafik siyah-beyazdır. Şekil 7 ve 8’de kural tabloları verilmiştir. İlk tablo daha düşük bir güven değeri ile elde edilmiştir. Burada kurala ait çeşitli ölçütler de verilmektedir. Bu ölçütler hakkında ayrı bir yazı yazmak gerekebilir. Ölçütlerin azalan veya artan değerlerine göre kurallar kolaylıkla sıralanabilir. Yüksek güven değeri durumunda daha az kural keşfedilecektir.

Şekil 6. İlk 20 Sık-Ürün (Frequent Items)
Şekil 7. Kural Tablosu
Şekil 8. Daha Yüksek Güven Değeri ile elde edilen Kural Tablosu

Umarım bu yazı faydalı olmuştur. Her zaman bana [email protected] adresimden email gönderebilirsiniz.