Microsoft Clustering Modeli -- 2

by Bilgehan 13. Ağustos 2009 00:03

Bir önce ki makalemizde Clustering yani kümeleme kavramı hakkında bilgiler vermiş ve Microsoft Clustering Modeli içerisinde ki Clustering ile ilgili algoritmaları incelemiştik. Çözümlemeye çalıştığımız Kümeleme problemlerine ve datasetin büyüklüğüne, sahip olduğumuz bellek miktarına göre, Microsoft Clustering Modelinin parametrelerini nasıl değiştirmemiz gerektiğinden bahsetmiştik.

Microsoft Clustering ile ilgili devam niteliğinde ki bu 2.makalemizde ise; SQL Server 2008 ile birlikte gelen BIDS (Business Intelligence Development Studio ) ortamında; bir SSAS (SQL Server Analysis Services ) projesi içerisinde AdventureworksDW veritabanını kullanarak, Müşteri Segmentasyonu görevini gerçekleştireceğiz.

Projemizi gerçekleştirmeye başlamadan önce bilgisayarınızda BIDS ‘in ve AdventureworksDW örnek veri tabanının yüklü olmuş olduğunu varsayıyorum. Eğer AdventureworksDW SQL Server’ınızda yüklü değilse buradaki adresten indirip yükleyebilirsiniz.

Bütün herşey yüklü ise projemizi gerçekleştirmeye başlayabiliriz.

Öncelikle BIDS ortamında gerçekleştireceğimiz projemiz 6 aşamadan oluşacaktır. Bunlar sırasıyla şöyledir.

Ø  Data Source Oluşturulması

Ø  Data Source View’in Oluşturulması

Ø  Madencilik Modelinin Oluşturulması

Ø  Madencilik Modelinin Parametrelerini Düzenlemek

Ø  Madencilik Modelinin Çalıştırılması

Ø  Madencilik Modelinin Sonuçlarının İncelenmesi

Öncelikle bir Analysis Services projesinin oluşturulması gerekmektedir. Bunun için; File Menüsünden New / Project yolundan Anaysis Services Project oluşturulur ve isim verilir. Ben bu proje için Clustering_BGurunlu  ismini verdim.

Data Source’un Oluşturulması

Data Source; SQL Server içerisinde ki veri tabanı ile Analysis Service arasında bağlantıları içermektedir. Geliştireceğimiz İş Zekası projesi için kullanılacak veri kaynağının parametrelerinden oluşmaktadır. Bir Data Source  oluşturmak için sırasıyla şu işlemler yapılmalıdır.

ü  Oluşturmuş olduğumuz projenin, Solution Explorer Penceresinde, Data Source üzerine sağ tıklayıp New Data Source seçeneğini seçin.

ü  Karşılama ekranından sonra ki ekrandan New butonunu basıp Connection Manager ekranına geçin ve burada bağlanacağınız Server’ın ve Veri Tabanın isimlerini açılan listeden seçin. Bu proje için “AdventureworksDW” veri tabanını seçin ve Ok ‘e basın (Bağlantının sağlıklı olduğunu “Test Connection” ile kontrol edebilirsiniz).

 ü   Karşınıza gelen bir sonra ki ekranda Analysis Service ‘e hangi haklarla bağlanacağınızı seçin. Ben burada “Use the service account “ seçeneğini seçiyorum. 

 ü  Bir sonra ki ekranda Data Source için isim girmeniz isteniyor. Ben burada Adventure Works DW  olarak bırakıp Finish butonuna tıklıyorum ve yeni Data Source’umun Solution penceresinde Data Sources klasörü altında oluşturulmuş olduğunu görüyorum.

 
Data Source View’in Oluşturulması

Data Source View (kısaca DSV ) , bir veya birden fazla veri kaynağından alınan tablo vb. yapıların sanal bir görünümüdür. Data Source View (DSV) ile gerçek veri kaynağında kalıcı değişiklikler yapmadan Analysis Services projeleri için gerekli tabloları alabilir ve tablolar üzerinde küpler ve dimension’lar için değişiklikler yapabiliriz. Data Source View (DSV) ‘i fiziksel veri kaynağı ile Dimensionlar ve küpler arasında ara bir katman olarak düşünebiliriz. Bir Data Source View (DSV)  oluşturmak için sırasıyla şu işlemler yapılmalıdır.

ü  Solution Explorer pencerisinde Data Source Views klasörüne sağ tıklanıp New Data Source View seçeneği seçilir.Karşılama ekranı geçilir.

ü  Bir önceki aşamada seçilen Adventure Works DW, default olarak Relational Data Sources olarak seçili bırakılıp Next ile bir sonraki aşamaya geçilir.

ü vTargetMail görünümü seçilir ve Included Objects penceresine geçilir. vTargetMail görünümü; mevcut müşterileri ve potansiyel müşterileri  çeşitli özelliklerine göre segmente ederek, satın alma durumlarına göre hedefe yönelik mail gönderebilmek amacıyla oluşturulmuştur ve sadece müşterilere ait verileri içermektedir.



