Microsoft Clustering Modeli -- 2

Perşembe, 13 Ağustos 2009 00:03 by Bilgehan

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

Pazartesi, 10 Ağustos 2009 00:02 by Bilgehan

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

Cumartesi, 16 Mayıs 2009 23:00 by Bilgehan

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.

Giriş Duzeyinde Örnek Bir İş Zekası Projesi - 2

Cumartesi, 16 Mayıs 2009 21:59 by Bilgehan

Bir önceki makalemizde Weka programı yardımıyla elimizdeki veri seti üzerinde müşteri segmentasyonunu gerçekleştirmiştik. Bu makalemizde de aynı veri seti üzerinde aynı görevi Excel Data Mining Add-In yardımıyla gerçekleştireceğiz.(Eğer bir önceki makaleyi okumadıysanız, bu devam niteliğinde ki 2.makalemizi okumaya başlamadan önce 1.makaleyi okumanızı tavsiye ederim.)

İlk olarak belirtmek isterim ki Excel Add-In aslında analiz çalışmalarını kendisi yürütmemektedir. Excel, SQL Server' a bağlanarak analizi gerçekleştirmekte ve algoritmaların sonucunu son kullanıcının anlayacağı görselikte sunmaktadır. Ayrıca şunu da hatırlatmak isterim ki; iş zekası uygulamalarının son kullancıya aktarılması için SQL Server dışında Oracle başta olmak üzere birçok İş Zekası yada Veri Tabanı yazılımlarının "Excel Add-In" leri bulunmaktadır. (Bu makalede kullanılan SQL Server 2005 Add-Ins 'ine buradan ulaşabilirsiniz.) 

SQL Server 2005 Data Mining Add-In Kurulumu
Microsoft Office Excel 2007 yazılımı, veri madenciliği görevlerini gerçekleştirmek için DataMining Add-In ‘ine sahiptir. Office Excel 2007 yazılımı, Microsoft SQL Server Analysis Servisinin son kullanıcının daha kolay kullanması için 9 adet veri madenciliği modelini uygulama fırsatını sağlamaktadır. Excel ortamında sağlıklı bir şekilde İş Zekası projeleri için Veri Madenciliği görevlerinin gerçekleştirilmesi için SQL Server 2005 Add-In'in kurulum sonrasında kendi SQL Server'ınıza göre ayarlanması gerekmektedir. Aşağıdaki adımları takip ederek öncelikle SQL Server 2005 içi gerekli ayarlamaları gerçekleştirmeliyiz. (Aşağıdaki ayarlar İngilizce Vista ve Office 2007 ye göredir.)

İlk olarak Programs/Microsoft SQL Server Add-Ins/Server Configuration Utility sihirbazını çalıştırıyoruz.



Ben burada kendi Local Server'ıma Windows Authentication ile bağlantı yapacağım için değişiklik yapmıyorum ve Next diyorum.

Eğer yukardaki ekrana ulaşamadan erişimlerle ilgili bir hata aldıysanız ( burada sorulan hatanın aynısını ) Analysis Service Erişim İzinlerinde local kullanıcınızı Admin olarak belirlemek için Management Studio yu açarken "Run As Administrator" olarak açmalısınız. (Tabii ki de Analysis Service çalışıyor olmalı )
Problem yoksa Next diyip bu ekranı da geçiyoruz ve aşağıdaki ekrana geliyoruz.



Yukarda görmüş olduğumuz ekranda Excel 2007'nin geçici olarak verilerini atacağı ve modellemede birlikte çalışacağı bir database oluşturmamızı yada oluşturulmuş bir database'i seçmemiz isteniyor. Eğer daha önceden bu işlem için bir database oluşturmamışsanız, "DMAddinsDB" olarak bir database oluşturmasına izin verip, Next butonuna basıyoruz ve hangi kullanıcıya erişim yetkilerini vereceğimiz aşağıdaki ekrana geçiyoruz.



Yukardaki ekranda hangi kullanıcı aracılığıyla Excel 2007'nin SQL Server Analysis Service 'a erişeceğini belirliyoruz. Burada seçilecek kullanıcı Analysis Service'da Admin yetkilerine sahip olmalıdır.
Böylelikle 4 adımda Excel 2007 Data Mining Add-In 'ini sağlıklı bir şekilde kullanabilmek için SQL 2005 Analysis Service için gerekli konfigurasyonları wizard sayesinde gerçekleştirdik.

Modelin Excel 2007 DataMining Kullanılarak Gerçeklenmesi

SQL Server 2005 Data Mining Add-In' ni bilgisayarınıza kurduktan sonra Excel 2007 'yi açtığınızda aşağıdaki gibi Data Mining Sekmesi eklenmiş olacaktır.



