Yazan : Şadi Evren ŞEKER

WEKA, bilgisayar bilimlerinin önemli konularından birisi olan makine öğrenmesi (machine language) konusunda kullanılan paketlerden birisinin ismidir. Waikato üniversitesinde açık kaynak kodlu olarak JAVA dili üzerinde geliştirilmiştir ve GPL lisansı ile dağıtılmaktadır. İsmi de buradan gelir ve  Waikato Environment for Knowledge Analysis kelimelerinin baş harflerinden oluşur.

WEKA verileri basit bir dosyadan okur ve veriler üzerindeki stokastik değişkenlerin sayısal veya nominal değerler olduğunu kabul eder. Aynı zamanda veritabanı (database) üzerinden de veri çekebilir ancak bu durumda verilerin bir dosya verisi şeklinde olması beklenir.

WEKA üzerinde makine öğrenmesi ve istatistik ile ilgili pekçok kütüphane hazır olarak gelmektedir. Örneğin veri ön işlemesi (data preprocessing), ilkelleme (regression), sınıflandırma (classification), gruplandırma (clustering), özellik seçimi veya özellik çıkarımı (feature extraction) bunlardan bazılarıdır. Ayrıca bu işlemler sonucunda çıkan neticelerinde görsel olarak gösterilmesini sağlayan görüntüleme (visualization) araçları bulunmaktadır.

Aşağıda bu amaçla yazılan ekranlardan bazıları gösterilecektir

Ön işleme paneli (Preprocess Panel)

Bilgi dolaşıcısının (knowledge explorer) başlangıç noktası önişleme panelidir. Bu panelde veri kümleri (dataset) yüklenebilir veya WEKA içerisinde bulunan filitreler ile veriler üzerinde işlemler yapılarak veri işlenebilir.


Sınıflandırıcı Paneli (Classifier Panel)

WEKA içerisinde yüklü olan sınıflandırma algoritmalarından herhangi birisini kullanarak mevcut veri kümesi üzerinde bu ekran marifetiyle sınıflandırma yapılabilir. Ayrıca bu ekranda test ve sağlama (validation)  için ayrı kümeler kullanmak da mümkündür. Sınıflandırma hataları ayrı bir ekranda açılır ve şayet sınıflandırma algoritması bir karar ağacı (decision tree) oluşturursa bu da ayrıca bir ekranda görüntülenir.


Klasör Paneli (Cluster Panel)

Sınıflamaya benzer şekilde klasösrleme (gruplama) için kullanılan ekrandır ve benzer şekilde görselleştirme arayüzü bulunmaktadır.


Birleştirme Paneli (Associate Panel)

weka içerisinde tanımlı birleştirme algoritmaları kullanılarak, mevcut veri kümesi üzerinde veri madenciliği (data mining) işlemi yapılmasını sağlar.


Seçim Özellikleri Paneli (Select Attributes Panel)

Veri kümesi üzerinde yapılan seçme ve işleme özelliklerini ayarlamaya yarar. Şayet seçme şemalarından birisi veriyi dönüştürüyorsa, dönüşmüş veri görselleştirme ekranında görülebilir.


Visualize Panel

Bu panelde veri kümesi üzerinden bir çizim gösterilebilmektedir. Hücrelerin ve noktaların boyutları, ekranın alt tarafındaki panelden ayarlanabilir. Seçim özellikleri erkranından, matris üzerindeki hücre sayısı değiştirilebilir. Ayrıca çok büyük veri kümeleri ile çalışılırken, işlem kolaylığı olması açısından sadece alt örneklem uzayının kullanılması da mümkündür.


Etkileişimli Karar Ağacı İnşası (Interactive decision tree construction)

WEKA içerisindeki bu araç ile çift alternatifli (bi-variate) bölünmeleri ve bu bölünmeler üzerinde bir ağaç yapsını etkileşimli olarak inşa etmek mümkündür. Ayrıca inşa edilen bu ağacın yeniden değerlendirilmesi veya değiştirilmesi de mümkündür


Yapay Sinir Ağı (Neural Network GUI)

WEKA içerisinde bulunan yapay sinir ağı (neural network) arayüzüdür. Bu arayüz marifetiyle çok seviyeli perseptron (multi layer perceptron)ve eğitimi kontrol eden parametrelerin girilmesi mümkündür.