ü DSV’nin adı Adventure Works DW olarak bırakılır ve Finish ‘e tıklanarak işlemler tamamlanır. BIDS ekranımız aşağıda ki şekilde ki gibi olur.

 
DSV’nin oluşturulması sırasında eğer birden fazla View veya tablo seçmiş olsaydık ( vAssocSeqLineItems, vAssocSeqOrders, vTimeSeries gibi ) Designer alanında seçtiğimiz kadar tablo ya da view gelecekti. Bu gelen view ve tablolardan da birbiri ile ilişkili olanları belirleyip ,ilişkililerini düzenlemeliydik  ama biz burada sadece Clustering ile ilgili olan vTargetMail görünümü seçtik.

Madencilik Modelinin Oluşturulması
Madencilik Modeli (Mining Structures ) ‘ın oluşturulması için sırasıyla aşağıdaki adımlar izlenir.

ü  İlk olarak Solution Explorer penceresi altındaki Mining Structures klasörüne sağ tıklanıp New Mining Structure seçeneği seçilir ve karşılama ekranı geçilir.

ü  Select the Definition Method penceresinden From existing relational database or data warehouse seçilir ve bir sonraki ekrana geçilir.

ü  Create the Data Mining Structure penceresinden Mining Model olarak Microsoft Clustering Modeli seçilir ve bir sonraki ekrana geçilir.

ü  Geçilen sonraki ekranda  varsayılan olarak gelen Data Source View ‘i Adventure Works DW ve Table vTargetMail değişitirilmeden sonra ki ekrana geçilir.

ü  vTargetMail ‘in karşısında Case Checkbox’ı seçilmemişse seçilir. Bir sonra ki ekrana geçilir.

ü  Geçilen Specify the Traning Data ekranında; CustomerKey kolonun karşısında ki Key Checkbox’ı seçili gelmemişse seçilir. Bizim DSV’mizde sadece bir tane Key olduğundan Wizard otomatik olarak Key’imizi seçili getirdi.

ü
Specify the Traning Data ekranında; aşağıdaki 15 kolonun yanlarında ki Input Checkbox’ları seçilir ve bir sonraki ekrana geçilir.
 
 

        Age,
        CommuteDistance
        EnglishEducation
        EnglishOccupation
        FirstName
        Gender

        GeographyKey
        HouseOwnerFlag
        LastName
        MaritalStatus
        NumberCarsOwned
        NumberChildrenAtHome
        Region
        TotalChildren
        YearlyIncome

üSpecify Colums Content and Data Type ekranında, kolonlarımızın Content Type ve Data Type ‘ ların listelenmiştir. Bu ekranın aşağısında ki Detect butonuna basıldığında; Continuous (sürekli) ve discrete (ayrık ) değerlere sahip olup olmadıkları otomatik olarak algılanır. Continuous (sürekli) değerler 1 TL gibi gerçek değerlerdir ama discrete (ayrık) ise 10-20 TL aralığı gibi aralıkları ifade etmektedir. (Discrete Clustering özelliği ile ilgili ayrıntılı bilgiye Microsoft Clustering  Modeli – 1 isimli makaleden ulaşılabilir.) Detect butonuna basıldıktan sonra bir sonraki ekrana geçilir.



ü Eğer projenin geliştirilmesini SQL Server 2008 ile gelen BIDS ortamında yapıyorsanız aşağıdaki ekranla karşılaşırsınız ( SQL Server 2005 BIDS ile projeyi gerçekleştiriyorsanız bir sonraki aşamaya geçebilirsiniz). Aşağıdaki ekran SQL Server 2008 BIDS sürümü ile gelen bir yeniliktir ve bu ekranda Test için dataset’inizin yüzde kaçını ayırmak istediğinizi ya da kaç adet datayı test amaçlı kullanacağınızı girmeniz istenmektedir. Biz burada varsayılan %30 değerini değiştirmeden bu ekrandan bir sonraki ekrana geçiyoruz.



ü Gelen Mining Structure Name ve  Mining Model Name ekranında  isimlendirmelerimizi yapıyoruz. Ben burada her 2 sini de Hedef Mail Grubu olarak isimlendirdim. İsimlendirmeden sonra Finish ‘ e tıklıyoruz.

Madencilik Modelinin Parametrelerini Düzenlemek
Buraya kadar yaptığımız işlemlerle, Madencilik Modelimizi Microsoft Clustering Modelini kullanarak oluşturmuş olduk. Fakat kendi ihtiyaçlarımıza göre Model üzerinde değişiklikler yapmadık ve Modelin varsayılan ayarlarla çalışmasını sağlamış olduk. Bu aşamada Modelimizi kendi isteklerimiz doğrultusunda yeniden düzenleyeceğiz.

Bunun için ilk olarak Mining Models tabında Microsoft Clustering Modelimizin üzerinde sağ tıklıyoruz ve Set Algorithm Parameters seçeneğini seçiyoruz.


Karşımıza Modelin parametrelerini değiştireceğimiz ekran çıkıyor. Bu ekranda da görüldüğü gibi bütün ayarlar default değerinde durmaktadır. Microsoft Clustering Modelimizi bu haliyle çalıştırmış olsaydık Scalable EM Algoritmasını çalıştıracak ve 10 adet küme elde edecekti. Fakat ben burada müşterilerimi K-Means Algoritmasına göre segmente etmek istiyorum ve 10 farklı  grubun çok fazla olacağını düşünüp 5 farklı gruba bölünmesinin yeterli olacağını düşünüyorum.