Veri Setimiz üzerinde, WEKA yazılımında gerçekleştirmiş olduğumuz kümeleme işlemlerini Excelde de gerçekleştirebilmek için xls formatındaki verileri excel’de açıyoruz ve daha sonrasında Data Mining Sekmesi altında ki Cluster işlemlerini yapabilmek için Advanced / Create Mining Model düğmesine tıklıyoruz.



Karşımıza Data Mining Cluster Wizard çıkıyor.



Next diyoruz ve veri madenciliği modelimizi seçeceğimiz ekrana ulaşıyoruz.

Yukardaki gibi karşımıza çıkan ekranda istediğimiz parametreleri girebilmek amacıyla “Parameters ” butonuna tıklıyoruz ve Weka ile aynı parametrelerin geçerli olmasını sağlıyoruz.

Burada hemen şunu belirtmek isterim ki ; Microsoft Clustering Algoritması 4 farklı Clustering Algoritmasından oluşmaktadır ve biz hangi algoritmaya göre kümeleme işlemini gerçekleştireceğimizi belirtmeliyiz. (2)
 
Microsoft Clustering Modeli aşağıda ki 4 algoritmayı desteklemektedir.
1) Scalable EM (default olarak bu seçilidir.)
2)Vanilla (non-scable) EM
3) Scable K-Means (biz bu proje için bunu tercih ediceğiz.)
4) Vanilla (non-scable) K-Means



Yukarda Cluster_Count olarak 2 sayısını girerek; 2 kümeye ayırmasını istedik. (Zaten K-Means Algoritmasında ki K bizim belirlediğimiz küme sayısıdır.)
Clusterin_Method olarak da 3 sayısını girerek “Scalable K-means” algoritmasını seçmiş olduk.
Bir sonraki ekranda kümelemeye dahil edeceğimiz, attribute’lar karşımıza çıkıyor. Burada hepsini dahil ediyoruz.


Bir sonraki ekranda gerçekleştirilecek kümeleme işlemine isim ve tanım bilgilerini girmemiz isteniyor. Buraya uygun ifadeleri yazıyoruz.


Tüm değerleri girdikten sonra, Finish butonuna basıyoruz ve kümeleme işlemini başlatıyoruz.



Kümeleme işlemi bittiğinde, müşterilerin % 55 ve % 45 oranında kümelendiği sonucunu görüyoruz.



Sonuçların Karşılaştırılması :  
Weka yazılımında, K-Means algoritması ile gerçekleştirilmiş olan kümeleme işleminde müşteriler %47 ve % 53 oranlarında 2 gruba ayrılmıştılar. Buna karşılık Excel Data Mining Add-In kullanılarak yapılan kümeleme işleminde ise %55 ve % 45 gibi bir oranla karşılaşıldı. 100 kişinin verisi üzerinde algoritmayı çalıştırdığımıza göre çıkan % 2 lik farklılık 2 kişiye karşılık geliyor olarak düşünülebilir.Oluşmuş olan bu farklılığın, 1 veya 2 kayıdın Excel tarafından yada Weka tarafından diğer kümeye dahil edilmesinden kaynaklanmış olabilir. Örnek olarak bir kayıdın, birinci küme merkezine olan uzaklığı ikinci küme merkezine olan uzaklığına daha yakınsa o kayıd ikinci kümenin elemanı olarak değerlendirilmiş olmaktadır. Bu da oluşan kümelerin bu gibi durumlarda homojenliğini kayıp edebileceği sonucunu ortaya koymuştur. Outlier değerlerde ki oluşabilecek sapmalara dikkat etmek gerekmektedir. 

(1) Kavram ve Algoritmalarıyla Veri Madenciliği –Gökhan Silahtaroğlu -  Papatya Yayınları-2008
(2) Data Mining with SQL Server 2005 – Tang/ MacLennan – Wiley Press - 2006

Giriş Duzeyinde Örnek Bir İş Zekası Projesi

Cuma, 15 Mayıs 2009 21:35 by Bilgehan

Gerçekleştirecek olduğumuz bu projede bir kitapevi firmasının müşterilerinin, Excelde tutulmuş olan verilerinden yola çıkarak; müşterilerini segmente etmek, gruplamak amaçlanmaktadır. Bu amaç doğrultusunda açık kaynak bir yazılım olan Weka programı ve Microsoft Office Excel’in Data Mining Add-in ‘i kullanacağız.Projeyi daha kolay uygulayabilmeniz amacıyla 2 makale halinde yayınlamayı uygun gördüm. Bu makalede Weka yardımıyla projemizi gerçekleştireceğiz.
(Projede kullanılmış olan Veri Setlerinin Dosyalarına buradan ulaşabilirsiniz.) (Dosyanın şifresi : www.iszekam.net dir)