Yorumlar

  1. burçin

    arkadaşlar benim weka programı ile ilgili ödevim var. weka da console kısmı nasıl açılıyor bilmiyorum

  2. Sefa

    Hocam merhaba Weka'nın Association Rule arayüzündeki analiz sonuçları nasıl yorumlanır ve min metric olarak confidence belirlenmişken biz bu değeri düşürdüğümüzde neden analiz outputundaki min support yükseliyor ikisi arasındaki ilişki nedir yardımcı olursanız sevinirim saygılarımla...

    1. Betül

      Hocam merhaba; Yüksek lisans tezim weka üzerine. Size bununla ilgili ufak bir sorum olacaktı. Kullanacağımız veriler kompleks sayılardan oluşuyorsa veri madenciliğinde nasıl kullanılıyor ve weka da nasıl işleniyor? Bu konuda hiç bir yerde örnek bulamadım. Yardımcı olursanız çok sevinirim. Çok teşekkürler.

      1. Şadi Evren ŞEKERŞadi Evren ŞEKER

        Kompleks sayı ile kastınız karmaşık sayılar mı (complex numbers)? yani kök -1 olan değerleri mi kastediyorsunuz yoksa birden fazla sayının birleşmesinden oluşan kompleks yapıları mı kastediyorsunuz (örneğin tarih kısmının gün ay yıl gibi üç farklı sayıdan oluşması gibi). Aslında tam olarak örneğinizin hikayesini anlatırsanız (nasıl veri topladığınız ve elinizdeki verilerden ne yapmak istediğiniz ile ilgili detaylı bilgi) daha fazla yardımcı olabilirim.

    2. Haniye Saraç

      Merhaba hocam ben bu dönem Weka dersi alıyorum Letter recognition data setin değerleri numerikdir ve hepsi 0-15 arasında ben bu numerikdir attribute lere nominal çevirmek istiyorum yani bir renge arasında nasıl yapabilirim..

  3. Deniz Güz

    Merhaba

    Weka programı ile destek vektör makinelerinde regresyonun nasıl yapıldığı ile ilgili bilgi verebilir misiniz?

    İyi Çalışmalar

  4. Sevgi

    Merhaba Hocam veri madenciliği ve makine öğrenmesi algoritmaları üzerinde çalışıyordum, weka programını kullanmaya yeni başladım, bir yerde takıldım.Örneğin, elimizde parmak izlerinden oluşan bir veri seti var, weka da bu setin analizini yaptık sınıflandırma vs. Sonra yeni bir parmak izi deseni geldi gürültülü, eksik veya normal.(Gürültülüyse görüntü işleme metodlarını kullanarak önce temizleme yaparız diye düşündüm) Bu parmak izi veritabanında var mı? Bu match işlemini weka da yapabiliyor muyuz?

  5. Şadi Evren ŞEKER Article Author

    Weka ne yazık ki "veri tabanı araması" veya resim işleme yapamıyor. Buradaki kritik nokta arama kavramında yatıyor.
    Şimdi şayet veri tabanı üzerinde arama yapmak ve wekanın sonuçlarını bir veri tabanı gibi kullanmak istiyorsanız (örneğin eğtim setiniz sürekli değişiyor veya aktif öğrenme kullanmak istiyorsanız(active learning) en doğru yol, weka'yı bir jar dosyası olarak projenize bağlayarak java dilinde bu kodu kendinizin yazmasıdır.
    Şayet problem klasik veri madenciliği aramalarıylsa (örneğin tepe tırmanma (hill climbing) veya benzetimli tavlama (simulated annealing) gibi) bu durumda wekada veri kümenizi yükledikten sonra classify seçeneğine geçin. Classifier olarak bayes altında BayesNet seçin. Ardından parametrelerine tıklayın, search algorithm olarak bu arama algoritmalarından istediğiniz bir tanesini seçebilirsiniz. Aşağıda ekran görüntüsünü ekliyorum (anlattığım seçimler için bayes net'i seçtikten sonra parametreleri için kırmızı ile işaretli alana basmanız gerekiyor):

    Ancak durumunuzu doğru olarak anladıysam siz verileri sınıflandırdıktan sonra arama yapmak istiyorsunuz ki bu durumda en doğrusu sınıflandırılmış verileri etiketli bir şekilde kaydedip ardından yeni gelen bu tek verinizi test verisi olarak wekaya vermektir.
    Yukarıdaki açıklamakara göre sorunu çözemezseniz tam olarak nasıl bir arama yapmak istediğinizi yazın daha detaylı anlatmaya çalışırım.

  6. gzd

    Merhaba,
    Ben weka’daki data mining algoritmalarına C# ile ulaşmak icin çalışıyorum. Daha yeniyim bu konuda. Yardımlarınızı bekliyorum , şimdiden cok teşekkür ederim.

  7. Şadi Evren ŞEKER Article Author

    ne yazik ki csharp ile wekayi daha önce hiç kullanmadım ancak weka java ile harika bir uyuma sahiptir şayet projeniz için c# çok elzem değilse javaya geçmenizi tavsiye ederim.

  8. turker

    Merhaba,
    WEKA da bildiğim kadarıyla gini ve twoing algoritmaları yok. Onların ID3 ve C4,5 ten türetilebildiği söyleniyor. Nasıl olur acaba?

  9. Şadi Evren ŞEKER Article Author

    Aslında weka kütüphanesinin içerisinde GINI bulunuyor. Ancak arayüzden erişme imkanınız yok. Aslında WEKA'yı sadece arayüzden kullanıyorsanız çoğu şeyi yapma imkanı tanımıyor.

    API sayfasının bağlantısını aşağıda veriyorum:

    http://weka.sourceforge.net/doc.packages/multiInstanceLearning/weka/classifiers/mi/miti/Gini.html

    Ancak sizin durumunuzda ne yazık ki hazır kod kullanma imkanınız yok gibi duruyor. Bir şekilde JAVA ile WEKA'ya erişerek fonksiyonları çağırmanız gerekiyor. Yorumunuzdan sonra bu konuda bir yazı hazırlamaya karar verdim, sitede yayınlamaya çalışacağım.

    Başarılar

  10. Caner Seçgin

    Hocam ağzınıza sağlık bir kaç makaleyi takiben bu makaleyide okudum ben okulda aldığım bir proje dolayısıyla bir marketin sepet analizini yapmak istiyorum ve weka yı kullanmayı hiç bilmiyorum.İlla veritabanı olusturmamız gerekiyormu ? çünkü satış fişlerini veri tabanına atmak biraz sıkıntı,anket yaparak veri elde etmeyi ve verileri wekaya elden girmeyi düşünüyorum yardımcı olursanız sevinirim çok teşekkür ederim.Emeğinize sağlık

  11. Şadi Evren ŞEKER Article Author

    veri tabanı gerekmiyor. Aslında sadece arrf dosyası oluşturmanız gerekiyor. Bu dosyanın kendisine özel bir yapısı var ancak oldukça basit. Dosyayı oluşturduktan sonra WEKA'ya komut satırından veya kendi arayüzünden bu dosyayı yükleyerek istediğiniz algoritmayı çalıştırmanız mümkün oluyor.

    Başarılar

  12. Ümit

    Merhabalar hocam benim elimde yaklaşık 1000 tane pgm uzantılı resim dosyası var. Bu dosyaları Weka'da verisetine nasıl dönüştürebilirim. daha doğrusu .arff dosyası elde etmem gerekiyo, bu nasıl yapılabilir. Şimdiden teşekkürler

  13. Şadi Evren ŞEKER Article Author

    weka ne yazik ki resim işleme yapmaz. Resimlerinizi önce işleyip özellik çıkarımı (feature extraction) yaptıktan sonra weka'yı sınıflandırma gibi işler için kullanabilirsiniz.

  14. Bilg Müh

    Merhabalar;
    Weka da kümeleme algoritmalarından bazılarını kullandığımda bellek hatası veriyor.
    Bu durumda ne yapmam gerekiyor?
    Teşekkürler

  15. Şadi Evren ŞEKER Article Author

    Evet özellikle big data çalışmalarının yaygınlaşması ile birlikte en meşhur weka hatalarından birisi de heap space hatası. Weka kurulum itibariyle 128MB hafıza kullanacak şekilde ayarlı gelir. Bunu arttırmak için galiba wekanın bir ayar dosyası bulunuyor ve burada işlem yapılabiliyor ancak ben işin kolayına kaçıp wekayı aşağıdaki şekilde çalıştırıyorum:

    java -Xmx2000m -classpath weka.jar weka.gui.GUIChooser

    Buradaki ikinci parametre olan Xmx ardından istediğiniz bir hafıza boyutunu (bilgisayarın kapasitesine göre) yazabilirsiniz, örneğin yukarıda 2000MB yani yaklaşık 2GB ayrılmış durumda. Ardından weka'nın kurulumunda gelen .jar dosyasının tam yolunu yazıp weka.gui.GUIChooser sınıfını çalıştırmanız yeterli.

    Başarılar

  16. Şadi Evren ŞEKER Article Author

    Evet entegre edebilirsiniz. Aslında weka java dili ile geliştirilmiştir ve java ile entegre olabilmesi için gerekli olan kütüphaneler, kurulum ile gelir. Weka'nın API sayfasına aşağıdaki bağlantıdan erişebilirsiniz:

    http://weka.sourceforge.net/doc.dev/

    Basitçe projenize weka'nın jar dosyasını "weka.jar" ekleyip ve bu API'da bulunan herhangi bir sınıf veya fonksiyonu kullanabilirsiniz.

    Başarılar

  17. Berna UZUN

    Merhaba hocam,
    ben "user profiling" oluşturmaya çalışıyorum. Bu benim tez konum. sosyal aglardan topladıgım bilgileri database e atmayı planladım. peki direk o database üzerinden clustring yapmam mumkun mu? yada o database i manual olarak .arrf formatına cevirip oyle mi weka da işlemem gerekiyor ?

    birde weka nın diğer tool lardan avantajı ve simple Kmeans methodunun dger clıustring algoritmalardan avantajı nedir ?

    şimdiden teşekkürederim

  18. Şadi Evren ŞEKER Article Author

    weka doğrudan veritabanına bağlanabilir arff çevirimini de wekadan yapabilirsiniz elle çevirmenize gerek yok.

    veri kümesini (data set) aldıktan sonra wekada bulunan bütün algoritmaları (clustering de dahil) kullanabilirsiniz.

    wekanın diğer toollardan çok sayıda avantajı vardır ancan bence birincisi java'da yazılmış olması ve java'dan doğrudan çağrılabilmesi gelir.

    simple kmeans ve diğerleri dediğiniz kısımda diğerleri neler? hangi algoritma ile karşılaştırdığınızda göre söylenecek şeyler değişebilir.

    veri tabanı bağlantısı hakkında fikir vermesi açısından aşağıdaki yazıya bir bakın doğrudan veritabanı bağlantısı yok ancak ilk aşamadaki arff loader yerine veri tabanı kullanabilirsiniz.

    http://www.bilgisayarkavramlari.com/2013/03/31/weka-knowledge-flow/

    başarılar

  19. emre

    merhaba wekada projem var kullanımını bılmıyorum ıd3 j48 algorıtmalarından herhangı bırı kullanılarak sunum yapacagım yardımcı olurmusunuz bırsey anlamadım wekadan

  20. gül

    Merhaba weka da information gain metodunu kullanarak elimizdeki datalarda kelime sınıfandırmasını nasıl yapabiliriz yardımcı olurmusunuz.İyi günler

  21. filiz

    merhaba apriori algoritmasını kullanarak nasıl arama yapabiliriz? weka programını kullanarak bunu yapabilir miyiz? Şimdiden çok teşekkür ederim.

  22. filiz

    çok teşekkür ederim hocam, peki bunu php dilinde nasıl entegre edebilirim, ben üyeleri web sitesinde php dilinde detaylı olarak arayan bir apriori algoritması geliştirmek istiyorum.

  23. Şadi Evren ŞEKER Article Author

    Şayet php gibi bir dilde apriori algoritmasını kullanmak istiyorsanız, WEKA'yı kullanmanızı tavsiye etmem. Zaten basit bir algoritma ve yukarıdaki ilk bağlantıda algoritmanın pseudo kodu bulunuyor, yerinizde olsam php dilinde kodlardım.

    Başarılar

  24. ilkay

    Hocam weka da değerlendirme kriterlerine göre bir çalışmanın başarılı olup olmadığı ile ilgili verileri kullanarak değerlendirme yapmak istiyorum hangi yöntemi kullanabilirim? Birde weka üzerinde yeni veri ekleyerek başarılı veya başarısız diye sonuç üretecek bir kısım mevcut mu?

  25. Şadi Evren ŞEKER Article Author

    Sorunuzun ilk kısmını anlayamadım. Yani çalışma derken weka tarafından yapılan sınıflandırma gibi birşeyi mi kast ediyorsunuz? Örneğin RMSE (root mean square error) verilen değerlerden birisi ve aşağıdaki yazıda nasıl hesaplandığı var.

    WEKA'da bazı Hata Ölçüm Yöntemleri

    Sorunuzun ikinci kısmını doğru anladıysam, WEKA'da bir kere eğitim yapıp bu eğitimde öğrenilen değerlerin daha sonraki farklı testler için kullanılmasını istiyorsunuz (bir kere eğitim birden fazla kere test gibi anlıyorum). Şayet isteğiniz bu ise eğitim sonucunu bir dosyaya kaydedip defalarca farklı test kümeleri için çalıştırabilirsiniz:

    java weka.classifiers.trees.J48 -t egitim.arff -d egitilmis.model

    Yukarıdaki komut ile J48 karar ağacını, verdiğimiz egitim.arff dosyası üzerinden eğitiyoruz ve eğitilmiş modeli egitilmis.model isimli dosyaya kaydediyoruz.

    java weka.classifiers.trees.J48 -l egitilmis.model -T test.arff

    Yukarıdaki komutu ise istediğimiz kadar, istediğimiz farklı dosyalar ile çağırabiliriz. Burada ise bir önceki adımda kaydettiğimiz egitilmis.model dosyasını kullanarak test.arff dosyasındaki verilerin sınıflandırılmasını istiyoruz. egitilmis.model dosyasını oluşturduktan sonra ikinci adımı istediğiniz kadar farklı dosyaya uygulayabilirsiniz.

    Başarılar

  26. Can

    Merhaba,
    Diyabet teşhisi için alınmış normal,prediyabet veya diyabet olduğunu bildiğim datalarım var. Her data 240 adet sayı dizisinden oluşuyor. Bunu nasıl Weka ile analiz edeceğim veya edebilir miyim ?

    Teşekkürler.

    1. Can

      İlginiz için teşekkür ederim. Weka yı kullanmaya yeni başladığım için takılıyorum haliyle.

      Elimdeki datalar şu şekilde;
      Hasta No: Ölçüm Sonuç
      1 [1,4,11,86... ]
      2
      3
      4
      5

  27. Can

    İlginiz için teşekkür ederim. Weka yı kullanmaya yeni başladığım için takılıyorum haliyle.

    Elimdeki datalar şu şekilde;
    Hasta No: Ölçüm Sonuç
    1 [1,4,11,86... ] Hasta
    2 [3,12,24,39...] Hasta değil
    .. ...... ......

    Yani .arff yaparken "@attribute ölçüm" kısmını nasıl yazacağım çünkü her hastanın ölçümünde 240 adet veri var. Yani bir ölçüm 1x240 lık bir matris gibi..

    Teşekkürler.

  28. bilgisaybilgisay

    Can Bey,

    Anladığım kadarıyla her satırınız 240 adet veri ve hasta veya değil şeklinde bir sonuçtan ibaret.

    Birincisi hasta no bilgisini (her hastanın birer kere geçtiğini kabul ediyorum) verinizden silin. İkincisi her ölçüme özel bir isim verin olcum1'den olcum240'a kadar isimlendirebilirsiniz. Ardından sonuç kolonu için 1,0 şeklinde (hasta / değil) gibi sayılar koyabilirsiniz. Veriyi bu şekilde ön işlemeye tabi tutup sonra wekaya verebilirsiniz.

    Ya da, weka sizin için bütün bunları yapabilir. Veriyi CSV olarak kaydedip yukarıda bağlantısını verdiğim adresteki CSV loader modülünü seçip CSV olarak yüklemeniz veya WEKA ilk çalıştığında çıkan ekrandaki Explorer seçeneğini seçip 'open file' düğmesi ile açılan diyalogtan dosya tipini CSV işaretledikten sonra gerekli ön işlemeleri (istemediğiniz kolonların kaldırılması vs.) yapabilir ve temizlenmiş veriyi ister WEKA'da çalıştırabilir isterseniz de WEKA'nın dosya formatı olan arff olarak kaydedebilirsiniz. olcum1'den olcum240'a kadar başlıkları WEKA kendisi oluşturacaktır.

  29. Can

    Merhaba,
    Yardımınız için çok teşekkür ederim.

    Gerekli olduğunu düşündüğüm dataları (olcum130....olcum190 arası) aldım .csv formatında kaydettim fakat benim datalarım time-series olduğu için sıkıntı çıktı sanırım. Ayrıca olcum değerlerini virgülle ayırma yapamıyorum çünkü benim datalarım da virgüllü (0,941 gibi..).

    Elde ettiğim datayı şu linkten indirebilirsiniz;

    https://www.dropbox.com/s/4gsy4ou4y6vgrfb/WekaDeneme.rar

    Sayfayı daha fazla kirletmemek adına can.durmaz@yahoo.com adresine mail de atabilirsiniz cevabı.

    Tekrar teşekkür ederim.

  30. bilgisaybilgisay

    weka veya diğer programlarda ondalık ayıraç virgül olamaz. Türkiyede bu şekilde kullanılıyor ama amerika ve diğer kod geliştiren ülkelerde ondalık ayıraç nokta, bu yüzden öncelikle ondalık ayıraç olan virgülleri noktaya çevirmeniz gerekiyor (basit bir bul/değiştir işlemi ile hallolur) ardından da verileri ayıraç olarak virgül kullanmanız gerekiyor.

  31. can

    Hocam merhaba, weka kullanarak 20 newsgroup dataset ini sınıflandırmaya çalışıyorum. ancak weka .arff csv ve c4s gibi formatlardan başka dosya formatına işlem yapmılmasına izin vermiyor. Ben java ile bu işlemi gerçekleştirebilir miyim? (weka.jar dosyasını kütüphaneme ekleyerek) Yapabilirsem nasıl olur? örnek verebilir misiniz?

    Teşekkür ederim, iyi çalışmalar.

  32. Taner

    Merhabalar

    Wekaya PSOsearch kütüphanesi nasıl ekleyebilir. Dosyayı indirim fakat filtre kısmında görebilmem için ne yapabilirim ?

    Teşekkürler.

  33. çağrı

    Merhabalar, ben de tezimde weka ile entegre çalışan asp ile yazılan bir web sitesi yapmayı planlıyordum ama 22.10.12 de bilmediğiniz söylemişsiniz.Hala bilmiyor musunuz acaba ? 🙂

    1. Şadi Evren ŞEKERŞadi Evren ŞEKER

      Evet hala bilmiyorum. İşin doğrusu weka, Java ile geliştirilmiş, java ile entegrasyon sorunu olmayan ve genelde java dilinde kodlama yapanların tercih ettiği bir kütüphane olarak görülebilir. ASP gibi bir firmanın teknolojisi olan geliştirme ortamları çok sayıdaki problemlerinden dolayı weka gibi gelişmiş projelerde tercih edilmezler. Size nacizane tavsiyem bu işlerde ilerlemeye niyetiniz varsa veya biraz olsun bir ürün çıkarmak istiyorsanız, asp gibi problemli bir dilden uzaklaşıp java teknolojileri veya benzeri firma bağımsız (örneğin c, c++, python, perl, lisp gibi ) dillere geçmeniz olacaktır. Weka ile uğraşmak istiyorsanız da en iyi alternatifiniz java olacaktır. Ama illaki ASP konusunda ısrarcıysanız, tahminen ücretli olarak satın alacağınız eklentiler olabilir ama benim ne yazık ki bu konuda bir bilgim bulunmuyor.

      Başarılar

  34. nilgün

    Merhabalar,
    arff dosyalarının elle mi oluşturuyoruz ? Yaklaşık 20000 tana txt dosyasını sınıflandırmak istiyorum. Dosyalar veri tabanında değil üzerlerinde hiç bir işlem yapılmamış text dosyaları bunları sınıflandırmak için hepsini tek tek elle arff dosyası haline mi dönüştürmem gerek?

    1. Şadi Evren ŞEKERŞadi Evren ŞEKER

      Weka'nın yeni versiyonunda artık CSV dosyaları doğrudan yüklenebiliyor yani elle oluşturmanıza gerek yok. Ancak sizin durumunuzdaki gibi çok sayıda dosya ile uğraşılırken (ve dolayısıyla çok sayıda kereler arka arkaya aynı makine öğrenmesi algoritmaları, veri ön işleme algoritmaları vs. tekrar çalıştırılacak demektir) JAVA ile weka kütüphanelerini kullanmanızı tavsiye ederim.
      Yine de iki yazı sizin için yol gösterici olabilir:

      Birincisi weka'nın bilgi akışı (knowledge flow) arayüzü:
      http://bilgisayarkavramlari.sadievrenseker.com/2013/03/31/weka-knowledge-flow/

      İkincisi weka ile kod geliştirme:
      http://bilgisayarkavramlari.sadievrenseker.com/2015/01/08/java-dilinde-weka-ile-kod-gelistirilmesi/

  35. Mehmet

    Merhaba Hocam,

    Elimde mevcut 4 yıla ait verilerle 5. yıla ait değerleri tahmin etmek istiyorum. Değerlerim kesikli verilerdir. Fonksiyon tahmini yapmak istiyorum. Weka'da bunu nasıl yapabileceğim konusunda yardımcı olmanızı, bilgi vermenizi rica ederim.

    1. Şadi Evren ŞEKERŞadi Evren ŞEKER

      Mehmet Bey,

      Veri madenciliği çalışma konularından birisi de tahmin (prediction) işlemleridir ve çok sayıda tahmin yöntemi bulunmaktadır. Yöntemlerin çok sayıda olmasının sebebi ise her durumda en iyi sonucu veren tek bir yöntem olmaması, her durum için farklı bir yöntemin kullanılmasının daha doğru olmasıdır. Bir yöntemi seçerken verinizin özellikleri oldukça önemlidir.

      Weka bir veri madenciliği kütüphanesi olarak düşünülebilir ve içerisinde bu alanda kullanılan çok sayıda yönteme yer verilmiştir. Dolayısıyla sizin hangi yöntemi seçeceğinize karar vermeniz weka ile ilgili değil genel olarak veri madenciliği ile ilgili bir problemdir. Yönteminizi seçtikten sonra weka'da nasıl yapılacağını açıklayabilirim. Veya verinizin özelliklerini yazabilirseniz hangi yöntemin daha doğru sonuç vereceği konusunda yardımcı olmaya çalışabilirim.

      Başarılar

  36. Gülşah

    Merhaba Şadi Hocam,

    Benim elimde ATM veri seti var. Bunu arff olarak wekaya yükleyip Preprocess sekmesinden grafiklerle analiz edebiliyorum. Fakat örneğin ID3 algoritmasını uygulamak istediğimde bu seçilemiyor gözüküyor tıklayamıyorum. Sorun nerede olabilir?

    Arff dosya içeriğimden bir örnek:

    @relation deneme
    @attribute Type {'Withdrawal','Deposit','Transfer'}
    @attribute Location {'DriveUp','CampusB'}
    @attribute Hour numeric
    @attribute Amount numeric

    @data
    Deposit ,CampusB ,0,100
    Withdrawal ,CampusB ,0,10

    1. Şadi Evren ŞEKERŞadi Evren ŞEKER

      Weka'da her algoritma her veri kümesi için uygun değildir. Kullanmak istediğiniz algoritmanın hangi veri setleri üzerinde çalışabileceği listeden seçerken üzerine geldiğinizde yazar. Mesela listede pasif (gri renkle) de olsa seçtiğiniz algoritmanın üzerinde mouse'u biraz bekletirseniz açılan açıklama kutusunda Capabilities başlığı altında hangi veri tiplerinin bu algoritma tarafından desteklendiği bilgisi çıkacaktır. Örneğin J48 algoritması için yazan bilgileri alıp anlamaya çalışalım:

      Class -- Binary class, Nominal class, Missing class values
      Attributes -- Nominal attributes, Numeric attributes, Date attributes, Unary attributes, Missing values, Binary attributes, Empty nominal attributes
      Additional -- min # of instances: 0

      Sınıflandırma için kullanacağımız class (ki bunu sınıflandırma sırasında start düğmesinin hemen üzerindeki açılabilir listeden seçiyoruz ve sonuçta bütün verileri bu sınıflara ayırmaya çalışıyoruz), binary, nominal veya misssing olabilirmiş. Mesela reel sayı olamazmış, şayet siz reel sayı (veya numeric) değer içeren bir kolonu sınıflandırmak istiyorsanız demek ki bu algoritma çalışmayacakmış. Yine bu algoritma missing values destekliyormuş ama başka bir algoritmada bu destek yoksa ve veri setimizde missing value varsa (yani bazı satırlarda bilgilerde eksiklik varsa) o zaman bu algoritma pasif olacaktır.

      Attribute kısmı, yani sonuç sınıfı dışındaki kısımlar nominal, numeric, date, unary, missing, binayr veya empty nominal attribute olabilirmiş.

      son olarak additional kısmı bize 0 tane veri olsa da algoritmanın çalışacağını söylüyor. Örneğin buradaki değer 100 olsaydı o zaman elimizde en az 100 tane veri olmadan algoritma aktif görülmezdi.

      Bu bilgilere göre algoritmaya tekrar bakın sanırım çözüm olacaktır.

      1. Gülşah

        Kesinlikle çözüm oldu anlattıklarınız, herşey şu an tam oturdu o kadar şeyi anlayıp bunu bir türlü çözememiştim. Ben istediğim sınıfı numeric tanımlamışım. Filtreden onu nominal olarak değiştirmeyi denemiştim olmamıştı, bunu hiç denemedim ve şu an çalışıyor. Çok teşekkür ederim hocam, emeğinize sağlık.

        Saygılarımla

  37. kübra

    hocam merhaba,
    weka üzerin de bir ödevim var ve elimde ki data 100000 Attribute sahip. numeric bir data. train datası da hayliyle biraz büyük. acaba hangi algoritmayı kullanmam daha uygun olur karar veremedim. fazla attribute olduğu için Feature selection yapmam gerekecek sanırım.

  38. Hakan

    Hocam merhaba,
    veri madenciliği dersin de weka ile ilgili bir ödev konum var fakat wekayı çok bilmiyorum. Wekayı yükledim ve üzerindeki default datalarla denemeler yaptım. öğrenmek istediğim konu clustering bölümleme ve sonuçlarının analizi ile ilgili. Default datalardan iris üzerinde denemeler yaptım. Fakat sonuçlarından ve verdiği raporlardan çok anlam çıkaramadım. k-ortalama ve hiyerarsik bölümleme seçeneklerini bir data(iris olabilir) üzerinden anlatan yazı veya videonuz varmıdır. Ben bulamadım bu konuda yardımcı olursanız sevinirim.

    1. Şadi Evren ŞEKERŞadi Evren ŞEKER

      Aşağıda bağlantısını verdiğim oynatma listesini baştan sona izlemenizi tavsiye ederim. Weka ile ilgili eğitim bilgileri (sorunuza konu olan k-ortalama da dahil olmak üzere) bu videolara dağıtılmış durumdadır.

      Başarılar

  39. Şeyma

    Merhaba ,
    Weka'da 3 training seti birleştirmem gerekiyor. Csv uzantılı dosyalar bunlar. Aslında birleşmiş hali de var ama onu yüklemeyi denediğimde "File not recognised as an 'CSV data files' file. Reason: wrong number of values. Read 23,expected 33 read token [EQL] line 2." şeklinde hata alıyorum. Öneriniz var mı?

  40. İBRAHİM

    merhaba hocam
    diabetes.arff data setini kullanarak ID3 algortimasında işlem yapmak istiyorum ama ID3 algortimasını aktifleştirme işlemini yapamıyorum. Bu konuda ne yapmam gerektiği hakkında bilgi vermenizi rica ederim.

    1. Şadi Evren ŞEKERŞadi Evren ŞEKER

      İbrahim Bey,
      Weka ile ilgili detaylı bir video serisi var, bu seride sorunuzun cevabı ve diğer karşılaşacağınız problemler detaylı bir şekilde anlatılmış. Seriyi izlerseniz kullanım için neler olması gerektiği anlatılmış.

      Başarılar

  41. Samed

    Merhaba Hocam;

    Weka ile proje çalışması olarak bazı özellik seçme algoritmalarının karşılaştırmasını yapacağım bunların arasında yeni bir algoritma olan DWFS weka da bulunmadığı için bunun pseudocode' nu yazarak uygulayacağım bunu nasıl yapmam gerekiyor. Pseudocode ' u nerede kullanağım? Yardımcı olabilir misiniz?

  42. UFUK

    Şadi bey iyi günler

    yararlı bilgileriniz için öncelikle teşekkür ederim.

    Ben weka ile elimdeki veri dosyasına göre yeni bir girdinin sonucunu tahmin ettirmek istiyorum

    yani örneğin bir tenis maçının oynanabilirliği ile ilgili elimde hava durumu ( güneşli, parçalıbulutlu, yağmurlu) derece, nem oranı, rüzgarlı olup olmaması durumlarında maçın oynanıp oynanmadığına dair kaydedilmiş 100 durum var. 101. durumdada elimde hava durumu, derece, nem oranı, rüzgar durumu var ama ben wekaya bu durumda maç yapılıp yapılmayacağı tahminini yaptırmak istiyorum.
    mümkün müdür? mümkünse nasıl

    1. Şadi Evren ŞEKERŞadi Evren ŞEKER

      Mümkündür, bununla ilgili çok detaylı bir weka eğitim seti hazırladım tam da bahsettiğiniz örnekler de kullanıldı. Lütfen youtube üzerinde bilgisayar kavramlarını aratın ve oynatma listelerinden weka eğitim serisini izleyin. Başarılar.

  43. Hümeyra

    Merhabalar Hocam;
    Ben Sql server da olan verilerimi Weka ya aktarıp Weka'daki karar ağaçlarını kullanarak sınıflandırmak istiyorum da Weka ile Sql server bağlantısını kuramıyorum.Yardımcı olabilir misiniz acaba?

  44. ELİF

    Hocam Merhaba. ben elimde bir veri seti ile kümeleme algoritması üzerinden weka programında veri madenciliği yapıyorum. Elimde müşteri bilgilerinden yaş seçeneği var. 24-38 şeklinde. ben bunu wekaya tanıtamıyorum burada hata veriyor. sadece 24 veya 38 istiyor. Bunu nasıl halledebilirim. ve simplekmeans özelliği aktif olmuyor. Bununla ilgili bilgi verirseniz çok sevinirim.

    verilerim şu şekilde :
    @relation musteri

    @attribute YAS NUMERIC
    @attribute ISI NUMERIC
    @attribute IS STRING
    @attribute EVLI STRING
    @attribute GELIR NUMERIC

    @DATA
    24,3,E,H,1800
    24,3,E,H,1800
    24,1,H,H,1800
    24,1,H,H,1800
    24,1,E,H,1800
    24,1,E,H,1800
    24,1,E,H,1800
    24,1,E,H,1800
    24,1,E,H,1800
    24,1,E,H,1800
    24,1,E,H,1800
    24,1,E,H,1800
    24,1,E,H,1800

    36,1,H,H,1800

  45. jak

    Hocam weka da k means algoritması ile outlier değerleri bulmak istiyorum. Bunun için nasıl bir yol izleyebilirim. Teşekkür ederim

  46. Begüm

    Hocam Merhabalar
    Weka programı ile İkili sınıflandırma metotlarından Lojistik Regresyon ve KNN yöntemlerinin nasıl uygulandığı ile ilgili bilgi verebilir misiniz?
    Şimdiden çok teşekkürler
    İyi Çalışmalar

  47. güzin

    merhaba hocam. veri madenciliği dersi alıyorum ve bir ödevim var. cfssubseteval infogainattribute ve reliefFattributeeval algoritmalarının çalışma prensiplerini bulup knn algoritmasıyla modeller kurup başarı oranlarını karşılaştırmam gerekiyor. ionosphere datası üzerinde cfssubseteval ı bestfrist methoduyla çalıştırdım 14 tane attribute seçti. infogain ve reliefF'te tüm attributeleri seçti ama attributelerin sırası farklı. bu durumda knn algoritmasında bunları nasıl çalıştıracağım? anlayamadım yardımcı olursanız çok sevinirim

  48. Pelin

    Hocam merhabalar,

    Weka da henüz yeniyim ve bu konuda tecrübelerinize dayanarak bir soru sormak istiyorum. Proje çalışmam kapsamında, bilinen birkaç özellik seçme algoritmasıyla birlikte DWFS(dynamic weighting-based feature selection algorithm) adında yeni bir algoritmayla kıyaslamam gerekiyor. Ancak bu özellik seçme algoritması weka da mevcut olmadığı için uygulamayı gerçekleştiremiyorum. Bu algoritmayı ya bunun gibi algoritmaları Weka'ya nasıl ekleyebilirim? Yardımcı olabilirseniz çok sevinirim.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


dört × 1 =