Bunun için CLUSTERING_METHOD olarak 3 değerini yani K-Means Algoritmasını seçiyorum ve CLUSTER_COUNT olarak da 5 değerini veriyorum. (Burada ki parametrelerin neye göre düzenlenmesi gerektiği ve sayıların neyi ifade ettikleri hakkında Microsoft Clustering  Modeli – 1 isimli makaleden ulaşılabilir.)


 
Madencilik Modelinin Çalıştırılması
Madencilik Modelinin çalıştırılması için Modelin Server’a yerleştirilmesi gerekmektedir.Bunun için Debug Menüsünde Start Debugging  seçeneği seçilebilir ya da kısa yol olarak F5 tuşuna basılabilir. Böylece Modelimiz çalışmaya ve dataset üzerinde girilen parametrelere göre algoritmalar hesaplanmaya başlanır. Tüm bu işlemlerin olması sırasında gerçekleştirilen işlere, Deployment Progress pencerisinden ulaşılabilir.

Madencilik Modelinin Sonuçlarının İncelenmesi

Cluster Diagram

Madencilik Modelimizin düzgün bir şekilde hesaplanması ve Server’a yerleştirilmesinden sonra Mining Model Viewer tabı açılmaktadır. Mining Model Viewer ‘ ın altında da Cluster Diagram açık bir şekilde gelmektedir.  Cluster Diagram; oluşturulan Cluster’ların birbiri ile ilişkilerini vermektedir. Cluster Diagramlar arasında ki çizgiler Clusterların birbirlerine olan benzerliklerini göstermektedir. Bizim modelimizin sonucuna göre Cluster 5 ile Cluster 4 arasında kuvvetli bir ilişki bulunmaktadır (yani Cluster 5 ile Cluster 4 deki müşteriler birbirlerine benzer özellikler göstermektedir.) Burada ki zayıf ilişkiler Strongest Links  barı ile ortadan kaldırılabilir


Ayrıca burada en koyu biçimde gösterilen Cluster 1 ise en fazla müşteri yoğunluğuna sahip Clusterımızdır (Müşterilerimizin % 37 si bu gruptadır). Cluster 1 ‘den sonra en fazla yoğunluk Cluster 2 ‘de gözlemlenmektedir.

Cluster Profiles
Cluster Profiles ile Modelimizin oluşturduğu Cluster’ların özelliklerine ayrıntılı olarak bakabiliriz.Burada; Cluster’larımızın özelliklerine,yani bizim projemiz için müşterilerimizin özelliklerine, detaylı bir şekilde ulaşabiliriz. Örnek olarak oluşturulan Müşteri segmentasyonu projemizde yaş ortalaması yüksek olan insanların oluşturmuş olduğu grubumuz Cluster 5 ‘de dir.



Cluster Characteristics
Cluster Characteristics tabı altında oluşturulan Cluster’ların ortak özelliklerine tek tek ulaşabiliriz. Örneğin bizim projemiz için Cluster 1 ‘i incelediğimizde; yıllık gelirleri 57305 ile 79082 dolar arasında değişen, Kuzey Amerikada yaşayan, 1 evi olan ve bekar erkeklerin daha fazla olduğunu gözlemleyebiliriz.

 

Cluster Discrimination
Cluster Discrimination tabı altında 2 farklı Cluster yapısının özelliklerini karşılaştırma imkanı vardır. Bizim projemiz için; 1153 müşterinin bulunduğu Cluster 5 (enaz müşterinin bulunduğu grup)  ile 6818 müşterinin bulunduğu Cluster 1 (ençok müşterinin bulunduğu grup) ‘u karşılaştırırsak Cluster 5 ‘e giren müşterilerin daha varlıklı ve evi ile işyeri arasında çok mesafe olmayan, yönetim kademesinde çalışan insanlardan oluştuğunu görebiliriz.




Microsoft Clustering  Modeli incelediğimiz bu 2. Makalemizde BIDS ortamında bir Müşteri Segmentasyonunu, Microsoft Clustering Modeli yardımıyla başarıyla gerçekleştirmiş olduk. Bundan sonraki makalelerde de Microsoft’un Data Mining Modellerini incelemeye devam edeceğiz

Microsoft Clustering Modeli -- 1

by Bilgehan 10. Ağustos 2009 00:02

Microsoft İş Zekası evreninde Veri Madenciliği işlemleri SQL Server 2005 / 2008 Analysis Service mimarisine göre gerçekleştirilmektedir. SSAS (SQL Server Analysis Services)’ in Veri Madenciliği disiplinini esas alarak oluşturmuş olduğu 9 Veri Madenciliği Modeli ve bunlar içerisindeki birçok algoritmayı kullanarak İş Zekası projeleri için gerekli analizleri gerçekleştirme imkanına sahibiz. Bu makalemizde Microsoft Clustering Modelini kapsamlı bir şekilde ele alacağız.

