paralel programlama Ġle web madencĠlĠĞĠnde log …
TRANSCRIPT
T.C.
SÜLEYMAN DEMĠREL ÜNĠVERSĠTESĠ
FEN BĠLĠMLERĠ ENSTĠTÜSÜ
PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE
LOG ANALĠZĠ
GÜNCEL SARIMAN
DanıĢman: Doç. Dr. Tuncay YĠĞĠT
YÜKSEK LĠSANS TEZĠ
BĠLGĠSAYAR MÜHENDĠSLĠĞĠ ANABĠLĠM DALI
ISPARTA – 2011
TEZ ONAYI
Güncel SARIMAN tarafından hazırlanan “Paralel Programlama Ġle Web
Madenciliğinde Log Analizi” adlı tez çalıĢması aĢağıdaki jüri tarafından oy
birliği/oy çokluğu ile Süleyman Demirel Üniversitesi Mühendislik-Mimarlık
Fakültesi Bilgisayar Mühendisliği Anabilim Dalı‟nda YÜKSEK LĠSANS TEZĠ
olarak kabul edilmiĢtir.
DanıĢman: Doç. Dr. Tuncay YĠĞĠT (Ġmza)
Süleyman Demirel Üniversitesi Bilgisayar Mühendisliği Anabilim Dalı
Jüri Üyeleri : (Ġmza)
Süleyman Demirel Üniversitesi Bilgisayar Mühendisliği Anabilim Dalı
(Ġmza)
Süleyman Demirel Üniversitesi Bilgisayar Mühendisliği Anabilim Dalı
(Ġmza)
Süleyman Demirel Üniversitesi Bilgisayar Mühendisliği Anabilim Dalı
..../..../2011
Prof. Dr. Mehmet Cengiz KAYACAN
Enstitü Müdürü
Not: Bu tezde kullanılan özgün ve baĢka kaynaktan yapılan bildiriĢlerin, çizelge, Ģekil ve fotoğrafların
kaynak gösterilmeden kullanımı, 5846 sayılı Fikir ve Sanat Eserleri Kanunundaki hükümlere tabidir.
i
ĠÇĠNDEKĠLER
Sayfa
ĠÇĠNDEKĠLER ......................................................................................................... i
ÖZET ..................................................................................................................... iv
ABSTRACT ............................................................................................................ v
TEġEKKÜR ........................................................................................................... vi
ġEKĠLLER DĠZĠNĠ ............................................................................................... vii
ÇĠZELGELER DĠZĠNĠ ........................................................................................... ix
SĠMGELER VE KISALTMALAR DĠZĠNĠ .............................................................. x
1. GĠRĠġ .................................................................................................................. 1
1.1. Tezin Amacı...................................................................................................... 2
2. KAYNAK ÖZETLERĠ ........................................................................................ 3
3. MATERYAL VE YÖNTEM................................................................................ 7
3.1. Veri Madenciliği ............................................................................................... 7
3.1.1. Veri madenciliği modelleri ............................................................................. 8
3.1.2. Veri madenciliği teknikleri ............................................................................. 9
3.1.3. Veri madenciliğinde karĢılaĢılan problemler ..................................................10
3.1.4. Veri madenciliği süreci..................................................................................12
3.2. Web Madenciliği ..............................................................................................13
3.2.1. Web veri tipleri .............................................................................................17
3.2.2. Web madenciliği sınıflandırması ...................................................................19
3.2.2.1. Web içerik madenciliği ...............................................................................19
3.2.2.2. Web yapı madenciliği .................................................................................20
3.2.2.3. Web kullanım madenciliği ..........................................................................21
3.3. Birliktelik Kuralları ..........................................................................................30
3.3.1. Destek ve güven ölçütleri ..............................................................................32
3.3.2. Apriori algoritması ........................................................................................33
3.4. Genetik Algoritmalar........................................................................................34
3.4.1. Genetik algoritmanın temelleri ......................................................................36
3.4.2. Genetik algoritmanın yapısı ...........................................................................37
3.4.3. Genetik algoritma temel kavram ve operatörleri ............................................39
ii
3.4.4. Genetik algoritmanın performansını etkileyen faktörler .................................43
3.5. Paralel Programlama ........................................................................................43
3.5.1. Paralel ve dağıtık hesaplama..........................................................................45
3.5.2. Paralel hesaplamanın avantaj ve dezavantajları ..............................................46
3.5.3. Neden paralel hesaplama ...............................................................................47
3.5.4. Paralel programlama yaklaĢımları..................................................................48
3.5.4.1. Sısd: single instuction multiple data ............................................................48
3.5.4.2. Sımd: single ınstruction multiple data .........................................................48
3.5.4.3. Mısd: multiple instruction single data .........................................................49
3.5.4.4. Mımd: multiple instruction multiple data ....................................................49
3.5.5. Paralel bilgisayar hafıza mimarisi ..................................................................50
3.5.5.1. PaylaĢım bellek mimarisi ............................................................................50
3.5.5.2. Dağıtık bellek mimarisi ..............................................................................51
3.5.6. Microsoft .net framework ile paralel programlama ........................................52
4. ARAġTIRMA BULGULARI..............................................................................61
4.1. Verilerin Toplanması Ve Ön ĠĢleme AĢaması ...................................................61
4.1.1. Verilerin temizlenmesi ..................................................................................62
4.1.2. Oturum tanımlama ........................................................................................63
4.2. Birliktelik Kuralı Yöntemiyle EriĢim Kütüklerinden Bilgi Çıkarımı .................64
4.2.1. Birliktelik kural uygulaması ..........................................................................64
4.2.2. Bulguların değerlendirilmesi .........................................................................67
4.3. Genetik Algoritma Ġle En Sık Ziyaret Edilen 3‟lü Sayfa Grupları .....................68
4.3.1. En sık ziyaret edilen 3‟lü sayfa uygulaması ...................................................68
4.3.2. Bulguların değerlendirilmesi .........................................................................75
4.4. Ġstatiksel Analiz Ġle EriĢim Kayıtlarından Bilgi Çıkarımı ..................................75
4.4.1. Genel istatistikler ..........................................................................................77
4.4.2. Aktivite istatistikleri ......................................................................................77
4.4.3. EriĢim istatistikleri ........................................................................................79
4.4.4. Ziyaretçi istatistikleri .....................................................................................80
4.4.5. Tarayıcı istatistiği ..........................................................................................81
4.4.6. Durum kodu istatistiği ...................................................................................82
5. TARTIġMA VE SONUÇ ....................................................................................84
iii
6. KAYNAKLAR ...................................................................................................86
ÖZGEÇMĠġ............................................................................................................91
iv
ÖZET
Yüksek Lisans Tezi
Paralel Programlama Ġle Web Madenciliğinde Log Analizi
Güncel SARIMAN
Süleyman Demirel Üniversitesi
Fen Bilimleri Enstitüsü
Bilgisayar Mühendisliği Anabilim Dalı
DanıĢman: Doç. Dr. Tuncay YĠĞĠT
Son yıllarda internetin yaĢamımızın önemli bir bölümünü oluĢturmasıyla web
sitelerine olan ihtiyaç giderek artmaktadır. Bilgiye eriĢimin en kolay yolu olan
internet bir süre sonra bilgi yığını haline gelmektedir. Bu bilgileri kullanmanın
yanında web sitelerinden yeni bilgi keĢifleri web madenciliği kavramıyla
sağlanmaktadır. Web madenciliği kavramı site yapısının iyileĢtirilmesi ve sitenin
etkin olarak kullanılmasını sağladığı için araĢtırmacılar tarafından son yıllarda dikkat
çeken konuların baĢında gelmektedir. Web madenciliği web dokümanlarından ve
servislerden otomatik bilgi çıkarmak ve yeni bilgiler keĢfetmek için veri madenciliği
tekniklerinin kullanıldığı bir yöntemdir. Web madenciliği araĢtırdığı konular
bakımından web içerik, web yapı ve web kullanım madenciliği olmak üzere üç ana
bölümde incelenmektedir.
Bu çalıĢmada Süleyman Demirel Üniversitesi kurumsal web sitesinin 1 Ocak-31
Ağustos 2010 tarihleri arasındaki eriĢim kayıtlarının web kullanım madenciliği ile
çeĢitli veri madenciliği teknikleriyle analiz edilmesi için yazılım geliĢtirilmiĢtir.
Mevcut yazılımlarla uzun zaman alan web eriĢim kütük analizinin daha kısa sürede
tamamlanması amacıyla geliĢtirilen uygulamada paralel programlama teknikleri
kullanılmıĢtır. ÇalıĢmada eriĢim kütüklerinden ilginç ve anlamlı bilgilerin çıkarılması
dört ana bölümde gerçekleĢtirilmiĢtir. Ön iĢleme aĢamasında eriĢim kütükleri
gürültülü verilerden ayıklanmıĢtır. Birliktelik kuralları analizinde birlikte ziyaret
edilen sayfalarla ilgili bilgiler keĢfedilmiĢtir. Genetik algoritma aĢamasında ise en sık
ziyaret edilen 3‟lü sayfa gruplarının bilgisi keĢfedilmiĢtir. ÇalıĢmanın son
bölümünde eriĢim kayıtlarıyla ilgili istatiksel analiz gerçekleĢtirilmiĢtir. Tüm
analizler paralel ve seri algoritmalarla çalıĢtırılarak çalıĢma süreleri üzerinde
karĢılaĢtırma yapılmıĢtır. GerçekleĢtirilen çalıĢmalar web sitesinin geliĢtirilmesine,
site kullanılabilirliğine katkı sağlamaktadır.
Anahtar Kelimeler: Web madenciliği, Paralel programlama, Genetik algoritma,
Birliktelik kuralları, Ġstatiksel analiz.
2011, 91 sayfa
v
ABSTRACT
M.Sc. Thesis
Log Analysis In Web Mining With Parallel Programming
Güncel SARIMAN
Suleyman Demirel University
Graduate School of Applied and Natural Sciences
Department of Computer Engineering
Supervisor: Assoc. Prof. Dr. Tuncay YĠĞĠT
Recently, via the demand of web sites, internet is an important part of our lives. The
easiest way to access data from the internet after a while becomes a mass of facts. In
addition to using this information, discoveries of new information from websites
provided by web mining. Because of the concept of web mining to provide effective
use of the site structure and site improvement, web mining is one of the important
issues by researchers in recent years. Web mining is described as using data mining
techniques to explore and extract information from web documents and web services.
Web mining is studied in three main parts in terms of investigating issues as web
content, web structure and web usage mining.
In this study, software is creation the covering all phases in web usage mining
between 1 January and 31 August 2010 user access logs belonging to the web site of
Süleyman Demirel University were analyzed in web usage mining with data mining
techniques. The current web access logs analysis software for a long time to in
runtime so that in this study, parallel programming techniques are used for
completing in less time. In study to be obtained interesting and meaningful
information, performed in four main sections. In pre-processing phase the noisy data
Access logs sorted. With analysis of association rules, information is discovered
about the page visited together. In genetic algorithm the most frequently 3- stage
visited page groups‟ information was discovered. The last part of the study statistical
analysis is carried out about Access log files. All analysis algorithms running in
parallel and serial and comparison was carried out on working time. Developed
studies contribute to the availability of the site and web site development.
Key Words: Web mining, Parallel programming, Genetic algorithm, Sequence
analysis, Statistical analysis.
2011, 91 page
vi
TEġEKKÜR
Bu çalıĢma Süleyman Demirel Üniversitesi Fen Bilimleri Enstitüsü Bilgisayar
Mühendisliği Anabilim Dalı‟nda Yüksek Lisans Tezi olarak gerçekleĢtirilmiĢtir.
ÇalıĢmalarım boyunca bilgi birikimiyle beni yönlendiren danıĢmanım Doç. Dr.
Tuncay YĠĞĠT„ e sonsuz teĢekkürlerimi sunarım.
Web kullanıcı eriĢim verilerini kullanma olanağı sağlayan Süleyman Demirel
Üniversitesi Bilgi ĠĢlem Daire BaĢkanlığına ve tez çalıĢmam sırasında 2678-YL-11
numaralı projeme verdiği destekten dolayı Süleyman Demirel Üniversitesi Bilimsel
AraĢtırma Projeleri Yönetim Birimine teĢekkürlerimi sunarım.
Ayrıca, maddi ve manevi desteğini benden hiçbir zaman esirgemeyen aileme en içten
duygularımla teĢekkür eder, Ģükranlarımı sunarım.
Güncel SARIMAN
ISPARTA, 2011
vii
ġEKĠLLER DĠZĠNĠ
ġekil 2.1. Veri Madenciliği sürecinde yer alan adımlar ............................................. 8
ġekil 3.1. CRISP- DM metoduna göre veri madenciliği süreci. ...............................12
ġekil 3.2. Web Madenciliği Sınıflandırması ............................................................17
ġekil 3.3. Web Sayfaları arasındaki link bağlantısı. .................................................21
ġekil 3.4. Web eriĢim kayıt dosya örneği. ...............................................................22
ġekil 3.5. Web kullanım madenciliğinin uygulama adımları. ...................................22
ġekil 3.6. Web kullanım madenciliği ön iĢlem aĢamaları. ........................................23
ġekil 3.7. Kümeleme Modeli ...................................................................................28
ġekil 3.8. Genetik algoritma akıĢ diyagramı ............................................................39
ġekil 3.9. Tek noktalı çaprazlama yöntemi ..............................................................41
ġekil 3.10. Çift noktalı çaprazlama yöntemi ............................................................41
ġekil 3.11. Uniform çaprazlama yöntemi ................................................................42
ġekil 3.12. Mutasyona uğrayan kromozom ..............................................................42
ġekil 3.13. Seri Hesaplama Süreci ...........................................................................44
ġekil 3.14. Paralel Hesaplama Süreci ......................................................................44
ġekil 3.15. ĠĢ-Zaman Gösterimi ...............................................................................47
ġekil 3.16. PaylaĢım bellek mimarisinde paralel bilgisayarın Ģematik görünüĢü ......50
ġekil 3.17. Dağıtık bellek mimarisinde paralel bilgisayarların Ģematik görünümü ...52
ġekil 3.18 Çok iĢlemcili bir bilgisayar mimarisi ......................................................53
ġekil 3.19. .Net Framework 4.0 mimarisi ................................................................54
ġekil 3.20. Paralel static sınıfı ve üyeleri .................................................................55
ġekil 3.21. TaskFactory ve TaskFactory<T> Tipleri ................................................56
ġekil 3.22. Örnek program çıktısı ............................................................................58
ġekil 4.1. EriĢim kayıtlarının veri tabanına ait diyagramı ........................................61
ġekil 4.2. EriĢim kayıt dosyasından örnek veriler ....................................................62
ġekil 4.3. Veri tabanında oturum tanımlaması yapılmıĢ veriler ................................63
ġekil 4.4. Birliktelik kurallarıyla bilgi çıkarım ara yüzü ..........................................66
ġekil 4.5. Apriori algoritmasının sonuç verileri. ......................................................67
ġekil 4.6. Birliktelik kurallarıyla paralel hesaplama sürecinde iĢlemcilerin kullanım
yüzdeleri .................................................................................................................68
ġekil 4.7. Gen Yapısı ..............................................................................................69
ġekil 4.8. Kromozom Yapısı ...................................................................................69
ġekil 4.9. Çaprazlama Sonunda oluĢan yeni bireyler ...............................................71
ġekil 4.10. Mutasyon sonunda oluĢan yeni birey .....................................................72
ġekil 4.11. Genetik algoritma uygulama ara yüzü ....................................................73
ġekil 4.12. 3‟lü sayfa grupları .................................................................................74
ġekil 4.13. Sonuçların metin halinde gösterimi. .......................................................74
ġekil 4.14. Uygunluk-iterasyon sonuç grafiği ..........................................................74
ġekil 4.15. Aktivite günlük ziyaretçi istatistikleri ....................................................78
viii
ġekil 4.16. Aktivite günlük sayfa istatistikleri .........................................................78
ġekil 4.17. 01.01.2010 tarihli aktivite günlük saat istatistikleri ................................78
ġekil 4.18. Günlük sayfa eriĢim istatistiği ...............................................................79
ġekil 4.19. 01.01.2010 tarihli popüler sayfa istatistikleri ........................................79
ġekil 4.20. Günlük dosya eriĢim istatistiği ...............................................................80
ġekil 4.21. 01.01.2010 tarihli popüler dosya istatistikleri ........................................80
ġekil 4.22. Günlük ġehir-ziyaretçi grafiği ...............................................................81
ġekil 4.23. Ocak ayında en çok giriĢ yapılan Ģehir grafiği........................................81
ġekil 4.24. Tarayıcı dağılımlarının günlere göre grafiksel gösterimi ........................82
ġekil 4.25. Ocak ayında siteye giriĢte e çok kullanılan tarayıcılar ............................82
ġekil 4.26. Durum kodu dağılımının grafiksel gösterimi..........................................83
ix
ÇĠZELGELER DĠZĠNĠ
Çizelge 3.1. Web madenciliği sınıflarının karĢılaĢtırılması. .....................................19
Çizelge 4.1. EriĢim kayıtlarının ön iĢleme aĢamasındaki satır sayıları......................63
Çizelge 4.2. Oturum tanımlama iĢlemi için geliĢtirilen program kodları ..................64
Çizelge 4.3. Uygulamada kullanılan birliktelik kural analiz operatörleri ..................67
Çizelge 4.4. Seri veri paralel algoritmalarla birliktelik kural analizin süreleri ..........68
Çizelge 4.5. Uygulamada kullanılan genetik algoritma operatörleri .........................73
Çizelge 4.6. Seri veri paralel algoritmalarla genetik algoritmanın süreleri ...............75
Çizelge 4.7. Http Durum kodları .............................................................................76
Çizelge 4.8. Genel Ġstatiksel Bilgiler .......................................................................77
Çizelge 4.9. Seri veri paralel algoritmalarla istatiksel analizin süreleri ....................83
x
SĠMGELER VE KISALTMALAR DĠZĠNĠ
KISALTMALAR
WWW World Wide Web
VM Veri Madenciliği
URI Uniform Resource Ġdentifier
HTML Hyper Text Markup Language
XML Extensible Markup Language
IP Internet Protocol Address
IR Information Retrieval
FTP File Transfer Protokol
HTTP Hyper Text Transfer Protokol
OLAP Online Analytical Processing
TID Transaction ID
GA Genetik Algoritma
CPU Central Processing Unit
SSID Single Instruction Single Data
SIMD Single Instruction Multiple Data
MISD Multiple Instruction Single Data
MIMD Multiple Instruction Multiple Data
TPL Task Paralel Library
PLINQ Paralel Language Integrated Query
CLR Common Language Runtime
WPF Windows Presentation Foundation
1
1. GĠRĠġ
Ġnternet, insanların her geçen gün artan bilgiyi saklama, paylaĢma ve ona kolayca
ulaĢma istekleri sonrasında ortaya çıkan bir teknolojidir. Ġnternet bu haliyle çok
büyük bir bilgi havuzuna benzetebiliriz. Yapılan araĢtırmalara göre dünya nüfusunun
beĢte birinin (yaklaĢık 1.97 milyar kiĢi) internet kullanıcısı olduğu ve WWW„ de her
geçen gün 20 milyon yeni web sayfası eklendiği belirtilmiĢtir (Pingdom, 2011).
Günümüzde internetin aktif bir Ģekilde kullanılmasıyla sosyal medya kavramı ortaya
çıkmıĢtır. Twitter, Facebook gibi paylaĢım siteleri sayesinde kiĢiler örgütlenerek
birçok konuda fikir alıĢveriĢi yapabilmektedirler. Web sitelerinin bulunduğu
sunucular üzerindeki eriĢim ve hata dosyalarında kullanıcının site içerisinde
gezinirken yaptığı her tıkla beraber birden çok hareket kaydı birikir. Hızla büyüyen
dosyalar yer kazanmak amacıyla belirli aralıklarda temizlenmektedir. Fakat biriken
bu veriler, site içerik verisi ve kayıtlı kullanıcılara ait veri ile birleĢtirildiğinde yararlı
olabilecek bir veri tabanı oluĢturulabilir.
Yukarıda bahsedilen geliĢmeler web sitelerinin gerek içerik, gerekse yapı
bakımından ne kadar önemli bir konumda bulunduklarını göstermektedir. Web
sitelerinin etkin olarak kullanılabilmesi, geliĢtirilebilmesi ve kullanıcı taleplerine
uygun hizmetlerin sağlanabilmesi ile güvenlik gereksinimleri gibi ihtiyaçların
belirlenmesi amacıyla Web Madenciliği konusu aktif olarak ortaya çıkmıĢtır (DaĢ
vd., 2007).
Web madenciliği, WWW üzerinden kullanıĢlı bilgiyi keĢfetme ve analiz etme iĢlemi,
Ģeklinde geniĢ olarak tanımlanır. Bu geniĢ tanım bir yandan, milyonlarca siteden ve
çevrimiçi (online) veri tabanlarından veri ve kaynakların otomatik olarak aranması
ve elde edilmesi iĢlemi olan web içerik madenciliğini tarif ederken, diğer yandan, bir
yada daha çok web sunucusu veya çevrimiçi servisten kullanıcı eriĢim desenlerinin
keĢfi ve analizi iĢlemi olan web kullanım madenciliğini tarif eder. Daha sonradan bu
iki kategoriye, web sitelerinin bağlantı (link) yapılarını da kapsayan yapısal özetini
üreten web yapı madenciliği de eklenmiĢtir (Carus ve Mesut, 2005).
2
1.1. Tezin Amacı
Bu tez çalıĢmasının amacı Süleyman Demirel Üniversitesi web sayfasının
(www.sdu.edu.tr) günlük eriĢim dosyaları incelenerek veri madenciliği teknikleri ile
anlamlı bilgileri paralel programlama ile çıkartmaktır. Ġnternet eriĢim kayıtları
inceleneceği için çalıĢmada web madenciliği teknikleri kullanılmıĢtır. Web
sayfalarının analizi için 3 adet web madenciliği tekniği bulunmaktadır. Bunlar web
içerik madenciliği, web yapı madenciliği ve web kullanım madenciliğidir.
Günlük eriĢim dosya analizleri ile ilgili literatürde çeĢitli uygulamalar
bulunmaktadır. Yapılan çalıĢmalar kayıt dosyaları üzerinde daha çok istatistiksel
sonuç çıkarmaya yöneliktir. Çözümler genel olarak veri madenciliği tekniklerini
kullanan Weka, Rapidminer, Spss gibi paket programlar üzerinde gerçekleĢtirilmiĢtir.
Bu çalıĢmada kullanıcı hareketlerinin kayıtlarını sunucuda tutan dosyalar web
kullanım madenciliği tekniği kullanılarak analiz edilmiĢtir. Web kullanım
madenciliği, internet kullanıcı talepleri ile ilgili hizmetlerin yeterliliği, web
sayfalarının kullanma durumlarını, kullanıcı oturumları ve kullanıcı davranıĢlarıyla
üretilen eriĢim kayıtlarının analiz edilmesi konuları ile ilgilidir. Web sayfasının
günlük eriĢim (log) dosyasının incelenmesiyle web sitesinin kullanım durumu ile
ilgili sitede en çok eriĢilen sayfa ve dosyalar, dosya tipleri gibi detaylı istatistiki
bilgiler tespit edilmiĢtir. Elde edilen bilgiler ile web sitesinde görülen eksiklikler ve
hatalar tespit edilmiĢtir. Kullanıcılar ve sayfa eriĢimleriyle ilgili veri madenciliği
tekniklerinden istatiksel analiz, birliktelik kuralları, genetik algoritma kullanarak
anlamlı bilgiler çıkarılmıĢtır.
Bu çalıĢmayla beraber web sitesinin çalıĢma baĢarımını arttırmak ve paralel
programlama ile daha kısa sürede log analiz çalıĢması hedeflenmiĢtir.
3
2. KAYNAK ÖZETLERĠ
BiliĢim teknolojilerinin günümüzde giderek önemli bir yer almasıyla beraber biliĢim
araçlarının kullanımı gün geçtikçe artmaktadır. Özellikle internetin yaygın bir Ģekilde
kullanılmasıyla kullanıcıların sunucular üzerinde bıraktığı izler, doğru araçlarla
iĢlendiği takdirde anlamlı bilgiler ortaya çıkarmaktadır.
Bu bölümde tez çalıĢması ile ilgili son yıllarda yapılmıĢ olan çalıĢmalardan kısaca
bahsedilmektedir. Literatürde, web madenciliği ile ilgili çeĢitli çalıĢmaların yapıldığı
görülmektedir.
Abraham (2003) yaptığı çalıĢmada web kullanım madenciliğinin ve onun çeĢitli
pratik uygulamalarının öneminden bahsetmiĢtir. Ayrıca yeni bir yaklaĢım olarak
intelligent miner (i-Miner) kavramını sunmuĢtur. I-Miner ile bulanık kümeleme
algoritması kullanılarak site ziyaretçilerinin eğilimleri gözlemlenebilmektedir.
Srivastava vd. (2000) web kullanım madenciliği aĢamalarını anlattığı çalıĢmada
WebSIFT adında bir program geliĢtirerek web kullanım madenciliği ile sunucu
loglarını ön iĢleme aĢamalarından geçirmiĢtir. Ön iĢleme aĢamalarında kullanıcı
tanımlama, oturum belirleme ve referans gösterilen sayfalar WebSIFT ile
çıkarılmıĢtır.
Cooley vd. (1997) yaptıkları çalıĢmalarda web madenciliği için WebMiner adlı bir
program geliĢtirerek otomatik olarak kullanıcı eriĢim kütüklerinden birliktelik
kurallarıyla örüntüler çıkarmaktadır. Yanı sıra çalıĢmada web kullanım madenciliği
ile ilgili genel bilgiler verilerek konu teorik açıdan ele alınmıĢtır.
Chen ve Sycara (1998) Web sayfalarının içeriklerini inceleyerek farklı domainlerdeki
kullanıcıların ilgilerini belirleyen WebMate adlı bir sistem geliĢtirmiĢlerdir.
WebMate adlı sistem Trigger Pair modelini kullanarak otomatik olarak anahtar
kelimeleri çıkarmaktadır.
Ortega ve Aguillo (2010) Yaptıkları çalıĢmada web oturumlarının toplam giriĢ
sayısını buldurmayı amaçlamıĢlardır. Aynı zamanda oturumlar arası belirli bir zaman
aralığı belirlenerek uygun oturum tanımlamaları yapılmaktadır.
4
Cooley vd. (1999) Artan web kullanıcılarıyla beraber sitelere giren kullanıcılara ait
örüntü çıkarmak için web kullanım madenciliğinin ilk aĢaması olan ön iĢleme
adımlarından çalıĢmasında bahsetmiĢtir. Ön iĢleme aĢamasında sunucu kayıtlarının
semantik bir Ģekilde bölünmesiyle tekil kullanıcı ve oturum tanımlamaları
yapılmaktadır. Böylece birliktelik kuralları elde etmek için sunucu kayıtlarının
düzgün bir Ģekilde ayıklanması WEBMINER sistemiyle sağlanmıĢtır. ÇalıĢmada ilk
olarak web kullanım madenciliği aĢamaları sırasıyla gerçekleĢtirilmiĢtir. Oturum ve
kullanıcı tanımlama, gürültülü verileri temizleme detaylı bir Ģekilde anlatılmaktadır.
Araya vd. (2004) Web kullanım madenciliği çalıĢmasında internet bankacılığı ile
hesaplarını yöneten müĢterilerin site içerisindeki hareketlerinden yola çıkarak
müĢterilerine ileriye yönelik anlamlı bilgiler sunmuĢlardır. Bilgi keĢfi için geleneksel
yöntemlerin yanı sıra amaçların tanımlanması ve mesleklerin birleĢtirilmesi Ģeklinde
yeni basamaklar belirlemiĢlerdir. Kayıtlı müĢteriler üzerinde son altı aya ait sunucu
kayıtlarının incelendiği çalıĢmada oturum tanımlaması için 30 dakikalık periyotlar
belirlenmiĢtir. Örüntü keĢifleri için ise istatiksel analizler, birliktelik kuralları ve
müĢterileri sekmenlere ayırmak için kümeleme algoritması kullanılmıĢtır.
Haberal (2007) BaĢkent üniversitesi web sitesinin geliĢtirilmesi amacıyla web günlük
eriĢimlerinin analizini üniversite sunucuları üzerinde bulunan eriĢim ve hata
dosyalarıyla yapılmıĢtır. Hangi sayfaya daha çok girildiği(giriĢ sıklık bilgisi) hangi
sayfaların birlikte ziyaret edildiği gibi bilgilerin sitenin yeniden düzenlenmesinde
faydalı bilgiler olacağı belirtilmiĢtir. Sunucu eriĢim bilgileri analiz edilirken paket
programlar kullanılmıĢtır. Apriori algoritması ile en sık ziyaret edilen url gruplarını,
Microsoft Clustering algoritmasıyla verideki kümelenmeyi ve Microsoft Decision
Tree algoritmasıyla veri içindeki sınıflandırma bilgisini elde etmek için WUM,
WUMPREP ve WEKA yazılımları kullanılmıĢtır. Paket programlar ile genel
istatistikler, günlük ziyaretçiler, günlük eriĢim, günün saatlerine göre ziyaretçi, en
çok ziyaret edilen sayfa gibi bilgiler grafiksel olarak gösterilmiĢtir.
DaĢ (2008) Web Kullanıcı EriĢim Kütüklerinden Bilgi Çıkarımı adlı bir tez çalıĢması
gerçekleĢtirmiĢtir. Web sunucularının metin tabanlı olarak sakladıkları eriĢim kütük
5
dosyalarında web sitelerinin izlenilmesine ve analiz edilmesine yönelik çok önemli
veriler bulunmaktadır.
Bu veriler, ziyaretçilerin sayfaları gezerken bıraktıkları izlerin yanı sıra siteye kayıt
yaptırırken girmiĢ oldukları bilgilerden oluĢmaktadır. Web madenciliğinin temel
görevi, metin tabanlı bu karmaĢık ve anlamsız veri yığınlarından veri madenciliği
yöntemlerini kullanarak site yöneticisine ve web tasarımcısına sitenin
geliĢtirilebilmesi ve baĢarımının arttırılmasının sağlanması için yararlı ve anlamlı
bilgiler çıkarmaktır. Bu tez çalıĢmasında, metin tabanlı web kullanıcı eriĢim
kütüklerinin temizlenmesine yönelik yeni bir süreç önerilmiĢtir. Önerilen sürecin
uygulaması ve program kodlamaları java tabanlı sas base yazılım ortamında
geliĢtirilmiĢtir. Büyük boyutlardaki kütük dosyalarının temizlenmesinde geliĢtirilen
veri temizleme süreci hız yönünden diğer yöntemlere göre üstünlük sağlamıĢtır.
TemizlenmiĢ kullanıcı eriĢim kütüklerinden anlamlı ve ilginç bilgilerin çıkarılması
için üç farklı çalıĢma yapılmıĢtır.
Yol analizi yöntemi ile web kullanıcı eriĢim kütük dosyalarından anlamlı ve ilginç
örüntüleri içeren bilgiler çıkarılmıĢtır. Literatürde geçen ve baĢka alanlarda
uygulaması yapılan yol analizi yönteminin, web kullanıcı eriĢim kütüklerine
uygulaması yapılarak, anlamlı ve ilginç örüntüleri içeren bilgiler çıkarılmasında
baĢarılı bir Ģekilde kullanılabileceği gösterilmiĢtir. Aynı veri tabanı verilerine
birliktelik kuralı yöntemi uygulanarak web sayfaları arasındaki iliĢkileri belirleyen
bilgiler çıkarılmıĢtır. İstatistiksel analiz ile web sitesinin üç aylık bir süre içerisindeki
genel kullanımına iliĢkin detaylı istatistikî bilgiler çıkarılmıĢtır. HTTP durum kodları
analiz edilerek web sitesi ve sunucusunun baĢarımını arttırmaya yönelik çözüm önerileri
oluĢturulmuĢtur.
ĠĢeri (2005) Web günlük verilerinin çoklu seviyeli, zaman sınırlı bulanık bağıntı
kuralları ve sıralı örüntüler elde etmeye yarayan bir web madenciliği çalıĢması
yapılmıĢtır. Bu tez çalıĢmasında web sayfalarına göz atma zamanı ele alınmıĢ ve
dilsel terimlerle zaman sınırlı çok seviyeli göz atma davranıĢları, etkin bağıntı
kuralları ve sıralı örüntülerin elde edilmesi sağlanmıĢtır.
6
Uğuz vd. (2003) Yapılan çalıĢmada web madenciliğinde yeni bir yaklaĢım sunarak
eriĢim kayıtlarına genetik algoritmayla sık eriĢilen sayfa çiftlerini ve sunucu
kayıtlarının üniversite içi veya dıĢı olmak üzere eriĢilen yerlerin dağılımlarını ortaya
koymuĢtur.
Belen vd. (2003) Web madenciliği tekniklerini kullanarak bir çalıĢma
gerçekleĢtirmiĢlerdir. Ön iĢleme aĢamalarını gerçekleĢtirmek için bir veri tabanı
aktarım ara yüzü ve istatiksel analiz yapan WALA adında bir program
gerçekleĢtirilmiĢtir. Wala web sitelerinin kullanımını analiz etmek için geliĢtirilmiĢ
bir sunucu eriĢim kütüğü analiz programıdır. ÇalıĢmanın amacı ise site sahipleri,
yöneticileri ya da tasarımcılarının karar verme aĢamasında kullanabilecekleri, temel
kütük analiz programlarının tüm özelliklerine sahip olmasının yanında veri
madenciliği algoritmaları da kullanarak daha detaylı ve anlamlı bilgi elde edebilen
bir yazılım üretmektir.
Guo vd. (2004) ÇalıĢmada iki yıllık meslek okullarında okuyan hangi öğrencilerin
dört yıllık üniversitelere geçiĢ yaptıklarının büyük baĢarı ile tahmin edebilen bir web
madenciliği ve tahmin sistemi geliĢtirilmiĢtir. Bu tür bir sistemin üniversite hocaları
ve öğrenciler üzerindeki baĢarımı arttıracağı öngörülmüĢtür.
7
3. MATERYAL VE YÖNTEM
3.1. Veri Madenciliği
Son yıllarda, veriyi toplama ve saklama kapasitesindeki ani büyüme, yeni arayıĢlara
yol açmıĢtır. Bir bilgisayarın iĢleyebileceği veriden daha fazlası üretilmektedir.
Verilerin hızla büyümesi, yorumlama ve özümsemede akıllı veri tabanı analizi için
yeni nesil araçlara ve tekniklere olan ihtiyacı doğurmuĢtur. BaĢka bir deyiĢle, veri
madenciliği, verilerin içerisindeki iliĢkilerin, değiĢimlerin ve istatiksel olarak önemli
olan yapıların yarı otomatik olarak keĢfedilmesidir.
Veri madenciliği büyük miktarda veri içinden gelecekle ilgili tahmin yapmamızı
sağlayacak bağıntı ve kuralların bilgisayar programları kullanarak aranmasıdır (Ian
ve Eibe, 2005).
Veri madenciliği konusunda bahsi geçen “geniĢ veri” deki geniĢ kelimesi, tek bir iĢ
istasyonunun belleğine sığamayacak kadar büyük veri kümelerini ifade etmektedir.
Yüksek hacimli veri ise, tek bir iĢ istasyonundaki ya da bir grup iĢ istasyonundaki
disklere sığamayacak kadar fazla veri anlamındadır. Dağıtık veri ise, farklı coğrafi
konumlarda bulunan verileri anlatır (Vahaplar ve Ġnceoğlu, 2001).
Veri Madenciliği çok büyük veri yığınlarından kritik bilgileri elde etmeyi sağlar.
Böylelikle normal Ģartlar altında uzun zaman süren araĢtırmalarla doğruluğu kesin
olmayacak Ģekilde elde edilen bilgi veri madenciliği ile kısa sürede ve kesin olarak
elde edilir. Elde edilen bilgi objektif değerlendirmeler yapılmasında ya da stratejik
kararlar almada kullanılır. Bu bilgiler kurumsal veri kaynaklarının iyi analiz
edilmesine ve iĢ dünyasındaki yaklaĢımlara iliĢkin tahminlerde bulunulmasına
yardımcı olmaktadır. Kısaca veri madenciliği ile birlikte Ģirketler stratejik adımlar
atarken çok büyük veri yığınları arasından kendilerine yol gösterecek kritik verileri
ayıklayarak analiz edebilirler (Alpaydın, 2000).
VM ve veri tabanlarından bilgi keĢfi kavramları birbirine karıĢtırılmamalıdır. Veri
tabanlarında bilgi keĢfi kavramı ilk olarak 1995 yılında Montreal‟de KDD
8
(Knowledge Discovery in Databases) konferansında, veriden bilgi elde edilmesi için
gerekli olan tüm süreci ifade etmek amacıyla kullanılmıĢtır.
VM ise, bu süreçteki önemli adımlardan bir tanesidir (Gürsoy, 2009). VM sürecinde
yer alan adımlar ġekil 2.1‟ de gösterilmiĢtir.
ġekil 2.1. Veri Madenciliği sürecinde yer alan adımlar
3.1.1. Veri madenciliği modelleri
Veri madenciliğinde kullanılan modelleri tanımlayıcı (Descriptive) ve tahmin edici
(Predictive) olmak üzere iki ana baĢlıkta toplanabilir.
Tanımlayıcı modeller analiste daha önceden bir hipoteze sahip olmaksızın, veri
kümesinin içinde ne tür iliĢkiler olduğunu anlama imkânı sunar. Analizcinin çok geniĢ
veri tabanlarındaki bilgileri incelemek, örüntüleri keĢfetmek için doğru soruları sorup
hipotezler geliĢtirmesi pratikte zor olduğundan, ilginç örüntüleri keĢfetme önceliği veri
madenciliğine bırakılır. KeĢfedilen bilginin kalitesi ve zenginliği, uygulamanın
kullanıĢlılığını ve gücünü oluĢturur (Özçınar, 2006).
Tahmin edici modellerde ise sonuçları bilinen veriler ve önceki tecrübelerden hareket
ederek bir model geliĢtirilmesi ve bu model ile sonuçları bilinmeyen veri kümeleri
9
için sonuçların tahmin edilmesi amaçlanmaktadır (ÖzekeĢ, 2003). Tahmin edici
modellerin temel iki türü sınıflandırma ve regresyondur.
3.1.2. Veri madenciliği teknikleri
Veri madenciliği modellerinden tahmin edici ve tanımlayıcı modellerde en sık
kullanılan teknikler Ģu Ģekilde sıralanmaktadır; Ġstatiksel yöntemler, sınıflama,
kümeleme ve birliktelik kuralları.
Veri madenciliği çalıĢması esas olarak bir istatistik uygulamasıdır. Verilen bir örnek
kümesine bir kestirici oturtmayı amaçlar. Ġstatistik literatüründe son elli yılda bu
amaç için değiĢik teknikler önerilmiĢtir. Bu teknikler istatistik literatüründe çok
boyutlu analiz (multivariate analysis) baĢlığı altında toplanır ve genelde verinin
parametrik bir modelden (çoğunlukla çok boyutlu bir Gauss dağılımından) geldiğini
varsayar. Bu varsayım altında sınıflandırma (classification; discriminant analysis),
regresyon, öbekleme (clustering), boyut azaltma (dimensionality reduction), hipotez
testi, varyans analizi, bağıntı (association; dependency) kurma için teknikler
istatistikte uzun yıllardır kullanılmaktadır (Alpaydın, 2000).
Sınıflandırma, veri nesnesini daha önceden belirlenmiĢ olan sınıflardan biriyle
eĢleĢtirme sürecidir (Wang, 1999). Verileri ve karĢı gelen sınıfları içeren eğitim kümesi
ile eğitilen sistem, sonraki aĢamalarda sınıf bilgisine sahip olunmayan verilerin ait
olduğu sınıfların bulunması için kullanılır. MüĢteri segmentasyonu, kredi analizi, iĢ
modellemesi ve benzeri birçok alanda kullanılan sınıflandırma yöntemi günümüzde en
çok kullanılan veri madenciliği yöntemlerinden biridir. Sınıflandırma modellerinde en
sık kullanılan teknikler ise genetik algoritmalar, yapay sinir ağları, naive bayes ve karar
ağaçlarıdır.
Kümeleme ise birbirine benzeyen veri parçalarını ayırma iĢlemidir ve kümeleme
yöntemlerinin çoğu veri arasındaki uzaklıkları kullanır. Sınıflamanın aksine, yeniden
tanımlanmıĢ sınıflara dayalı değildir. Kümeleme, bir denetimsiz öğrenme
(unsupervised learning) yöntemidir. HiyerarĢik olmayan kümelemede, kümeler
arasında iliĢki bulunmamaktadır. Örneğin, „k-ortalamalar‟, hiyerarĢik olmayan bir
kümeleme algoritmasıdır.
10
HiyerarĢik kümelemede, her kümede veri nesnelerini içerecek bir bağlantı kurulur.
Hangi yöntem olursa olsun kümeler birbirine benzer özellik gösteren nesnelerden
oluĢturulur. Böylece kümeler kendi içinde aynı özelliği taĢıyan nesneleri içermiĢ olur
(AltıntaĢ, 2006).
Birliktelik kuralları bir arada gerçekleĢen olayları çözümleme ya da özelliklerin
keĢfedilmesi sürecidir. Örneğin bir mağazadan gömlek alan müĢterilerin %35 inin
aynı alıĢveriĢte kravat satın aldıklarını söylemek birlikte gerçekleĢen olaylara örnek
olarak verilebilir. Bu tür bilgiler özellikle mağaza iĢletmecileri açısından değerli bilgi
olarak göz önüne alınmaktadır. Bir birliktelik algoritması oluĢturmadan önce kurallar
belirlenmelidir. Büyük veri tabanında iliĢkileri bulacak algoritmalar geliĢtirmek çok zor
değildir. Fakat geliĢtirilen algoritmalar önemli iliĢkileri ortaya çıkaracağı gibi önemsiz
birçok iliĢkiyi de ortaya çıkarır. Bu yüzden, büyük veri tabanlarında küçük alt kümeler
bulunmalıdır. Bu tür kümeler bulurken yapılması gereken en önemli iĢlem belli bir
destek sayısı kadar tekrarlanan öğeyi bulmaktır. Sık tekrarlanan öğelerle önemli kurallar
oluĢturulabilir. Birliktelik kuralları oluĢturulurken kullanılan en önemli algoritmalar ise
apriori algoritmasıdır.
3.1.3. Veri madenciliğinde karĢılaĢılan problemler
Literatür araĢtırmaları veri madenciliği sürecinde birçok problemle karĢılaĢıldığını
göstermektedir. Herhangi bir VM sistemi ufak boyutlu veriler üzerinde sorunsuz
çalıĢabiliyorken eğer veri gürültülü olursa VM süreci istenilen ölçüde baĢarılı
olamamaktadır. Veri madenciliği sistemlerinde karĢılaĢılan problemler aĢağıdaki gibi
listelenmiĢtir.
Veri tabanı boyutu
Örneklemin büyük olması, örüntülerin gerçekten var olduğunu göstermesi açısından
bir avantajdır ancak böyle bir örneklemden elde edilebilecek olası bir örüntü sayısı
da çok büyüktür. Bu yüzden VM sistemlerinin karĢı karĢıya olduğu en önemli
sorunlardan biri veri tabanı boyutunun çok büyük olmasıdır. Dolayısıyla VM
yöntemleri ya sezgisel bir yaklaĢımla arama uzayını taramalıdır, ya da örneklemi
yatay ve dikey olarak indirgemelidir (Sever ve Oğuz, 2002).
11
Gürültülü veri
Veri giriĢi veya veri toplanması sırasında oluĢan sistem dıĢı hatalara gürültü adı
verilmektedir. Hatalı veri veri tabanlarında ciddi problem oluĢturabilir.
Bu durum, bir veri madenciliği yönteminin, kullanılan veri kümesinde bulunan
gürültülü verilere karĢı daha az duyarlı olmasını gerektirir. Eğer veri gürültülü ise
sistem bozuk veriyi tanımalı ve ihmal etmelidir. Bu nedenle, veri madenciliğinde,
gelecekte toplanacak verideki gürültü miktarının yaklaĢık olarak o anki veriyle aynı
olmasına dikkat edilmelidir (Arslan, 2008).
Eksik veri
Problemlerin çözümüne ulaĢmak için örneklem kümesinin eksik olmaması
gerekmektedir. Herhangi bir problemin çözümünü ararken verilerin iliĢkili olduğu
alanlar boĢ olmamalıdır. Örneğin sadece yaĢlı insanlara ait bir hastalığın tanısı
konulmak istenilirse veri kümesinde çocuk verilerinin olması problemin çözümü için
bir kazanç sağlamayacaktır.
BoĢ değerler
Bir veri tabanında boĢ değer, birincil anahtarda yer almayan herhangi bir niteliğin
değeri olabilir. BoĢ değer, tanımı gereği kendisi de dâhil olmak üzere hiç bir değere
eĢit olmayan değerdir. Birçokluda eğer bir nitelik değeri boĢ ise o nitelik, bilinmeyen
ve uygulanamaz bir değere sahiptir. Bu durum iliĢkisel veri tabanlarında sıkça
karĢımıza çıkmaktadır. Bir iliĢkide yer alan tüm çoklular aynı sayıda niteliğe,
niteliğin değeri boĢ olsa bile sahip olmalıdır. Örneğin, kiĢisel bilgisayarların
özelliklerini tutan bir iliĢkide bazı model bilgisayarlar için ses kartı modeli niteliğinin
değeri boĢ olabilir (Sever ve Oğuz, 2002).
Farklı tipteki verileri ele almak
Kullanılan veri kümelerindeki çeĢitlilik de sağlıklı bir VM sürecini olumsuz yönde
etkilemektedir. Veriler saklandığı ortama göre basit tipte olabileceği gibi bankacılık
uygulamalarını içeren, web kayıt dosyalarını içeren bir veri tabanı da olabilmektedir.
12
3.1.4. Veri madenciliği süreci
VM kısaca gizli bilgilerin keĢfi sürecidir. VM‟ nin bir süreç olarak tanımlanabilmesi
için sürecin her bir aĢamasının dikkatle izlenmesi gerekmektedir. Bir aĢamanın
sonucu, diğer bir aĢamanın girdisidir. Bu sebeple her aĢama bir önceki aĢamanın
sonuçlarına bağımlıdır (Gürsoy, 2009). CRISP-DM standardı VM sürecinde sıkça
kullanılmaktadır. 1996 yılında Daimler Chrysler, SPSS ve NCR tarafından
oluĢturulmuĢ ve birkaç yıl içerisinde belirli kullanıcı gereksinimleri ve endüstriyel
deneyler için geliĢtirilmiĢtir. CRISP-DM süreci problemin tanımlanması, veri
kaynakları, verinin hazırlanması, modelleme, modelin değerlendirilmesi olmak üzere
altı aĢamadan oluĢmaktadır. Bu aĢamalar ġekil 3.1‟ deki gibi gösterilmektedir.
ġekil 3.1. CRISP- DM metoduna göre veri madenciliği süreci.
Veri madenciliği çalıĢmalarında baĢarılı olmanın ilk Ģartı, uygulamanın hangi iĢletme
amacı için yapılacağının açık bir Ģekilde tanımlanmasıdır. Ġlgili iĢletme amacı iĢletme
problemi üzerine odaklanmıĢ ve açık bir dille ifade edilmiĢ olmalı, elde edilecek
sonuçların baĢarı düzeylerinin nasıl ölçüleceği tanımlanmalıdır. Ayrıca yanlıĢ
tahminlerde katlanılacak olan maliyetlere ve doğru tahminlerde kazanılacak
faydalara iliĢkin tahminlere de bu aĢamada yer verilmelidir Modelin kurulması
aĢamasında ortaya çıkacak sorunlar, verilerin hazırlanması aĢamasına sık sık geri
dönülmesine ve verilerin yeniden düzenlenmesine neden olacaktır.
13
Bu durum verilerin hazırlanması ve modelin kurulması aĢamaları için, bir analistin
veri keĢfi sürecinin toplamı içerisinde enerji ve zamanının % 50 - % 85‟ ini
harcamasına neden olmaktadır. Tanımlanan problem için en uygun modelin
bulunabilmesi, olabildiğince çok sayıda modelin kurularak denenmesi ile
mümkündür. Bu nedenle veri hazırlama ve model kurma aĢamaları, en iyi olduğu
düĢünülen modele varılıncaya kadar yinelenen bir süreçtir. Kurulan ve geçerliliği
kabul edilen model doğrudan bir uygulama olabileceği gibi, bir baĢka uygulamanın
alt parçası olarak kullanılabilir. Kurulan modeller risk analizi, kredi değerlendirme,
dolandırıcılık tespiti gibi iĢletme uygulamalarında doğrudan kullanılabileceği gibi,
promosyon planlaması simülasyonuna entegre edilebilir veya tahmin edilen envanter
düzeyleri yeniden sipariĢ noktasının altına düĢtüğünde, otomatik olarak sipariĢ
verilmesini sağlayacak bir uygulamanın içine gömülebilir. Zaman içerisinde bütün
sistemlerin özelliklerinde ve dolayısıyla ürettikleri verilerde ortaya çıkan
değiĢiklikler, kurulan modellerin sürekli olarak izlenmesini ve gerekiyorsa yeniden
düzenlenmesini gerektirecektir. Tahmin edilen ve gözlenen değiĢkenler arasındaki
farklılığı gösteren grafikler model sonuçlarının izlenmesinde kullanılan yararlı bir
yöntemdir (Aynekin, 2006).
3.2. Web Madenciliği
ĠletiĢimin insanlar arasında hızla yayılmasıyla beraber bilgiye ulaĢım, bilgiyi
paylaĢmak WWW ile sağlanmaktadır. Bankacılık iĢlemleri, e-ticaret baĢta olmak
üzere birçok iĢlem artık internet üzerinden yapılabilmektedir. Ġnternetin herkese açık
olmasıyla beraber bilgiler dünya çapında yayılmakta ve WWW her geçen gün
büyümektedir. Ġnternet siteleri kullanıcılarını tanımak istemekte, onları
yönlendirmekte ve onlar hakkında bilgi toplamaya çalıĢmaktadır. Web madenciliği
disiplini içerisinde öncelikle web terimlerinden bahsetmemiz gerekmektedir. AĢağıda
sıkça kullanılan web terimleri ve tanımları kısaca belirtilmiĢtir.
URI: Kaynağın fiziksel adresini tanımlayan karakterler katarı olarak ifade edilir.
Örnek olarak http://www.sdu.edu.tr/sdu.aspx/dosya=duyuru&dkod=4934, adresi
verilebilir.
14
Web Sayfası (Web Page): URI tarafından tanımlanan bir veya birden fazla web
kaynağının veri kümesidir.
Web Sitesi (Web Site): Bir sunucu tarafından webde sunulan veri tabanları, ilgili
belgeler ve dosyaların birkaç konuyu belirli bir düzende sunduğu platformdur. Bir
web sitesindeki belgeler birbirleriyle ilgili birkaç konuyu kapsayıp, aralarında üst
metin linkleri ile bağlantılar kurar.
Kullanıcı (User): Web sitesini kullanan kiĢi.
Kullanıcı Oturumu (User Session): Kullanıcının web sunucusu üzerinde
sınırlandırılmıĢ sürede yapmıĢ olduğu isteklerdir.
Ġçerik (Content): Sitedeki verinin içeriği kullanıcıya iletilen objelerin ve iliĢkilerin
toplamıdır ve web sayfaları içerisindeki gerçek veridir. Site veri içeriği bunlardan
baĢka tanımlayıcı kelimeler, doküman özellikleri, semantik taglar ya da http
değiĢkenleri gibi semantik ve yapısal meta verileri de içerir. Son olarak, site için
tanımlı küme ontolojisi veri içeriğinin bir parçası olarak düĢünülür. Tanımlı küme
ontolojisi açıkça sitenin içinde yakalanabilir, ya da bazı formlarda bulunabilir.
Tanımlı küme ontolojisinin açık gösterimi ürün kategorileri, gösterilen yapısal
hiyerarĢiler ve dosya yapısı gibi site içeriğinde depolanmıĢ kavramsal hiyerarĢileri,
semantik içerik ve iliĢkilerini rdf (resource description framework) ya da veri tabanı
Ģeması ontoloji dili ile açıkça gösterimlerini içerebilir (Arslan, 2008).
Kullanım (Usage): Web sayfalarının kullanım bilgilerini gösteren veridir. Bu bilgiler
içerisinde IP adresleri, sayfa referansları, bağlantı tarih ve saati verilmektedir. Web
ve uygulama sunucularından otomatik olarak toplanan kayıt (log) verileri
kullanıcıların yönelim (navigational) davranıĢlarını gösterirler. Analizin amacına
göre bu veri değiĢik Ģekillere dönüĢtürülmeli ya da bir araya getirilmelidir. Web
kullanım madenciliğinde en temel seviye verinin ayrıĢtırılması olan sayfa
görüntülenmesidir. Fiziksel olarak, sayfa görüntülenmesi kullanıcının web tarayıcısı
ile yapmıĢ olduğu istekten kaynaklanan web objelerinin birleĢiminin gösterimidir. Bu
web objeleri birden fazla sayfa (frame tabanlı site), resimler, gömülen bileĢen ya da
betik ve veri tabanı sorgularından oluĢur.
15
Kavramsal olarak sayfa görüntüleme, kullanıcının sitedeki makaleyi okuması, arama
sorgusunun sonuçlarını görüntüleme, ürün sayfasını görme, alıĢveriĢ sepetine bir
ürün eklenmesi gibi belirli bir tipteki eylemini gösterir. Diğer taraftan, kullanıcı
seviyesinde en temel ayırım kullanıcı oturumudur. Oturum (ziyaret olarak da anılır)
bir kullanıcının bir ziyareti sırasında belli süre içerisinde art arda görüntülediği sayfa
görüntülemesidir (Arslan, 2008).
Web madenciliği ilk olarak Oren Etzioni tarafından 1996 yılında ortaya atılmıĢtır.
Web madenciliği, geleneksel veri madenciliği tekniklerini kullanarak WWW‟ de
bulunan dosya ve servislerden otomatik olarak örüntü bulmaya ve öngörülmeyen
bilgiye ulaĢmaya çalıĢmaktır (Etzioni, 1996).
Web madenciliği tanımı kısaca öngörülemeyen bilgilerin çeĢitli veri madenciliği
teknikleri kullanılarak araĢtırmacıya yararlı bilgilerin çıkarılması olarak belirtilebilir.
Bu bilgiler ıĢığında ticari amaçlı bir siteden elde edilen kar miktarı arttırılabileceği
gibi, internet sayfaları farklı ilgi alanlarına göre düzenlenerek ziyaretçi memnuniyeti
arttırılabilir. ĠĢlenecek olan ham veri, ziyaretçilerin sayfaları gezerken bıraktıkları
bilgilerin yanı sıra üye olurken verdikleri bilgilerden oluĢabilmektedir. Bu verilerden
sağlanabilecek faydalar ise kullanıcıların profilleri çıkarılması ve zaman içindeki
değiĢimlerin takip edilebilmesi, sitedeki beğenilen ya da beğenilmeyen alanların
tespit edilebilmesi, kullanıcıların gezinti Ģekli/hızı sitenin içerik, yapılandırma ve
altyapısı açısından performansı hakkında fikir verebilmesi olarak sıralanabilir.
Web madenciliğinin baĢarıyla kullanıldığı ve müĢteri/ziyaretçi memnuniyetiyle site
karının arttırıldığı örneklerin baĢında www.amazon.com alıĢveriĢ sitesi gelmektedir.
Sitede yeni üye olanlardan ilgi alanlarını algılamak amacıyla farklı ürünler
listelenerek en çok beğendiklerini seçmeleri istenmektedir. Üyelik iĢlemi sırasında
kullanıcı hakkındaki ilk yararlı bilgilerin toplanmasının yanı sıra kullanıcıların sitede
alıĢveriĢ yaptıkları süre boyunca ilgi duyduğu farklı alanlar da veri ambarına
kaydedilmektedir. Bu veriler daha sonra iĢlenerek kullanıcının profiline uygun
sayfalara ulaĢabilmesi kolaylaĢtırılmaktadır (Haberal, 2007).
16
Web madenciliği ile anlamsız verilerden anlamlı veriler çıkarmak için dört temel
adım bulunmaktadır. AĢağıda bu dört temel adım madde madde açıklanmıĢtır.
Kaynakların Bulunması: Madencilik iĢlemleri için web belgelerinin ve
bilgilerin bulunmasıdır.
Bilgilerin Çıkarılması: Elde edilen web kaynaklarından istenilen bilginin
otomatik olarak çıkarılmasıdır.
GenelleĢtirme: Çoklu veya bireysel web sitelerindeki genel örüntülerin
bulunmasıdır.
KeĢfedilen genel örüntülerin yorumlanması ve doğruluğunun onaylanmasıdır
(Kosala ve Blockeel, 2000).
Web madenciliği kavramı ortaya çıktığı ilk zamanlar web içerik madenciliği ve web
kullanım madenciliği olmak üzere iki kategoriye ayrılmaktaydı. Web sitelerinin
yaygınlaĢmasıyla beraber web yapı madenciliği de üçüncü bir kategori olarak
literatürdeki yerini almıĢtır. Web içerik madenciliği, web dokümanları içerisinde
saklı olan bilgileri çıkarmak için kullanılmaktadır. Web kullanım madenciliği ise
kullanıcıların web ‟de dolaĢırken yaptıkları eriĢim hareketlerince oluĢturulan veriden
bilgi üretmeyi sağlar. Web yapı madenciliğinde amaç web sitesi ve web sayfaları
içerisindeki ilgili bağlantı verisine bakarak istenilen bilgiye ulaĢmaktır. ġekil 3.2„ de
web madenciliği sınıflandırılması görülmektedir.
17
ġekil 3.2. Web Madenciliği Sınıflandırması
3.2.1. Web veri tipleri
Web madenciliğinde kullanılabilecek veriler WWW alanında farklı tiplerde
bulunmaktadır. Bu veriler temel olarak üç gruba ayrılmıĢtır. Web madenciliğinde
kullanılan bu veri çeĢitleri aĢağıda detaylı bir Ģekilde açıklanmıĢtır.
Web içerik verisi
Web sayfalarının içermiĢ olduğu ve kullanıcılara sunulan verilerdir. Web içerik verisi
metinler, HTML sayfalar, XML sayfalar, dinamik olarak oluĢturulan sayfalar veya
içerik ile ilgili veri tabanından alınan bilgilerden oluĢmaktadır. Sayfalar içerisinde
bulunan resimler, videolar, ses veri tipleri, tanımlayıcı kelimeler, doküman özellikleri
ve sayfa içerisindeki etiketler de içerik verisini oluĢturmaktadır (Gezer ve Gülseçen,
2007).
Web
Madenciliği
Web Yapı
Madenciliği
Web Yapı Maden.
HTML Şema
Madenciliği
Kılavuz
Web Kullanım Madenciliği
Sistem Geliştirme
Kişiselleştirme
Site İyileştirme
E-Ticaret
Web İçerik
Madenciliği
Kümeleme
Anlamsal Web
Web sayfası içerik maden.
Metin Madenciliği
Resim Madenciliği
18
Web yapı verisi
Bir web sitesinden diğer bir web sitesine ya da bir web sayfasından diğer bir web
sayfasına yapılan bağlantı yapısının kesin ve açık olarak belirtilmesidir. Yani, web
bağlantılarının organizasyonunu gösteren bilgilerdir. Bu bilgiler, web tasarımcısının
siteye bakıĢ açısını göstermektedir. Web sitesi yapı verisi, site haritalama araçları ile
otomatik olarak oluĢturulan sitenin harita bilgisidir (DaĢ vd., 2008).
Web kullanım verisi
Web kullanım verisi internet kullanıcılarının web sayfasını kullanırken sunucuda
bıraktıkları eriĢim kayıt verileridir. Bu veriler vekil sunucu kayıtlarında, web sunucu
kayıtlarında ya da web tarayıcısının geçmiĢinde bulunan Ġnternet geçici dosyalarında
tutulmaktadır. Bu dosyalar içerisinde kullanıcı IP adresi, sayfa referansları, bağlantı
saatleri ve tarihleri, kullanıcının internet tarayıcısının adı ve sürümü gibi birçok
önemli bilgiler yer almaktadır (DaĢ vd., 2008).
Kullanıcı profil verisi
Kullanıcı profil verisi web site kullanıcısının demografik bilgisini gösteren veridir.
Kullanıcı sisteme kayıt olma aĢamasında verdiği bilgiler buna dâhildir. Operasyonel
veri tabanları ek olarak kullanıcı profil bilgilerini içerebilirler. Bu veri demografik ya
da kayıtlı kullanıcıların ayırıcı bilgileri, sayfalar, ürünler ya da filmler, geçmiĢ
alıĢveriĢler gibi çeĢitli objelerdeki kullanıcı oranları, ya da kullanıcıların ziyaret
geçmiĢlerinden oluĢabilir. Böyle bir verinin elde edilebilmesi için kullanıcının site ile
açıkça etkileĢime girmesi gerekir. Bu verinin bir kısmı anonim olarak bir kullanıcının
tanımlayıcı bilgileri olmadan elde edilebilir. Örneğin istemci tarafındaki çerezlerde
(cookies) bulunan anonim bilgiler kullanıcı profil bilgisi olarak düĢünülebilir ve
siteye tekrar gelen ziyaretçileri ayırt etmek için kullanılabilir (Gezer vd., 2007).
19
3.2.2. Web madenciliği sınıflandırması
Web sayfaları birçok farklı veri tiplerini barındırmaktadırlar. Farklı verilerden de
çeĢitli örüntüler web madenciliği yöntemleriyle keĢfedilebilmektedir. Çizelge 3.1„ de
web madenciliğinin içerik, yapı ve kullanım madenciliklerine göre veri ve gösterim
türünden gruplandırmaları görülmektedir.
Çizelge 3.1. Web madenciliği sınıflarının karĢılaĢtırılması.
Web Madenciliği
Ġçerik Madenciliği Yapı Madenciliği Kullanım
Madenciliği
Veri Metin Belgeleri ve
HTML sayfaları
HTML Linkleri Server Log,
Browser Log
dosyaları
Verinin ġekli KarıĢık, Yapısız Link Yapısında Kullanıcı
EtkileĢimi
Gösterimi ĠliĢkisel ve
Sınıflandırmalı
Grafik ĠliĢkisel Veri tabanı
ve Grafik
3.2.2.1. Web içerik madenciliği
Web içerik madenciliği web sunucularından içeriklerine göre otomatik bilgi bulma
tekniklerini tanımlar. Sunucular içerisinde metin, ses, görüntü gibi veriler
bulunmaktadır. Ġçerik madenciliğinin amacı da bu veriler arasından bilginin
bulunmasını sağlamaktır.
Verinin farklı tiplerde oluĢu yapısal web madenciliğine daha karıĢık yaklaĢımlar
kazandırır. Web içerik madenciliği, metin madenciliği ve veri madenciliği ile ilgili
olmasına rağmen aralarında bir takım farklılıklar vardır. Web içerik madenciliği, veri
madenciliği ile ilgilidir çünkü web dokümanları içerisindeki verileri çıkarmak için
veri madenciliği tekniklerini kullanır. Veri madenciliğinde, tam olarak yapısal veriler
kullanılırken; web verilerinin bir kısmı yapılı ve yapısız verilerdir. Aynı Ģekilde, web
içerik madenciliği metin madenciliğiyle ilgilidir çünkü web üzerindeki bilgilerin
çoğu metin tabanlıdır.
20
Web içerik madenciliği ile metin madenciliği arasındaki fark ise metin
madenciliğinin tamamen yapısal olmayan veriler üzerinde odaklanmıĢ olmasıdır
(AltıntaĢ, 2006).
Web içerik madenciliğinde veri tabanı yaklaĢımı ve bilgiye eriĢim yaklaĢımı olmak
üzere kullanılan iki tür yaklaĢım bulunmaktadır.
Bilgiye EriĢim yaklaĢımı kullanıcı temel alınarak, gösterilen bilgileri
filtrelemek ve bilgi eriĢimini geliĢtirmek amacıyla kullanılmaktadır. IR kısaca
belirli yapısı olmayan ya da yarı-yapısal verilerin araĢtırılma yönteminin
adıdır.
Veri tabanı yaklaĢımında ise bilgiler veri tabanına kaydedilerek, ayrıntılı
sorgularla bilgilerin filtrelenmesi sağlanmaktadır. Veri tabanı yaklaĢımı
kullanılarak bilgilerin yönetiminin daha kolay yapılması sağlanmaktadır.
3.2.2.2. Web yapı madenciliği
Web yapı madenciliği, web sitesi ve sayfalarının yapısal olarak özelliklerini belirler.
Bu özellikleri belirlerken sayfa bağlantılarını ve doküman yapısını kullanır (Gürsoy,
2009).
Web yapı madenciliği web sayfaları arasındaki bağlantı verisine bakarak bilgi
çıkarımı yapar. Kısaca web içerik madenciliği dokumanın içeriğine bakarken yapı
madenciliğinde ise dokumanlar arası bağlantılara bakmaktadır. Yapı madenciliğinin
amacı sitenin yapısal tasarımını iyileĢtirmektir. Web sayfaları arasındaki linklerin
iliĢkilerini yani <a href> </a> tagları arasında kalan veriyi inceler. Web yapı
madenciliği, linklerin topolojisine dayanarak farklı site ve sayfalar arasındaki
benzerlik ve iliĢki bilgilerini üretir. ġekil 3.3„ de web dokümanları arasındaki oklar
iki sayfa arasındaki iliĢkiyi temsil etmektedir.
21
ġekil 3.3. Web Sayfaları arasındaki link bağlantısı.
ġekil 3.3„ deki yapı sayesinde iki nokta arasındaki en kısa yola ulaĢılmaktadır. Bu
bilgi web sayfaları arasındaki iliĢkiyi belirlemek açısından önemlidir. Ġki sayfa
arasında doğrudan bir bağlantı yoksa o linkler arasındaki bağlantıya ve komĢuluk
iliĢkisine kolay bir Ģekilde eriĢebilebilir. Kısaca web yapı madenciliği sayesinde,
araĢtırılan konu ile ilgili bir sayfayı sisteme vererek onunla ilgili tüm sayfalara
eriĢebilir ve web sayfaları arasındaki benzerlik iliĢkileri çıkarabilir (Arslan, 2008).
Google “Hyperlink Analyse” yöntemini kullanarak dünyanın en önemli arama
motoru olmuĢtur. Google‟ın “PageRank” teknolojisi, link yapılarını kullanarak her
bir sayfa için bir derece hesaplar. Bu sayede Google istenen konu ile ilgili bir
sayfayı getirirken, bu sayfa ile ilgili diğer sayfaları da getirir (Haberal, 2007).
3.2.2.3. Web kullanım madenciliği
Sunucularda tutulan kullanıcı eriĢim kayıtları, tarayıcı kayıtları, kullanıcı profilleri,
çerezler ve kullanıcıların bırakmıĢ olduğu tüm kayıtlar web kullanım madenciliğinin
temel kaynağını oluĢturmaktadır.
Web kullanım madenciliği, kullanıcıların webde dolaĢırken yaptıkları eriĢim
hareketlerince oluĢturulan veriden (günlük dosyalar) bilgi üretmeyi hedefler. Web
kullanım madenciliği, kullanıcıların genel davranıĢ biçimlerini bilinen ya da önerilen
veri madenciliği algoritmalarını, günlük dosyalarındaki veriye uygulayarak bulmaya
çalıĢır (Özakar ve Püskülcü, 2011).
Web kullanım madenciliğinin en önemli kaynağı olan web kullanım verileri
sunucular üzerinde log dosyalarına kaydedilir.
22
Kullanıcının sayfaya her bir isteğinde yeni bir satır olarak dosyaya eklenir.
Sunuculardaki dosyalar günlük tutulur ve log dosyaları eriĢim log, mail log, hata log
ve ftp logları olmak üzere dört türdedir. Web kullanım madenciliğinde kullanılan
örnek eriĢim kayıt dosyası ġekil 3.4‟ deki gibidir.
ġekil 3.4. Web eriĢim kayıt dosya örneği.
Web kullanım madenciliği uygulama süreci üç aĢamada gerçekleĢtirilir. Ön ĠĢleme
(Preprocessing), Örüntü KeĢfi (Pattern Discovery) ve Örüntü Analizi (Pattern
Analysis) aĢamalarından oluĢan web kullanım madenciliği uygulama süreci ġekil
3.5‟ de belirtilmiĢtir.
ġekil 3.5. Web kullanım madenciliğinin uygulama adımları.
23
Ön ĠĢlem Süreci
Ön iĢlem sürecinde eriĢim kayıtlarından alınan ham veri bir takım iĢlemlerden
geçirilerek soyutlaĢtırılır ve örüntü keĢfi (Pattern Discovery) için hazır hale getirilir.
SoyutlaĢtırma bir çeĢit istatistiksel özet çıkarmadır ve kullanıcı (users), sayfa
görünümü (pageviews), tıklama akıĢı (click stream), kullanıcı oturumu (sessions),
sunucu oturumu gibi çeĢitleri olabilmektedir (Elgün, 2008).
Web madenciliğinin ilk aĢaması olan ön iĢleme süreci ile web sunucularından
sağlıklı bir bilgi çıkarımı yapmak için alınan log dosyaları gereksiz ve gürültülü
verilerden arındırılarak belirli bir düzene getirilmektedir. Ön iĢlem süreci web
kullanım madenciliğinin en önemli ve kapsamlı bölümüdür. VM tekniklerinin
baĢarılı bir Ģekilde sisteme uygulanabilmesi için ön iĢleme sürecinin baĢarılı bir
Ģekilde tamamlanması gerekmektedir. Ön iĢleme sürecinde veri temizleme, kullanıcı
tanımlama, oturum tanımlama, yol tamamlama ve biçimlendirme olmak üzere dört
temel aĢama bulunmaktadır. ġekil 3.6„ da ön iĢlem aĢamaları gösterilmektedir.
ġekil 3.6. Web kullanım madenciliği ön iĢlem aĢamaları.
Sunuculardan alınan eriĢim kayıt dosyaları ilk olarak veri temizleme aĢamasından
geçirilmelidir.
24
Kayıt dosyası üzerinde web kullanım madenciliği açısından birçok gereksiz satır
olacaktır. Bu iĢlem vasıtası ile kayıt dosyası üzerinde bulunan resim, çoklu ortam ve
betik dosyaları silinecektir. Ayrıca bu esnada robot (web robot, spider veya bot) adını
verilen web üzerinden otomatik tarama yapan yazılımların bırakmıĢ olduğu satırları
da web kayıt dosyasından çıkarılması gerekmektedir (Arslan, 2008).
HTTP protokolü bağlantısız bir protokol olduğu için bir kullanıcının sayfa
görüntüleme isteği eriĢim kayıtlarında birden fazla yer alacaktır. Bunun nedeni, sayfa
içerisinde kullanılan resim dosyaları, stil dosyaları, script dosyaları ve sayfa
içerisinde kullanılan diğer dosyaların da eriĢim kayıtları içerisinde ayrı satırlar
halinde yer almasıdır. EriĢim kayıtları içerisinde yer alan bu tür satırlar gömülü
kaynakları göstermektedir ve silinmelidir (Özseven, 2011).
Arama motorlarının herhangi bir web sayfasına ait tüm sayfaları ve linklerini tespit
etmek için dönem dönem kullandıkları web robotları yüzünden eriĢim kayıtlarında
gereksiz birçok satır biriktirmektedirler. Robotların biriktirmiĢ olduğu satırlarda log
dosyasından silinmelidir. Web sitesine istekte bulunan kullanıcının bırakmıĢ olduğu
eriĢim bilgisi için durum kodu (sc-status) tutulmaktadır. 200 ile 299 arasındaki
durum kodları dıĢında kalan istekler madencilik sürecinde gerekirse silinebilirler.
Web kullanım madenciliğinde kullanıcı tanımlama için kullanıcı web sitesine
girerken Ģifre ve kullanıcı adı kullanırsa tespit oldukça kolay yapılabilmektedir. Bu
yapının olmadığı durumlarda birçok kiĢi internet çıkıĢını tek bir internet adresi (IP
Adress) üzerinden yaptığı için kullanıcı tanımlama iĢleminde farklı yöntemler
kullanılmalıdır. Bunlar arsında çerezler, oturum kimliği gömme, agent bilgisi,
referrer sayılabilir (Arslan, 2008).
Tek bir ip üzerinden giriĢ yapıldığında kullanıcı tek gibi görünse de agent ve referrer
lara bakıldığında kullanıcı sayısının birçok kez değiĢtiği görülebilmektedir.
Kullanıcıları tanımlarken ilk olarak web log kayıtları ip adresine ve zamana göre
sıralanır. Daha sonra her bir ip adresi için farklı istemci yapısı (agent) belirlenir.
25
Belirlenen kullanıcılar için site ağacı ve gelinen sayfalar (referrer) uyumluluğuna
göre yeni kullanıcılar belirlenir. Tüm bu adımlar farklı ipler için tekrarlanarak yeni
kullanıcılar belirlenir.
Oturum tanımlama internet kullanıcısının bir web sitesine ya da web sunucusuna
bağlandığı zamandan ayrılıncaya kadarki geçen süre içerisinde site üzerinde
gerçekleĢtirdiği aktiviteler olarak tanımlanabilir. Kimlik doğrulama sistemi
bulunmayan web sitelerinde oturum tanımlama iĢlemi için sezgisel yaklaĢımlar
kullanılmaktadır. Oturum süresi temelli (session-duration based), sayfada kalma
süresi temelli (page-stay-time-based) ve referans temelli (referrer basic huristic)
olmak üzere üç sezgisel yaklaĢım bulunmaktadır (Cooley vd., 1999).
Kullanıcının web sitesi üzerinde yapmıĢ olduğu görüntülemeler oturumlara
bölünmelidir. Bu konuda birçok çalıĢma 30 dakikayı temel almıĢtır (Catledge ve
Pitkow, 1995). Oturum tanımlarken ilk olarak kullanıcı tanımı adımında belirlenen
her bir farklı kullanıcı için yeni bir oturum numarası belirlenir. Daha sonra zaman
aĢımı eĢik değeri belirlenir. Her bir kullanıcı için o kullanıcıya ait ardıl iki log satırı
için zaman aralığı bulunur. Hesaplanan zaman aralığı t değerinden büyük ise bu log
satırı yeni oturum numarası ile ifade edilir. Tüm bu adımlar her farklı kullanıcı için
ayrı ayrı yapılır.
Yol tamamlama iĢlemi, oturumların belirlenmesinden sonra uygulanan önemli bir
aĢamadır. Web tarayıcının ön belleği veya kullanıcının kullandığı vekil sunucudan
dolayı kayıt dıĢı kalan bağlantıları oluĢturmak amacıyla yol tamamlama iĢlemi
uygulanır. Örneğin, web sitesinde gezinen bir kullanıcı en son girdiği web sayfasıyla
doğrudan bağlantı kurmamıĢsa bu sayfadan ayrıldığı zaman kullanıcı eriĢim
kayıtlarında bir eksiklik oluĢacaktır. ĠĢte bu problemin çözümüne yol tamamlama
yöntemi ile çözüm aranmaktadır. Günlük eriĢim kayıtlarına eklenmeyen satırlarının
eklenebilmesi ve bu satırların tanımlanabilmesi için çözüm yol tamamlama
metodunun kullanılmasıdır. Bir sayfanın hangi istek sayfasından geldiğini görmek
için kullanıcı referans kayıtlarını kullanmak gerekir. Eğer bir kullanıcının
geçmiĢindeki sayfa bilinmek isteniyorsa, tarayıcı sayfasından geri butonu ile geçmiĢe
doğru gidilerek ön bellekte tutulan sayfalar görüntülenebilir.
26
Eğer kullanıcı geçmiĢ kayıtlarında birden fazla istek sayfası bulunuyorsa, yol
tamamlamada bu bağlantılardan en yakın olanı baĢlangıç olarak kabul edilir (DaĢ,
2008).
Örüntü keĢfi
Örüntü keĢfi, ön iĢlemden geçirilmiĢ verilere veri madenciliği tekniklerinin
uygulandığı aĢamadır.
Bir örüntü keĢfi uygulamasında, keĢfedilen örüntünün önemli olabilmesi Ģu temel
esaslara bağlıdır;
Çıkarılan örüntünün insanlar tarafından kolayca anlaĢılabilir olmalıdır.
Çıkarılan yeni örüntünün test edilmiĢ veri veya yeni veriler üzerinde belirli
bir oranda geçerliliği sağlanmalıdır.
Çıkarılan örüntülerin yararlı, ihtiyaçları karĢılayan ve kullanılabilir olması
gerekir.
Çıkarılan örüntüler yeni olmalıdır (DaĢ, 2008).
Örüntü keĢfi aĢamasında en sık kullanılan veri madenciliği teknikleri ise istatiksel
analiz, birliktelik kuralları, yol analizi, kümeleme, sınıflandırma ve sıralı
örüntülerdir.
Ġstatistiksel analiz web site ziyaretçileri hakkında bilgi açığa çıkarmaya yarayan en
güçlü araçtır. Ġstatistiksel analizin amacı, Web sitesi ve Web sayfaları içerisindeki
çok sayıda temel bilgiyi elde etmektir. Kullanıcıların web sitesi içerisinde gezindiği
sayfaların görüntülenmesi, site içerisindeki hatalı sayfaların ve kırık köprü
bağlantılarının tespit edilmesi, kullanıcı sistemine ait yazılımların bulunması gibi
birçok örnek verilebilir. Analizciler oturum dosyasını analiz ederken farklı
değiĢkenler üzerinde farklı açıklamalı istatistiksel analiz tiplerini yerine getirirler.
Periyodik web sistem raporlarında bulunan istatistiksel bilgiler analiz edilerek sistem
performansını arttırıcı, sistem güvenliğini geniĢletici, düzeltme iĢlemlerini
27
kolaylaĢtırıcı ve pazarlama kararlarını destekleyici raporlar çıkartılabilir (Srivastava
vd., 2000). Periyodik web sistem raporlarında bulunan istatiksel bilgi analiz edilerek
sistem performansını artırıcı, sistem güvenliğini geniĢletici, düzeltme iĢlemlerini
kolaylaĢtırıcı ve pazarlama kararlarını destekleyici raporlar istatiksel analiz ile
verilebilmektedir.
Birliktelik kuralları genellikle alıĢveriĢ uygulamalarında kullanıldığı için literatürde
market sepet analizi olarak da geçmektedir. Bu yöntemdeki amaç bir küme
içerisindeki nesnelerin birbirleri ile olan bağlarının tespit edilmesidir.
Örneğin, A ürününün alınması ile B ürününün veya C ürünün alınması arasındaki
iĢlemlerde bir bağlantı olup olmadığının tespit edilmesi ve eğer bağlantı var ise bu
bağlantılar arasındaki kuvvet veya önem derecesinin ortaya çıkartılması sağlanabilir.
Bu analizin amacı A ürününü alan kiĢilerin B veya C ürünleri alımları ile ilgili olarak
kuvvetli bir bağın bulunup bulunmadığını kontrol etmek eğer var ise bununla ilgili
olarak örneğin müĢterilere promosyonlar veya ürünlerin raflarının daha yakın yerlere
yerleĢtirilmesini sağlamak olabilir. Bu iĢlem bir web sitesi içerisinde sayfaların
yapılandırılması amacı ile de kullanılabilir (Gezer vd., 2007).
Sınıflandırma, bir veriyi daha önceden tanımlanmıĢ sınıflara dağıtma tekniğidir.
Örüntü keĢfi uygulamalarında en çok kullanılan yöntemlerden biridir. Sınıflandırma,
daha önceden belirlenmiĢ ölçütlere göre, örneğin yaĢa, cinsiyete, gelir durumuna,
eğitim düzeyine ve müĢterinin kredi borcunu zamanında ödeyip ödememesine, bir
kampanyaya olumlu cevap verip vermemesine, hedeflenen değerlerin üzerinde
bulunup bulunmamasına yani ilgilenilen herhangi bir özelliğe veya birkaç ölçüte
göre yapılır (DaĢ, 2008). Web etki alanında, sınıflandırma tekniği kullanarak
müĢterilerinin hangi sınıf veya kategoride bir profile sahip olduğu belirlenebilir. Bu
yöntemin en önemli fonksiyonu, sınıflandırma sonrasında her kategoride yer alan
kayıtların, alanların, kiĢilerin, nesnelerin, kurumların özelliklerini ortaya çıkarmaktır.
Örneğin; internet bankacılığında yaptıkları elektronik fon transferi sıklıklarına göre
sınıflandırmada internet müĢterileri, “seyrek” kullanıcı, “orta sıklıkta” kullanıcı ve
“sık” kullanıcı olarak sınıflandırılabilir.
28
MüĢteriler bu Ģekilde gruplandıktan sonra amaç, her bir grubun özelliklerini analiz
etmek, profilini ortaya çıkarmak ve bu grupların özelliklerini, tutum ve davranıĢlarını
içeren bir davranıĢ geliĢtirebilmektir. Sınıflandırma iĢleminde, verilen bir sınıf veya
kategorinin özelliklerini en iyi biçimde açıklamak için seçim ve açığa çıkarma
uygulamalarına ihtiyaç duyulur. Sınıflandırma iĢlemi; karar ağaçları, bayes
sınıflayıcıları, en yakın komĢu ve destek vektör makineleri gibi denetlenen
tümevarımsal öğrenim algoritmaları kullanılarak yapılabilir (DaĢ., 2008).
Kümeleme tekniğinde amaç üyelerinin birbirlerine çok benzediği, ancak özellikleri
birbirlerinden çok farklı olan kümelerin bulunması ve veri tabanındaki kayıtların bu
farklı kümelere bölünmesidir. Kümeleme analizinde; veri tabanındaki kayıtların
hangi kümelere ayrılacağı veya kümelemenin hangi değiĢken özelliklerine göre
yapılacağı, konunun uzmanı olan bir kiĢi tarafından belirtilebileceği gibi veri
tabanındaki kayıtların hangi kümelere ayrılacağını geliĢtirilen yazılımlar da
yapabilmektedir. Kümeleme; web madenciliği, istatistik, biyoloji ve makine
öğrenmesi gibi pek çok alanda kullanılır. Kümeleme tekniğinde, sınıflama tekniğinde
olan veri sınıfları yoktur. Sınıflama tekniğinde, verilerin sınıfları bilinmekte ve yeni
bir veri geldiğinde bu verinin hangi sınıftan olabileceği tahmin edilmektedir (Arslan,
2008). Çoğunlukla yapay sinir ağları ve istatistiksel metotlardan yararlanılır ve
örüntü tanıma, görüntü iĢleme, ekonomi bilimi (özellikle market araĢtırma), internet
üzerinde doküman sınıflandırılması, benzer ortak arkadaĢ grupları keĢfetme, veri
madenciliği, istatistik, biyoloji ve makine öğrenmesi gibi pek çok alanda kullanılır
(Kaya ve Köymen, 2008). Kümeleme modellerinde amaç, ġekil 3.7‟ de görüldüğü
gibi küme üyelerinin birbirlerine çok benzediği, ancak özellikleri birbirlerinden çok
farklı olan kümelerin bulunması ve verilerin bu farklı kümelere bölünmesidir.
ġekil 3.7. Kümeleme Modeli
29
Sıralı örüntüler bir zaman aralığında sıklıkla gerçekleĢen olay kümelerini bulmayı
amaçlar. Sıralı örüntü bulma iĢleminde, belirli zaman aralıklarında oturumlar
incelenir ve karĢılaĢtırmalar yapılır. Sıralı örüntülerin bulunması gelecekteki eğilimi
tahmin edecek Web pazarlamacıları için oldukça anlamlıdır. Böylece, bir Web
sitesinde yapılan ilanlar ya da ürün satıĢları belirli kullanıcı gruplarına
yönlendirilebilecektir (Cooley vd., 1997).
Sıralı örüntüler, birbiri ile iliĢkisi olan ancak birbirini izleyen dönemlerde
gerçekleĢen iliĢkilerin tanımlanmasında kullanılmaktadır. X ameliyatı yapıldığında,
15 gün içinde %45 ihtimalle Y enfeksiyonun oluĢması, IMKB borsa endeksi
düĢerken A hisse senedinin değeri %15‟den daha fazla artacak olursa, üç iĢ günü
içerisinde B hisse senedinin değeri %60 ihtimalle artacak olması, çekiç satın alan bir
müĢterinin ilk üç ay içerisinde %15, bu dönemi izleyen diğer üç ay içerisinde de %10
ihtimalle çivi satın alacak olması ardıĢık zamanlı örüntülere örnek olarak verilebilir
(Arslan, 2008).
Örüntü analizi
Örüntü analizi web kullanım madenciliğinin son sürecidir. Örüntü analizinin amacı
örüntü keĢfi aĢamasında ortaya çıkan kuralların OLAP uygulamaları ile
derinlemesine analizler yapabilmektir.
OLAP iĢ ortamında veri tabanlarının stratejik analizi için çok güçlü bir uygulama
alanı olarak ortaya çıkmıĢtır (DaĢ, 2008).
Stratejik analizin önemli bazı özellikleri Ģunlardır.
Kapasitesi çok büyük boyutta olan verileri analiz etme
Verilerdeki geçici boyutlar için açık destek sağlama
Farklı tipte bulunan bilgiler için destek sağlama
Uzun sıra analiz
30
3.3. Birliktelik Kuralları
Veri madenciliği kavramında bir arada gerçekleĢen olayları çözümleme birliktelik
kuralları kavramı altında incelenmektedir. Örneğin bir marketten margarin alan
müĢterilerin %75 inin aynı alıĢveriĢte Ģeker satın aldıklarını söylemeleri, birlikte
gerçekleĢen olaylara örnek olarak verilebilir. Bu tür bilgiler özellikle mağaza
yöneticilerince değerli bilgi olarak göz önüne alınır. Mağaza yöneticileri söz konusu
ürünleri mağaza içinde birbirine yakın raflara yerleĢtirerek müĢterilerin satın alma
eğilimlerini değerlendirebilir ve satıĢların yükselmesini sağlayabilir. Olayların
birlikte gerçekleĢme durumlarını çözümleyen veri madenciliği yöntemlerine
birliktelik kuralları adı verilmektedir. Bu yöntemler, birlikte olma kurallarını belirli
olasılıklarla ortaya koyar. Birliktelik çözümlemelerinin en yaygın uygulaması
perakende satıĢlarda müĢterilerin satın alma eğilimlerini belirlemek amacıyla
yapılmaktadır. MüĢterilerin bir anda satın aldığı tüm ürünleri ele alarak satın alma
eğilimini ortaya koyan uygulamalara pazar sepet analizi denilmektedir (Özkan,
2008).
Veri tabanlarındaki bilgi arttıkça birçok kurum ve kuruluĢ sahip oldukları bilgiler
arasındaki iliĢkileri ortaya çıkarma çabası içerisine girmiĢtir. Yığınlar halindeki
bilgiler arasındaki iliĢkiler kurumlar için altın değerinde sonuçlar doğurabilecek
kararların alınmasında önemli rol oynamaktadır. Veri tabanındaki bir dizi bilgi ya da
kaydın diğer kayıtlarla olan bağlantısını açıklayan iĢlemler dizisine iliĢki analizi
denilmektedir. Yani bir kayıt varken, diğer bir üçüncü hatta dördüncü kaydın veri
tabanına girme olasılığını ya da bu iki kayıt varken, diğer bir üçüncü hatta dördüncü
kaydın veri tabanına girme olasılığı sorulduğunda iliĢki analizinin uygun bir çözüm
olduğunu ve verilerin birlikte olan kurallarını ortaya çıkardığını söyleyebiliriz
(Silahtaroğlu, 2008).
Birliktelik algoritması oluĢturmadan önce hangi kuralların uygulanacağı
belirlenmelidir. Büyük veri tabanında iliĢkileri bulan algoritmalar geliĢtirmek çok zor
değildir. Fakat geliĢtirilen algoritmalar önemli iliĢkileri ortaya çıkaracağı gibi
önemsiz birçok iliĢkiyi de ortaya çıkarır. Bu yüzden, büyük veri tabanlarında küçük
alt kümeler bulunmalıdır.
31
KarmaĢık veri tabanlarından birliktelik kuralları bulunurken ilk olarak önceden
belirlenmiĢ minimum destek sayısını sağlayan sık tekrarlanan öğeler çıkarılır. Daha
sonra sık öğe grupları ile güven ve destek değerlerini sağlayacak Ģekilde kurallar
oluĢturulur.
Birliktelik kurallarıyla herhangi bir problemin çözümünde çeĢitli algoritmalar
devreye girmektedir. AIS algoritması, SETM algoritması, Apriori algoritması en
yoğun kullanılan algoritmalardır.
GeniĢ nesne kümelerini üretmek için geliĢtirilmiĢ olan AIS algoritması 1993 yılında
literatürdeki yerini almıĢtır. AIS algoritmasının çalıĢma mantığını ele alacak olursak
tüm veri tabanını birçok kez tarar ve her tarama sırasında tüm iĢlemleri okur. Tarama
sırasında tüm verileri sayarak geniĢ verileri çıkarır. Bir tarama iĢlemi sona erdiğinde
bir önceki taramada geniĢ oldukları belirlenen nesne kümeleriyle arasındaki ortak
nesne kümeleri belirlenir. Belirlenen bu ortak nesne kümeleri mevcut olan diğer
nesnelerle birleĢtirilerek yeni aday kümeler oluĢturulur. AIS algoritmasında aday
kümeler oluĢabilmesi için birleĢecek nesnelerin hem büyük olması hem de harf sırası
bakımından tüm nesnelerden sonra geliyor olması gerekmektedir (Silahtaroğlu,
2008).
SETM algoritması büyük nesne kümelerinin hesaplanmasında veri tabanlarıyla
beraber yapısal sorgulama dilini temel almaktadır. GeniĢ nesne kümeleri SETM
algoritması id ve nesne kümesi ismi olmak üzere iki tane parametre almaktadır. Aday
nesne kümesi Ck olarak gösterilirse Ck TID ve küme ismi parametrelerini alır. SETM
algoritması veri tabanını birçok kez taramaktadır. AIS algoritmasına benzer bir
Ģekilde tekrar eden verilerin tekrar edilme sayılarıyla beraber aday nesne kümelerini
oluĢturur. SETM algoritmasında TID bilgisi tutularak nesne kümeleri numarasına
göre sıraya konulur. Bu Ģekilde küçük nesne kümeleri silinir. Algoritma birçok
taramadan sonra nesne kümesi bulamayınca sonlanır. SETM algoritmasında AIS „e
göre TID bilgisinin olması karmaĢıklığın artmasına ve nesne kümelerinin destek
sayısı hesaplanırken Ck „nın sıralanmıĢ halde olmaması dezavantaj olmuĢtur (DöĢlü,
2008).
32
3.3.1. Destek ve güven ölçütleri
Pazar-sepet analizinde satılan ürünler arasındaki iliĢkileri ortaya koymak için
“destek” ve “güven” ölçütlerinden yararlanılır. Bu ölçütlerin hesaplanmasında
“destek sayısı” adı verilen bir değer kullanılır. “Kural destek ölçütü” bir iliĢkinin tüm
alıĢveriĢler içinde hangi oranda tekrarlandığını belirler. "Kural güven ölçütü, A ürün
grubunu alanların B ürün grubunu da alma durumunu, yani birliktelik kuralı A B
biçiminde gösterilir. Bu durumda kural destek ölçütü Denklem 3.1‟ de ifade
edilebilir;
( ) ( )
(3.1)
Burada sayı(A,B) destek sayısı A ve B ürün gruplarının aynı alıĢveriĢte birlikte
alınma sayısını göstermektedir. N ise tüm alıĢveriĢlerin sayısını göstermektedir
(Özkan, 2008). A ve B ürün gruplarının birlikte satın alınması olasılığını ifade eden
kural güven ölçütü Denklem 3.2‟ deki gibi hesaplanır (Tan, 2006).
( ) ( )
( )
(3.2)
Destek ve güven ölçütlerinin yanı sıra, birliktelik kurallarını çıkarırken bu değerleri
karĢılaĢtırmak üzere bir eĢik değere ihtiyaç vardır. Hesaplanan destek veya güven
ölçütlerinin destek(eĢik) ve güven(eĢik) değerlerinden büyük olması beklenirken,
hesaplanan destek veya güven ölçütleri ne kadar büyük ise birliktelik kurallarının da
o derece güçlü olduğuna karar verilir (Özkan, 2008).
Birlik kuralına göre güven ve destek değerlerinin nasıl hesaplandığı aĢağıdaki
belirtilmiĢtir.
( )
Yukarıdaki gibi 20 müĢterinin yapmıĢ olduğu alıĢveriĢ bilgilerinden birliktelik kuralı
verildiğinde güven ve destek değerleri Ģu Ģekilde hesaplanır;
33
M={Margarin, ġeker} ürünlerini birlikte satın alan müĢterilerin bu iki ürünle beraber
K={Süt} ürünü alma olasılığını belirlemektedir. Destek sayısını hesaplarken üç
ürününde aynı alıĢveriĢte birlikte alınma değeri bulunur. Kuralın destek ölçütü
Denklem 3.3‟ deki gibi hesaplanmaktadır;
( ) ( )
(3.3)
Güven ölçütünü bulmak için üç ürünün de aynı alıĢveriĢte alınma sayısının
{margarin, Ģeker} alanlarına bölümüyle güven değeri bulunur. Denklem 3.4‟ de
hesaplama görülmektedir.
( ) ( )
( )
(3.4)
3.3.2. Apriori algoritması
Apriori algoritması birliktelik kurallarının çıkarılmasında en sık kullanılan
algoritmadır. Sık geçen öğeleri bulmak için veri tabanını defalarca taramak gerekir.
Tarama yapılırken apriori algoritmasının birleĢtirme, budama iĢlemleri ve minimum
destek ölçütü yardımı ile birliktelik iliĢkisi olan öğeler bulunur. Apriori algoritması
k+1 adet sık geçen öğe kümesini bulmak için k adet sık geçen öğe kümesine ihtiyaç
duyar.
Veri tabanında sık geçen öğeleri bulmak için minimum desteği sağlayan sık geçen
öğeler bulunur. L1 olarak adlandırılan ilk aday küme L2„ yi bulmak için kullanılır.
Ġzleyen taramalarda bir önceki taramada bulunan sık geçen öğe kümeleri aday
kümeler Ck adı verilen yeni potansiyel sık geçen öğe kümelerini üretmek için
kullanılır.
34
Aday kümelerin destek değerleri tarama sırasında hesaplanır ve aday kümelerden
minimum destek metriğini sağlayan kümeler o geçiĢte üretilen sık geçen öğe
kümeleri olur. Sık geçen öğe kümeleri bir sonraki geçiĢ için aday küme olurlar. Bu
süreç yeni bir sık geçen öğe kümesi bulunmayana kadar devam eder. Her bir aday
kümeyi bulmak için veri tabanı tamamen taranır (Han ve Kamber, 2001).
Apriori algoritmasının aĢamaları aĢağıdaki gibidir (Özkan, 2008).
Birliktelik kurallarını bulmak için eĢik destek ve güven değerleri belirlenir.
Sonuçlar eĢik değerlere eĢit veya büyük olmalıdır.
Veri tabanı taranarak çözümlemeye dâhil edilecek her bir ürün için tekrar
sayıları, yani destek sayıları hesaplanır. Bu destek sayıları eĢik destek sayısı
ile karĢılaĢtırılır. EĢik destek sayısından küçük değerlere sahip satırlar
çözümlemeden çıkarılır ve koĢula uygun kayıtlar göz önüne alınır.
Seçilen ürünler ikiĢerli gruplandırılarak, bu grupların tekrar sayıları, yani
destek sayıları bulunur. Bu sayılar eĢik destek sayıları ile karĢılaĢtırılarak eĢik
değerden küçük değerlere sahip satırlar çözümlemeden çıkarılır.
ĠkiĢerli gruplandırılan ürünler üçerli, dörderli vb. gruplandırmalar yapılarak
bu grupların destek sayıları elde edilir ve eĢik değer ile karĢılaĢtırılır, eĢik
değerlere eĢit veya yüksek olduğu sürece iĢlemlere devam edilir.
Ürün grubu belirlendikten sonra kural destek ölçütüne bakılarak birliktelik
kuralları türetilir ve bu kuralların her birisiyle ilgili olarak güven ölçütleri
hesaplanır.
3.4. Genetik Algoritmalar
GA doğadaki geliĢim mekanizmasını örnek alarak oluĢturulmuĢ bir çözüm tekniğidir.
Genetik algoritmalar yapay zekânın önemli bir konusu olan evrimsel hesaplama
tekniğinin bir bölümünü oluĢturmaktadır. Genetik algoritmalar, kromozomal
operatörler üzerinde durur. Evrimsel stratejiler, birey seviyesindeki davranıĢsal
değiĢiklikleri vurgular.
35
Evrimsel programlama türler düzeyindeki davranıĢsal değiĢimleri belirtir. Genetik
algoritmalar genel olarak evrimsel hesaplama alanındaki en göze çarpan tekniktir.
Geleneksel yöntemlerle çözümü zor veya imkânsız olan problemlerin çözümünde
genetik algoritma kullanılır. Herhangi bir problemin genetik algoritma ile çözümü
için problem sanal olarak evrimden geçirilmelidir (Parlak, 2007).
Genetik algoritmalar genel olarak evrimsel sürece benzer bir Ģekilde çalıĢan arama ve
eniyileme yöntemidir. Çok boyutlu ve karmaĢık arama uzayında en iyinin hayatta
kalması ilkesine göre bütünsel en iyi çözümü arar. Genetik algoritmaların temel
ilkeleri ilk kez Michigan Üniversitesi'nde John Holland tarafından ortaya atılmıĢtır.
Holland 1975 yılında yaptığı çalıĢmaları “Adaptation in Natural and Artificial
Systems” adlı kitabında bir araya getirmiĢtir. Ġlk olarak Holland evrim yasalarını
genetik algoritmalar içinde eniyileme problemleri için kullanmıĢtır.
Genetik Algoritmada amaç, doğal sistemlerin uyum sağlama özelliğini dikkate
alarak, yapay sistemler tasarlamaktır. Genetik algoritmada tasarlanan yapay sistemde
ele alınan en önemli faktör ise sağlamlıktır. Yapay sistemler, doğal sistemler kadar
sağlam olabilse, mevcut sistemler faaliyetlerini daha uzun zaman sürdürecekler ve
pahalı olan yeniden tasarlama ve uyarlama iĢlemleri ortadan kalkacaktır. Genetik
algoritmalar konusundaki esas geliĢim ise, John Holland‟ın doktora öğrencisi David
E. Goldberg tarafından 1985 yılında hazırlanan “Gaz Boru hatlarının Genetik
Algoritma Kullanılarak Denetlenmesi” konulu tez ile sağlanmıĢtır. Bu ilk
uygulamadan sonra Goldberg‟in 1989 yılında yayımladığı “Makine Öğrenmesi,
Arama ve Optimizasyon için Genetik Algoritma” adlı kitabı, genetik algoritmaya
yeni bir boyut kazandırmıĢ ve günümüzde dahi genetik algoritma konusunda en
kapsamlı referans olma özelliğini korumuĢtur (Körez, 2005).
GA geleneksel sezgisel yöntemlerinden daha etkili ve çözüm yaklaĢımında yapılacak
küçük değiĢliklerle halledilebildiklerinden dolayı esnektirler. Bilindiği üzere
optimizasyondaki temel amaç optimal bir noktaya ulaĢabilmek, daha doğrusu
mümkün oldukça yaklaĢmaktır. Bunu gerçekleĢtirmek için bilinen pek çok klasik
yöntem vardır. Bu yöntemlerin baĢarısı optimal noktaya ulaĢıp ulaĢmadıkları veya ne
kadar ulaĢabildikleri ile ölçülür.
36
Genetik algoritmalar, klasik optimizasyon algoritmalarından dört temel noktada
ayrılır(Oğuz ve AkbaĢ, 1997)
GA parametrelerin kendileri ile değil, parametre takımının kodlanmıĢ bir
haliyle uğraĢırlar.
GA aramaya tek bir noktada değil, bir nokta ailesinden baĢlarlar.
Dolayısıyla yerel bir optimuma takılmadan çalıĢabilirler.
GA amaç fonksiyonunun (objective function) türevlerini ve bir takım ek
bilgileri değil, doğrudan amaç fonksiyonunun kendisini kullanırlar.
GA da deterministik değil rastlantısal geçiĢ kuralları kullanılır.
3.4.1. Genetik algoritmanın temelleri
Genetik Algoritma (GA) doğal geliĢimi esas alan çalıĢma yapısına sahiptir. GA
matematiksel tabanlı bir algoritma olarak düĢünülmez. Elde edilen optimal, uyulması
zorunlu matematiksel formüller nesilden nesile değiĢir. Bu bağlamda aslında GA çok
daha farklıdır. Bu optimizasyon tekniği birleĢik bulunduğu algoritmalara benzer:
benzetilmiĢ tavlama, evrimsel stratejiler ve kılavuzlu rastgele teknikler olarak
sınıflandırılabilen evrimsel programlama. Sadece stokastik, sürekli olmayan
(discrete), doğrusal olmayan bir prosestir. Elde edilen optimal, daha güçlü olan
bireyin özelliklerini bir sonraki nesile taĢımaya eğilimli önceki neslin en iyi
elementleri içeren son üründür (Parlak, 2007).
Optimizasyonun temel ilkesi, performansı (parametrelerin belirli konfigürasyonunun
iyilik ölçüsü ya da bu konfigürasyon kararının değeri) özetleyen tek bir ölçü
standardı (uygunluk fonksiyonu veya amaç fonksiyonu) formüle etmek ve
iterasyonlarla mevcut alternatifler arasından seçerek bu performansı düzeltmektir.
GA, rekabetçi ortamda güçlü bireylerin kazanmasının muhtemel olduğu bir proses
olan doğal seleksiyon mekanizmasından esinlenmiĢtir. Burada, GA bu doğal
geliĢimin doğrudan benzerliğini kullanmaktadır.
37
Öncelikle problemin potansiyel çözümünü bir birey olarak görmekte ve bu birey bir
takım parametrelerle ifade edilebilmektedir. Bu parametreler kromozomun genleri
olarak düĢünülmekte ve ikili formda değer dizisi olarak yapılandırılabilmektedir.
Pozitif değer, genellikle uygunluk değeri olarak bilinir, problemi çözmek için
kromozomların “iyilik” derecesini yansıtmak için kullanılır. Bu değer, hedef
değeriyle yakından iliĢkilidir.
3.4.2. Genetik algoritmanın yapısı
Genetik algoritma yöntemi çalıĢma yapısı olarak bilinen algoritmalardan farklı olarak
çözüm için parametre değerleriyle değil kodlarıyla arama yapmaktadır. GA bir arama
algoritması olduğu için arama iĢlemine noktalar kümesinden baĢlar. Böylelikle en iyi
çözümde sıkıĢmayarak tüm küme üzerinde arama yapar. GA hesaplama için
uygunluk değerini kullanarak farklı bilgilerin kullanılmasını gerektirmez. Genetik
algoritmanın temel prensibinde bireyler ve bireylerin nesiller arası aktarımı önemli
rol oynamaktadır. GA amaç fonksiyonun uygunluk derecesi arttırılarak nesiller
boyunca en iyiyi bulmayı amaçlar. Basit bir genetik algoritmanın çalıĢma yapısında
ilk olarak baĢlangıç popülasyonu belirlenir. Nesildeki her birey kodlama yöntemiyle
dönüĢtürülür. Kodlama sonucunda bireyler genetik algoritmanın üç temel sürecinden
geçirilerek süreç tamamlanır. Üreme sürecinde bireyler amaç fonksiyonu değerleriyle
kodlanır. Uyumu yüksek olan bireylerin bir sonraki adımda seçilme Ģansları daha
yüksek olacaktır. Yeni nesile aktarılan bireyler eĢleĢtirme havuzuna toplanır ve
çaprazlama operatörünün kullanımıyla çaprazlama oranına bağlı olarak aktarılır.
Genetik algoritmanın iĢleme adımları
Engin ve Fığlalı (2001) genetik algoritmanın iĢleme adımları Ģu Ģekilde
belirtmektedir;
Arama uzayındaki muhtemel çözümler dizi olarak kodlanır.
Rastgele olarak bir çözüm kümesi seçilir ve baĢlangıç popülasyonu olarak
seçilir.
38
Her bir dizi için bir uygunluk değeri hesaplanır, bulunan uygunluk değerleri
dizilerin çözüm kalitesini gösterir.
Bir grup dizi belirli bir olasılık değerine göre geliĢigüzel olarak seçilip üreme
gerçekleĢtirilir.
Yeni bireylerin uygunluk değerleri hesaplanarak, çaprazlama ve mutasyon
iĢlemlerine tabi tutulur.
Önceden belirlenen kuĢak (adım) sayısı boyunca yukarıdaki iĢlemler devam
ettirilir.
Yineleme (iterasyon), belirlenen nesil sayısına ulaĢınca iĢlem sona erdirilir.
Uygunluk fonksiyonuna göre en uygun olan dizi seçilir.
ġekil 3.8„ de genetik algoritmanın akıĢ diyagramı verilmiĢtir.
39
ġekil 3.8. Genetik algoritma akıĢ diyagramı
3.4.3. Genetik algoritma temel kavram ve operatörleri
Gen
Kendi baĢına anlamı olan en küçük genetik yapıdır. Genetik algoritmanı kullanıldığı
yapılarda gen yapısı araĢtırmacının tanımlamasına göre değiĢmektedir.
Kromozom
Birden fazla genin bir araya gelerek oluĢturduğu diziye kromozom denir. Aday
çözümleri oluĢturan kromozomlar popülasyondaki bireylere karĢılık gelmektedir.
40
Popülasyondaki birey sayısı probleme göre değiĢebilmekte olup kromozom sayısının
fazla olması çözüm aĢamasında sürenin artmasına neden olmaktadır.
Popülasyon
Kromozomların oluĢturmuĢ olduğu topluluğa popülasyon diğer adıyla topluluk
denilmektedir. Popülasyondaki kromozom sayıları iterasyon boyunca sabit
kalmaktadır. Popülasyondaki bireyler aday çözümlerin kümesini oluĢturmaktadır.
Seçim operatörü
Genetik algoritmada problemin çözümüne üç önemli aĢamadan geçirilerek ulaĢılır.
Ġlk aĢama olan seçim operatöründe popülasyondan, uygunluk değeri düĢük
kromozomların elenmesiyle yerlerine uygunluk değeri yüksek olan bireyler seçilmesi
gerçekleĢir. Uygunluk değeri bireyin sonraki nesle aktarılıp aktarılmayacağını
belirler. Seçim aĢamasında popülasyon büyüklüğü en önemli kriterlerden biridir.
Küçük boyutlu popülasyonlarda seçilecek birey sayısı az olacağı için problemin
baĢarımı düĢük olacaktır. Seçim iĢlemini gerçekleĢtirmek için rulet çarkı, turnuva
seçim ve elitizt seçim türleri kullanılır.
Rulet çarkı seçim yönteminde tüm kromozomların uygunluk değeri hesaplanır ve bu
değerler toplanır. Bireylerin uygunluk değerleri tek tek toplanan değere bölünerek 0
ve 1 arasında değerler elde edilir. Elde edilen sayılar düz bir sıra üzerine dizilir ve
birbirine eklenerek 0 ve 1 arasında rastgele tutulan bir sayıya kadar ilerlenir. Bu
sayıya ulaĢıldığında son eklenen sayının çözümü seçilen yeni değer olur.
Rulet çarkında uygunluk değerleri arasında fark çok fazlaysa turnuva yöntemi
kullanılır. Turnuva seçim yönteminde rastgele n tane birey seçilir ve gruptaki en iyi
birey seçilmiĢ olur. Böylece en kötü bireyinde seçilme Ģansı olabilir. Buda doğru
çözüme ulaĢmayı geciktirir veya engeller.
Elitist seçimde ise belirli sayıda en iyi kromozom saklanır ve geriye kalanlar diğer
seçim yöntemleriyle seçilir.
41
Çaprazlama operatörü
Bireylerin uygunluk değerleri bulunduktan sonra seçilerek yeni popülasyonu
oluĢturan belli bir sayıda birey çifti çaprazlama iĢlemine sokulur.
Çaprazlama iĢleminde amaç rastgele seçilen iki bireyden iyi özellikler alınarak daha
iyi özellikte yavru bireyler oluĢturmaktır. Rastgele yapılan değiĢimler ile iyi sonuçlar
alınabilir. Ama her zaman iyi birey özellikleri elde edilemez. Problemlere bağlı
olarak araĢtırmacı tek noktalı, çift noktalı ve uniform çaprazlama olmak üzere üç
faklı çaprazlama yöntemi bulunmaktadır.
Tek noktalı çaprazlama yöntemi genetik algoritma problemlerinin çözümünde en sık
kullanılan yöntemdir. Çaprazlamanın yapılacağı yer araĢtırmacı tarafından rastgele
belirlenir. ġekil 3.9‟ da tek noktalı çaprazlama yöntemi gösterilmiĢtir.
ġekil 3.9. Tek noktalı çaprazlama yöntemi
Çift noktalı çaprazlama yönteminde kromozom da kesim iki yerde yapılır. ġekil
3.10‟ da çift noktalı çaprazlama yöntemi gösterilmektedir.
ġekil 3.10. Çift noktalı çaprazlama yöntemi
42
Uniform çaprazlamada rastgele olarak çaprazlama maskesi oluĢturulur. Rastgele
seçilen genler bir sonraki nesile kopyalanır. ġekil 3.11„ de Uniform çaprazlama
görülmektedir.
ġekil 3.11. Uniform çaprazlama yöntemi
Mutasyon operatörü
Çaprazlamaya uğrayan kromozomlar çeĢitliliğin arttırılması için mutasyona uğratılır.
Ġterasyon boyunca nesiller çaprazlama uğradıkça aynı bireylerin üretilmesini
engellemek için bireydeki bazı genler mutasyona uğratılır. Mutasyon operatörü ikili
kodlamanın yapıldığı bir bireyde rastgele seçilen genlerin değeri değiĢtirilerek yani
gen 1 ise 0, 0 ise 1 yapılarak gerçekleĢtirilir. ġekil 3.12„ de mutasyona uğramıĢ gen
görülmektedir.
ġekil 3.12. Mutasyona uğrayan kromozom
Çaprazlama olasılığı
Çaprazlama olasılığı çaprazlamanın hangi sıklıkta yapılacağını belirtir. Çaprazlama
olasılığı %0 ise yeni bireyler eski bireylerin aynısı olur ama bu yeni kuĢağın eskisiyle
aynı olacağı anlamına gelmez. Eğer oran %100 olursa yeni bireyler tamamıyla
çaprazlama ile elde edilir.
43
Mutasyon olasılığı
Mutasyon olasılığı çaprazlamaya uğramıĢ bireylerin çaprazlama sonrası aynı
kalmamaları ve nesiller boyu yeni bireyler elde etmek için kullanılan bir orandır.
Bu oran % 0 olursa bireyler belli bir iterasyon sonunda aynı kalarak yerel en iyi
çözümde tıkanabilir. Eğer oran % 100 olursa tüm bireyler mutasyona uğrayacaktır.
3.4.4. Genetik algoritmanın performansını etkileyen faktörler
Kromozom Sayısını arttırdığımız zaman sonuca ulaĢmak için zaman artarken
kromozom sayısını azalttığımız zaman ise çözüme ulaĢma Ģansımız
azalmaktadır.
Kaç noktalı çaprazlama yapılacağı problemden probleme değiĢeceği gibi
literatür araĢtırmalarında çok noktalı çaprazlamanın daha yararlı olduğu
görülmüĢtür.
Kodlama yönteminin nasıl yapıldığı probleme göre değiĢmekle beraber ikili
kodlama, ray kodu ile gösterim yaygın yöntemlerdir.
3.5. Paralel Programlama
Günümüzde, artık çoğu bilgisayarda çift çekirdekli veya çok çekirdekli iĢlemcilerin
kullanılmasıyla paralel hesaplamayla yapılabilecek projelere yeni alanlar açılmıĢ ve
bu sayede paralel hesaplama üzerindeki ilgi daha da artmıĢtır. Paralel hesaplama ile
sonuca daha hızlı ulaĢmanın yanında iĢ bölümleri aynı anda iĢletilerek eĢ zamanlı
olarak da iĢlemlerin yapılmasıyla performans da arttırılır. Çift ve çok çekirdekli
iĢlemciler ile artık, bilgisayarların, iĢlemleri daha hızlı ve kısa sürede yapabilmeleri,
hatta daha az ısınmaları da sağlanabilmektedir. Paralel hesaplamaları gerçekleĢtirmek
için ya istemci-sunucu (client-server) tarzı bir yaklaĢım ya da paralel hesaplama için
geliĢtirilmiĢ özel yöntem ve programlar kullanılabilir (Akçay ve Erdem, 2010).
Geleneksel olarak bilgisayar yazılımları seri hesaplama yöntemleri kullanılarak
çözülmüĢtür. Bir problemi çözmek için seri algoritmalar oluĢturulur.
44
Bu komutlar bir bilgisayardaki CPU‟ da yürütülür. Bir komut bitirildikten sonra
sıradaki komut yürütülür. ġekil 3.13„de seri hesaplama süreci gösterilmiĢtir.
ġekil 3.13. Seri Hesaplama Süreci
Paralel hesaplamada ise bir problemi çözmek için birden çok iĢlemci kullanır.
Hesaplama iĢlemi problemi birbirinden bağımsız bölümlere ayrılarak gerçekleĢtirilir
böylece her bir iĢlemci problemin bölümlerini bağımsız bir Ģekilde yürütebilir. Süreç
elemanları tek bilgisayar üzerinde çift çekirdekli olabileceği gibi ağ üzerinde
birbirine bağlanmıĢ veya özel donanımlar da olabilir (Blaise Barney, 2010).
ġekil 3.14. Paralel Hesaplama Süreci
Hesaplama ihtiyaçları, gün geçtikçe artmaktadır. Daha yüksek frekanslı sensorlar,
görselleĢtirme kalitesinin artması, dağıtık veri tabanları buna birer örnektir. Diğer
taraftan da iĢlemci teknolojisi fiziksel limitlerine (termodinamik, ıĢık hızı, CMOS
transistorlar) yaklaĢmaktadır.
45
Ağ teknolojilerindeki hızlı geliĢmeler paralel hesaplama için kolay edinilebilir ve
ulaĢılabilir donanımlara izin vermektedir. Bu süreçlerde paralel hesaplama ile gelen
ek bir takım yükler ortaya çıkmaktadır.
Bu yükler iĢlemcilerde fazladan geçen süre, iletiĢim ek yükü, senkronizasyon ek
yükü, programın paralel olmayan veya olamayan parçalarıdır.
3.5.1. Paralel ve dağıtık hesaplama
Teknolojinin geliĢmesiyle, problemlerin karmaĢıklığı da artmaktadır. AraĢtırmacılar,
karĢılaĢtıkları matematik problemlerine önce analitik çözüm ararlar. Ancak
problemlerin analitik olarak çözülmesi karmaĢıklıkları yüzünden her zaman mümkün
değildir.
Bu amaçla araĢtırmacılar bilgisayarların yardımına baĢvururlar ve problemlere
sayısal çözümler ararlar. Bilgisayarların iĢlem gücü çok fazladır ve az zamanda çok
fazla matematik iĢlemi yapabilirler. Ancak teknoloji ve bilim ile birlikte problemlerin
zorluk dereceleri de artar ve bazen tek bir bilgisayarın bir problem çözümü için
saatlerce bazen de aylarca çalıĢması gereklidir. Tabi ki, aylar sonra
öğrenebileceğimiz bir cevap bizim iĢimize yaramayabilir. Bu nedenle, bazen
araĢtırmacılar programlarını gözden geçirerek çeĢitli optimizasyonlara (özellikle
döngü ve dizilerde ) gidebilirler. Bu durumda kazanılan zaman bazen yeterli olabilir.
Ancak yeterli olmadığında programı daha hızlı çalıĢtırmak için derleyici
parametreleri kullanılarak hız kazanılmaya çalıĢılabilir. Bu iĢlemde her zaman
istediğimiz zamanı bize kazandırmayabilir. Çok büyük bir problemi daha az zamanda
çözmenin baĢka yolları da vardır. Bu amaçla problemin doğası incelenebilir. Problem
parçalanmaya elveriĢli ise ve birden fazla bilgisayar veya birden fazla iĢlemci varsa,
her bir bölüm farklı bir bilgisayar veya iĢlemcide çalıĢtırılabilir. Bu amaçla
tasarlanmıĢ çok iĢlemci ve çok büyük hesaplama yetenekleri olan bilgisayarlara
süper bilgisayarlar denir. Süper bilgisayarların iĢlemci güçleri, bellekleri ve
depolama kapasiteleri çok yüksektir. Ancak bu kadar güçlü özellikleri nedeniyle çok
yüksek maliyetlidirler. Süper bilgisayar üzerinde çalıĢma durumu her zaman
olmadığı için, problem kendi ağ ortamında da çözebilmektedir.
46
Bu durumda ağdaki bütün bilgisayarları bir bilgisayar, her bir bilgisayarı da birer
iĢlemci gibi düĢünülebilir. Ancak bu durumda, eğer program parçaları birbirleri ile
çok fazla haberleĢiyorsa bunun hızı ana kartın hızında değil de ağ hızında olacaktır.
3.5.2. Paralel hesaplamanın avantaj ve dezavantajları
Paralel hesaplamanın en önemli avantajı Ģüphesiz problemin çözüm zamanını
azaltarak çözüme daha hızlı bir Ģekilde ulaĢılmasını sağlamaktır. Problem bir parça
olarak değil parçalar halinde ve her bir parçanın belirli zaman aralıklarına bölünmüĢ
olmasıyla daha kolay ve hızlı çözüm elde edilmesi sağlanır (Akçay ve Erdem, 2010).
Paralel hesaplamanın avantajları ise aĢağıdaki gibi maddelendirilmiĢtir;
BoĢta olan kaynakları kullanarak iĢlerin yürütülebilirliğini arttırmak.
Hızlı uygulamalar sayesinde iĢlemler hızlanır ve sonuçları daha hızlı elde
etmek
Yeni ve daha fazla iĢe yarayan uygulamaların geliĢtirilmesini hızlandırmak
ĠĢbirliği ve üretkenlik kapasitelerinde artıĢlar sağlamak
Kullanıcıya güçlü tek makine kullanıyormuĢ gibi bir ara yüz sağlanarak
kullanımının kolaylaĢmasını sağlamak.
Benzer konuda çalıĢan araĢtırmacıların sanal organizasyonlarda bir araya
gelmesini sağlamak.
Paralel hesaplamanın en önemli dezavantajı ise parçalara ayrılan problemlerin her
birinin ayrı bilgisayarlarda veya CPU‟ larda çalıĢtırıldığında parçaların herhangi
birinde oluĢabilecek problemlerin tüm sistemin baĢarıya ulaĢmasını engellemesi
olarak belirtilebilir (Akçay ve Erdem, 2010).
47
3.5.3. Neden paralel hesaplama
Paralel hesaplama her problemde kullanılmamakta olup uygun problemlerde ise çok
önemli sonuçlar çıkardığı görülmektedir. Paralel hesaplamanın kullanılmasını
gerektiren birçok faktör bulunmaktadır.
Paralel Hesaplama para ve zamandan büyük bir tasarruf sağlar. n adet paralel
iĢlemciden oluĢan bir sistem, n kat hızlı tek bir iĢlemciden daha az verimlidir fakat
çok daha ucuzdur. Çok fazla hesaplama gerektiren, bitirilmesinde zaman kısıtları
olan ve özellikle n adet kanala bölünebilen görevler için paralel hesaplama
mükemmel bir çözüm olabilir. Süper bilgisayar olarak bilinen yüksek performanslı
hesaplama sistemleri de paralel bir mimariye sahiptir. ġekil 3.15‟ de zamandan
kazanımın gösterimi bulunmaktadır.
ġekil 3.15. ĠĢ-Zaman Gösterimi
Paralel hesaplama büyük problemleri çözebilmektedir. Tek iĢlemcili bilgisayarda
büyük problemleri çözmek düĢük hafızalı makinelerle çok zor olmaktadır. Paralel
hesaplama aynı zamanda eĢ zamanlılık sağlar. Normal hesaplama tekniklerinde aynı
zamanda tek bir iĢlem yapılırken paralel hesaplamada ise aynı zamanda birden fazla
iĢlem yapılabilmektedir. Access Grid dünyanın her yerinden araĢtırmacıların sanal
olarak katılabildiği ve ortak çalıĢmalar sunabildiği bir alandır. Gittikçe artan veri
tabanları ve görselleĢtirme kalitesi gibi ihtiyaçlarda paralel hesaplamanın
kullanılmasını mecbur kılmaktadır.
48
3.5.4. Paralel programlama yaklaĢımları
Paralel iĢlemleri daha detaylı incelemek için dört temel programlama modeli
bulunmaktadır. Bu modeller Instruction ve Data Stream (komut ve veri akıĢı) olarak
iki ana baĢlıkta toplamıĢtır. Instruction Streams algoritması adımlar halinde belli
baĢlı problemleri çözmek için hazırlanmıĢ algoritmadır. Data Stream ise bilgisayar
hafızasından çektiği verileri algoritmalarda giriĢ olarak kullanır.
Michael J.Flynn Flynn‟s Taxonomy olarak bilinen bilgisayar ve hesaplamalar için
ilk paralel sınıflandırmayı yapmıĢtır. J. Flynn, bilgisayar sistemlerini aynı anda
iĢlenebilen veri ve komut sayılarına göre dört gruba ayırmıĢtır. Paralel bilgisayarlar
ve hesaplamalar için yapılan sınıflandırmalar ise SISD, SIMD, MISD, MIMD olmak
üzere dört bölümde incelenecektir.
3.5.4.1. SISD: Single instuction multiple data
SISD Paralel Bilgisayar Mimarileri aynı anda tek bir komut, tek bir veriyi
iĢlemektedir, yani bilgisayar da bir iĢlemci ve bir yönetim birimi (control unit)
mevcuttur. Böyle bir yapı, klasik Von Neumann mimarisinin özelliğidir.
Single Instruction,Single Data bilgisayarları tek iĢlemcilidir ve herhangi bir zamanda
bir kaynağı kullanarak bir algoritmayı yürütebilir. Bilgisayar her bir iĢlemi belli bir
sıraya göre yürütür. Bu yüzden SISD bilgisayarlar tanımlanırken bazen ardıĢık olarak
adlandırılırlar. Tek baĢlarına paralel iĢlemleri yürütemezler.
3.5.4.2. SIMD: Single ınstruction multiple data
SIMD(Single Instruction Multiple Data) paralel bilgisayar mimarileri tek komut çok
veri olarak adlandırılır. Sistemde program yönetim (kontrol) birimi tektir, iĢlemci ise
birden fazladır ve zamanın her anında bir komut birden fazla veri üzerinde iĢlem
yapmaktadır. Bu tür mimarilere örnek olarak dizi veya matris iĢlemcisi gibi
tasarlanmıĢ olan ILLIAC-IV‟ü göstermek mümkündür. SIMD yapıları iki Ģekildedir.
Bunlardan birincisi dizi (matris veya vektör olarak da adlandırılır) bilgisayar olup her
bir dizi elemanı üzerinde aynı iĢlemi yapar.
49
Ġkincisi ise pipeline(boru hattı) olarak isimlendirilerek, çoklu veri, boru hattına
ardıĢık olarak gönderilmektedir ve zamanın her anında boru hattının çeĢitli
noktalarındaki çeĢidi veriler üzerinde aynı veya farklı iĢlemler yapılmaktadır (Selçuk
Üniversitesi Uzaktan Eğitim Programı, 2003). SIMD bilgisayarları aynı iĢlem
kümesini takip eden birkaç iĢlemciye sahip olabilir, fakat her bir iĢlemci girdileri bu
kümelere farklı veriler girer. Büyük verilerin olduğu veri tabanlarında faydalı
olabilir.
3.5.4.3. MISD: Multiple instruction, single data
MISD çok komut tek veri olarak adlandırılabilir. Bu yapıda birçok komut aynı anda
bir tek veriyi iĢleyebilmektedir, yani aynı iĢlemcideki veri üzerinde birden fazla
yönetim biriminin ürettiği çeĢitli komutlar iĢlem yapmaktadır. Bu tür mimariye sahip
olan bir bilgisayar tasarlamak çok zordur, çünkü bu türden iĢlemlere ihtiyaç
duyulması baĢlı baĢına bir problemdir. Fakat bazı araĢtırmacılar boru hattı (pipeline)
mimarisine MISD makine gibi bakmaktadırlar. Çünkü bu mimaride aynı veri
üzerinde çeĢitli iĢlemler yapmaya imkân sağlanmaktadır (Selçuk Üniversitesi
Uzaktan Eğitim Programı 2003).
3.5.4.4. MIMD: Multiple instruction multiple data
MIMD çok komut çok veri olarak adlandırılır. Bu yapıda çeĢitli iĢlemcilerde çeĢitli
veriler üzerinde çeĢitli komutlara uygun iĢlemler yapılmaktadır, yani iĢlemci ve
yönetim birimlerinin sayısı MIMD paralel bilgisayar mimarileri adlı Ģekilde
görüldüğü gibi birden fazla olmaktadır. ĠĢlemciler ara sonuçları birbirine
iletebilmektedirler. Aslında bu mimari daha önce sözünü edilen çok bilgisayarlı
paralel sistemlere uymaktadır. Cray-Z, Ncube (hypercube) vb. süper bilgisayarlar
örnek olarak gösterilebilir.
Multiple Instruction,Multiple Data bilgisayarları çoklu iĢlemcilere sahip olup her bir
iĢlemci diğerlerinden bağımsız olarak Instruction Streamlerini alır. Her bir iĢlemci
aynı zamanda ayrı Data Streamlerini alır. MIMD bilgisayarlar SIMD veya MISD
bilgisayarlardan daha esnektirler. Fakat bu tür bilgisayarların çalıĢması için karmaĢık
algoritmaları oluĢturmak daha zordur.
50
SIMD sistemleri MIMD nin bir alt kümesidir (Paralel Programlamada Performans,
Hız, Verimlilik ve Ölçeklenebilirlik Ölçümleri, 2010).
3.5.5. Paralel bilgisayar hafıza mimarisi
Paralel bilgisayarların hafıza mimarileri ortak bellekli ve dağıtık bellekli olmak üzere
iki sınıfa ayrılmaktadır. Aynı zamanda bu sistemlere sıkı bağlı ve gevĢek bağlı
sistemler de denilebilmektedir.
3.5.5.1. PaylaĢım bellek mimarisi
PaylaĢımlı bellekli mimariler birbirinin tamamıyla aynısı olan çok sayıda iĢlemcinin
aynı saat frekansı ile sürülmesi ve aynı belleği paylaĢmalarıdır. ĠĢlemciler arasındaki
veri iletiĢimi paylaĢılan bellek üzerinden olduğundan veri paylaĢımı oldukça hızlıdır.
Bu tür sistemlerde tek iĢletim sistemi tüm iĢlemcileri ve belleği yönetir ve bilgisayar
genelde tek bir kasa içinde gerçeklenir. Kullanıcı, tek iĢlemcili bilgisayarlara göre
donanımsal farklılığı hissedemez. Uygulama yazılımlarının paralelleĢtirilmesi
donanım, derleyici ve iĢletim sistemi yardımıyla gerçeklenir ve kullanıcıya sadece
ihtiyaç duyduğu iĢlemci sayısını belirlemek kalır. Bu nedenle bu tür sistemleri
kullanmak, bu tür sistemler için yazılım geliĢtirmek diğer paralel sistemlere göre
daha kolaydır. Ancak, bu mimarideki paralel sistemler genelde sınırlı miktarda imal
edildiklerinden pahalı, farklı amaçlar için kullanımı zor ve yeniden düzenlenmeye,
yapılandırılmaya esnek değildir (Çelik ve Özmen, 2009). ġekil 3.16‟ da paylaĢım
bellek mimarisinin Ģematik görünüĢü gösterilmektedir.
ġekil 3.16. PaylaĢım bellek mimarisinde paralel bilgisayarın Ģematik görünüĢü
51
PaylaĢım bellekli paralel bilgisayarlar geniĢ bir alana yayılmıĢtır. Çok iĢlemcili
bilgisayarlar bağımsız bir Ģekilde yönetilebilir fakat aynı hafıza kaynaklarını
paylaĢılabilir. Bir iĢlemci tarafından hafıza yerleĢimindeki değiĢiklik diğer iĢlemciler
tarafından görülebilir.
PaylaĢım bellekli mimarilerde hafızanın CPU‟ ya yakın olması ve veri paylaĢımının
bu Ģekilde hızlı olması en önemli avantajıdır.
Dezavantajı ise hafıza ve iĢlemci arasındaki ölçeklenebilirlik eksikliğidir. ĠĢlemci
eklenmesi paylaĢımlı hafızada yoğun bir trafik oluĢturur.
3.5.5.2. Dağıtık bellek mimarisi
Dağıtık bellek mimarisinin en büyük avantajı, ağa bağlı ve kullanılmakta olan
bilgisayarlardan ihtiyaç olabilecek kadarını yazılım yoluyla yapılandırıp tek bir hızlı
bilgisayara yani süper bilgisayara dönüĢtürebilmesidir. Dağıtık bellek mimarisi,
paylaĢılan bellek mimarisinin açıklarını ve eksik kalan yerlerini gidermek için
geliĢtirilmiĢtir. Bu mimaride, sisteme ilave edilen bilgisayarların, mimarileri ya da
iĢletim sistemleri farklı olabilmektedir. Dağıtık mimaride, iĢlemci içindeki
paralellikten farklı olarak komutlar arası paralellik değil de gruplar halindeki
komutlar arası paralellik ön plana çıkmaktadır. Sistemi meydana getiren bilgisayarlar
kullanıcılar tarafından her an bilgisayarlarını kullanmaları için hazır olarak
bulunurlar. AraĢtırma merkezlerinde, üniversitelerde ve çeĢitli kurumlarda ekonomik
çözüm ürettiği için dağıtık mimari tercih edilmektedir. En önemli dezavantajı ise
problemin programlanma zorluğudur. ĠĢ yükünün dağılımını, iĢlemciler arasındaki
veri paylaĢımını ve senkronizasyonu gibi iĢlemlerin tümünü programcı yapmaktadır.
Bu nedenle, bu sistemlerde çalıĢmak üzere tasarlanan uygulama yazılımlarının
önceden performans gözlemlenmesi yapılmalıdır. Yoksa sistemden beklenen
performans elde edilemez (Çelik ve Özmen, 2009). ġekil 3.17‟ de dağıtık mimari
Ģematik olarak gösterilmektedir.
52
ġekil 3.17. Dağıtık bellek mimarisinde paralel bilgisayarların Ģematik görünümü
Dağıtık bellek mimarisinin en önemli avantajı iĢlemci sayılarının hafıza ile
ölçeklendirilebilir olmasıdır. ĠĢlemci sayısı arttıkça hafıza da aynı orantıda
artmaktadır. Dezavantajı ise iĢlemciler arasında veri iletiĢimini programcının kendisi
yapmalıdır.
3.5.6. Microsoft .Net framework ile paralel programlama
Günümüzde satın alınan bilgisayarlar üzerinde birden fazla çekirdek olmasından
dolayı iĢlemciler üzerinde aynı anda birden fazla kanal çalıĢtırma imkânımız
olmakta. Günümüzde kullanılan programlama yapısıyla çekirdekler etkin bir Ģekilde
kullanılamamaktadır. Ve yazılan programlar tek bir kanal üzerinde çalıĢtığı için daha
yavaĢ çalıĢabiliyor. Bu sebeplerden dolayı Microsoft programlama alt yapısına yeni
bir sürüm kazandırarak paralel programlamayı alt yapısına kazandırmıĢtır. Microsoft
.Net Framework 4.0 versiyonu ile uygulamalar eĢ zamanlı olarak birden fazla
çekirdek üzerinde çok kanallı yöntemler ile daha hızlı ve verimli bir Ģekilde
çalıĢtırılabilmektedir. .Net framework ile paralel programlama kütüphanesi içerisinde
çekirdek yenilikleri, task paralel library ve paralel linq bulunmaktadır.
Gordon Moore her 18 ayda bir tümleĢik devre üzerine yerleĢtirilebilecek bileĢen
sayısının iki katına çıkacağını, bunun bilgisayarların iĢlem kapasitelerinde büyük
artıĢlar yaratacağını, üretim maliyetlerinin ise aynı kalacağını, hatta düĢme eğilimi
göstereceğini öngören deneysel bir gözlem yapmıĢtır.
53
Günümüzde artan bilgisayar ve bilgisayar üzerindeki tümleĢik devreler Moore
yasasını doğrular nitelikte ve hatta yetersiz kaldığı görülmektedir. ġekil 3.18‟ de
örnek bir bilgisayar iĢlemci ve bellek resmi gösterilmektedir.
ġekil 3.18 Çok iĢlemcili bir bilgisayar mimarisi
Visual studio 2010 ve .NET Framework 4.0 ile beraber yeni bir kütüphane
sunulmuĢtur. .Net Framework 4.0 mimarisi Ģekil 3.19 ‟ da görülmektedir.
54
ġekil 3.19. .Net Framework 4.0 mimarisi
TPL kısaca for ve foreach döngülerinin paralel versiyonlarını içermektedir. Thread ‟
ler, ThereadPool ve kilitlerle uğraĢmadan eĢ zamanlı ve asenkron görevlerin
yazılabilmesini sağlamaktadır. PLINQ ise linq ile yazılan sorguların paralel olarak
çalıĢtırılmasını sağlar.
Task paralel library
TPL in en büyük amacı, eĢ zamanlı veya paralel olarak yürütülmek istenen
iĢlemlerin, daha kolay ve basit bir Ģekilde ele alınmasını sağlamaktır. Bu anlamda
günümüz iĢlemcilerinin çekirdek sayısı veya sistemlerdeki iĢlemci sayısının birden
fazla olması durumunda, TPL verimli sonuçlar elde edilmesini sağlamaktadır. Bu
açıdan bakıldığında TPL alt yapısına tüm sistem çekirdek gücünü verme imkânına
sahip olduğu belirtilebilir. TPL kullanımı ile iliĢkili olarak önemli bir nokta ise,
iĢlemlerin Multi-Threading mantığına göre yapılıyor olmasıdır. Dolayısıyla,
programın çalıĢma zamanı yükünü arttırıcı bir etkendir. Bir baĢka deyiĢle her
iĢlemin, elimizde TPL var diye paralel olarak yürütülmeye çalıĢılması doğru değildir.
Bazı süreçlerin gerçekten ve bilinçli olaraktan ardıĢık (sequential) yürümesi
gerekebilir. TPL esas itibariyle. Net Framework 4.0 ile birlikte gelen ve paralel iĢlem
yapma yeteneklerini ele alan kütüphanedir.
55
System.Threading ve System.Threading.Tasks isim alanları bu kütüphaneye ait
çeĢitli tipleri ve üyelerini içermektedir. TPL kütüphanesinin belki de en önemli tipi
Task sınıfıdır. Task sınıfına ait üyeler kullanılarak Ģu iĢlemler
gerçekleĢtirilebilmektedir;
Yeni görev(ler) baĢlatılabilir, iptal edilebilir ya da bekletilebilir.
Bir görevin tamamlanması halinde, tamamlandığı yerden baĢka bir görev
veya görevlere çağrıda bulunulabilir.
BaĢlatılan görevlerden geriye değer döndürülebilir.
Bir görev kendi içinde alt görevler baĢlatabilir. Bu görevler aynı Thread
içerisinde veya farklı bir Thread üzerinde çalıĢıyor olabilir.
ġekil 3.20‟ de paralel sınıfının üyeleri görülmektedir.
ġekil 3.20. Paralel static sınıfı ve üyeleri
For ve foreach metodları koleksiyon veya dizi yapıları üzerinde döngüsel iĢlemlerin
paralel olarak yürütülmesini sağlamaktadır. Invoke metodu ise sunduğu Action
temsilcisi (delegate) yardımıyla, birden fazla metodun aynı anda paralel olarak
çalıĢtırılabilmesine olanak sağlamaktadır. For veya foreach gibi Paralel sınıfına ait
üyeler kullanıldığında, arka planda task sınıfı ve üyeleri gizlice devreye girmektedir.
TPL ile ilgili önemli konulardan birisi Task(ya da Task<T>) sınıfıdır. TPL esas
itibariyle görev adı verilen küçük iĢ parçaları üzerine kurulu bir yapı olarak
düĢünülebilir.
56
Bu sınıf yardımıyla, paralel çalıĢacak olan görevlerin baĢlatılması, iptal edilmesi,
bekletilmesi, arka arkaya eklenerek bir süreç tesis edilmesi gibi pek çok iĢlem
yapılabilir. Task sınıfı normal Ģartlarda geriye değer döndürmeyen fonksiyonların eĢ
zamanlı olarak çalıĢtırılmasında ele alınmaktadır. Geriye değer döndüren metodlar
söz konusu olduğunda ise, Task<T> generic tipinden yararlanılabilir. T, paralel
çalıĢan metodun dönüĢ tipi olarak düĢünülebilir. Task ve Task<T> sınıflarının static
Factory özelliğinde StartNew metodu yardımıyla görevlerin baĢlatılması
sağlanmaktadır. Öte yandan Task<T> sınıfının Result özelliği, geri dönüĢ tipini
belirtmektedir. Factory özellikleri, TaskFactory veya TaskFactory<T> tipinden
referanslar barındırmaktadır (ġenyurt, 2010). Bu tiplerin içeriği ise ġekil 3.21„ de
görüldüğü gibidir.
ġekil 3.21. TaskFactory ve TaskFactory<T> Tipleri
Yukarıda bahsedilen teorik bilgilerin yanında örnek kodlarla paralel for ve paralel
foreach metotlarına ait örnek kodlar Ģu Ģekildedir;
Paralel.For(int fromInclusive, int toExclusive, Action<int> body)
fromInclusive: for döngüsünün baĢlangıç değeri
toExclusive: for döngüsünün bitiĢ değeri
Body: for döngüsünün içerisinde yapılacaklar
Örnek bir paralel for döngüsü ise Ģu Ģekildedir:
57
Parallel.For(0,10, p=>
{
////yapılacak iĢlemler
});
Paralel foreach algoritması ise paralel for ile benzerlik göstermekle beraber kullanımı
Ģu Ģekildedir;
Parallel.Foreach(IEnumerable<TSource> source, Action<TSource> body)
source: Foreach iĢlemi boyunca içerisinde dolaĢacağımız IEnumerable arayüzünü
implemente etmiĢ olan koleksiyon
body: Foreach döngüsü içerisinde ele alacağımız iĢlemler
IEnumerable<int> numbers = Enumerable.Range(1,1000);
Parallel.ForEach(numbers, p =>
{
//numbers hangi tipi taĢıyan koleksiyon ise
//p parametresi de o tipte
//iĢlemler
});
AĢağıdaki gibi bir öğretmen sınıfımız olduğunu düĢünürsek öğretmenlerin toplam
alacağı ücreti hesaplattıran paralel fonksiyonlar aĢağıdaki gibidir.
public class Ogretmen
{ public int OgrID { get; set; } public double SaatUcret { get; set; } public double TopCalisma { get; set; } }
58
static void Hesap(List<Ogretmen> hoca) { Parallel.ForEach(hoca, ogretmen => {
int threadid = Thread.CurrentThread.ManagedThreadId; double total = ogretmen.SaatUcret * ogretmen.TopCalisma; Console.WriteLine("İşlem {0} nolu thread tarafından gerçekleştirildi.\n {1} numaralı çalışanın alacağı toplam ücret:{2}\n",threadid,ogretmen.OgrID,total); }); } static void Main(string[] args) { List<Ogretmen> ogretmenler = new List<Ogretmen>() { new Ogretmen (){ID=1,SaatUcret=10,TopCalisma=30}, new Ogretmen (){ID=2,SaatUcret=12,TopCalisma=34}, new Ogretmen (){ID=3,SaatUcret=8,TopCalisma=38}, new Ogretmen (){ID=4,SaatUcret=14,TopCalisma=39}, new Ogretmen (){ID=5,SaatUcret=18,TopCalisma=37}, }; Hesapla(ogretmenler);}
Programın çıktısı ise Ģekil 3.22‟ de verilmiĢtir.
ġekil 3.22. Örnek program çıktısı
Paralel linq
PLINQ, Microsoft Research ve CLR takımları tarafından ortaklaĢa geliĢtirilen
Parallel Extensions isimli geniĢletmelerin bir paçasıdır. Diğer parça ise daha önce
bahsedilen TPL dir. Her iki yapının kullanım amacı, Yönetimli Kod(Managed Code)
tarafındaki eĢ zamanlı iĢleyiĢlerin kolay bir Ģekilde sağlanmasıdır.
59
PLINQ, LINQ sorgularının kendi içerisine parçalanarak farklı thread ' lerde çalıĢması
ve bu parçaların paralel yürüyerek sonuçların elde edilmesidir. Kaynaklarda PLINQ
için EĢ Zamanlı Sorgu Yürütme Motorudur(Concurrency Query Execution Engine)
denilmektedir. PLINQ temel olarak LINQ to XML ve LINQ to Objects gibi
uygulama alanları üzerinde etkin bir Ģekilde kullanılabilmektedir. PLINQ ifadeleri
çift çekirdek ve üstü iĢlemcilerin ya da birden fazla iĢlemcinin olduğu sistemlerde
daha anlamlıdır. Nitekim PLINQ motoru, çalıĢmakta olan sorgu sürecini, makinenin
sahip olduğu çekirdek sayısına göre parçalara ayırır ve yürütür. Bu özellikle büyük
çaplı projeler göz önüne alındığında, Ģirketin sahip olduğu kaç bilgisayar var ise
hepsini en azından çift çekirdekli olacak Ģekilde yenilemek gibi bir maliyet anlamına
da gelmemelidir. Nitekim bazı istemci-sunucu mimarilerinde, sunucu tarafında
çalıĢmakta olan pek çok LINQ sorgusu, PLINQ motoru kullanılaraktan daha efektif
hale getirilebilir. Bir baĢka deyiĢle, istemciler birden fazla çekirdekli iĢlemcilere
sahip olmasalarda, mümkün mertebe LINQ ifadelerini içeren iĢ mantıklarının,
sunucu tarafında olduğu senaryolarda PLINQ büyük avantajlar sağlayabilir (ġenyurt,
2011). Sınıftaki en önemli geniĢletme AsParallel dir. IEnumerable türevli bir
koleksiyonun paralel olarak sorgulanabilir hale getirilmesi veya hazırlanmasıdır.
AsParallel metodu geriye ParallelQuery isimli sınıfa ait bir nesne örneği
döndürmektedir. ParallelQuery sınıfı IEnumerable arayüzünü uygulamaktadır ama
herĢeyden önemlisi paralel sorgulanabilme için gerekli ön hazırlıkları içeren
operasyonlarada sahiptir. Paralel Linq sorgularında önemli bir avantaj ise paralel
iĢlemlerde çalıĢtırılabilecek kod için iĢlemci sayısının seçilebilmesidir. Bunun için
Degree of Parallesim geniĢletmesi kullanılmaktadır. AĢağıda verilen örneklerle
paralel linq cümlecikleri daha da anlaĢılır olacaktır.
public class Ogrenci { public int OgrID { get; set; } public double OgrNo { get; set; } public string OgrAd { get; set; } }
60
static void Main(string[] args) { List<Ogrenci> ogrenci = new List<Ogrenci>() { new Ogrenci (){OgrID =1, OgrNo =10, OgrAd =”Ali”}, new Ogrenci (){OgrID =2, OgrNo =20, OgrAd =”Veli”}, new Ogrenci (){OgrID =3, OgrNo =30, OgrAd =”Serdar”}, new Ogrenci (){OgrID =4, OgrNo =40, OgrAd =”Mehmet”}, new Ogrenci (){OgrID =5, OgrNo =50, OgrAd =”Serkan”}, }; /////genel sorgu var sonuc= from d in öğrenci.AsParallel() select d; ////kriterlisorgu cümleciği
var sonuc2= from d in öğrenci.AsParallel() where d.OgrNo=40 select d; }
61
4. ARAġTIRMA BULGULARI
Tez çalıĢmasında paralel programlama tekniği kullanılarak web madenciliğinde log
analiz çalıĢması gerçekleĢtirilmiĢtir. ÇalıĢma kapsamında geliĢtirilen yazılım WPF
teknolojisi kullanılarak Visual Studio 2010 ortamında geliĢtirilmiĢtir. C#
programlama dilinin ve MSSQL veri tabanının kullanıldığı yazılım dört ana
bölümden oluĢmaktadır. Bu bölümler log ön iĢleme, birliktelik kural analizi, genetik
algoritma ile birlikte ziyaret edilen 3‟lü sayfa analizi ve istatiksel analizleridir.
ÇalıĢma Süleyman Demirel Üniversitesi resmi web sitesinin 01.01.2010 ile
31.08.2010 tarihleri arasındaki eriĢim kayıt dosyaları alınarak gerçekleĢtirilmiĢtir.
4.1. Verilerin Toplanması Ve Ön ĠĢleme AĢaması
Log analiz programında eriĢim kayıt dosyalarının madencilik sürecine girmesi için
ön iĢleme adımlarının gerçekleĢtirilmesi gerekmektedir. Ön iĢleme aĢamasında
eriĢim kayıt dosyaları Süleyman Demirel Üniversitesi Bilgi iĢlem Daire
BaĢkanlığından .txt formatında alınarak sisteme aktarılması, veri temizleme,
kullanıcı ve oturum tanımlanması aĢamalarından geçirilmektedir. 8 aylık eriĢim kayıt
verileri veri tabanına uygun bir Ģekilde aktarılması için veri tabanı tasarımının Ģekil
4.1‟ deki gibi olması gerekmektedir.
ġekil 4.1. EriĢim kayıtlarının veri tabanına ait diyagramı
62
4.1.1. Verilerin temizlenmesi
Alınan eriĢim kayıt dosyaları incelendiği zaman dosyanın tüm içeriğinin web
madenciliğinde kullanılabilir yararlı dosyalar olmadığı görülür. Bu aĢamada
dosyalardaki gereksiz ve gürültülü verilerin temizlenmesi gerekmektedir. Dosyadaki
satırlar tek tek taranarak gereksiz verilerden arındırılan veriler veri tabanına
aktarılmaktadır. EriĢim kayıtlarına örnek bir satır ise Ģekil 4.2‟ de verilmiĢtir.
ġekil 4.2. EriĢim kayıt dosyasından örnek veriler
Veri tabanına aktarılması metin dosyalarındaki veriler yazılım aracılığıyla alanlarına
aktarılmaktadır. Dosyadaki alanlar boĢluk bırakılarak birbirinden ayrılmıĢtır. Alanlar
veri tabanındaki iliĢkili yerlere karĢılıkları bulunarak aktarılmaktadır. Bu alanlar ise
date ile tarih verileri, time ile zaman verileri, s-ip ile sunucu adresi, cs-method ile
sayfanın durumu, cs-uri-stem ile istek yapılan adresi, c-ip ile kullanıcının istekte
bulunduğu IP adresinin karĢılığı, cs(User Agent) ile ziyaretçinin kullandığı tarayıcı
ve iĢletim sistemi, sc-status ile sayfaya eriĢim durumudur.
Verilerin temizleme aĢamasında satır satır incelenen veriler içerisinde analiz için
gereksiz veriler sistemden çıkarılmalıdır. Programı çalıĢtırdığımız zaman kayıt
dosyası ekle butonuna tıkayarak sayfa uzantısı .ico, .jpg, .png, .swf, .txt, .js, cgi/bin,
/swf gibi olan dosyalar çıkarılmaktadır. Dikkate alınmayan sayfalar ise Ģunlardır;
/menu/menu_fra.asp, /pub/mat/serpil/2009-an-3, /no-text-6259779259412992337,
/fakulte.+-+23.04.2006, /[email protected], /notified-Uncategorized,
/twiki/bin/configure.
Veriler temizlenme aĢamasından sonra ise kullanıcıların hangi Ģehir ve ülkelerden
sunucuya isteklerde bulunduklarını belirlemek için açık eriĢime sunulan
http://ipinfodb.com/ip_query.php?ip web servisinden yararlanılmıĢtır.
63
Ayrıca tarayıcı isteklerini bulmak için user agent alanındaki veriler tek tek
sorgulanmıĢtır. Çizelge 4.1‟ de veri temizleme aĢamasından önce ve sonra ele geçen
verilerin sayıları gösterilmektedir.
Çizelge 4.1. EriĢim kayıtlarının ön iĢleme aĢamasındaki satır sayıları
Veri Temizleme Öncesi Veri Temizleme Sonrası
Toplam Satır Sayısı 14.571.102 12.163.974
4.1.2. Oturum tanımlama
Oturum tanımlama aĢamasında zaman tanımlı oturum belirleme tekniği
belirlenmiĢtir. GeliĢtirilen yazılımda veri temizleme aĢamasından geçirilen eriĢim
kayıtlarında kullanıcılar tarih ve saat bilgisine göre sıralandıktan sonra aynı
kullanıcılar için eriĢimler arasındaki sürenin 30 dakikayı aĢmadığı durumlarda
oturum numarası bir arttırılarak oturumlar belirlenmiĢ olur. Oturum sırası ve oturum
numarasının verildiği veri tabanı tablosu Ģekil 4.3‟ de verilmiĢtir.
ġekil 4.3. Veri tabanında oturum tanımlaması yapılmıĢ veriler
Oturum tanımlama iĢlemi için yazılan kodlar çizelge 4.2‟ de gösterilmektedir.
64
Çizelge 4.2. Oturum tanımlama iĢlemi için geliĢtirilen program kodları
if (yedekip == gunlukip[q].Ocak_IstekteBulunanMaina)
{
if (gunlukip[q].Ocak_GirisTarihi == yedektarih)
{
TimeSpan fark = Convert.ToDateTime(gunlukip[q].Ocak_GirisSaati) -
Convert.ToDateTime(yedeksaat);
if (fark.Minutes <= 30) oturum++;
else { oturum = 1; yedeksaat = gunlukip[q].Ocak_GirisSaati; }
}
else if (gunlukip[q].Ocak_GirisTarihi != yedektarih)
{
oturum = 1;
yedeksaat = gunlukip[q].Ocak_GirisSaati;
}
yedekip = gunlukip[q].Ocak_IstekteBulunanMaina;
yedektarih = gunlukip[q].Ocak_GirisTarihi;
}
Uygulama paralel programlama tekniği kullanılarak gerçekleĢtirildiği için paralel
kodlarla yazılan program seri programlama tekniğine göre yüksek bir kazanç
sağlamaktadır.
4.2. Birliktelik Kuralı Yöntemiyle EriĢim Kütüklerinden Bilgi Çıkarımı
4.2.1. Birliktelik kural uygulaması
Süleyman Demirel Üniversitesi web sitesinde birlikte ziyaret edilen sayfa gruplarını
bulmak için birliktelik kural analizi kullanılmıĢtır.
65
GeliĢtirilen uygulamada birliktelik kurallarında en sık kullanılan kural çıkarım
yöntemi olan apriori algoritması kullanılmıĢtır. Ön iĢlem aĢamasından geçirilen
veriler üzerinde kural çıkarımı yapmak için apriori algoritmasıyla kural çıkarımları
yapılmıĢtır. Web Log Analyser programında algoritma için uygulama adımları ise
aĢağıdaki gibidir.
Ġlk olarak oturum tanımlaması yapılan veriler içerisinden sayfa adresleri (url)
belirlenir.
Oturum tablosu kullanılarak her bir oturumda ziyaret edilen sayfalar
programda eĢik destek değerini aĢıp aĢmadığı kontrol edilerek veri tabanına
eklenir.
Veri tabanına eklenen sayfalar arasından ikili alt küme oluĢturulur.
Ġkili alt kümeler arasından eĢik destek değerini aĢan sayfa grupları sisteme
eklenir.
Sisteme eklenen ikili alt kümelerden tekrar üçlü altkümeler oluĢturulur.
EĢik destek değerini aĢan gruplar sisteme üçlü alt kümeler olarak eklenir.
Eğer daha fazla sayfa gruplaması eĢik destek değerini aĢıyorsa program aynı
Ģekilde kodlamaya devam edecektir.
GeliĢtirilen Web log analyser programı paralel ve seri programlama algoritmaları
kullanılarak geliĢtirilmiĢtir. Program tasarımında pencere ikiye bölünmüĢ olup sol
taraf menü sağ taraf ise uygulamanın yapılacağı alandır. Menüden Sequence
Analysis seçildiğinde alt bölümde seri ve paralel linq analiz linkleri açılmaktadır.
Her bir linkte benzer sayfa tasarımı olmakla beraber seri linq analiz ve paralel linq
analiz formları arasındaki fark ise paralel analizde kullanılacak iĢlemci sayısı
kullanıcı tarafından seçilebilir olmasıdır. Paralel linq analiz penceresinde sayfa ikiye
ayrılmıĢ olup ilk aĢamada analiz için gerekli parametreler seçilerek uygulama
“BaĢlat” düğmesiyle program birliktelik kural analizi yapmaya baĢlamaktadır. Ġkinci
bölüm ise kullanıcıya yapılan uygulamalar hakkında rapor sunmaktadır.
66
Web Log Analyser programında analiz parametrelerinde analizin hangi ay ve hangi
tarihler arasında yapılacağını belirleyen parametreler seçildikten sonra kullanıcı
aralığı olarak kurum içi, tüm kullanıcılar ve seçilen kullanıcılar parametrelere
eklenir. Apriori algoritmasına ait parametrelerde ise eĢik destek değeri varsayılan
olarak %5, eĢik güven değeri ise varsayılan olarak %60 olarak belirlenmiĢtir. Paralel
parametresinde ise kullanılacak iĢlemci sayısı seçilecektir. ġekil 4.4‟ de Web Log
Analyser programının ara yüzü belirtilmiĢtir.
ġekil 4.4. Birliktelik kurallarıyla bilgi çıkarım ara yüzü
05.01.2010 tarihinde kurum içi kullanıcılar üzerinde paralel algoritmayla yapılan
analizde Ģekil 4.5‟ deki sonuçlar elde edilmiĢtir.
67
ġekil 4.5. Apriori algoritmasının sonuç verileri.
Çizelge 4.3„ de birliktelik kural uygulamasında kullanılan parametreler verilmiĢtir.
Çizelge 4.3. Uygulamada kullanılan birliktelik kural analiz operatörleri
Uygulama Tarihi 05.05.2010
Kullanıcı Aralığı Kampüs Ġçi
EĢik Destek Değeri %5
EĢik Güven Değeri %60
4.2.2. Bulguların değerlendirilmesi
Birliktelik kural analizi kullanıcıların aynı oturumda girmiĢ oldukları sayfa çiftlerini
bulmalarını sağlayarak site yöneticilerine anlamlı bilgiler sağlayabilir. Siteyi ziyaret
eden kullanıcıların sitede daha çok hangi sayfalarda gezindikleri ve güven değerinin
üzerine çıkan sayfa grupları belirlenmiĢ oldu. Sitenin yeniden yapılandırılmasında
çok önemli kurallar çıkaran uygulama site geliĢtiricilerine ıĢık tutmaktadır. Çıkarılan
kurallar web sitesinin kullanımına yönelik bilgiler içermektedir. Yapılan çalıĢmada
eĢik güven değerini aĢan saylar liste halinde gösterilmiĢtir. ġekil 4.5‟ de görüleceği
gibi bazı sayfa gruplarının güven değeri %100 olarak görülmektedir. /sdu.aspx
dosya=duyuru&dkod=4948,dosya=webmail-----/sdu.aspx kuralının anlamı, okun
sol tarafında kalan sayfalara giren kullanıcıların kesinlikle sdu.aspx ana sayfasına
girmiĢ olduğunu göstermektedir.
68
Çizelge 4.4„ de paralel ve seri algoritmalarla aynı parametreler girilerek geliĢtirilen
uygulamanın süreleri görülmektedir.
Çizelge 4.4. Seri veri paralel algoritmalarla birliktelik kural analizin süreleri
Analiz Tipi Süre(sn)
Seri Programlama 00:30:20.7266112
Paralel Programlama 00:13:03.2794087
GeliĢtirilen. ġekil 4.6‟ da paralel hesaplamada iĢlemci ve belleğin kullanımları
gösterilmektedir.
ġekil 4.6. Birliktelik kurallarıyla paralel hesaplama sürecinde iĢlemcilerin kullanım
yüzdeleri
4.3. Genetik Algoritma ile En Sık Ziyaret Edilen 3’lü Sayfa Grupları
4.3.1. En sık ziyaret edilen 3’lü sayfa uygulaması
GeliĢtirilen Web Log Analyser programında genetik algoritma uygulamasının amacı
en sık ziyaret edilen üçlü sayfa gruplarının paralel programlama teknikleri kullanarak
genetik algoritmayla buldurmaktır. Genetik algoritmalar hakkında teorik bilgiler
bölüm 3.4‟ de verilmiĢtir.
69
Ön iĢleme aĢamasından geçirilen eriĢim kayıtları genetik algoritmayı uygulamak için
hazır hale getirilmiĢtir. Algoritmanın uygulama adımları ise baĢlangıç popülasyonu
oluĢturulması, popülasyondan seçim yöntemiyle yeni bireylerin seçilmesi,
çaprazlama ve mutasyon operatörlerinin uygulanmasıyla yeni popülasyonun elde
edilmesi olarak belirtilebilir. EriĢim kayıt verilerinin algoritmaya uyarlanması için
aĢağıdaki adımlar uygulanacaktır. Ġlk olarak genetik algoritmada kullanılacak
kromozomlar belirlenmelidir. 3‟ lü sayfa gruplarını buldurmak amaçlandığı için
kromozom yapısı sayfaların birleĢtirilmesiyle olacaktır. ġekil 4.7‟ de gen yapısı
belirtilmektedir.
Sayfa Id Sayfa Adresi Sayfa Alt Adresi
ġekil 4.7. Gen Yapısı
Uygulamadaki kromozom yapısı ise genlerin birleĢmesiyle Ģekil 4.8„ deki gibi
olmaktadır.
ġekil 4.8. Kromozom Yapısı
Kromozomlar oluĢturulduktan sonra baĢlangıç popülasyonu rastgele oluĢturulur.
BaĢlangıç popülasyonundaki her bir bireyin uygunluk değeri bulunacaktır. ÇalıĢmada
uygunluk değerini bulmak için her bir oturumda girilen sayfaların yani genlerin
birlikte aynı oturumda bulup bulunmadıklarına bakılacaktır. Uygunluk fonksiyonu
herhangi bir kısıta uymayan bir atamanın cezalandırılmasıyla hesaplanmaktadır.
Böylece uygunluk fonksiyonu Denklem 4.1‟ de görülmektedir.
(4.1)
GenP1=Sayfa
GenP1 GenP2 GenP3
70
Formülde uygunluk fonksiyonun tanımsız olmasını engellemek için paydadaki ceza
toplamına bir eklenmiĢtir (Yiğit, 2006). Uygulamadaki genetik algoritmanın cezaları
ise Denklem 4.2 formülündeki gibi hesaplanır.
∑
(4.2)
Kromozomların ceza puanları hesaplanırken ilk olarak kromozomların genlerine
ayrılma iĢlemi gerçekleĢecektir. hedef kromozomdaki genleri oluĢturan sayfa
adreslerinin kullanıcı oturumlarında birlikte ziyaret edilme uyumluluklarına
bakmaktadır. Yukarıdaki formülde gösterildiği gibi her üç sayfa için tüm
oturumlarda tek tek birlikte bulunma durumları kontrol edilir. Üç sayfanın aynı
oturumda bulunma durumu var ise değer true olarak kabul edilir ve 1 olarak sistemde
kabul edilir. 1 değeri o oturumdaki tüm alt küme sayısına bölünerek 0 ve 1 arasında
yeni bir değer bulunur. Ve bu iĢlem bütün oturumlarda tekrar edilerek bulunan değer
toplanarak tamamlanır. Oturum taramasından sonra bulunan değer yukarıdaki
iĢlemlerden geçirilerek her bir kromozom için tekrarlanır. Uygunluk değeri
hesaplanan kromozomlar seçim iĢlemine sokulurlar. Uygulama kapsamında iki tür
seçim yöntemi kullanıcıya sunulmuĢtur. Rulet çarkı ve turnike yöntemiyle seçimler
yapılabilmektedir. Seçim iĢleminden sonra bireyler çaprazlama operatörüne
tutulurlar. Popülasyonda kaç bireyin çaprazlamaya tutulacağı çaprazlama olasılığıyla
hesaplanır. Literatürde çaprazlama olasılığı genel olarak %60 olarak
hesaplanmaktadır. Buna göre popülasyon sayısının 100 olduğu yerde çaprazlamaya
sokulacak birey sayısı Denklem 4.3‟ de
(4.3)
olarak hesaplanmaktadır. Çaprazlama operatörü uygulanırken dikkat edilen diğer bir
noktada çaprazlamanın hangi noktadan itibaren yapılacağıdır. Uygulamada tek
noktalı çaprazlama yöntemi seçilmiĢ olup bu nokta rastgele seçilmiĢtir. ġekil 4.9‟ da
kromozomların çaprazlama sonrası oluĢturduğu yeni bireyler görülmektedir.
71
ġekil 4.9. Çaprazlama Sonunda oluĢan yeni bireyler
Çaprazlama iĢleminde dikkat edilmesi gereken diğer bir nokta ise uygulamada
çaprazlama iĢlemine sokulacak birey sayısının çift sayı olmasıdır. Ġki birey
çaprazlanacağı için çaprazlama iĢlemi sonucunda birey artmaması gerekmektedir. Bu
yüzden çaprazlama oranının tek veya popülasyonun tek olduğu durumlarda tek çıkan
birey sayısı bir arttırılmalıdır. Web log Analyser programında çaprazlama iĢlemine
sokulan kromozomlar bir sonraki aĢamada çeĢitliliğin artması için mutasyon iĢlemine
tabi tutulur. Çaprazlama iĢleminde olduğu gibi mutasyon iĢleminde de mutasyona
uğrayacak birey sayısı mutasyon olasılığı ile hesaplanır. Popülasyon sayısının 100
kabul edildiği uygulamada mutasyona uğrayacak birey sayısı Denklem 4.4‟ deki gibi
hesaplanmaktadır.
(4.4)
72
Mutasyon operatörü uygulanırken kromozom üzerindeki genler rastgele seçilerek
mutasyon operatörü uygulanmaktadır. Ġkili kodlamada mutasyona uğrayan bireyler 0
ise 1 değerini 1 ise 0 ile yer değiĢtirecektir. GeliĢtirilen uygulamada ikili kodlama
kullanılmamıĢ olup entity yapısıyla sayfa numaraları kromozomları oluĢturmaktadır.
Kromozom yapısını 3 gen oluĢturduğu için hangi genin mutasyona uğrayacağı 1 ve 3
arasında rastgele seçilen değer ile belirlenir. Uygulamada sadece bir gen mutasyona
uğratılmıĢtır. Mutasyona uğratılırken seçilen gen veri tabanında bulunan sayfa
numaraları arasından seçilen rastgele değerler ile yer değiĢtirir. Mutasyona uğrayan
bireyler Ģekil 4.10„ da görülmektedir.
ġekil 4.10. Mutasyon sonunda oluĢan yeni birey
Uygulama mutasyon operatörüne uğratıldıktan sonra yeni bireyler uygulama
havuzuna eklenir ve bu döngü iterasyon son buluncaya kadar devam eder.
GeliĢtirilen Web Log Analyser uygulamasında genetic algorithm menüsünün altında
seri linq ve paralel linq baĢlıkları altında iki sayfa tasarlanmıĢtır. GeliĢtirilen yazılım
paralel ve seri hesaplama teknikleri kullanılarak sisteme entegre edilmiĢtir. Paralel
linq penceresi açıldığında sayfanın iki aĢamadan oluĢtuğu görülmektedir. Üst
bölümde uygulama kullanılması gereken genetik algoritma parametreleri, uygulama
parametreleri ve paralel analiz parametreleri görülmektedir. Alt bölümde ise analizi
yapılmıĢ olan çalıĢmaların detaylı raporları görülmektedir. ġekil 4.11‟ de
uygulamanın ara yüzü görülmektedir.
73
ġekil 4.11. Genetik algoritma uygulama ara yüzü
Web Log Analyser uygulamasında analiz kullanıcının seçmiĢ olduğu parametrelere
göre yapılmaktadır. Analiz yapılacak ay seçildikten sonra kullanıcı hangi tarihler
arası analiz yapılacağını ve ne tür kullanıcıların sistemde analizinin yapılacağını
seçmektedir. Genetik algoritma parametreleri için programda kullanılan parametreler
çizelge 4.5‟ deki gibi girilmektedir.
Çizelge 4.5. Uygulamada kullanılan genetik algoritma operatörleri
Çaprazlama Oranı %60
Mutasyon Oranı %10
Popülasyon Büyüklüğü 100
Ġterasyon sayısı 100
Elitizm Oranı %5
Ayrıca programda seçim operatörü olarak rulet tekeri ve turnuva seçim yöntemleri
ara yüzde kullanıcıya sunulmuĢtur. Paralel algoritma analizi için uygulama ara
yüzünde iĢlemci sayısı seçtirilmektedir.
74
En sık ziyaret edilen 3‟lü sayfa gruplarını genetik algoritmayla bulan uygulama için
05.01.2010 tarihinde kullanıcı tipinde kurum içi personel seçilerek yapılan analizde
çizelge 4.5‟ deki genetik algoritma parametreleri kullanılmıĢtır. ġekil 4.12‟ de en çok
girilen sayfa grupları ve uygunluk değeri görülmektedir
ġekil 4.12. 3‟lü sayfa grupları
Metin halinde sonuç raporları Ģekil 4.13‟ de gösterilmiĢtir.
ġekil 4.13. Sonuçların metin halinde gösterimi.
Ġterasyon ve uygunluk değerlerinin grafiksel gösterimi ise Ģekil 4.14‟ deki gibidir.
ġekil 4.14. Uygunluk-iterasyon sonuç grafiği
75
4.3.2. Bulguların değerlendirilmesi
Genetik algoritmayla en sık ziyaret edilen üçlü sayfa gruplarını bularak web sitesinin
iyileĢtirilmesi sağlanmaktadır. ÇalıĢmada genetik algoritma operatörü olarak
popülasyon büyüklüğü 100, iterasyon sayısı 100, çaprazlama oranı %60, mutasyon
oranı %10, elitizm oranı ise %5 seçilmiĢtir. Seçim türü olarak ise turnuva seçim
yöntemi kullanılmıĢtır. Turnuva seçim yöntemi rulet tekerine göre daha iyi sonuç
vermiĢtir. Çünkü sayfa giriĢlerine göre uygunluk değerleri hesaplanırken rulet
tekerine giren ceza değerleri arasındaki fark çok büyük olduğu için seçilen
kromozomlar bir süre sonra aynı değerler olmaktadır. Turnuva yönteminde ise tüm
bireyler arasından rastgele birey seçimi yapıldığı için bireylerin birbirlerini tekrar
etme durumları olmamaktadır. Elitizm kullanılarak iterasyonlardaki en iyi bireyin
kaybı önlenmiĢtir. %5 seçilen elitizm oranı ile uygunluk değeri en yüksek olan
değerler bir sonraki iterasyona saklanmıĢtır.
Paralel programlama algoritmalarının kullanıldığı çalıĢmada en iyi sayfa grubu
olarak /sdu.aspx/dosya=akademik------/sdu.aspx-------/sdu.aspx/dosya=fakülteler
bulunmuĢtur. Çizelge 4.6„ da paralel ve seri algoritmalarla aynı parametreler
girilerek geliĢtirilen uygulamanın süreleri görülmektedir.
Çizelge 4.6. Seri veri paralel algoritmalarla genetik algoritmanın süreleri
Analiz Tipi Süre(sn)
Seri Programlama 03:51:43.4126054
Paralel Programlama 00:21:46.2847937
4.4. Ġstatiksel Analiz ile EriĢim Kayıtlarından Bilgi Çıkarımı
ÇalıĢmanın bu bölümünde Web Log Analyser programında istatiksel analiz
bölümüyle web sitesinin kullanımına yönelik istatiksel bilgiler çıkarılmıĢtır. Web
sitesinin yapısı, web sitesine eriĢim ve kullanıcının kullandığı sisteme ait önemli
bilgiler çıkarılmıĢtır. ÇalıĢmada Süleyman Demirel Üniversitesi web sitesinin eriĢim
kütükleri üzerinde yapılan analiz ile web sitesinin baĢarımının arttırılması
hedeflenmiĢtir.
76
Web sitesinin ve sunuculara eriĢimin baĢarısız olmasında birçok faktör
bulunmaktadır. Bir web sayfasındaki kırık linklerin açılmaması, kullanıcılar için
eriĢimlerin kısıtlanması, gereksiz ve önemli olmayan bilgi yığınlarının olması
bunlardan bazılarıdır. Web madenciliği kullanılarak web sitesinin baĢarımının
arttırılması ve iyileĢtirilmesi sağlanmaktadır. Web site kullanıcısı siteye herhangi bir
istekte bulunduğu zaman sunucu tarafından bu isteklere durum kodlarıyla cevap
verilmektedir. EriĢim kütüklerindeki durum kodları 3 haneden oluĢan rakamsal
değerlerdir. Durum kodları kısaca bir ile beĢ arasındaki değerlerden oluĢmaktadır.
Durum kodlarının açıklaması ve durum adı çizelge 4.7„ deki gibidir.
Çizelge 4.7. Http Durum kodları
Durum Kodu Durumun Sebebi Açıklama
200 BaĢarılı Sunucu, yapılan isteği, baĢarılı olarak iĢleme koymuĢtur.
202 Kabul Edildi Sunucu, yapılan isteği kabul etmiĢtir. Ancak, henüz iĢleme koymamıĢtır
302 Bulunamadı Ġstenen belge yeni bir yere taĢınmıĢ durumdadır
304 DeğiĢtirilmedi Ġstenen sayfa, yapılan son istekten sonra
değiĢtirilmemiĢtir.
400 Geçersiz Ġstek Ġstek, hatalı sözdizimi nedeniyle sunucu tarafından anlaĢılamamıĢtır
401 Kimlik doğrulama hatası
Ġstek yapılan sayfa, kullanıcıdan kimlik doğrulaması bekliyor, fakat istemci geçerli bir kullanıcı adı veya Ģifre sağlayamamıĢtır.
403 Yasak Sunucu, yapılan isteği anladığı halde iĢlemi tamamlamayı reddetmektedir. Yani, istenen belgeye eriĢim yasaklanmıĢtır.
404 Bulunamadı Ġstenen belge sunucu tarafından bulunamamaktadır. Adres yanlıĢ olabilir ya da belge taĢınmıĢ olabilir.
500 Sunucu Hatası Sunucu bir hatayla karĢılaĢtı ve isteği
tamamlayamadı. Bu durumda sunucu yöneticisi hata kütüğünü kontrol ederek hatanın neden kaynaklandığına bakmalıdır.
501 Uygulanmadı Sunucu, istemci isteğini gerçekleĢtirecek iĢlevselliğe sahip değildir.
Sunuculardan alınan eriĢim kütük dosyaları 1 Ocak 2010 ve 31 Ağustos 2010
tarihleri arasında sekiz aylık dönemi içermektedir. GeliĢtirilen yazılım ile ön
iĢlemden geçirilmiĢ veriler istatiksel analiz yöntemleriyle gerekli sonuçları grafiksel
olarak sunmuĢtur. Programda paralel ve seri algoritmalarla geliĢtirilmiĢ kodlar analiz
iĢlemine sokulduktan sonra reporting bölümüyle kullanıcıya raporlar sunmaktadır.
Ġstatiksel analizi gerçekleĢtirilen bölümler ise altı bölümde incelenmiĢtir.
77
Ġlk bölüm genel istatistikler, ikinci bölümde aktivite istatistikleri, üçüncü bölümde
eriĢim istatistikleri, dördüncü bölümde ziyaretçi istatistikleri, beĢinci bölümde
tarayıcı istatistikleri ve altıncı bölümde durum kodu istatistikleri içermektedir.
4.4.1. Genel istatistikler
Genel istatistik raporlarında eriĢim kütük dosyalarından toplam giriĢlere özel
sonuçlar çıkarılmıĢtır. Çizelge 4.8„ de eriĢim kayıtlarına ait genel istatistikler
gösterilmektedir.
Çizelge 4.8. Genel Ġstatiksel Bilgiler
GiriĢler
Toplam GiriĢ Sayısı 10640084
Ziyaretçi GiriĢ Sayısı 13027024
Günlük Ortalama GiriĢ Sayısı 55539375
Gün. Ortalama Ziyaretçi GiriĢi 54859125
Sayfalar
Sayfa Görüntüleme Sayısı 1492561
Günlük Ortalama Sayfa Sayısı 49160
GiriĢler
Toplam Ziyaretçi Sayısı 1582480
Günlük Ortalama Ziyaretçi 515894
4.4.2. Aktivite istatistikleri
Web aktivite istatistikleri kullanıcının siteye ilgileri, günlük ziyaretçi, sayfa ve günün
saatlerine ait ziyaretçi sayılarını göstermektedir. Kullanıcı arayüzü ile program analiz
tarihleri arasında baĢlangıç ve bitiĢ tarihleri seçilerek istenilen sonuçlar elde
edilebilmektedir. 1 Ocak 2010 ve 15 Ocak 2010 tarihleri arasında yapılan analizler
ġekil 4.15, ġekil 4.16 ve ġekil 4.17„ de günlük ziyaretçi giriĢleri görülmektedir.
78
ġekil 4.15. Aktivite günlük ziyaretçi istatistikleri
ġekil 4.16. Aktivite günlük sayfa istatistikleri
ġekil 4.17. 01.01.2010 tarihli aktivite günlük saat istatistikleri
79
4.4.3. EriĢim istatistikleri
EriĢim raporlama bilgisinde site kullanıcılarının alt sayfalara kaç defa istekte
bulundukları, indirilen dosya bilgileri bulunmaktadır. Tarih aralığını ocak ayının 1
ve 15 i arasının alındığı analiz grafikleri Ģekil 4.18, Ģekil 4.19, Ģekil 4.20 ve Ģekil
4.21„ de görülmektedir.
ġekil 4.18. Günlük sayfa eriĢim istatistiği
ġekil 4.19. 01.01.2010 tarihli popüler sayfa istatistikleri
80
ġekil 4.20. Günlük dosya eriĢim istatistiği
ġekil 4.21. 01.01.2010 tarihli popüler dosya istatistikleri
4.4.4. Ziyaretçi istatistikleri
Ziyaretçi istatistikleriyle web sitelerini ziyaret eden kullanıcıların eriĢim yaptıkları
Ģehir ve ülkeler çıkarılmaktadır. Ocak ayının 1 ve 15 i arasında çıkarılan analiz
sonuçları Ģekil 4.22 ve 4.23„ deki gibidir.
81
ġekil 4.22. Günlük ġehir-ziyaretçi grafiği
ġekil 4.23. Ocak ayında en çok giriĢ yapılan Ģehir grafiği
4.4.5. Tarayıcı istatistiği
Ziyaretçilerin kullanmıĢ olduğu internet tarayıcılarının dağılımının veriliği grafikler
Ģekil 4.24 ve 4.25„ de verilmiĢtir. Grafiksel gösterim için ocak ayının1 ve 15 i arası
seçilmiĢtir.
82
ġekil 4.24. Tarayıcı dağılımlarının günlere göre grafiksel gösterimi
ġekil 4.25. Ocak ayında siteye giriĢte e çok kullanılan tarayıcılar
4.4.6. Durum kodu istatistiği
Bu bölümde web sitesine yapılan eriĢimlerin gerçekleĢip gerçeklemedikleri durum
kodlarına bakılarak anlaĢılmaktadır. Bölüm 4.4‟ de hata durum kodlarıyla ilgili genel
bilgiler verilmiĢtir. ġekil 4.26„ da durum kodlarıyla ilgili ocak ayına ait istatistikler
görülmektedir.
83
ġekil 4.26. Durum kodu dağılımının grafiksel gösterimi
Paralel ve seri algoritmalarla gerçekleĢtirilen uygulama Web Log Analyser
programının istatiksel analiz bölümüne eklenmiĢtir. Ġstatiksel analiz çalıĢmasıyla web
sitesinin kalitesi değerlendirmektedir. Sayfalara eriĢimler, durum kodu istatistikleri,
en çok okunan duyurular, sitenin hangi saatlerde yoğun olduğunun bilgisi aynı
zamanda site iyileĢtirmesi için önemli bilgiler içermektedir. Bu bilgiler ıĢığında site
mimarisi üzerinde yapılması gereken değiĢiklikler, sitedeki bozukluklar tespit
edilmektedir. Kullanıcıların talep ettiği dosya tipleri, haftanın yoğun olduğu günler,
tarayıcıların kullanım oranları site geliĢtiricilerine iyileĢtirme için ıĢık tutmaktadır.
Yapılan istatiksel analiz 1 Ocak 2010 ve 31 Ağustos 2010 tarihleri arasında 5 GB lık
veri üzerinde gerçekleĢtirilmiĢtir. Paralel ve seri algoritmalarla gerçekleĢtirilen
ĠĢlemcinin kullanım yüzdeleri paralel analizde tüm görevleri çekirdeklere dağıtacak
Ģekilde %90 ve %100 arasındayken seri analizde bu oran %15 lere kadar
düĢmektedir. Çizelge 4.9‟ da paralel ve seri istatiksel analiz süreleri verilmektedir.
Çizelge 4.9. Seri veri paralel algoritmalarla istatiksel analizin süreleri
Analiz Tipi Süre(sn)
Seri Programlama 1:52:26.8088022
Paralel Programlama 00:53:59.1571637
84
5. TARTIġMA VE SONUÇ
Web madenciliği web kullanıcılarının site içerisinde yapmıĢ oldukları hareketlerden
yola çıkılarak örüntü keĢfi, örüntü analizi ve kullanıcı hareketlerinin incelenmesi gibi
alanlarda sonuçların bulunabilmesi için çalıĢmaların yapıldığı önemli bir araĢtırma
alanıdır. Web site sunucuları üzerinde tutulan eriĢim kütükleri kullanılarak yapılan
araĢtırmalar web madenciliği sürecinde birçok aĢamadan geçirilmektedir.
Bu tez çalıĢmasında öncelikle veri madenciliği ve web madenciliği kavramlarına
değinilmiĢ, daha sonra kullanılan veri madenciliği algoritmaları hakkında detaylı bir
bilgi verilmiĢtir. Tezin araĢtırma bulguları bölümünde ise Süleyman Demirel
Üniversitesi kurumsal web sitesi çeĢitli veri madenciliği algoritmalarıyla analiz
edilmiĢtir. ÇalıĢma Microsoft Visual Studio ortamında c# programlama dili ile
geliĢtirilmiĢtir. Wpf teknolojisinin kullanıldığı uygulamada veri tabanı olarak Sql
Server kullanılmıĢtır. Uygulama kapsamında program dört bölüme ayrılmıĢtır.
Uygulamanın ilk bölümünde sunuculardan alınan eriĢim kütükleri web kullanım
madenciliğinin ilk aĢaması olan ön iĢleme sürecinden geçirilmiĢtir. Ön iĢleme
sürecinden geçirilen verilere diğer bölümlerde örüntü keĢfi ve analizi için birliktelik
kuralları, genetik algoritma ve istatiksel analiz uygulanarak uygulama
tamamlanmıĢtır. EriĢim kütükleri 1 Ocak 2010 ve 31 Ağustos 2010 tarihleri arasında
sekiz aylık veri toplam 245 kütük dosyasından oluĢmaktadır. Ön iĢlem aĢamasından
geçirilmeyen eriĢim kütükleri veri tabanında 8 GB alan kaplamaktadır. Ön iĢlem
aĢamasından sonra ise verilerin toplam boyutu 5 GB‟ a kadar düĢmüĢtür. Birlikte
kuralları analizinde web sitesine birlikte girilen sayfaların kuralları çıkarılmıĢtır.
Genetik algoritma ile en sık ziyaret edilen 3 ‟lü sayfa grupları buldurulmuĢtur.
Uygulamanın son bölümünde ise siteye ait sekiz aylık eriĢim kayıtlarının istatiksel
analizleri çıkarılmıĢtır. Analiz kapsamında genel istatistikler, aktivite istatistikleri,
eriĢim istatistikleri, ziyaretçi istatistikleri, tarayıcı istatistikleri ve durum kodu
istatistikleri çıkarılmıĢtır.
Bu tez çalıĢması web site yöneticilerine web sitesinin geliĢtirilmesi ve yeniden
tasarlanması yönünde önemli bilgiler sunmaktadır.
85
Analizler sonucunda web sitesinin ana sayfası yoğun olarak kullanılmakta olup
duyuru, haber, mail eriĢim, rektörlük, fakülte, enstitü, arĢiv haberlerinin sıklıkla
kullanıldığı analizlerden görülmektedir. Dikkat çeken diğer bir istatistik ise durum
kodlarında baĢarılı girilen sayfaların yanında hata veren sayfaların belirli dönemlerde
sıklık göstermesidir.
ÇeĢitli destek ve güven değerleriyle yapılan birliktelik kuralları analizlerinde ise tüm
analiz sonuçlarının benzer sonuçlar verdiği görülmektedir. Güven değerleri
değiĢmekle beraber genel olarak web mail ve duyurulara ait linklere tıklayan
kullanıcıların sonrasında ana sayfaya giriĢ yaptıkları %100 güven değeriyle tespit
edilmiĢtir.
Genetik algoritmalarla en sık ziyaret edilen 3 ‟lü sayfa grupları incelendiğinde ise
kullanıcı tarafından belirlenen mutasyon ve çaprazlama ve elitizm oranları verilerek
aynı oturumlarda kullanıcıların girdiği sayfalar değiĢmekle beraber genel olarak
akademik, ana sayfa ve fakülte web sayfalarına aynı oturumlarda girildiği
görülmektedir. Bu analizler sayfa tasarımcıları kullanıcılara kolaylık sağlamak ve
site kullanılabildiğini arttırmak amacıyla aynı oturum içerisinde girilen sayfaları yeni
menü tasarımları geliĢtirebilmektedirler.
Uygulama paralel ve seri programlama algoritmalarıyla geliĢtirilmiĢ olup uzun
zaman alan web log analizinin seri ve paralel algoritmalarla yapılmasıyla kısa sürede
sonuçlandırılmıĢtır. Analizlerin yapıldığı bilgisayar proje desteği ile alınmıĢtır.
Paralel iĢlem gerçekleĢtirmek için güçlü bir iĢlemci olan Intel(R) Core(TM) i7 930
@2.80 GHz iĢlemcisi entegre edilmiĢtir. Sekiz çekirdeğe sahip olan bilgisayar .Net
Framework 4.0 paralel kütüphanesiyle uyumlu bir Ģekilde çalıĢmıĢtır. Uygulama ile
sık giriĢ yapılan sayfalar farklı sunuculara alınarak sistemin iyileĢtirmesi sağlanabilir.
Aynı zamanda ziyaretçilerin siteye giriĢ yaptığı saatler analiz edilerek yoğun saatler
altındaki eriĢimler için sunucu bakımları ertelenebilmektedir. Siteye hangi tarayıcılar
ile girildiği tespit edilerek sitenin tasarımı bu yönde yapılabilmektedir. Bu çalıĢma
kapsamında ileriye dönük olarak bilimsel çalıĢmalar ile biliĢim suçlarına yönelik
izlemeler yapılabilir, internet güvenlik açıklarını kapamak için önlemler alınabilir.
86
6. KAYNAKLAR
Abraham, A., 2003. Business Intelligence from Web Usage Mining. Journal of
Information & Knowledge Management, 4 (2), 375-390.
Akçay, M. Erdem, A.E., 2010. Paralel Hesaplama ve MATLAB Uygulamaları.
Muğla Üniversitesi Akademik BiliĢim, Muğla.
ALPAYDIN, E., 2000. Zeki veri madenciliği: Ham Veriden Altın Bilgiye UlaĢma
Yöntemleri. BiliĢim 2000 Eğitim Semineri, Ġstanbul.
AltıntaĢ, T., 2006. Veri Madenciliği Metotlarından Olan Kümeleme Algoritmalarının
Uygulamalı Etkinlik Analizi. Sakarya Üniversitesi Fen Bilimleri Ensitüsü,
Yüksek Lisans Tezi, 63s, Sakarya.
Araya, S., Silva, M., Weber, R., 2004. A Methodology for web usage mining and its
applications to target group identification. Fuzzy sets and systems. 148 (1),
139-152.
Arslan, H., 2008. Sakarya Üniversitesi web sitesi eriĢim kayıtlarının web madenciliği
ile analizi. Sakarya Üniversitesi Fen Bilimleri Enstitüsü, Yüksek Lisans Tezi,
92s, Sakarya.
Aynekin, G., 2006. Ġnternet içerik madenciliğinde yapay sinir ağları ve bir uygulama.
Uludağ Üniversitesi Fen Bilimleri Enstitüsü, Yüksek Lisans Tezi, 92s, Bursa.
Belen, E., Özgür, Ç., Özakar, B., 2003. WALA: Web EriĢim Kütük AraĢtırmacısı
(Web Access log Analyser). IX. Türkiye'de Internet Konferansı, Ġstanbul.
Blaise Barney, Lawrence Livermore National Laboratory 2010. Ġnternet Sitesi.
https://computing.llnl.gov/tutorials/parallel_comp/. EriĢim Tarihi: 27.05.2010
Carus, A., Mesut, A., 2005. Web Kullanım Madenciliği Uygulaması. II.Mühendislik
Bilimleri Genç AraĢtırmacılar Kongresi, Ġstanbul.
Catledge, L.D., Pitkow, J.E., 1995. Characterizing browsing strategies in the world
wide web. Computer Networks and ISDN Systems, 27 (6), 1065–1073.
Chen, L., Sycara, K., 1998. WebMate:A Personal Agent for Browsing and Searching.
The Second International Conference on Auyonomous Agents, U.S.A.
Cooley, R., Mobasher, B., Srivastava, J., 1997. Web Mining: Information and Pattern
Discovery on the World Wide Web. In Proceedings of the 9th IEEE
International Conference on Tools with Artificial Intelligence, pp:558-567.
U.S.A.
87
Cooley, R., Mobasher, B., Srivastava, J., 1999. Data Preparation for mining World
Wide Web Browsing Patterns. Knowledge and Information Systems, 1 (1), 5-
32.
Çelik, A. Özmen, A., 2009. Dağıtık Paralel Sistemler Hakkında Kıyaslamalı Bir
ÇalıĢma: Pvm Ve Mpı 2009. 5. Uluslararası Ġleri Teknolojiler Sempozyumu
(IATS‟09), Karabük.
DaĢ, R., Türkoğlu, Ġ., Poyraz, M., 2007. Web Kayıt Dosyalarından Ġlginç Örüntülerin
KeĢfedilmesi. Fırat Üniversitesi Fen ve Mühendislik Bilimleri Dergisi, 19 (4),
493-503.
DaĢ, R., 2008. Web Kullanıcı EriĢim Kütüklerinden Bilgi Çıkarımı., Fırat
Üniversitesi Fen Bilimleri Enstitüsü, Doktora Tezi, 117s, Elazığ.
DaĢ, R., Türkoğlu, Ġ. Ve Poyraz, M., 2008. Analyzing of the user access logs of a
website using web usage mining method: Example of Firat University, e-
Journal of New World Sciences Academy (NWSA). Natural and Applied
Sciences, 3 (2), 310-320.
Demirsoy, A., 1998. Kalıtım ve Evrim. Meteksan Yayınları, 902s. Ankara.
Elgün, C. Ç., 2008. Web Madenciliği, Ġnternet Sitesi. http://www.
bilyaz.com/bMakaleGetir.php?id=56. EriĢim Tarihi: 15.04.2011.
Etzioni, O. 1996. The World Wide Web: Quagmire or gold mine?, Communication
of the ACM, 39 (11), 65–68.
Engin, O., Fığlalı, A., 2002. AkıĢ Tipi Çizelgeleme Problemlerinin Genetik
Algoritma Yardımı ile Çözümünde Uygun Çaprazlama Operatörünün
Belirlenmesi. DoğuĢ Üniversitesi Dergisi, 3 (2), 27-35.
Gezer, M., Erol, Ç. Ve Gülseçen, S., 2007. Bir web sayfasının web madenciliği ile
analizi, Akademik BiliĢim 2007, Dumlupınar Üniversitesi, Kütahya.
Guo, L., Xiang, X., Shi, Y., 2004. Web Usage Mining to Asist Online E-Learning
Assessment. Proceedings of the IEEE International Conference on Advanced
Learning Technoligies, pp:912-913.
Gürsoy, U. T., 2009. Veri madenciliği ve bilgi keĢfi. Pegem Akademi, 192s, Ankara.
Haberal, Ġ., 2007. Veri Madenciliği Algoritmaları Kullanılarak Web Günlük EriĢimlerinin
Analizi. BaĢkent Üniversitesi Fen Bilimleri Enstitüsü, Yüksek Lisans Tezi, 76s,
Ankara.
Han J. And Kamber M., 2001. Data mining: Concepts and techniques. Morgan
Kaufmann Publishers, 550s, San Francisco.
88
IAN, W., EĠBE, F., 2005. Data Mining Practical Machine Learning Tools and
Techniques. Morgan Kaufmann Publishers, 664s, U.S.A.
ĠĢeri, Ġ., 2005. Web Günlüğünden Zaman Sınırlı Bulanık Bağıntı Kuralları ve Sıralı
Örüntülerin Çıkarılması. Yüksek Lisans Tezi, Fırat Üniversitesi Fen Bilimleri
Enstitüsü, 51s, Elazığ.
Kaya, H. Ve Köymen, K., 2008. Veri madenciliği kavramı ve uygulama alanları.
Fırat Üniversitesi Doğu Anadolu Bölgesi AraĢtırmaları Dergisi, 6 (2), 159-
164.
Kosala, R., Blockeel, H. 2000. Web mining research: a survey. SIGKDD: SIGKDD
explorations: newsletter of the special interest group (SIG) on knowledge
discovery & data mining, 2 (1), 1–15.
Körez, M.T., 2005. Sıralı Akıs Tipi Çizelgeleme Problemlerinde Genetik Algoritma
Uygulaması. Yıldız Teknik Üniversitesi Fen Bilimleri Enstitüsü, Yüksek
Lisans Tezi, 85s, Ġstanbul.
Liu, B. 2007. Web Data Mining: Exploring Hyperlinks, Contents and Usage Data.
Springer Publishers, 532s, U.S.A.
OĞUZ, M., AKBAġ, S., 1997, Genetik Algoritmalar, YTÜ Endüstri Mühendisliği,
Bitirme Tezi. Ġstanbul.
Ortega, J., L., Aguillo, I., 2010. Differences Between Web Sessions According to the
Origin of Their Visits. Journal of Informetics, 4 (3), 331-337.
ÖZAKAR, B., PÜSKÜLCÜ, H., 2011. Tıkların Dili Web içerik ve Web Kullanım
Madenciliği Tekniklerinin Entegrasyonu ile OluĢmuĢ Bir Veri Tabanından
Nasıl Yararlanılabilir?. http://www.teknoturk.org/docking/yazilar/tt000119-
yazi.htm, EriĢim Tarihi:05.02.2011.
ÖZÇINAR, H., 2006. KPSS Sonuçlarının Veri Madenciliği Yöntemleriyle Tahmin
Edilmesi. Pamukkale Üniversitesi Fen Bilimleri Enstitüsü, Yüksek Lisans
Tezi, 53s, Denizli.
Özekes, S., 2003. Veri madenciliği modelleri ve uygulama alanları. Ġstanbul Ticaret
Üniversitesi Dergisi, 3, 65-82.
Özseven, T., 2011. GaziosmanpaĢa üniversitesinin kurumsal web sayfası
ziyaretlerinin web madenciliği ile analizi. Karabük Üniversitesi Fen Bilimleri
Enstitüsü, Yüksek Lisans Tezi, 111s, Karabük.
89
Parlak, M., 2007. Genetik algoritmaların hesapsal ve yapısal olarak incelenmesi.
Ondokuz Mayıs Üniversitesi Fen Bilimleri Enstitüsü, Yüksek Lisans Tezi,
116s, Samsun.
Pingdom, 2011. Ġnternet Sitesi. http://royal.pingdom.com/2011/01/12/internet-2010-
in-numbers/. EriĢim Tarihi:10.06.2011
SCIME, A., 2005. Web Mining: Applications and Techniques. Idea Group Publishing,
427s, U.S.A.
Selçuk Üniversitesi Uzaktan Eğitim Programı 2003. Ġnternet Sitesi.
http://farabi.selcuk.edu.tr/egitim/bilorg/1-7-5.htm 2003.. EriĢim
Tarihi:13.03.2011.
Sever, H., Oğuz, B., 2002. Veri Tabanlarında Bilgi KeĢfine Formel Bir YaklaĢım:
Kısım 1- EĢleĢtirme Sorguları ve Algoritmalar. Bilgi Dünyası, 3 (2), 173-204.
Srivastava, J., Cooley, R., Deshpande, M., Tan, P., 2000. Web Usage Mining:
Discovery and Applications of Usage Patterns from Web Data. SIGKDD
Explorations, 1 (2), 12-23.
Soares, C., Peng, Y., Meng, J., Washio, T. And Zhou, Z., 2008. Applications of data
mining in e-business and finance. IOS Press, 156s, Amsterdam.
ġenyurt, B.S., 22.05.2009. PLINQ (Parallel LINQ) - Hello World [Beta 1].
http://www.buraksenyurt.com/post/PLINQ-(Parallel-LINQ)-Hello-
World.aspx. EriĢim Tarihi: 15.03.2011.
ġeyurt, B.S., 06.06.2009. Task Parallel Library Kimdir?
http://www.csharpnedir.com/articles/read/?id=936. EriĢim Tarihi:10.12.2010.
ġenyurt, B.S., 22.02.2010. Paralel Programlamada Performans, Hız, Verimlilik ve
Ölçeklenebilirlik Ölçümleri. http://www.buraksenyurt.com/post/Paralel-
Programlamada-Performans-Hiz-Verimlilik-ve-Olceklenebilirlik-
Olcumleri.aspx. EriĢim Tarihi: 22.05.2010.
Uğuz, H., Kodaz, H., Saraçoğlu, R., Baykan, Ö., K., 2003. Genetik Algoritmalar
Kullanılarak Web Kullanım Madenciliği Yönteminin Sistem Log Kayıtlarına
Uygulanması. International XII. Turkish Symposium on Artificial
Intelligence and Neural Networks-TAINN, 1, 45-47.
Vahaplar, A., Ġnceoğlu, M.M., 2001. Veri Madenciliği ve Elektronik Ticaret. VII.
Türkiye‟de Ġnternet Konferansı.
WANG, W., 1999. Classification and Pattern Matching Methods. M.S. Thesis, Com
Beijing Polytechnic University.
90
Yiğit T., 2006. Meslek Liselerindeki Haftalık Ders Çizelgelerinin Genetik
Algoritmalar Yardımı Ġle Çözülmesi. Gazi Üniversitesi Endüstriyel Sanatlar
Eğitim Fakültesi Dergisi, 19, 25-39, Ankara.
91
ÖZGEÇMĠġ
Adı Soyadı :Güncel SARIMAN
Doğum Yeri ve Yılı: Milas/Muğla-1986
Medeni Hali :Bekar
Yabancı Dili :Ġngilizce
Eğitim Durumu (Kurum ve Yıl)
Lise :Milas Anadolu Lisesi(2001-2004)
Lisans :Süleyman Demirel Üniversitesi Teknik Eğitim Fakültesi Elektronik
Bilgisayar Eğitimi (2005-2009)
Yüksek Lisans: Süleyman Demirel Üniversitesi Fen Bilimleri Enstitüsü Bilgisayar
Mühendisliği Anabilim Dalı (2009-)
ÇalıĢtığı Kurum/Kurumlar ve Yıl: Süleyman Demirel Üniversitesi Bilgi ĠĢlem
Daire BaĢkanlığı (2010-)
Yayınları (SCI ve diğer makaleler)
1- KÜÇÜKSĠLLE, E.U.,YĠĞĠT,T.,GÜNEġ,A.,SARIMAN,G., "A system for the
detection and reporting of wireless modem signals", Scientific Research and Essays,
5/11,2010,pp. 1346-1350