-

Veri Madenciliği Programlama- DMX (Data Mining Extensions)

Sql Server madencilik Api (Application Programming Interfaces) leri aşağıdaki gibidir;

  • Oledb (Ole For Databases)
  • Ado (Activex Data Objects)
  • Ado.Net (Activex Data Objects For .Net)
  • Adomd.Net (Activex Data Objects (Multidimensional) For .Net)
  • Server Adomd.Net (Server Activex Data Objects (Multidimensional) For .Net)
  • Amo (Analysis Management Objects)
  • Dmx (Data Mining Extensions)
  • Xmla (Extensible Markup Language For Analysis)

Sql Server Analiz Servisleri için bu Api’lerden;

  • Ado Microsoft AciveX Data Object referansı ile
  • Adomd.Net Microsoft.AnalysisServices.AdomdClientreferansı ile
  • Server Adomd.Net Microsoft.AnalysisServices.AdomdServer referansı ile
  • Amo Microsoft.AnalysisServices veya Microsoft.DataWareHouse.Interfaces referansı ile

Visual Studio’da kullanılabilir.

Dmx (Data Mining Extensions)

Dmx Microsoft Sql Server Analiz Servisleri’nde veri madenciliği modelleri oluşturmak ve onlar üzerinde deneme, arama ve aynı zamanda tahmin yürütmeyi sağlamak üzere geliştirilmiş bir dildir. Dmx cümleleri iki çeşit olabilir; veri tanımlayıcı cümleler (data definition statements) ve veri düzenleyici cümleler (data manipulation statement). Veri düzenleyici cümleler yeni veri madenciliği yapısı ekleme, içe aktarma (import), dışa aktarma (export), var olan modeli silme gibi işlemleri gerçekleştirir. Veri tanımlayıcı cümlelerde aşağıdaki yapılar kullanılabilir;

CREATE MINING STRUCTURE

CREATE MINING MODEL

ALTER MINING STRUCTURE

EXPORT

IMPORT

SELECT INTO

DROP MINING STRUCTURE

Veri düzenleyen cümleler ise var olan model üzerinde arama işlemi yapmak, modelde güncelleme yapmak ve tahmin yürütmek işlemlerini gerçekleştirir. Veri düzenleyen cümleler aşağıdaki yapıları kullanabilir;

INSERT INTO

SELECT DISTINCT FROM <MODEL > (DMX)

SELECT FROM <MODEL>.CONTENT (DMX)

SELECT FROM <MODEL>.CASES (DMX)

SELECT FROM <MODEL>.SAMPLE_CASES (DMX)

SELECT FROM <MODEL>.DIMENSION_CONTENT (DMX)

SELECT FROM <model> PREDICTION JOIN

DELETE (DMX)

SELECT FROM <model> PREDICTION JOIN cümlesi 3 kısımdan oluşur;

  • Sonuç kümesi olarak dönen kümede  yer alan madencilik modeli kolonlarının bir listesi ve tahminlemede kullanılan fonksiyonlar,
  • Tahminleme oluşturmak için kullanılacak olan kaynak sorgu,
  • Madencilik modeli kolonları ile kaynak veri arasındaki eşleşme.

SELECT FROM <model> PREDICTION JOIN kullanımı aşağıdaki gibidir;

dmx1

Kod bloğundaki ilk satır madencilik modelinden gelmesi beklenen kolonları belirtmektedir. [NATURAL] PREDICTION JOIN kısmı hangi işlemin yapılacağını gösterir. Devamındaki kısım ise müşterinin Pazar sepetindekiürünlerini temsil etmektedir.

Eğer tahmin işlemine minimum olasılık değeri de dahil edilmek istenirse, <select list> yerine PREDICT([Default Association].[Products],INCLUDE_STATISTICS,3)

eklenmelidir. Bu metottaki ilk parametre modeldeki hangi kolonun değerinin gösterileceği, ikinci parametre destek, olasılık ve düzeltilmiş olasılık (adjusted probablity) değerlerinin sonuç kümesinde yer alacağını, 3 olarak yazan parametre ise ürünle ilişkili olan ilk 3 ürünün sonuç kümesinde gösterileceğini tarif etmektedir.

Dmx Sorguları

Bu kısımda daha önceden oluşturulmuş madencilik modeli, Association, kullanılarak örnek Dmx sorguları oluşturulmuştur. Madencilik modeli oluşturulurken veri kaynağı olarak Microsoft’un ücretsiz kullanıma sunduğu örnek veri tabanı olan AdventureWorks kullanılmıştır. Aşağıdaki kod bloğundaki amaçWater Bottle ürününü satın alan müşterilerin alabileceği ilk 5 ürünü ihtimalleri ile ortaya koymaktır. Predict metoduna INCLUDE_STATISTICS parametresi eklenerek sonuç kümesine destek ve olasılık değerlerinin de dahil edileceği belirtilmektedir.

dmx2

Aşağıdaki tabloda Water Bottle ürününü satın alan müşterilerinin bu ürün ile birlikte alma ihtimali olabilecek ilk 5 ürün listelenmektedir. Tabloya bakıldığında %39 olasılık ile Water Bottle ürününü alan müşteriler Mountain Bottle Cage ürününü de satın alır, sonucuna varılabilir.

Model $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Mountain Bottle Cage 1941 0.398184495 0.676180659
Road Bottle Cage 1702 0.371197252 0.682846288
Cycling Cap 2095 0.146957802 0.549763307
Mountain-200 2477 0.144504416 0.526861463
Road-750 1443 0.118989205 0.569686621

 

Bir sonraki örnek senaryo; Mountain Bottle Cage ürününü alan erkek müşterilerin satın alma ihtimali olan ilk 3 ürün, bu bilgi aşağıdaki kod bloğu ile elde edilmektedir. Madencilik modeli oluşturulurken cinsiyet bilgisi de input (girdi) olarak eklenmiş, bu yüzden Dmx sorgusuna input olarak cinsiyet bilgisi de eklenebilir.

Dmx3

Yukarıdaki Dmx sorgunun sonucu aşağıdaki tablo vermektedir. Tabloya göre Mountain Bottle Cage ve Mountain Tire Tube ürünü satın alan erkek müşterilerin sırası ile Water Bottle, HL Mountain Tire, ML Mountain Tire ürün modellerini alma ihtimalleri vardır,  %31 olasılık ile Mountain Bottle Cage ve Mountain Tire Tube ürünü alan erkek müşteriler HL Mountain Tire ürünü de alır, sonucu çıkarılabilir.

Tablo 4.5: Dmx sorgusu sonucunda oluşan tahmin kümesi.

Model $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Water Bottle 4076 0.836166924 0.676180659
HL Mountain Tire 1331 0.314649243 0.691508771
ML Mountain Tire 1083 0.25 0.688964227

 

Kaynaklar:

[1]   MacLennan, J., Tang, Z., Crivat, B., 2008, Programming Sql Server Data Mining, Data Mining with Microsoft SQL Server 2008, Chapter 16, Wiley Publishing Inc., ISBN: 978-0-470-27774-4, 487-580.

[2]    Data Mining Extensions (DMX) Reference, https://msdn.microsoft.com/en-us/ library/ms132058.aspx, [Ziyaret tarihi:30 Mart 2015].

[3]    Lesson 4: Executing Market Basket Predictions, https://msdn.microsoft.com/en-us/library/ms345329.aspx, [Ziyaret tarihi:10 Nisant 2015].

Your email address will not be published. Required fields are marked *

*