Clustering; türkçe anlamıyla gruplamak; demetlemek anlamına gelmektedir ve en temel İş Zekası görevlerinden birisidir. Aslında Clustering (kümeleme), hepimizin günlük hayatımızda fark etmeden gerçekleştirdiğimiz bir eylemdir. Örneğin bir havaalanında olduğumuzu ve etrafımızdaki kişileri gözlemlediğimizi düşünelim. Bazı yolcuların kalın kıyafetler giymiş olduğunu, bazı yolcuların da çok ince kıyafetler giymiş olduğunu gözlemlediğinizde herhalde içinizden “kalın giyinmiş insanlar soğuk ülkelere seyahat edecek, ince giyinmiş insanlar da sıcak ülkelere seyahat edecek” diye düşünürsünüz. İşte bu örnek aslında , bu makalenin konusunu oluşturan Clustering’i çok iyi bir şekilde açıklamaktadır.

Clustering (kümeleme) özetle; elimizdeki dataset’den yola çıkarak datayı kümelemeyi, demetlemeyi amaçlamak olarak düşünülebilir. Bazı ingilizce kavramların türkçeye çevrilmesinde yanlışlıklar ortaya çıkabilmektedir. Burada da Clustering’in karşılığı olarak Sınıflandırma terimini düşünmek yanlış olacaktır. Sınıflandırma ile kümeleme türkçede yakın anlamları ifade etse de, İş Zekası dünyasında esasen farklı anlamlara ve karşılıklara sahiptirler.

Yukarda  verilen örnekte, 2 farklı giyim tarzına göre yolcuları gideceği yere göre kümeleyebildik. Peki 2’den fazla değerlendirilmesi gereken özellik ve milyonlarca yolcu olsaydı ? Bu durumda kümeleme işlemini gerçekleştirilmesinin ne kadar zor olduğunun farkına varmışsınızdır herhalde. İşte bu makalede, şirketlerde sık karşılaşılan İş Zekası probleminin SSAS (SQL Server Analysis Services) ‘da Microsoft Clustering Modelini kullanarak nasıl başarılı bir şekilde çözümleyebileceğinizi detaylıca inceleyeceğiz.

Bu makalede Clustering (kümeleme) Algoritmasının teorik ve akademik tarafıyla ilgili çok uzun bilgiler verip de makaleyi uzatmak istemiyorum. Bir Veri Madenciliği algoritması olan Kümeleme hakkında daha fazla bilgi almak isteyenler http://www.iszekam.net/ adresinden kümeleme ile ilgili makalemi okuyabilirler. Ben burada sadece SSAS üzerinde ki Microsoft Clustering modelinin uygulamasına yönelik bilgiler vermeyi amaçlıyorum.

Hard Clustering ve Soft Clustering

Clustering Algoritmaları arasında en önemli farklılıklardan bir tanesi; data’nın hangi kümeye dahil edilmesi gerektiğinin nasıl belirlendiğidir. Bu noktada Microsoft Clustering modeli 2 farklı method ile karşımıza çıkmaktadır. Bunlar K-Means Algoritması ve Expectation Maximization Algoritması (kısaca EM, maksimum beklenti olarak türkçeleştirilebilir).

K-Means Algoritması, Clustering işlemini Öklit uzaklığına göre gerçekleştirmektedir. Bu algoritma üyeleri k adet kümeye bölmek için belirsiz sayıda; üyeleri kümelere dahil etme işlemini,bir sonra ki iterasyonda kümelerin üyelerinin yerleri değişmeyene kadar sürdürür. Bu tekniğe “hard clustering” ismi verilmektedir çünkü her bir obje sadece ve sadece bir tane kümeye dahil olabilir. Bu kümeler kopukturlar ve ortak noktaları yoktur. 5 farklı küme için 3 iterasyonda K-Means algoritmasının uygulamasının örneğine aşağıda ki şekilden ulaşılabilir.

EM (Expectation Maximization) Algoritması ise bir objenin hangi kümeye ait olduğunu belirlemede kesin mesafe ölçütlerini kullanmak yerine tahminsel ölçütleri kullanmayı tercih eder. EM Algoritması objelerin hangi kümeye yerleşeceğini, çan eğrisi şeklinde bir yapı içerisinde belirler.Bir nokta tahminsel olarak birçok kümenin elemanı olabilir ama büyük bir ihtimalle yerleştirildiği kümenin elemanıdır. Bu tekniğe de ”Soft Clustering ” denmektedir çünkü kümelerin ortak noktaları, geçiş noktaları, vardır ve birçok obje üst üste binmiş biçimdedir. Ayrıca bu algoritma kümede ki elemanların merkezden ayrık ve kopuk bir yapıda olmasına izin vermemektedir.

Aşağıda ki şekilde bir grup noktanın; K-Means Algoritması ve EM Algoritması ile Clustering işlemine sokulmasının sonuçları görülebilir. Şekilde de görüleceği üzere K-Means Algoritmasında daha uniform ve belirgin bir sonuç varken, EM Algoritmasında daha dağınık ve kümeler arasında daha açık bir diyagram söz konusudur.

Buraya kadar sayısal verilerin birbirine göre mesafelerini (daha doğrusu seçilen merkezi bir noktaya göre mesafesini) esas alarak kümelemeye çalıştık. Eğer elimizde ki veriler sayısal değerlere değil de kategorik değerlere sahipse ne olacak ?

