Apriori Algoritmasının Farklı Veri Kümelerine Uygulanması
M. Emin Eker1, Recai Oktaş2, Gökhan Kayhan3
1 Ondokuz Mayıs Üniversitesi, Fen Bilimleri Enstitüsü, Bilgisayar Mühendisliği Anabilim Dalı, Samsun
2 Ondokuz Mayıs Üniversitesi, Bilgisayar Mühendisliği Bölümü, Samsun
3 Ondokuz Mayıs Üniversitesi, Bilgisayar Mühendisliği Bölümü, Samsun
[email protected], [email protected]
,[email protected]
Özet: Günümüzde teknoloji sayesinde büyük miktarda veriler elde edilip saklanabilmektedir.Büyük miktardaki mevcut veri içinden anlamlı, potansiyel olarak kullanışlı, gelecekle ilgili tahmin yapılmasını sağlayan bağlantı ve kuralların bilgisayar programları kullanarak bulunmasına veri madenciliği denir. Veri madenciliğinde en sık kullanılan yöntemlerden bir tanesi birliktelik kuralların çıkarılmasıdır.. Birliktelik kuralları, verilerin aynı durum içerisinde çoğunlukla beraber olma durumlarını içeren kurallardır. Veri madenciliğinde sık geçen öğelerin keşfedilmesi için kullanılan en çok bilinen birliktelik-ilişki kuralı apriori algoritması algoritmasıdır. Veri işleme aşamasında apriori algoritmasının birleştirme, eleme işlemleri ve minimum destek ölçütü yardımı ile birliktelik ilişkisi olan öğeler bulunur. Bu çalışmada apriori algoritması ile bilinenlerden farklı bir veri kümesinde birliktelik kuralları bulan bir uygulama geliştirilmiştir.
Anahtar Sözcükler: Veri Madenciliği, Apriori Algoritması, Apriori Uygulamaları.
A New Approach for Quality Function Deployment: An Application
Abstract: Today, large amounts of data can be collected and stored by information technology. Data mining is the process of finding the rules and the correlations among the large amounts of data by the computer programmes, which are understandable, potentially useful and provide predictions about the future. One of the most frequently used methods in data mining is extraction of association. Association rules are the rules the include which items commonly occur together in the same transactions. The apriori algorithm is the most popular associations rule algorithm which discovers all frequent itemsets in large transactions databases. Using this algorithm, candidate patterns which receive sufficient support from the database and the algorithm uses apriori gen functions for joining and pruning to find all frequent itemsets. In this study, an application is developed for finding a different set of data from known association rules with apriori algorithm.
Keywords: Data Mining, Apriori Algorithm, Apriori Applications.
1. Giriş
Gelişen ve değişen teknoloji sayesinde bilişimde de baş döndürücü hızda gelişmeler yaşanmaktadır. Bu gelişmeler doğrultusunda bilgisayar sistemlerinin teknik kapasiteleri çok ilerlemiştir. İşlemciler hızlanmakta, disklerin kapasiteleri artarken fiziksel yapıları da küçülmektedir. Bu sayede artık bilgisayarlar daha büyük miktardeki veriyi
saklayabilmekte ve daha kısa sürede işleyebilmektedir. Bu gelişmeler sonucunda bilgisayar ağlarındaki alt yapı kalitesinin artmasıyla veriye başka bilgisayarlardan da hızla ulaşabilmek mümkün olmaktadır. Bu gelişmeler ekonomik değişimleri de peşinden getirmektedir. Yeni bir sistem geliştirildiğinde otomatikman eski sistemlerin fiyatları da ucuzlamaktadır. Bilgisayarların ucuzlaması ise sayısal teknolojiyi daha
yaygın olarak kullanılabilir hale getirmektedir. Bu yaygın teknoloji veriyi depolamada sayısal sistemin kullanılmasına imkân tanımaktadır. Veri doğrudan sayısal olarak toplanmakta ve saklanmaktadır. Bu da detaylı ve doğru bilgiye daha rahat ulaşabilmeyi sağlamaktadır.
Bu gelişmeler günlük hayatta kullanılan birçok araç ve gerecin de fonksiyonelliklerini arttırmaktadır. Örneğin cep telefonları sadece telefon olmaktan çıkarak, fotoğraf makinesi, hesap makinesi, telefon defteri, ajanda vb.
özellikleriyle günlük yaşantıda vazgeçilmez bir köşeye yerleşmiştir. Örneğin, eskiden marketlerdeki yazarkasalar basit bir hesap makinesi gibi müşterinin satın almış olduğu ürünlerin bedelini hesaplamak için kullanılmaktayken, günümüzde kasa yerine kullanılan satış noktası terminalleri sayesinde yapılan alışverişin bütün detayları veri olarak saklanabilmektedir. Saklanan bu binlerce malın ve binlerce müşterinin hareket bilgileri sayesinde her malın zaman içindeki hareketleri takip edilebilmektedir.
Marketlerin indirim ve kampanya avantajlarının sumak maksadıyla kartlı müşteri takip sistemleriyle bir müşterinin zaman içindeki tüm alışveriş verilerine ulaşmak ve analiz etmek artık firmalar için çok önemli olduğu kadar bir o kadar da kolay hale gelmiştir.
Sadece veri kendi başına değersiz olabilmektedir. İsteğe ve amaca bağlı olarak şekillendirildiğinde ise o veri artık bilgi olmaktadır. Bilgi bir amaca yönelik işlenmiş veridir. Veriyi bilgiye çevirmeye veri analizi denmektedir. Bilgi de bir soruya yanıt vermek için veriden çıkardığımız olarak tanımlanabilir. Veri sadece sayılar ve harflerden oluşan karakterler topluluğu değil;
sayı, harfler ve onların anlamıdır. Veri hakkındaki bu veriye üstveri denmektedir.
Mesela market örneğinde veri analizi yaparak her mal için bir sonraki ayın satış tahminleri çıkarılabilmekte; satın alınan mallara bağlı olarak müşteriler gruplanabilmekte; satın alınan mallara bağlı olarak müşteriler gruplanabilmekte; yeni bir ürün için
potansiyel müşteriler belirlenebilmekte;
müşterilerin zaman içindeki hareketleri incelenerek onların davranışları ile ilgili tahminler yapılabilmektedir. Binlerce malın ve müşterinin olabileceği düşünülürse bu analiz gözle ve elle yapılamayacağı için yazılımla desteklenerek yapılabilmektedir.
İşte veri madenciliği burada devreye girmektedir.
2. Veri Madenciliği
Büyük ölçekli veriler arasından bilgiye ulaşma, bilgiyi madenleme işine veri madenciliği denir. Bir anlamda büyük veri yığınları içerisinden gelecek ile ilgili tahminde bulunabilmeyi sağlayabilecek bağıntıların bilgisayar programı kullanılarak aranmasıdır. Spesifik veri madenciliği yazılımları; kümeleme, doğrusal regresyon, sinir ağları, bayes ağları, görselleştirme ve ağaç tabanlı modeller gibi pek çok işlemi içermektedir. Veri madenciliği uygulamalarında yıllar boyu istatistiksel yöntemler kullanılmıştır. Bununla birlikte, bugünün veri madenciliği teknolojisinde eski yöntemlerin tersine büyük veri kümelerindeki trend ve ilişkileri kısa zamanda saptayabilmek için yüksek hızlı bilgisayarlar kullanılmaktadır. Böylece veri madenciliği, ulaşılmak istenen sonuçları minimum çaba ve emekle ortaya çıkarmaktadır.
Veri madenciliğin 1990'lı yıllarda ortaya çıkmıştır. 2000 yılından bu yana ise büyük gelişme gösterdiği bilinmektedir. Bu kavram duyulmaya başladığından bu yana birçok farklı yöntem ve algoritma ortaya çıkmıştır.
Bunlardan bazıları kullanım alanları ve pratiğine göre kabul görmüş ve evrensel olarak geliştirilmiştir.
3. Birliktelik Kuralları
Birlikteki kuralı belirli türlerdeki verilerin bir arada olma ilişkilerini tanımlayan modeldir.
1990'lı yılların başından itibaren veri toplama uygulamalarındaki gelişmeler doğrultusunda, firmaların satış noktalarında yeni teknoloji, otomatik ürün veya müşteri tanıma sistemleri yaygınlaşmaya başlamıştır. Bu tip teknolojik gelişmeler bir satış hareketine ait verilerin satış esnasında toplanmasına ve elektronik ortamlara aktarılmasına olanak tanımıştır.
Günümüzde, süper marketlerde, orta ve büyük ölçekli alışveriş mağazalarındaki satış noktalarında akıllı satış sistemlerinin kullanımı oldukça yaygındır. Bu satışlardan elde edilen verilerde, işlem tarihi, satın alınan ürünlere ait bilgiler (ürün kodu, miktar, fiyat, indirim vb.) yer alır ve ayrıca hareket numarası tekil olarak kabul edilmektedir.
Bazı kuruluşlar bu tip bilgileri içeren veri tabanlarını pazarlama alt yapılarının önemli parçalarından biri olarak görmekte ve bu verileri kullanmak için çaba harcamaktadırlar [1].
Birliktelik kurallarının kullanıldığı en tipik örnek market sepeti uygulamasıdır. Market sepet analizi için birliktelik kuralında, müşterilerin alışveriş esnasında satın aldıkları ürünler arasındaki birliktelik ilişki bağlantılarının bulunarak, müşterilerin satın alma alışkanlıklarının tespit edilmesi amaçlanmaktadır. Bu tip birlikteliklerin keşfedilmesi, müşterilerin hangi ürünleri bir arada aldıkları bilgisini ortaya çıkarmakta ve market yöneticileri de bu bilgi ışığında daha etkili satış stratejileri geliştirebilmektedirler.
Süpermarket alışverişi sırasında müşteriler kola aldıktan sonra genelde aynı alışverişte patates cipsi de satın alıyorlarsa, bu iki ürün arasında kuvvetli bir birliktelik-ilişki kuralı var anlamı yakalanır. Bu elde edilen veri sayesinde, bu ürünlere ek ürün satışı yapmak için düzenlemeler yapılabilir.
4. Apriori Algoritması
Apriori, boolean ilişki kuralları için geçerli bir veri madenciliği algoritmasıdır.
Algoritmanın ismi, bilgileri bir önceki adımdan aldığı için “prior” anlamında Apriori'dir. Bu algoritma özünde iteratif (tekrarlayan) bir niteliğe sahiptir ve hareket bilgileri içeren veri tabanlarında sık geçen öğe kümelerinin keşfedilmesinde kullanılır.
Sık geçen öğe kümelerini bulmak için birçok kez veri tabanını taramak gerekmektedir. İlk taramada bir elemanlı minimum destek ölçütünü sağlayan sık geçen öğe kümeleri bulunmakta, izleyen taramalarda bir önceki taramada bulunan sık geçen öğe kümeleri aday kümeler adı verilen yeni potansiyel sık geçen öğe kümelerini üretmek için kullanılmaktadır. Aday kümelerin destek değerleri, tarama sırasında hesaplanmakta ve aday kümelerden minimum destek ölçütü sağlayan kümeler o geçişte üretilen sık geçen öğe kümeleri olmaktadır. Sık geçen öğe kümeleri bir sonraki geçiş için aday küme olmaktadırlar. Bu süreç yeni bir sık geçen öğe kümesi bulunamayana kadar devam etmektedir [1].
Şekil 1'de sözde kodu görsel olarak tanımlanan bu algoritmada temel yaklaşım eğer k-öğeli küme minimum destek ölçütünü sağlıyorsa, bu kümenin alt kümeleri de minimum destek ölçütünü sağlamaktadır. Bir öğeler kümesinin destek değeri, altkümesinin destek değerinden büyük olmamaktadır. Bir sık geçen nesne kümesinin bütün boş olmayan altkümeleri de sık geçmektedir. Bu özellik şu gözleme dayanmaktadır. Eğer bir nesne küme I, minimum destek eşik değeri olan min_destek değerini sağlayamıyor ise, o zaman I sık geçen değildir denir.
Şekil 1. Apriori algoritması sözde kodu
5. Uygulama
Uygulama bölümünde bir eğitim yazılımından alınan sınav sonuçları verilerine apriori algoritması uygulanarak kurallar çıkarmak amaçlanmıştır. Veriler sistem üzerinde yapılan online ve klasik sınavlardaki sorulardan, soruların özelliklerinden ve sorulan sorulara öğrencilerin verdikleri cevaplardan oluşmaktadır.
5.1 Verilerin Hazırlanması
Sistem üzerinde doğrudan çalışılmaya izin verilmediğinden ötürü üzerinde çalışılacak verilerin farklı bir alana farklı bir kopyası oluşturulmuştur. Veriler Şekil 2'de gösterildiği gibi 8 ayrı bölümden oluşmaktadır. Oluşturulan veri tabanı aşağıda gösterilmiştir.
Şekil 2. Veri tabanı
Eğitim yazılımından elde edilen veriler yeni oluşturulacak apriori algoritmasının veri tabanı için uygun hale getirilmiştir. Burada amaç doğru bir şekilde temizlenmiş verilerden sağlıklı kurallar çıkarabilmektir.
Aslında apriori genellikle sepet analizinde yani market verisi gibi tek kolonlu verilerde kullanılmakta ve bu verilere göre kurallar oluşturularak çeşitli stratejilerde kullanılmaktadır. Bizde bu çalışmamızda birliktelik kuralı ve Apriori’yi anlatırken bu tarz örneklerle detaylandırmaya çalıştık.
Ancak şu anda kullanacağımız veriler farklı bir yapıda bulunmaktadır. Örneğin, sepet analizinde bir müşteri marketten elma, şeker, domates alır ve bunlarda her biri farklı veri olduğu için ürünler tablosu tek kolonlu olarak oluşur. Yapılan alışveriş neticesinde de alışveriş tablosu elma, şeker, domates ürünlerinin varyasyonları şeklinde oluşabilir.
Ancak öğrenci sınav sonuç verileri tarzı verilerde durum böyle değildir. Sınav sonuç verisinde bilgiler çoktan seçmeli olabilmektedir. Örneğin, kişinin cinsiyet durumu ele alındığında ya erkek ya da bayan şeklinde bir sonuç bulunmaktadır. Ya da daha geniş bir örnekle anlatmak istersek, öğrencinin cevap verdiği birçok soru aynı anabilim dalına veya aynı konuya ait olabilir.
İşte burada da tekrar verilerin Apriori’ye uygun olarak düzenlenmesi gerekmektedir.
Algoritmanın uygulanması için sistem üzerinde var olan bir sınav seçilmiştir. Bu sınava ait oluşturulmuş veri tablosu Tablo 1'de gösterilmiştir. Tabloda dikkat edilmesi gereken verilerde bulunan her bir maddenin Apriori’ye göre aslında bir ürünmüş gibi düzenlemiş olmasıdır. Cinsiyet seçiminden erkek ya da kadın olma durumunun değerleri grup bilgisi ile birleştirilerek ayrı bir veri gibi ele alınmıştır.
Buradaki grup bilgisi kolonu, aynı değere sahip fakat farklı anlamlar içeren verileri birbirinden ayırmak için kullanılmıştır. Değer ise verilerin yazılım içerisindeki ID karşılığını ifade etmektedir.
Grup Veri Değer
Cinsiyet Kadın 0
Cinsiyet Erkek 1
Anabilim Dalı Anatomi 36 Anabilim Dalı Biyokimya 42 Anabilim Dalı Fizyoloji 38 Anabilim Dalı Histoloji 41 Anabilim Dalı Mikrobiyoloji 43 Anabilim Dalı Biyofizik 40
Cevap Anahtarı A 0
Cevap Anahtarı B 1
Cevap Anahtarı C 2
Cevap Anahtarı D 3
Cevap Anahtarı E 4
Doğruluk Yanlış 0
Doğruluk Doğru 1
Doğruluk Boş 2
… … ...
Tablo 1. Örnek veriler tablosu 5.2 Apriori Algoritması ile Uygulama Apriori algoritmasını elimizdeki verilere uygulayabilmemiz için verileri uygun hale getirmemiz gerekmektedir. Tablo 1'de verilerin bir kısmının gösterildiği tablo referans alınarak üzerinde işlem yapılacak kolonlar değerleri listelenmektedir.
Örnek verilerde de görüldüğü gibi her bir veri tipi bir sayısal karşılık ile eşleştirilmiştir. Bu sayısal karşılıklar birbirinden farklı tablolarda bulunan tekil değerler olabilir. Bu sebeple birbirinden farklı tablolarda aynı ID ile bulunabilecek veriler olabilir. Bu verilerin tekilleştirilmesi gerekmektedir. Tekilleştirme işlemi için ilgili Grup bilgisini kullanılmaktadır. Grup bilgisinin İngilizce karşılığı kullanılmıştır. Kullanılacak bu verilere aşağıdaki komut yardımıyla ulaşılmıştır.
SELECT
users.id,
users.gender,question_id, questions.author_id, questions.discipline_id, questions.ncc_id,
exam_analyzes.is_correct, exam_analyzes.answer_key FROM `exam_analyzes`
INNER JOIN `users` ON `users`.`id` =
`exam_analyzes`.`user_id`
INNER JOIN `questions` ON `questions`.`id`
= `exam_analyzes`.`question_id`
WHERE `exam_analyzes`.`exam_id` = 8 AND `exam_analyzes`.`exam_type_id` = 1;
Gelen veriler modellenir ve her bir kayıt bir model ile simgelenir.
Grup Veri Sonuç
Cinsiyet Erkek Gender-1
Anabilim Dalı Anatomi DisciplineID-36 Cevap Anahtarı B Answer-1 Doğruluk Doğru IsCorrect-1
Tablo 2. Örnek tekilleştirme
Tablo 2'de örnekleri verilen yöntem ile tekilleştirme yapılmıştır. Oluşturulan bu veriler tekil setleri oluşturmaktadır ve bu setler Ruby ile hazırlanan kod bloğuna verilmektedir.
Hazırlanan veriler %20 destek ve %40 güven değerleri ile çalıştırıldığında aşağıdaki gibi bir sonuç üretmektedir.
Şartlar Sonuç Güven
IsCorrect-1 Gender-1 %57 Gender-1 IsCorrect-1 %51 Gender-0 IsCorrect-1 %48 IsCorrect-0 Gender-1 %54 DisciplineID-40 Gender-1 %56
… … ...
Tablo 3. Sonuç tablosu
Bu tablodaki sonuçlar doğrudan anlaşılabilir veriler değildir. Bu nedenle tekilleştirirken kodlanan veriler tekrar anlamlı hale getirilmiştir. Hazırlanan yazılıma eklenen bir özellik ile bu tablodaki sonuçlar otomatik olarak anlamlı bir hale getirilebilmektedir.
Çıkarılan kurallar aşağıda belirtilmiştir.
(Cevap = Doğru) => (Cinsiyet = Erkek) [Destek %50, Güven = %57]
(Cinsiyet = Erkek) => (Cevap = Doğru) [Destek %56, Güven = %51]
(Cinsiyet = Kadın) => (Cevap = Doğru) [Destek %44, Güven = %48]
(Cevap = Yanlış) => (Cinsiyet = Erkek) [Destek %49, Güven = %54]
(A.Dalı = Fizyoloji) => (Cinsiyet = Erkek) [Destek %38, Güven = %56]
Tablo 3'teki tablodaki veriler ve yukarıdaki çıkarımlar sonuçlar içerisinden yalnızca bir örnektir. Bu sonuçların fazlalığı veya azlığı yapılan sınavın özelliklerine, sınav sorularının sayısına ve sınava katılan öğrenci sayısına göre değişimler göstermektedir.
6. Sonuç ve Öneriler
Eğitim yazılımı içerisinde bir sınav yönetim sistemi mevcuttur. Bu sınav yönetim sistemi ile tıp fakülteleri kendi öğrencilerine yapacakların sınavları bu sistem üzerinden hazırlayabilmektedir. Hazırlanan sınavlar öğrenciler tarafından sistem üzerinden web tabanlı olarak gerçekleştirilebileceği gibi klasik test kitapçıkları ile de gerçekleştirilmektedir. Hazırlanan sınavlar yapıldığında, yazılım verileri istatistiki olarak analiz ederek kurum ve öğrencilerin hizmetine sunmaktadır.
Mevcut olan eğitim yazılımına apriori algoritması ile sonuçları analiz edilebilen bir modül eklenmiştir. Bu sayede sistem üzerinde yapılan her sınav sonrasında oluşan sınav
verileri, otomatik olarak analiz edilmektedir.
Yapılan bu analizler sistem üzerinden kurum yöneticilerine ve sınava giren öğrencilere farklı bir yazılım ile raporlanmaktadır.
Kurumların bu sonuçları nasıl yorumlamaları gerektiğine dair bir yardım dokümanı da hazırlanmıştır. Bu yardım dokümanı ile ellerine geçen raporun yorumlanması daha da kolaylaştırılmıştır.
7. Kaynaklar
[1] Han, J., Kamber, M. Silahtaroğlu, G.,
“Data Mining: Concepts and Techniques.”
(2001).
[2] Agrawal, R., Srikant, R., "Fast algorithms for mining association rules", conference on Veri Large databases, Santiago, Chile (1993).
[3] Akpınar, H., “Veri Tabanlarındaki bilgi keşfi süreci” (2002).
[4] Silahtaroğlu, G., “Veri Madenciliği”
ISBN: 978-975-6797-81-5 (2014).
[5] Karabatak, M., İnce, M.C., "Apriori Algoritması ile Öğrenci Başarı Analizi", Eleco “Elektrik-Elektronik ve Bilgisayar Mühendisleri Sempozyumu” (2004).
[6] Çöllüoğlu, Ö., Özdemir, S., “Analysis of Gifted Studenta’ Interest Areas Using Data Mining ”, Journal of Gifted Education Research, 2013, 1(3), 213-226.
[7] Tanna, R., Ghodasara, Y., “Using Apriori with WEKA for Frequent Pattern Mining”, International Journal of Engineering Trends and Technology (IJETT) – Volume 12 Number 3 - Jun 2014.
[8] Savaş, S., Topaloğlu, N., Yılmaz, M.,
“Veri Madenciliği ve Türkiye'deki Uygulama Örnekleri”, İstanbul Ticaret Üniversitesi Fen Bilimleri Dergisi Yıl:11 Sayı: 21 Bahar 2012 s. 1-23.
[9] Mishra, R., Choubey, A., “Comparative Analysis of Apriori Algorithm and Frequent Pattern Algorithm for Frequent Pattern Mining in Web Log Data”, Rahul Mishra et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 3 (4) , 2012,4662 – 4665, ISSN: 0975-9646.
[10] Bansal, D., Bhambhu, L., “Execution of APRIORI Algorithm of Data Mining Directed Towards Tumultuous Crimes Concerning Women”, International Journal of Advanced Research in Computer Science and Software Engineering, ISSN: 2277 128.