Veri Setinin Tanıtımı
Veri setinin içeriğindeki veriler kategorik ve numerik ifadelerden oluşmaktaydı. Kategorik veriler için eksiklik olmamasına rağmen numerik verilerde olan eksik veriler, diğer bütün değerlerin ortalaması alınarak temizlenmiştir. Dönüştürme işlemleri olarak da numerik veriler belirli aralıktaki gruplara bölünürken, kategorik veriler için 1,2,3.. gibi değerler girilmiştir.

Kitapevi firmasının müşterilerine ait elimizdeki datasetinde gerekli temizleme ve dönüşüm işlemleri gerçekleştirildikten sonra 9 tane niteliğimiz ortaya çıkmıştır. Bunların isimleri ve özellikleri ise aşağıda detaylı olarak açıklanmıştır.

Yaş  :  Müşterilere ait doğum tarihi bilgisi 3 ana kategoride toplanmıştır. Bunlar; 24 ile 35 yaş arası , 36 ile 45 yaş arası , 45 yaş ve sonrası olarak gruplara ayrılmıştır.
Alışveriş Periyodu: Müşteriler, alışveriş sıklıklarına göre 3 ana kategoride değerlendirilmiştir.Bu kategoriler; 0-6 ay, 7-12 ay, 12 dan daha uzun olarak değerlendirilmiştir.
Churn Durumu : Müşterilerin halen mağazada kayıtlı müşteri olup olmadıklarına göre 2 gruba ayrılmıştırlar. Evet yada Hayır olarak.(Hayır demek halen müşterimiz anlamında)
Semt : Müşterilerin oturmuş oldukları yer (Anadolu Yakası, Avrupa Yakası, İstanbul dışı ) sırasıyla 1,2,3 olarak kodlanmıştır.
Harcama Tutarı : Müşterilerin gerçekleştirilmiş oldukları toplam harcamalar 3 grupta toplanmıştır.  (100-250, 251-400, 400 +  olarak.)
Üyelik Tipi : Kitapevine üye olan müşterilerin üyelikleri Gold, Platin, Gümüş 'ü ifade etmek için 1, 2, 3 ile numaranlandırılmıştır.
Ücretsiz Kiyap : Kitapevinin müşterilerinin promosyon amaçlı ücretsiz kitap alıp,almadıkları Evet,Hayır,Bazen 'in baş harfleriyle kodlanmıştır.
Kitap Türü : Müşterilerin almış oldukları değişik kategorilerde ki kitaplar; Bilimsel için 1 , Bilgisayar için 2, Tıp için 3, Eczacılık için 4,Mühendislik için 5 ile numaralandırılmıştır.

Modelleme : 
 