İşte bu noktada Microsoft Clustering modelinin kategorik verileri de kümeleme işlemine sokabileceğini belirtmek gerekir. Örneğin elimizde ki müşteri grubunun farklı farklı şehirlerde yaşadığını düşünelim. Öncelikle herbir şehiri bulunduğu bölgeye göre gruplarız daha sonra herbir cografi bölge için bir numara belirleriz (Marmara = 1 , Akdeniz = 2 , gibi). Sonrasında oluşturulan bu özellikte, kategorik bir özellik olmasına rağmen, clustering işlemine sokulabilir.

Scalable Clustering (Kümeleme’nin Ölçeklendirilmesi)

Clustering işleminde karşılaşılan problemlerden birisi, birden çok iterasyonun gerçekleştirileceği uygun bir segmente ait eğitim datasının bulunamamasıdır. Küçük veri grupları için, bu problem olarak görünmese de, büyük veri grupları için mevcut kısıtlı donanım imkanlarını değerlendirebilmek için önemli olmaktadır. Belleğin algoritmaları başarılı bir şekilde çalıştırmada yeterli olmaması İş Zekası projelerinin en büyük zorluklarından bir tanesidir.

Böyle bir durum için, dataset’in boyutunu dikkate almaksızın başarılı bir clustering gerçekleştirebilmek amacıyla ölçeklendirilebilir bir framework imkanı ortaya çıkmaktadır. Scalable Framework olarak adlandırılan bu çalışma biçiminde, Microsoft Clustering algoritmalarının gerçekleştirilmesi aşamasında özetle dataset farklı alt gruplara bölünür ve daha sonrasında büyük resim tamamlanır. Örneğin 4000 adet kişiyi verilerine göre kümelemek istediğimizde; ilk 1000 adet kişi için kümeler belirlenir, daha sonrasında 1000’er 1000’er veriler alınarak kümeleme yapıldıktan sonra 4 tane sonuca göre bir kümeleme işlemi gerçekleştirilmiş olur.

Kümelemenin Tahmin Özelliği
Clustering modeli’nin kullanıldığı çok önemli bir nokta ise; data’nın eksik bir özelliğinin bulunmasıdır. Örneğin elimizdeki X ürününe ait 1000 adet verilik datasetimiz olsun. Bu dataset içerisindeki 10 adet ürünün renginin bilinmediğini varsayalım. Elimizde ki bu ürünlerin diğer özelliklerine göre  kümelere dahil edersek, dahil ettiğimiz kümelerin üyelerinin özelliklerinden renkleri hakkında bir öngörüde bulunma şansımız olur. ( 3 tanesi beyaz, 4 tanesi siyah, 3 tanesi mavi gibi)

Microsoft Clustering Modelinin Parametreleri
Microsoft Clustering Modelinin elinizdeki dataset’e göre düzgün ve başarılı bir şekilde kümeleme işlemini gerçekleştirebilmesi için buradaki modele ait parametrelerin çok iyi bir şekilde ayarlanması gerekmektedir. Bu parametrelerin doğru uyarlanması bazı durumlarda doğru sonuç bulunana kadar değişiklik yapmaktan geçebilmektedir.

 

CLUSTERING_METHOD ; kümeleme işleminde hangi algoritmanın kullanılacağını seçmek içindir. Burada 4 farklı algoritmayı kullanabilme imkanımız vardır. Burada belirtilen “Vanilla” versiyonları sadece örnek bir data üzerinde kümeleme işlemini gerçekleştirmektedir. Seçilebilecek Clustering Methodları şunlardır.
    
1)     Scalable EM (default)
     
2)     Vanilla (non-scalable) EM
    
3)     Scalable K – Means
    
4)     Vanilla (non- scalable) K – Means

CLUSTER_COUNT ; küme sayısını ifade etmektedir. K – Means algoritması için K ifadesi, aynı zamanda da EM algoritması için de küme sayısını işaret etmektedir. Eğer probleminizin çözümü için 5 küme gerekiyorsa, bu değer 5 olarak seçilmelidir. Burada şunu da belirtmek gerekir ki ne kadar çok attribute varsa, kümelemenin doğru olabilmesi için, o kadar çok küme sayısı seçilmelidir (100 attribute için 100 küme olmalı anlamında anlaşılmasın , sadece doğru orantılı olmalı anlamında bir tavsiye) . Diğer taraftan, modelin çalışma süresini azaltmak için attribute sayısı daha önceden azaltılmış olmalıdır.

Varsayılan (default) değeri 10’dur. Eğer siz  0 değerini seçerseniz; model kendiliğinden tahminsel bir biçimde doğru küme sayısını data üzerinden bulmaya çalışacaktır.

MINIMUM_SUPPORT ; boş olan kümelerin bir daha ki hesaplamadan çıkartılmasını sağlayarak, boş bir kümenin sonuç olarak karşımıza çıkartılmasının önüne geçmektedir.Varsayılan (default) değeri 1 dir ve değiştirilmesine pek gerek duyulmamaktadır. Eğer değişiklik yapılacaksa; çok büyük değerlerin kötü sonuçlar vereceğini bilmeniz gerekmektedir.

MODELLING_CARDINALITY ; değeri Clustering işlemi sırasında kaç adet aday kümenin oluşturulacağını belirlemektedir. Varsayılan(default) değeri 10’dur ve bu sayının azaltılmasının, performansı artıracağını belirtmek gerekir. 

