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.

www.iszekam.net - Bilginin Keşfi

by Bilgehan 16. Mayıs 2009 23:00

Blogumda ki yazılarımı uzun süredir takip ediyorsanız, İş Zekası (Business Intelligence ) konusu ile ilgilendiğimi farketmişsinizdir. İş Zekası konusuna ilgi duymaya başladığımdan beri gerek internetde olsun gerekse basılı kaynaklarda olsun konuyla ilgili, yada uğraştığım projede ki zorluklar ile ilgili dokumanları okuyup birşeyler bulmaya çalışıyorum. (Hepimizin yaptığı gibi :)

Araştırmalarımız sonucunda bu konuyla ilgili, malesef bir elin parmakları kadar türkçe kaynağa ulaşabiliyoruz. Tabii ki Türkçe döküman eksikliği genelde kendini bütün teknik konularda gösteriyor ama bu konuda sanki biraz daha çok gösteriyor. (Bunda iş zekası konusunun yıldızının daha yeni parlıyor olmasının da etkisi yadsınamaz tabii )

Hemen hemen hergün, arama motorlarından bu blogu bulup konuyla ilgili bana mail atıp, soru soran öğrenci arkadaşlarım oluyor. Bende bana gelen konuyla ilgili maillere dilimin döndüğünce daha doğrusu bilgim ölçüsünde cevap vermeye çalışıyorum. ( yanlış anlaşılmasın konu dışındaki maille gelen soruları da cevaplamaya çalışıyorum.Hatta geçen gün bir öğrenci arkadaşım Beşiktaş-Fenerbahçe maçının sonucu ne olur acaba diye sormuştu :=)

İşte bu amaçla başlangıçtan ileri düzeye doğru, İş Zekası konusunda bir web sitesi oluşturmak, ne zamandır aklımda vardı ama bir türlü fırsat bulupta hayata geçirememiştim. Son 15 gündür, günümün belirli bir bölümünü  bu web sitesi oluşturma çalışmalarına ayırdım ve 1 Mayıs günü www.iszekam.net  yayın hayatına başlamış oldu. Bundan sonra konuyla ilgili makale uzunluğunda ki yazılarımı www.iszekam.net üzerinden yayınlamaya düşünüyorum. Tabii ki bu, www.gurunlu.com da konuyla ilgili yazılar yayınlanmayacak anlamına gelmiyor. Bu web sitesi aracılığıyla da konuyla ilgili paylaşımlara devam edeceğim. Ama www.iszekam.net sadece İş Zekasının konuşulduğu bir platform olacak.


Peki www.iszekam.net rotasını nasıl belirleyecek diye sorarsanız. Öncelikle iszekam.net 'in konuyla ilgilenen herkesin yazılarına açık bir web sitesi olduğunu belirtmek isterim. 
iszekam.net  de ilk olarak teorik bilgiler ağırlıklı yazılar olmasını düşünüyorum, bu yazılar çoğu zaman Üniversitelerde okutulan Veri Madenciliği yada İstatistik derslerinde ki içeriklerin sadeleştirilmiş halleri gibi olacak. Daha da ilerleyen aşamalarda teknoloji bağımsız olarak İş Zekası uygulamalarına yer vermeyi düşünüyorum.

Tabii ki sitenin gidişatında, en büyük etken sizlerden gelecek istek, öneri yada yardımlar olacağının altını çizmek isterim. Umarım www.iszekam.net konuyla ilgilenenler için faydalı bir platform olur ve amacına ulaşabilir.


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 - 2020