Professional Documents
Culture Documents
ÖDEVİ GRUBU:
İsmail ŞİMŞEK
Soner BAŞTAŞ
Abdullah KURT
Ders Eğitmeni
Dr. Hidayet TAKÇI
Ocak, 2008
Gebze, KOCAELİ
SQL SERVER İLE VERİ MADENCİLİĞİ
İÇİNDEKİLER
Amaç.............................................................................................................3
Giriş..............................................................................................................3
Veri Madenciliği Algoritmaları............................................................................4
Microsoft Decision Trees (Microsoft Karar Ağaçları)...........................................4
Microsoft Clustering (Microsoft Kümeleme)......................................................4
Microsoft Naïve Bayes...................................................................................4
Microsoft Time Series....................................................................................5
Microsoft Association....................................................................................5
Microsoft Sequence Clustering........................................................................6
Microsoft Neural Network..............................................................................6
Microsoft Linear Regression...........................................................................6
Microsoft Logistic Regression.........................................................................7
Madencilik Ortamının Hazırlanması....................................................................7
SQL Server Database’ini hazırlamak................................................................7
Analysis Services Database’ini hazırlamak.......................................................8
Analysis Services Projesi oluşturmak...............................................................8
Data Source oluşturmak................................................................................8
Data Source View oluşturmak.......................................................................10
Data Source View’i Düzenlemek....................................................................11
Madencilik modelleri ile çalışmak..................................................................11
Örnek Senaryo: Hedefe Yönelik Toplu Mail Gönderimi (Targeted Mailing)..............12
Targeted Mailing Madencilik Modelinin Yapısını Sihirbaz(wizard) Ile Oluşturmak . 13
Madencilik modellerini düzenlemek...............................................................15
Madencilik Modellerini İşlemek.....................................................................15
Madencilik Modellerini Analiz Etmek..............................................................16
Microsoft Decision Trees Modelinin İncelenmesi..............................................16
Decision Tree........................................................................................16
Dependency Network.............................................................................17
Microsoft Clustering Modelinin İncelenmesi....................................................19
Cluster Diagram....................................................................................19
Cluster Profiles......................................................................................20
Cluster Characteristics............................................................................21
Cluster Discrimination............................................................................22
Microsoft Naïve Bayes Modelinin İncelenmesi.................................................23
Dependency Network.............................................................................23
Attribute Profiles....................................................................................24
Attribute Discrimination..........................................................................26
Amaç
Bu döküman Microsoft Sql Server 2005 veritabanı yönetim sistemi ürününü baz alarak sql
server araçlarının nasıl veri madenciliğinde kullanılacağının yanında microsoft sql server
2005 ürününün içerdiği veri madenciliği araçlarının kullanımı göstermeyi amaçlamaktadır.
Giriş
bu döküman okuyucuyu Microsoft SQL Server 2005 ürününde veri madenciliği modelleri
oluşturmada nasıl bir yöntem izleneceğini adım adım anlatır nitelikte tasarlanmıştır.
Microsoft SQL Server 2005 deki veri madenciliği araçları ve algoritmaları geniş kapsamlı
çözümler içeren çok değişik projeleri kolaylıkla yapmak için tasarlanmıştır. Bu dökümanda
bu çözümlere bir örnek olarak ‘hedefe yönelik toplu mail gönderimi’(targeted mailing) örnek
olarak işlenmiştir .
Microsoft SQL Server 2005 te veri madenciliği için kullanılacak tasarım arayüzü Business
Intelligence Development Studio olarak adlandırılmıştır, bu araç ile veri madenciliği
modelleri database sistemine bağlanmadan hazırlanabilir ve daha sonra database sistemi
üzerinde işlenebilir, ilerleyen bölümde bu araç ayrıntılı olarak anlatılacaktır.
Tüm veri madenciliği araçları data mining editor içinde bulunur, bu editor kullanılarak
madencilik modelleri yönetilebilir, görüntülenebilir, karşılaştırılabilir ve varolan modeler
üzerinden tahminler oluşturulabilir.
Projeler genelde birden fazla madencilik modeli içerir zira bir model tahminler oluşturmak
amacıyla oluşturulur, hangi modelin daha doğru sonuçlar verdiğinin belirlenebilmesi
gerekir, bu nedenle editor Mining Accuracy Chart tab denilen bir model karşılaştırma aracı
içerir.
Microsoft SQL Server 2005 veri madenciliği özelliklerini göstermek için bu döküman
Microsoft SQL Server 2005 ile birlikte gelen AdventureWorksDW olarak adlandırılan
örnek veritabanını kullanmaktadır, bu örnek veritabanının Microsoft SQL Server 2005
ürününü kurarken kurulması gerekir, eğer kurulmamış ise program ekle kaldırdan
Microsoft SQL Server 2005 seçeneği altındaki ‘değiştir’ seçeneği ile sonradan
yüklenebilir.
Bir model inşa etmede algortima veri kümesindeki her girdi özelliğinin tahmin edilmiş sonucu
nasıl etkileyeceğini belirler. Buna göre bu algoritma girdi özelliklerinin arasındaki en güçlü
ilişkileri kullanarak nodlar olarak adlandırılan bir dizi parça oluşturur. Yeni nodlar modele
eklendikçe bir ağaç şekli belirmeye başlar, ağacın en tepedeki düğümü tahmin edilen
özelliğin tüm popülasyon içindeki analizini ifade eder. Her eklenilen düğüm girdi
özelliklerinin tahmin edilen özeliğin durumunun üzerine dağılımına göre oluşturulur. Eğer bir
girdi özelliği tahmin edilen özelliğin bir durumdan diğer duruma benzemesine sebep oluyorsa
modele yeni bir düğüm eklenir. Model varolan düğümün üzerinde daha iyi bir tahmin
oluşturacak bir parça oluşturan özellik kalmayana kadar büyümeye devam eder. Model
tahmin edilmiş özelliğin oransız dağılımını sağlayan özellikler ve bu özelliklerin durumlarının
kombinasyonlarını bulmaya çalışır.
Microsoft Clustering algoritması bir veri kümesindeki kayıtları benzer özellikteki kayıtları
aynı kümeye koyacak şekilde gruplama işlemi yapar, bu işlemi iteratif tekniklerle
gerçekleştirir, bu kümeler ile veriler arasında rahatlıkla görülemeyecek olan ilişkiler
keşfedilir, ek olarak bu algoritma kümeleme modelinden tahminler oluşturulmasına izin verir,.
Örneğin aynı şehirde yaşayan, aynı marka arabaya sahip, aynı tür yemek yiyen ve aynı tür bir
ürünü alan bir grup insan bu şehrin bir kümesidir (cluster). Diğer bir küme aynı restorana
giden, benzer gelire sahip, aynı yıl içinde iki kez yurt dışına giden insanlar grubu olabilir.
Bu kümelerin nasıl dağıldığı gözlenerek; veri kümesinde kayıtların nasıl bir etkileşimde
bulunduğu, bu etkileşimin sonuçta elde edilen tahmin çıktısını nasıl etkilediği daha iyi
anlaşılabilir.
Microsoft Naïve Bayes algoritması hızlı bir biçimde sınıflama ve tahmin etme işlemleri için
madencilik modelleri üretmeye yarar. Algoritma her girdi niteliğinin olası durumlarının,
verilen tüm tahmin edilebilir niteliklerin durumlaının, daha sonra bilinen girdi niteliklerini
temel alan bir sonuç tahmin edilebilmesi için olasılıklarını hesaplar, olasılıklar kübün
işlenmesi sırasında hesaplanır ve kayıt edilir.
Algoritma sadece ayrık veya ayıklaştırılmış nitelikleri destekler ve tüm girdi niteliklerinin
bağımsız olduğunu varsayar.
Microsoft Naïve Bayes algoritması veri madenciliği sürecinde bir başlangıç noktası olarak
kabul edilebilecek basit bir madencilik modeli oluşturur. Madencilik modelinde kullanılan
hesaplamaların hemen hemen tamamı küp işleme sürecinde yapıldığından sonuçlar çok çabuk
döner. Bu durum modeli veriyi keşfetmede ve değişik girdi niteliklerinin tahmin edilen
niteliğin değişik durumlarında dağılımını bulmada iyi bir seçenek yapar.
Microsoft Time Series algoritması sürekli değişkenlerin zamana göre OLAP ve ilişkisel veri
kaybaklarından tahmin edilmesini sağlayan modeller oluşturur. Örneğin; Microsoft Time
Series algoritması bir marketteki satışların ve karın küpteki tarihsel veriden tahmin edilmesi
için kullanılabilir.
Bu algortima kullanılarak tahmin etmek için bir veya daha fazla değişken seçilebilir, fakat bu
değişkenler sürekli olmalıdır. Her model için sadece bir durum serisi olabilir. Durum serisileri
seriler içinde bir yer belirler, mesela bir yıl içinde birkaç aydaki satışlara bakarken belirlen
tarih bir durum serisidir. Bir durum bir değişken kümesi içerebilir (örneğin farklı şubelerdeki
satışlar gibi). Microsoft Time Series algoritması tahminlerinde capraz-değişkenli(cross-
variable) korelasyon kullanabilir. Örneğin bir şubadeki önceki satışlar başka bir şubedeki
şimdiki satışların tahmini konusunda yararlı olabilir.
Microsoft Association
Microsoft Association algoritması özellikle market sepeti analizleri için dizayn edilmiştir.
Algoritma her nitelik/değer çiftini (örneğin ürün/bisiklet) bir parça(Item) olarak ele alır. Bir
parça kümesi(Itemset) bir sorgudaki parçaların kombinasyonudur. Algoritma daha fazla
sorguda bulunmaya yatkın parça kümelerini bulmak için veri kümesini tarar. Support
parametresi bir itemset’in kayda değer olarak ele alınması için kaç sorguda görüneceğini
belirler. Örneğin bir sık itemset {cinsiyet=”erkek”, medeni durum=”evli”,yaş=”30-35”}
değerlerini içerebilir. Her ıtemset’in büyüklüğü içerdiği item(parça)’ların sayısıdır, bir önceki
örnekte büyüklük 3’tür.
Sık olarak ilişki (association) modeli ilişkili veri modelleri için çalışır, örneğin bir müşteri
listesi ve buna bağlı satın alma listesi gibi. Eğer bir veri kümesinde ilişkili tablolar mevcut ise
her ilişkili anahtar (örneğin satın alma tablosundaki ürün) bir item olarak ele alınır.
Microsoft Sequence Clustering algoritması ayrık değer serileri içeren sıra bağımlı verilerin
analiz edilmesinde kullanılır. Serilerin içindeki sıra özelliği daima belirli bir sıradaki olayları
içerir (örneğin tıklama yolu(click path)). Algortima sıraların durumları arasındaki geçişleri
analiz ederek ilgili sıraların gelecekteki durumlarını tahmin edebilir.
Microsoft Neural Network algoritması Microsoft SQL Server 2005 Analiz servislerinde
neronlardan oluşan çok tabakalı (multilayer) bir perceptron network’ü oluşturarak
sınıflama (classification) ve gerileme(regresyon) madencilik modelleri üretir. Algritma
tüm durum kümelerini bilinen kesin sınıflama kümelerinden iterative olarak karşılaştırma
yaparak tahmin edilmiş sınıflama kümelerini elde eder. Başlangıç sınıflamasının ilk
iterasyonundan doğan hatalar tüm durum kümeleri için temel oluşturur ve bir sonraki
iterasyon için network’ün performansını değiştirmek için kullanılır ve bu böyle devam
eder.
Daha sonra girdi niteliklerine göre bu olasılıklar bir çıktı olarak tahmin edilmiş bir nitelik
oluşturmak için kullanılabilir.
Bu algoritmanın Microsoft Decision Trees algoritmasından en önemli farkı hatayı minimize
etmek ve network parametrelerini optimize etmek için öğrenme süreci işletmesidir, oysa
Microsoft Decision Trees algoritması kuralları maksimum bilgi kazancı sağlamak için
böler.
Bu algoritma ayrık ve sürekli niteliklerin tahmininde kullanılabilir.
Microsoft Linear Regression algoritması, Microsoft Decision Trees algoritmasının özel bir
yapılandırmasıdır, bu algortimada parçalama yapılmaz (tüm gerileme (regression)
formülü tek bir kök düğümde inşa edilir).
Algoritma sürekli niteliklerin tahmin edilebilmesini destekler.
Microsoft sql server ile madencilik ortamının hazırlanması için üç aşama gereklidir; SQL
Server Database ini hazırlamak, Analysis Services Database ini hazırlamak, ve madencilik
modellerini oluşturup çalıştırmak.
Bir data source pojede kayıt edilen ve Analysis Services veritabanına kayıt edilen veri
bağlantısı olarak nitelendirilebilir. Bu asıl verinin bulunduğu sunucu adı, database ve diğer
gerekli bağlantı parametrelerini içerir.
Bir data source oluşturmak için
1. Solution Explorer tabında Data Source proje seçeneğini sağ tıklayın ve çıkan menüde
New Data Source seçeneğini seçin.
2. Welcome sayfası açılır, Next butonunu tıklayın.
3. AdventureWorksDW veritabanına bir bağlantı oluşturmak için New butonunu
tıklayın.
4. Connection Manager dialoğu açılır. Server name drop-down kutusunda,
AdventureWorksDW database inin bulunduğu sunucu adını yazın (örneğin,
localhost), database tanımlarınızı (credentials) girin ve Select the database on the
server drop-down kutusunda AdventureWorksDW veritabanını seçin.
5. Connection Manager dialoğunu kapatmak için OK butonunu tıklayın.
6. Next butonunu tıklayın.
7. varsayılan olarak data source Adventure Works DW olarak isimlendirilir. Finish
butonunu tıklayın
yeni data source, Adventure Works DW, Solution Explorer tabında Data Sources
klasörünün altında görünür olacaktır.
Data Source View oluşturmak
data source view data source’un bir soyutlamasıdır, verinin yapısını proje için daha
uygun hale getirmek için değiştirmeye olanak tanır. data source view2ler kullanılarak
sadece proje ile ilgili olan tablolar seçilebilir, tablolar arasında bağlantılar sağlanabilir ve
hesaplanan kolonlar ve isimlendirilmiş görünümler ile orjinal data değiştirilmeden veri
üzerinde değiştirme yapmaya olanak tanır.
Bir data source view oluşturmak için
1. Solution Explorer tabında Data Source View proje seçeneğini sağ tıklayın ve çıkan
menüde New Data Source View seçeneğini seçin.
2. Welcome sayfası açılır, Next butonunu tıklayın.
3. önceki bölümde oluşturulan Adventure Works DW data source Relational data
sources penceresinde varsayılan olarak seçili gelir. Next butonu tıklanır.
4. eğer yeni bir data source oluşturmak isteniyorsa New Data Source butonu
tıklanarak Data Source Wizard başlatılabilir.
5. aşağıdaki listede bulunan tabloları yeni data source view’e eklemek için sağ ok
butonunu tıklayın:
6. vAssocSeqLineItems
7. vAssocSeqOrders
8. vTargetMail
9. vTimeSeries
10. Next butonunu tıklayın.
11. varsayılan olarak data source view Adventure Works DW olarak isimlendirilecektir.
Finish butonunu tıklayın
12. Data Source View Editörü the Adventure Works DW data source view’I gösterir şekilde
şekil 2 de gösterildiği gibi açılacaktır.ayrıca Solution Explorer tabı yeni data source
view’i içerecektir. buradan data source view istenildiği gibi yeniden düzenlenebilir.
Şekil 2 Adventure Works DW data source view
Bu döküman sql server ile veri madenciliğini anlatmak için hedefe yönelik toplu mail
gönderimi (targeted mailing) senaryosunu anlatmaktadır. Bu senaryoda modeller inşa
edilecek, bu modellerin tahminsel yetenekleri Mining Accuracy Chart view ile
karşılaştırılacak ve Prediction Query Builder ile tahminler oluşturulacaktır.
1. Right-click Targeted Mailing seçeneğini sağ tıklayın açılan menüde New Mining
Model seçeneğini seçin.
2. Model Name alanına TM_NaiveBayes yazın.
3. Algorithm Name alanında Microsoft Naïve Bayes seçeneğini seçin.
4. OK butonunu tıklayın.
Microsoft Naïve Bayes algortimasının Age ve Yearly Income kolonlarını sürekli olduğu
için desteklenmediğini ve göz ardı edileceğini belirten bir dialog kutusu açılacaktır.
5. Yes butonunu tıklayın.
Mining Models tabında yeni bir model görünür olacaktır. Microsoft Clustering modeli
sürekli ve ayrık nitelikleri kümeleyebilir. Kolon kullanımı ve özellikler yeni model için
düzenlenebilir. Bu döküman kapsamında değerler olduğu gibi bırakılmalıdır.
Decision Tree
Decision Tree tabında Targeted_Mailing modelinden türeyen tüm ağaç yapıları
incelenebilir. Burada her tahminsel nitelik için bir ağaç modeli mevcuttur. Bizim
senaryomuzda tek tahminsel nitelik Bike Buyer olduğundan görüntülenecek tek bir ağaç
mevcuttur. Eğer daha fazla ağaç olsaydı Tree kutusu aracılığı ile diğerleri de seçilebilirdi.
Tree viewer varsayılan olarak ağacın ilk üç düzeyini gösterir. Eğer ağaç üç düzeyden daha
az düzey içeriyorsa sadece olanlar görüntülenir. Tree viewer sadece var olan düzeyleri
gösterir. Daha fazla düzey görebilmek için Show Level sliderı veya Default Expansion
kutusu kullanılabilir.
Şekil 6 da gösterilen ağacı elde etmek için
1. Show Level Sliderını 5 değerine sürükleyin.
2. Background list seçeneğinde 1 değerini tıklayın.
Bu ayarların bu şekilde yapmış olmak ağacın her düğümünde bike buyer durumu 1 e
eşit olanların bulunduğu manasına gelir. Ayrıca düğümün rengi ne kadar koyu ise bike
buyer değerinin 1 e eşit olma durumunun o düğümde o kadar fazla olduğu anlamına
gelir.
Şekil 6 Targeted Mailing modelinin Decision Tree tabı
decision tree deki her düğüm üç parka bilgi gösterir
• Bu düğümün bir önceki düğüme ulaşması için gerekli koşul. Tam düğüm yolu bir
tooltip’te veya açıklama bölgesinde gösterilir.
• Tahminsel kolon için durumların dağılımını popülariteye gore tanımlayan bir
histogram. Histogram controlü ile ne kadar durum gösterileceği belirlenebilir.
• Eğer tahminsel nitelik Background control de belirtildi ise Durumların
konsantrasyonu Durumların konsantrasyonu.
Eğer drillthrough seçeneği etkin ise, her düğümün desteklediği öğrenme durumları
düğüme sağ tıklayıp Drillthrough seçeneği tıklanarak görülebilir.
Dependency Network
Dependency Network tabı madencilik modelinin tahminsel yeteneğine katkıda bulunan
niteliklerin ilişkisini gösterir. Targeted Mailing modeli için dependency network’ü şekil 7’de
gösterilmiştir.
Şekil 7 Targeted Mailing modelinin Dependency Network tabı
Şekil 7’de de görüldüğü gibi merkezdeki düğüm tahminsel nitelik olan Bike Buyer
düğümüdür. Her bağlı düğüm tahmin edilen çıktı değerini etkileyen bir niteliği belirler,
yan taraftaki slider bu niteliklerin hangilerinin çıktıyı daha çok etkilediğini belirlemek için
kullanılır, öyleki slider aşağı doğru kaydırıldığında çıktıyı daha az etkileyen düğümler
kaybolmaya başlayacaktır.
Aşağıdaki renk bilgi bölümünden hangi renkteki düğümün tahmin edildiği, hangisinin
tahmin değeri oluşturmak için kullanıldığı görülebilir.
Microsoft Clustering Modelinin İncelenmesi
Editörün tepesindeki Mining Model combo box’ından TM_Clustering seçeneğini seçin. Bu
seçenek için cluster viewer dört alt tab açacaktır. Bunlar: Cluster Diagram, Cluster
Profiles, Cluster Characteristics, ve Cluster Discrimination tablarıdır. Varsayılan
olarak editor ilk önce Cluster Diagram tabını gösterir olacaktır.
Cluster Diagram
Cluster Diagram tabı ile algoritma tarafından bulunan kümeler arasındaki ilişkiler
incelenebilir. Kümeler(cluster) arasındaki çizgiler yakınlığı gösterir ve benzerlikleri ile
orantılı olarak koyu renkli çizilirler. Cluster’ın kendi rengi Shading Variable ve State
kutularında seçilmiş olan değişken ve durumunun frekansına gore koyu renk
alır.varsayılan değer population’dır fakat bu başka bir nitelik olarak değiştirilebilir.
Soldaki slider ile zayıf linkler filtrelenebilir.
Örneğin Shading Variable seçeneğini Bike Buyer ve State seçeneği 1 olarak
belirlendiğinde şekil 8’de gösterildiği gibi 5’inci cluster en fazla bike buyer’ a sahip cluster
olduğu anlaşılır. Ayrıca en güçlü ilişki 4’üncü cluster ile 7’inci cluster arasındadır.
Dependency Network
Dependency Network tabı Tree viewer’in Dependency Network tabı ile aynı şekilde
çalışır.editördeki her düğüm bir niteliği ve her düğümün arasındaki çizgiler ilişkiyi ifade
eder. Şekil 12 tahminsel nitelik olan Bike Buyer colonunu etkileyen düğümleri
göstermektedir.