STOPPING_TOLERANCE ;
algoritmanın tamamlanacağı aşamayı belirlemek için kullanılır. Varsayılan (default) değeri 10’dur ve bu değeri artırmak algoritmanın tamamlanmasını hızlandıracaktır. Değerini azaltmak ise daha sıkışık bir küme yapısına sahip olmamızı sağlamaktadır. Eğer küçük bir datasetiniz varsa veya dağınık bir kümeniz varsa bu değeri 1 olarak girmek faydanıza olacaktır.

SAMPLE_SIZE ; algoritmanın çalışması esnasında ele alınacak olan örnek sayısını vermektedir. Makalenin Scalable Clustering kısmında bahsetdiğim, Scalable Framework deki herbir aşamada ki durum sayısını belirtmektedir. Burada girilen sayısal değer azaltılırsa (çok büyük STOPPING_TOLERANCE sayısının da kullanımıyla birlikte) algoritma bütün bir datayı taramadan çabucak işlemini bitirecektir. Bu da çok büyük datasetler için hızlı bir clustering işleminin olmasını sağlamaktadır. Vanilla versiyonlarının kullanımında SAMPLE_SIZE toplam ele alınan, durumu ifade etmektedir.

Varsayılan (default) değeri 50 000 dir. Bu değerin 0 olarak girilmesi, Server’ınızdaki bütün Memory’inin kullanılmasına yol açacaktır.

CLUSTER_SEED ; parametresiyle oluşturulan kümeler içerisinde ki her bir üyenin, noktanın, hassasiyeti test edilmektedir. Aslında bu rastgele bir sayıyı ifade etmektedir. Bu değerin değişmesi durumunda bile modelinizde çok fazla değişiklik olmuyorsa, datanızın düzgün bir şekilde segemente (kümeleme ) edildiğinden emin olabilirsiniz.

Varsayılan (default) değeri 0 ‘dır.

MAXIMUM_INPUT_ATTRIBUTES ; Clustering işlemi esnasında en fazla kaç adet attribute’un hesaplamalara dahil edileceğini belirlemektedir. Datasetinizde burada girilen sayının üzerinde bir sayıda attribute varsa, sadece en çok kullanılan attribute’ların hesaplamaya katılacağını bilmeniz gerekir. Performans’a etkilerinden dolayı attribute sayıları üzerine böyle bir üst sınır koyma zorunluluğu doğmuştur.Varsayılan (default) değeri 255’dir.

MAXIMUM_STATES ; tek bir attribute için kullanılacak en fazla state (durum) sayısını vermektedir. Eğer bir attribute burada girilen sayının üzerinde duruma sahipse sadece en çok kullanılan durum seçilir ve hesaplamaya dahil edilir.Dahil edilen bu fazla durumlar “other” etiketiyle hesaplama sonucunda gösterilir. State (durum) örneği olarak; elimizde ki müşteriler datasında ki yaş grubu’nun 3 farklı durumu gösterilebilir (20 - 40, 40 – 60 , 60 ve üzeri gibi)

Varsayılan (default ) değeri 100’dür.

Microsoft Clustering Modeliyle Gerçekleştirilebilecek Görevler

Microsoft Clustering algoritmalarıyla elinizde ki dataset üzerinde benzerlikleri ya da farklılıkları bulabilirsiniz. Microsoft Clustering algoritmalarının en çok kullanım amaçları; dataset’i farklı özelliklerine, niteliklerine göre segmente etmektir.

 Bu makaleye bağlı 2. Makalemizde; BIDS geliştirme ortamında AdventureworksDW veritabanı üzerinde bir Müşteri Segmentasyonu projesini gerçekleştiriyor olacağız.

Business Intelligence Development Studio – ( BIDS )

by Bilgehan 3. Ağustos 2009 08:01

Microsoft SQL Server ile gelen Business Intelligence Development Studio (BIDS); İş Zekası projelerinin gerçekleştirildiği özel bir Visual Studio ortamıdır. Yüklemiş olduğunuz MS SQL Server sürümüne göre gelecek olan BIDS sürümü de değişiklik göstermektedir. MS SQL Server 2005’in kurulumunda BIDS’nun yüklenmesi işaretlendiğinde MS SQL Server 2005 ile birlikte Visual Studio 2005’in özel bir sürümü olan BIDS yüklenirken, MS SQL Server 2008’in kurulumunda BIDS’nun yüklenmesi işaretlendiğinde Visual Studio 2008 versiyonunun özel bir sürümü olan BIDS yüklenecektir.



Business Intelligence Development Studio ile sadece 32 Bit sistem mimarisinde Analysis Services, Integration Services ve Reporting Services projeleri gerçekleştirilebilir. Itanium 64 Bit mimarisinde çalışmaz ve Itanium Server’lara yüklenemez. Bu makalemizde MS SQL Server 2008’in yüklenmesi ile birlikte gelen BIDS sürümü üzerinden BIDS platformunu arayüzünü detaylı olarak tanıyacağız. (Eğer sizde SQL Server 2005 ile yüklenen BIDS sürümü varsa, enazından bu makale için, çok fazla farklılıkla karşılaşmayacağınızı söyleyebilirim.)

