Weka Nedir?

Makine öğrenmesi işlemlerinde, dahil olduğum proje ve akademik araştırmalarda sıklıkla adı geçen uygulamalardan birkaçından bahsetmek istiyorum. Bu uygulamalardan ilki Weka.

AA

Temelde, makine öğrenmesi algoritmalarının1 ve veri ön işleme (data pre-processing) gibi gereksinimlerin bir arada sunulduğu Waikato Üniversitesi tarafından açık kaynak olarak dağıtılan ve Java ile geliştirilen bir veri madenciliği programıdır2. Weka yazılımı dosya uzantısı olarak ARFF formatını kullanır. Sürüm bilgisi ve indirme işlemleri için uygulamanın web sitesini ziyaret edebilirsiniz3. Windows, macOS, Linux ortamları için stabil ve geliştirme sürümleri bulunan Weka‘yı ayrıca macOS üzerinden paket yöneticisi vasıtasıyla yapılandırabilirsiniz.

brew cask install weka

Weka Kullanımı

Weka uygulamasını indirip çalıştırdığınızda oldukça basit bir arayüz ile karşılaşacaksınız. Bu arayüz altından sunulacak uygulamalar şöyle; Explorer, Experimenter, KnowledgeFlow, Workbench, Simple CLI. Menü altından da görselleştirme ve diğer araçlara ulaşmak mümkün.

Weka Explorer

Weka’nın ARFF uzantısı kullandığından bahsetmiştim. Diğer yandan veri madenciliğinde sıklıkla kullanılan *.csv (Comma-separated values) dosyalardan da bahsetmek uygun olacaktır. CSV dosyalar verileri virgül ile ayrıştırılmış bir şekilde tutmaktadırlar. Aşağıdaki bir içerik örneğini görsel olarak iletiyorum.

Vote csv

Excel üzerinde tutulan verilerin Weka içerisinde kullanımı için öncelikle CSV olarak kayıt edilmiş olmaları gerekmekte. Ardından CSV içeriğimizi Weka’da kullanmak üzere ARFF yapısına göre düzenlemeliyiz4. Örnek üzerinden ilerleyelim. Bu amaçla R dili örneklendirmesinde de kullandığım house-votes-84.csv verilerini kullanacağım5.

ARFF dökümanı @RELATION, @ATTRIBUTE ve @DATA yapılarına sahiptir.

  1. @RELATION (ilişki) veri yığınımızın ismini kapsar.
  2. @ATTRIBUTE (özellik) ile değişkenler oluşturulabilir. Değişkenlere atanabilecek veri tipleri ise şunlardır; numeric (sayısal değerler), real (tüm reel sayılar), string (metinler), nominal (kümesel değerler) ve date (tarih).
  3. @DATA (veri) sahip olduğumuz veri yığınıdır.

house-votes-84.csv içeriğini ARFF olarak düzenlediğimizde kullanacağımız içerik şu hale gelecektir;

@RELATION house-votes-84
@ATTRIBUTE v16 NUMERIC
@ATTRIBUTE v1 NUMERIC
@ATTRIBUTE v2 NUMERIC
@ATTRIBUTE v3 NUMERIC
@ATTRIBUTE v4 NUMERIC
@ATTRIBUTE v5 NUMERIC
@ATTRIBUTE v6 NUMERIC
@ATTRIBUTE v7 NUMERIC
@ATTRIBUTE v8 NUMERIC
@ATTRIBUTE v9 NUMERIC
@ATTRIBUTE v10 NUMERIC
@ATTRIBUTE v11 NUMERIC
@ATTRIBUTE v12 NUMERIC
@ATTRIBUTE v13 NUMERIC
@ATTRIBUTE v14 NUMERIC
@ATTRIBUTE v15 NUMERIC
@ATTRIBUTE party {republican,democrat}

@DATA
1,-1,1,-1,1,1,1,-1,-1,-1,1,-1,1,1,1,-1,republican
-1,-1,1,-1,1,1,1,-1,-1,-1,-1,-1,1,1,1,-1,republican
-1,-1,1,1,-1,1,1,-1,-1,-1,-1,1,-1,1,1,-1,democrat
...
Weka vote veri

Explorer uygulaması altından sınıflandırma (classification), gruplandırma (clustering), ilkelleme (regression), özellik seçimi veya özellik çıkarımı (feature extraction) gibi sekmelere ulaşılabilir. Bu işlemlerin çıktılarının görselleştirilmesi de (visualization) yine sekme ve menü üzerinden gerçekleştirilebilmektedir.

Weka simplecli

Peki, yukarıda manuel olarak gerçekleştirdiğimiz CSV içeriğin ARFF olarak düzenlenmesi işlemini Weka araçlarından Simple CLI kullanarak nasıl hızlı ve etkili bir şekilde yapabiliriz? Komut satırı işlemleriyle ilgili sıklıkla pratik yöntemlere değiniyorum. Bu anlamda arayüz ve komut yazımına aşina olanlar Simple CLI kullanımında pek zorlanmayacaklardır. Primer6 ve Command redirection7 sayfalarında kullanılabilecek komutlara dair anlarımlar ve örneklendirmeler mevcut. Az yukarıda bahsi geçen CSV’den ARFF’e dönüştürme işleminde de Primer sayfasında örneklendirilen weka.core.converters.CSVLoader dönüştürücüsünü kullanacağız.

# java weka.core.converters.CSVLoader [csv-dosya-yolu] [cikti-alinacak-dosya-yolu]
java weka.core.converters.CSVLoader /Users/kullanici-adi/Desktop/house-votes-84.csv > /Users/kullanici-adi/Desktop/house-votes-84.arff

Pratik bir şekilde işlemler gerçekleştirebilmeyi mümkün kılan Weka ile ilgili eğitimler için uygulamanın web sitesini inceleyebilirsiniz. Özellikle Book8 altında yer alan sunum içerikleri ve Courses9 bölümünde yer alan ücretsiz derler oldukça iş görmekte. Diğer yandan Future Learn10 tarafından sunulan 15 haftalık ücretsiz Practical Data Mining eğitimini değerlendirebilirsiniz11. Bu süreçte mümkün olduğu ve ilgili konular oluştuğu ölçüde Weka kullanımına dair temel örnekler üzerinden yazılarla devam edeceğim. Öncesinde uygulama üzerinden işlemlerde kullanmak üzere Sample Weka Data Sets12 ve Auto-WEKA : Sample Datasets veri setlerine göz atabilirsiniz13.