Bu yazımızda veri madenciliği operasyonlarından bir tanesi olan Relational Mining olarak literatürde yerini alan ilişkisel madencilikten bahsediyor olacağız.
Veri madenciliğinin tanımını, elimizdeki büyük veri üzerinde bir takım operasyonlar yaparak önceden bilinmeyen, geçerli ve uygulanabilir bilgileri ortaya çıkarılması ve bu bilgilerin çeşitli senaryolarca işletilirken kullanılması olarak kısaca hatırlayabiliriz. Veri madenciliği çalışmalarımız veriyi kümeleme, sınıflandırma ve birliktelik kuralları ile birlikte ilişki analizi yapmak şeklindedir.
Birliktelik kuralı, geçmiş verilerin analiz edilerek bu veriler içerisindeki birliktelik davranışlarının tespit edilmesi sayesinde geleceğe yönelik çalışmalar yapılmasını destekleyen bir yaklaşımdır.
Birliktelik kuralları çıkarım algoritmalarında karşımıza çıkan algoritmalar aşağıdaki gibidir.
- AIS
- SETM
- OCD
- CARMA
- Partitioning
- Count Distribution
- Intelligent Data Distribution
- Parallel Association Rules
- Apriori-Hybrid
- AprioriTid
- Apriori
Bu makalemizde Apriori ilişkisel madencilik algoritması üzerine konuşuyor olacağız.
Apriori Algoritması veri madenciliğinde birliktelik kuralı çıkarım algoritmaları içerisinde en fazla bilinen ve kullanılan algoritmadır. Agrawal ve Srikant tarafından 1994 yılında geliştirilen bir algoritmadır. (IBM)
Algoritmanın adı da yaygın nesnelerin önsel bilgilerini kullanmasından yani bilgileri bir önceki adımdan almasından “önceki” kelimesinden (priori) gelmektedir. Algoritmanın yapısı şu şekildedir.
— Öğe kümesi (itemset)
— Öğe veya öğelerden oluşan küme
— k-öğe kümesi (k-itemset)
Temel prensip, eğer k-öğe kümesi minimum destek kriterini sağlıyorsa, bu kümenin alt kümeleri de minimum destek kriterini sağlar. Peki nedir bu destek kriteri diyecek olursak, birliktelik kuralında, öğeler arasındaki birliktelik, destek ve güven kriterleri ile hesaplanmaktadır. Destek kriteri, veride öğeler arasındaki bağıntının ne kadar sık olduğunu belirtir.
Şimdi konuyu bir örnek ile pekiştirmek gerekirse, elimizde internet trafiği ile ilgili bir log kaydı olduğunu varsayalım. Bu log içerisinde tarih, method, user agent, kaynak ip, hedef ip, dakikadaki bağlantı sayısı, owasp skoru ve trafik yönü gibi nitelikler olsun. Birliktelik kuralı böyle bir veri setinde birliktelik davranışlarını tespit etmelidir. Buna göre de en yakın iki niteliği belirleyerek bu niteliklere ışığında geleceğe yönelik çalışmalar yapılabilmesini örneğin şu sitelere ziyaret yapan kullanıcının aynı zamanda şu sitelere de ziyaret yapması muhtemeldir gibi bir yorum yapmasını sağlamalıdır.
Bu örneğimizin zihnimizde şekillendiğini düşünerek destek ve güven kriterlerini örneğimize uygun şekilde açıklamaya başlıyorum. İnternet trafiği loglarını düşündüğümüzde, bir internet sitesini ziyaret eden kullanıcıların sıklıkla başka bir internet sitesini de ziyaret ettikleri ilişkisini inceleyelim.
A ve B farklı internet siteleri olmak üzere,
A sitesi için destek, tüm internet trafiği içerisinde A sitesinin oranıdır.
DESTEK(A)=A Sayısı / Toplam Trafiğin Sayısı olacaktır.
A ve B siteleri için destek, A ve B’nin bir arada tüm internet trafiği içerisinde yer alması olasılığıdır.
DESTEK(A,B)=(A,B) Sayısı / Toplam İnternet Trafiği Sayısı olacaktır.
Güven kriteri de B sitesinin hangi olasılıkla A sitesi ile birlikte ziyaret edileceğini söyler.
GÜVEN(A,B)=(A,B) Sayısı / A’yı içeren internet trafiği olacaktır.
GÜVEN(A==>B)=DESTEK(A,B)/DESTEK(A) şeklinde ifade edilir.
Elde edilen kuralların güvenirliliği, destek ve güven değerleri ile doğru orantılıdır. Her bir kural bir destek ve güven değeri ile ifade edilir.
A==>B [destek=3%, güven=60%] Birliktelik kuralı için 3% destek değeri, analiz edilen tüm internet sitesi ziyaret trafiğinden 3%’ünde A ile B sitelerinin birlikte ziyaret edildiğini belirtir. 60% oranındaki güven değeri ise A sitesini ziyaret eden kullanıcıların 60%’ının aynı trafikte B sitesini de ziyaret ettiğini gösterir.
Apriori algoritmasını aşağıdaki şekilde ifade edebiliriz.
- Minimum destek sayısı (minimum support) ve minimum güven (minimum confidence) değerleri belirlenir.
- Öğe kümeler içerisindeki her bir öğenin destek değeri bulunur.
- Minimum destek değerinden daha küçük desteğe sahip olan öğeler devre dışı bırakılır.
- Elde edilen teklik birliktelikler dikkate alınarak ikili birliktelikle oluşturulur.
- Minimum destek değerinden düşük olan öğe kümeler çıkartılır.
- Üçlü birliktelikler oluşturulur.
- Üçlü birlikteliklerden minimum destek değerini geçenlerin dışındakiler çıkartılır.
- Üçlü birlikteliklerden birliktelik kuralları çıkartılır.
Yukarıda belirtilen algoritma adımlarına göre bir apriori algoritması kodlanabilir. Python programlama dili gibi bilimsel dillerde yapılabileceği gibi Weka üzerinden de çalışılabilirsiniz. Weka data klasörü içerisinde ilişkisel madenciliğie uygun film veri setinden faydalanabilir veya weka kütüphaneleri C#.net ortamında çalıştırılabilir.
Veri madenciliğinde ilişkisel madencilik uygulamaları marketing sektöründe çok kullanılmaktadır. Örneğin x ürününü alan müşterilerin çoğunlukla y ürününü de aldıkları bilgisi elde edildikten sonra bu iki ürünün birlikte daha çok satılabilmesi için izlenecek yöntemlere madencilik çalışması ışık tutacaktır. Günümüzde elimizdeki büyük veriden ne şekilde yararlanacağımızı bilmemiz çok önemlidir. Burada da devreye veri madenciliği operasyonları girmektedir. Özellik seçimi, sınıflandırma, kümeleme, aykırı verilerin tespit edilmesi, ön işleme adımları, ilişkisel madencilik, korelasyon analizi vb. tüm veri madenciliği operasyonları sayesinde elimizde bulunan veriden yüksek oranda istifade eder, veriyi anlamlı hale dönüştürür ve elde edilen çıktıdan meydana gelecek pozitif etkileri kullanırız.
Veri madenciliği konularındaki yazı serimizde bu bölüm ilişkisel madenciliğe değindik. Diğer yazılarımızda görüşmek üzere.
Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.
Referanslar
TAGs: Data mining, veri madenciliği, ilişkisel madencilik, apriori algoritması