BIDS aslında Visual Studio ortamı olduğu için bir solution altında birçok farklı İş Zekası görevini ya da projesini barındırabiliriz. Örnek olarak bir solution altında OLTP sistemden data’nın çekilip Transformasyon işlemlerinin yapılacağı Integration Services projesi ya da data’ya çeşitli modellerin uygulanarak analiz görevlerinin gerçekleştirileceği Analysis Services projeleri oluşturulabilir. Son olarak da tüm modellerin ve analizlerin kullanılacağı, son kullanıcıya hizmet verecek bir web servisi ya da web sitesi, aynı solution içerisinde barındırılabilir.

BIDS Arayüzü

BIDS’ya ulaşmak için Windows Vista’da Programs / Microsoft SQL Server 2008 / SQL Server Business Intelligence Development Studio yolu izlenir ve BIDS ‘ e ulaşıldığında aşağıdaki şekildeki Visual Studio arayüzü karşımıza gelir. (Windows XP için de All Programs / Microsoft SQL Server 2008 / SQL Server Business Intelligence Development Studio yolu izlenip BIDS çalıştırılabilir.)
 

Şimdi Business Intelligence Development Studio’nun önemli kısımlarını ve işlevlerini inceleyelim.

Solution Explorer :

Solution Explorer; solution ve barındırılan projelerin bulunduğu, yönetim işlemlerinin gerçekleştirildiği penceredir. Oluşturduğunuz BI Solution’ınına yeni projeleri burdan ekleyebilir ya da isim değişikliği gibi işlemleri yapabilirsiniz. Solution Explorer altındaki bir Solution içindeki eklenen, BI projesinin türüne göre farklı ağaç görünümleri ya da objeler gelmektedir. Örneğin Analysis Service projeleri Dimensional (Boyutsal) node’lar içerirken, Integration Services projeleri ETL paketleri (packages) node’larını içerir ve Raporlama (Report) modelli projeler ise Reports node’larından oluşmaktadır. (Report Model Projeleri ile Rapor modelleri oluşturulurken, Report Server projeleri ile raporlar oluşturulmaktadır.)



Pencere Sekmeleri
Pencere Sekmeleri (Windows Tabs) kolaylıkla Designer pencereleri arasında geçişler yapmanızı sağlamaktadır.

Designer Penceresi
Designer Penceresi (Designer Window); içerisinde ki objeler veya paketler üzerinde değişikliklerin gerçekleştirildiği alandır. Bu alanda bir obje veya paketler üzerinde çalışabilmeniz için ya yeni bir obje tanımlaması yapmalısınız ya da Solution Explorer ‘da ki objeleri seçerek değişiklikleri gerçekleştirmelisiniz.

Designer Sekmeleri
Burada ki sekmeler sayesinde; birden çok obje farklı yönlerden düzeltilebilir ya da etkileşime sokulabilir.

Properties Penceresi
Buradan proje ya da solution ile ilgili değişiklikler yapılabilir. Örneğin bir SSAS(SQL Server Analysis Services) objesinin; ObjectID, dosya adı ve birçok özelliğine bu pencere altından ulaşılabilinir ve düzeltmeler yapılabilir.

BI Menüleri
Debug” menüsü ile “Tools” menüsü arasında ki menüler BI (Business Intelligence) menüleri olarak geçmektedirler. Örneğin bir SSAS projesinde ki Data Source View (DSV) editörünün kullanımında bu alana “Format” ve “Data Source View” menüleri eklenecektir.

Output Penceresi
Output Penceresinde; projemizin Build ve Deploy edilmesi aşamasında mesajların çıkacağı yerdir. Projelerimizdeki hataların açıklamalı mesajlarına buradan ulaşabiliriz.

Offline ve Online Çalışma Şekilleri

BIDS 2 farklı çalışma modunda projelerin gerçekleştirilmesine izin vermektedir. Bunlar Online ve Offline çalışma modlarıdır. (Offline ve Online çalışma modları SQL Server Analysis Services projeleri için kullanılmaktadır.) 2 farklı çalışma biçiminden hangisinin seçileceğine bazen kişisel tercihlerle bazen de gerekliliklere göre karar verilmektedir. Her 2 çalışma biçimininde avantaj ve dezavantajları vardır.

Online Mod :

Online Mod ile çalışıldığında direkt olarak Analysis Service Server’ınıza bağlanıyorsunuz demektir. Bir obje açıp üzerinde değişiklik yapıldığında, değişiklik hemen server’a aksettirilecektir. Online mod ile BIDS projesinden, server’ınızdaki veritabanınıza bir bağlantı kurulmaktadır. Projenizi kapatıp açtığınızda veritabanına tekrar bir bağlantı sağlarsınız. Eğer projeyi açmanızdan sonra üzerinde çalıştığınız objelerde bir değişiklik gerçekleştirilmişse, bu değişikliği projeyi bir daha ki açtığınızda görebilirsiniz.

Online Mod ile çalışmanın en önemli özelliği projede ki objeler üzerinde yaptığınız değişikliklerin hızlı bir şekilde kullanıma aktarılmasıdır. Birden çok kişinin aynı proje ve aynı obje (object) üzerinde çalıştığı durumlarda yapılacak değişikliklere dikkat edilmelidir.Online mod ile bir veri tabanı üzerinde çalışacak kişilerin yetkilendirilmelerine de dikkat edilmesi gereken bir başka husustur. (Bu tür işlemlerin kontrolü için Visual Source Safe gibi kod kontrol programları kullanılabilir.)

