paralel programlama Ġle web madencĠlĠĞĠnde log …

103
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

Upload: others

Post on 25-Oct-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 2: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 3: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 4: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 5: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

iii

6. KAYNAKLAR ...................................................................................................86

ÖZGEÇMĠġ............................................................................................................91

Page 6: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 7: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 8: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 9: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 10: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 11: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 12: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 13: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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).

Page 14: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 15: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 16: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 17: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 18: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 19: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 20: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 21: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 22: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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).

Page 23: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 24: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 25: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 26: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 27: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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).

Page 28: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 29: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 30: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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).

Page 31: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 32: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 33: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 34: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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ı.

Page 35: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 36: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 37: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 38: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 39: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 40: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 41: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 42: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 43: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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).

Page 44: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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;

Page 45: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 46: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 47: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 48: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 49: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 50: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 51: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 52: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 53: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 54: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 55: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 56: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 57: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 58: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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).

Page 59: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 60: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 61: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 62: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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üĢü

Page 63: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 64: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 65: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 66: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 67: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 68: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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:

Page 69: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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; } }

Page 70: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 71: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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; } }

Page 72: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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; }

Page 73: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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ı

Page 74: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 75: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 76: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 77: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 78: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 79: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 80: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 81: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 82: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 83: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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)

Page 84: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 85: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 86: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 87: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 88: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 89: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 90: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 91: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 92: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 93: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 94: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 95: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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

Page 96: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 97: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 98: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 99: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 100: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 101: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 102: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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.

Page 103: PARALEL PROGRAMLAMA ĠLE WEB MADENCĠLĠĞĠNDE LOG …

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