Elimizde bulunan 100 müşteriye ait yaş, alışveriş periyodu, churn durumu, ücretsiz kitap, üyelik tipi, kitap türü, semt, gibi verilerden yola çıkarak segmentasyon yapmak amaçlanmaktadır. Bu amaç için denetimsiz bir model olarak Kümeleme Analizlerini gerçekleştirip Müşteri Segmentasyonu yapılması planlanmaktadır.(Kümeleme analizinden özet bir şekilde aşağıda bahsetdim ama daha detaylı bilgi için işzekam.net 'e bakabilirsiniz.) 

Kümeleme analizi, sınıflandırmada olduğu gibi sahip olunan verileri gruplara ayırma işlemidir. Kümeleme yabancı kaynaklarda clustering ya da segmentation olarak adlandırılmaktadır. Sınıflandırma işleminde, sınıflar önceden belirli iken kümelemede sınıflar önceden belirli değildir. Verilerin hangi gruplara/kümelere, hatta kaç değişik gruba ayrılacağı eldeki verilerin birbirlerine olan benzerliğine göre belirlenir. Belirlenen herbir gruba da küme ismi verilir. Kümeleme analizi biyoloji, tıp, antropoloji, pazarlama, ekonomi ve telekomikasyon gibi birçok ve birbirinden çok farklı alanlarda kullanılmaktadır.
(1)

Kümeleme analizi ve algoritmaları 5 ana başlık altında incelenebilir. Bunlar:
ü  Hiyerarşik Yöntemler (SLINK Algoritması, CURE Algoritması, CHAMELEON Algoritması, BIRC Algoritması)
ü  Bölümlemeli Yöntemler (K-Means Algoritması, PAM Algoritması, CLARA Algoritması, CLARANS Algoritması)
ü  Yoğunluğa Dayalı Yöntemler (DBSCAN Algoritması, OPTICS Algoritması, DENCLUE Algoritması)
ü   Grid Temelli Algoritmalar (STING Algoritması, Dalga Kümeleme, CLINQUE Algoritması )
ü   Genetik Algoritmalar olarak sayılabilir.

Yukarda sayılan algoritmalardan K-Means algoritması, WEKA ve Excel Data Mining Add-In kullanılarak Kümeleme işlemine sokulup Müşteri Segmentasyonu belirlenecektir.

Modelin WEKA Yazılımında Gerçeklenmesi
WEKA açık kaynak kodlu GNU lisanslı bir yazılımdır. Yazılımın çalışabilmesi için bilgisayarda Java 1.4 veya daha sonraki bir sürümün yüklenmiş olması gerekmektedir. Weka yazılımında ARFF (Attribute-Relation File Format ) dosyaları kullanılır. ARFF dosyaları, değişken tanımlanmasına izin veren ASCII metin dosyasıdır. ARFF dosyasının başlık kısmında, değişkenler (veritabanındaki herbir kolonun ismi), bunlar arasındaki ilişkiler ve herbir değişkenin türü ve alacağı değer vs bulunur. Veriler @DATA satırından sonra gelir.(Weka da büyük küçük harf duyarlılığı vardır.) Weka Yazılımını ücretsiz olarak buradan indirebilirsiniz.

Bu projede, weka yazılımının ilk açılışında karşımıza çıkan 4 seçenekten Explorer düğmesine tıklandığında karşımıza çıkan kısımda, kümeleme işlemlerinin yapılacağı alanda (Clustering Sekmesi altında) çalışmalarımızı yapacağız.

“Kitapevi.arff” isimli dosyamızı open düğmesine tıklayarak yüklediğimizde bir sonraki sayfadaki  ekran görüntüsü karşımıza gelecektir.


Yukardaki Veri Madenciliği görevlerinden ( Classify, Cluster, Associate) arasından veri setimizdeki müşteri segmentasyonu görevine en uygun olacağını düşündüğümüz “Cluster” sekmesini seçtiğimizde aşağıdaki gösterilen algoritmaları kullanabileceğimizi görebiliriz.(Burada hiçbir algoritmanın parametreleriyle oynanmamıştır,hepsi default değerlerinde çalışmaktadır.K-Means için default olarak k yani küme sayısı 2' dir)


 

Şimdi buradaki algoritmaları sırasıyla veri setimize uygulayacağız ve en anlamlı sonucu veren algoritmayı bulup Excel Data Mining'de de kullanıp karşılaştırmalarımızı yapacağız.

Makalemi daha da uzatmamak için K-Means dışında ki 4 algoritmanın sonucunu aşağıda sizinle paylaşıyorum. (Sizin de bu 4 algoritmayı çalıştırıp,sonuçlarını görmenizi tavsiye ederim.)

Cobweb algoritmasının türkçesi örümcek ağı algoritması olduğundan dolayı örümcek ağına çok benzer bir ağ şeması ortaya çıktı.
EM (Expectation Maximazation ) Algoritması sonucunda müşterilerimizin 3 gruba (cluster’a ) ayrıldığını gözlemliyoruz. (%48,%11,%41 olarak )
FarthestFirst algoritmasının sonucunda veri setimiz 2 gruba ayrılmıştır.( %82 ve % 18 olarak)
MakeDensityBasedClusterer algoritması veri setimizi 2 gruba ayırmıştır. (%43 ve %57 olarak )

Beşinci olarak SimpleKMeans Algoritmasını çalıştırıyoruz. Bu algoritma veri setimizi 2 gruba ayırmıştır. (%47 ve % 53 olarak ) Aşağıda bu algoritma için sonucu görebilirsiniz.


Çıkan sonuçları yorumlamak gerekirse K-Means Algoritması 100 adet müşteri bilgimizi aldı ve 2 gruba (cluster yada türkçesiyle kümeye) ayırdı. Birbirinden farklı bu 2 grubtan birincisine ait müşterilerin genel özelliklerine baktığımızda; 24 ile 35 yaş arasında olduklarını ,1 nolu semt de oturduklarını, iş sahibi olduklarını, hala kitapevinin müşterisi olduklarını, 7 ile 12 arasında periyotlarla alışveriş yaptıklarını, 1  nolu üyelik tipinde olduklarını, ücretsiz kitap taleblerinin olmadığını, Bilimsel kitapları daha çok satın aldıklarını ve gelirlerinin 100 ile 250 TL arasında değiştiklerini görebiliriz.

Bu makalede ücretsiz bir veri madenciliği aracı olan WEKA ile İş Zekasının çalışma alanlarından olan müşteri segmentasyonunu gerçekleştirmiş olduk. Bundan sonra ki bağlı makalede gene aynı veri setini ve K-Means algoritmasını kullanarak Excel Data Mining Add-In  yardımıyla iş zekası görevimizi gerçekleştireceğiz.