Online Modda çalışmak için

1)    
BIDS’da File menüsünden Open / Analysis Services Database yolu izlenir.

2)     Varolan bir database bağlantısı seçilir ya da yenisi oluşturulur.

3)     Ok ‘ e basılır.

Son olarak Online mod ile çalışıldığında metada üzerinde ki değişikliklerin Production Server’ına hemen yansıtılacağını belirtmek gerekir.

Aşağıdaki resimde de görüleceği üzeri Online Mod ile çalışıldığı Veri Tabanı Adı (Server Adı) şeklinde gösterilmektedir.



Offline Mod :

Normalde; bir Analysis Services projesi oluşturulduğunda Offline Mod’da çalışmalar gerçekleştirilir. Offline mod ile çalışılırken projelerin dosyaları client makinemizde tutulur. Bu modda; modelleri ve objeleri deploy etmediğiniz sürece server üzerinde birşey oluşturulmaz. Bu da developer’ların test ortamında rahatlıkla modeller ve objeler üzerinde çalışmasını sağlar (Canlı ortama geçiş öncesi).

Offline Modda çalışmak için
1)     BIDS’da File menüsünde New / Project seçilir ve burada Business Intelligence Project sekmesinden yeni bir Analysis Services Project seçilir.

2)     Analysis Services Projesine ismi verilir.



3)     Build / Deploy yolundan projemizin server üzerinde deploy edilmesi için veri tabanımız seçilir.

Offline mod ile çalışırken metadata’mız “Process” edilmediği sürece SSAS üzerinde deploy edilmez. BIDS’da ; Offline mod ile çalışmanın bir avantajı SSAS metadata’sı üzerinde canlı sisteme zarar vermeden değişiklikler yapılabilmesidir. Böylelikle production aşamasında son kullanıcılar ve küpler bu değişiklikten etkilenmez. Offline mod ile çalışmanın bir başka avantajı ise birden fazla OLAP tasarımcısının mevcut Solution üzerinde, gene son kullanıcıyı etkilemeyecek şekilde ayrı ayrı projeler ve objeler üzerinde çalışabilmesidir.

Default olarak projelerimiz Localhost Server üzerinde Deploy edilmektedir. Farklı bir Server’da Deploy etmek için Projects / Properties yolundan Configuration Property Management penceresine ulaşılıp Server ve Database değişiklikleri yapılabilir.

Burada değiştirilebilinecek önemli bir ayarda Deployment ayarları içerisinde ki “Processing Option” ve “Deployment Mode” özellikleridir. Default olarak Deployment işlemi otomatik olarak yeni bir object oluşturulduğunda ya da projede değişiklik yapıldığında gerçekleşmektedir. İşte “Processing Option” özelliğiyle bu kontrol sağlanmaktadır.

Diğer tarafdan default olarak, sadece Araçlar (Tools) üzerinde ki küçük değişiklikler Server üzerinde Deploy edilmektedir. Eğer, Client üzerinde ki Database’ de değişiklik olursa ya da varolan Server üzerinde aynı isimde başka bir database de mevcutsa oluşacak hataların önüne, burada yapılacak ayarlamalar ile geçilmesi mümkündür. “Deployment Mode” ile de bunlar kontrol edilmektedir.

Offline Mod ve Online Mod Arasında ki Geçişler

Projenin zamanlamasına ve yapılacak değişikliklere göre Offline Mod ve Online Mod arasında geçişler söz konusu olabilir. Her 2 mod arasında ki geçişte BIDS ortamında rahatlıkla gerçekleştirilebilmektedir.

Offline Mod’dan Online Mod’a geçmek için File / Open / Anaysis Services Database yolu izlenir ve daha önce Deploy edilen database seçilir. Online Mod’dan Offline Mod!’a geçmek için yeni bir Proje oluşturulur ve “Import Analysis Services 10.0 Database  (SQL Server 2005 Database’i için Analysis Service 9.0 Database’i seçilir). Karşımıza çıkan Wizard yardımıyla server ve kaynak database isimleri girilebilir. Oluşturulan metadata yeni projenin içine çıkartılabilir.



Bu makalemiz ile Microsoft İş Zekası Projelerinin gerçekleştirildiği; Business Intelligence Development Studio (BIDS ) ' yu detaylı olarak tanımaya çalıştık. İş Zekası ile ilgili Projeler geliştirdikçe BIDS 'i daha da iyi tanıyabileceğimizi ve özelliklerini daha iyi kullanabilecek düzeye gelebileceğimizi unutmamak gerekir. Microsoft İş Zekası evreniyle ilgili ilerleyen makalelerimizde BIDS'in başka özelliklerini de incelemeye devam edeceğiz.


Yasal Uyarı

Bu sitede sunulan tüm bilgi, dökümanların kullanımından doğacak sorunlardan yazar sorumlu tutulamaz. Bu site ve günce(blog) işverenimin görüşlerini, amaçlarını, planlarını veya stratejilerini temsil etmez. Tüm yazılanlar aksi belirtilmedikçe benim fikrimdir. Uygunsuz yorumlar silinecektir.
© Copyright |Bilgehan GÜRÜNLÜ | 2007 - 2023