Sayfalar

13 Ekim 2012 Cumartesi

RapidMiner'a Excel İle Veri Seti Ekleme

Merhaba Arkadaşlar!

Oracle üzerinden giden bir blogger olarak genelde açık kaynak kodlu ürünleri tercih etmeye çalışıyorum. Günümüzün parlayan veri madenciliği sektörünün en önemli kısımlarından birisi de veri madenciliği yorumlayıcılarıdır. Bu alanda oldukça fazla ürün geliştirilmiş olup halen bu süreç devam etmektedir. Konuyla biraz ilgiliyseniz de bu sektörün yok olup gitmesinin biraz zor olacağını kolaylıkla anlarsınız. Şimdi bu yazıda ben açık kaynak kodlu ve çok kullanışlı olan veri madenciliği yorumlayıcısından bahsedeceğim. Ne olduğunu, ne işe yaradığıını ve nasıl kullanıldığını bir örnekle destekleyerek açıklayacağım.

Öncelikle http://rapid-i.com/content/view/167/82/ (eğer win32 kullanıyorsanız) linkinden ister gösterilen formu doldurarak, isterseniz de formu doldurmadan direk aşağıdaki link ile RapidMiner 5.2'yi bilgisayarınıza indirin. Eğer işletim sisteminiz farklıysa http://rapid-i.com/content/view/26/84/ linkinden gereken versiyonu bilgisayarınıza indirebilirsiniz. Ben işlemleri win 32 üzerinden sürdüreceğim.

RapidMiner'ın kurulumunu windows üzerinde yapamamanız için şu an bu sayfada bulunmuyor olmanız gerekir. O yüzden ayrıca bunu anlatmanın gereği yok. Eğer küçük problemlerle karşılaşırsanız kendi sitesi üzerindeki http://rapid-i.com/content/view/17/40/lang,en/#starting:windows linkinden gereken yerleri inceleyerek yardım alabilirsiniz ki buna ihtiyaç duyacağınızı sanmıyorum.

RapidMiner'ı indirip kurduysanız artık ne işe yaradığından bahsedebiliriz. Bildiğimiz gibi günümüz dünyasında şirketler için verilerin kıymeti paha biçilemez. Her birimiz ilişki kurduğumuz şirketler için birer potansiyel veriyiz. Bunun ne kadar ahlaki olduğu tartışılsa da pek çoğumuz da bunlarla haşır neşir olarak para kazanacağız (: Peki, bu kadar çok veri nasıl anlam ifade eden kampanyalara dönüşebiliyor? Ya da bir patron şirketin geçmiş verilerine bakarak A bölgesinin müdürünü nasıl işten çıkarmaya karar veriyor? Elbette bunun yanıtını bilmek için Veri Madenciliği ve İş Zekası hakkında bilgi sahibi olmak gerekir. İşte RapidMiner veriler üzerinde 400'ün üzerinde algoritma koşturarak o verileri size anlamlı ve yoruma açık hale getirir. Sadece RapidMiner değil elbette. Spss, R, Clementine gibi pek çok ücretli-ücretsiz uygulama bu işi yapar. RapidMiner'ı öne çıkaran özellikler aşağıdaki gibidir;
-Çok fazla algoritmayı desteklemesi
-Çok fazla uzantıyı-formatı desteklemesi
-Açık kaynak kodlu olması
-Grafik öğelerine önem vermesi
-Kurulumunun, kullanışının çok kolay olması (sürükle-bırak mantığı)
-Popüler veritabanlarını direkt olarak desteklemesi. Desteklemediği veritabanları için de rahatlıkla uyarlanabilmesi.
Şeklinde sıralayabiliriz. Bunun yanında açık kaynak kodlu olması hasebiyle internet üzerinden döküman bulabileceğiniz bir yazılım. Eğer niyetiniz BI sektöründe ilerlemekse RapidMiner başlangıç için iyi bir seçim olabilir.

RapidMiner'ın ne işe yaradığını öğrendikten sonra artık küçük bir uygulama yapabiliriz. Madem veriler üzerinde işlem yapacaksınız; öyleyse ilk önce elinizde bir veri kümeniz(data set) olmalı. İnternette bu tarz uygulamalarda çalıştırmak için çok fazla veri seti örnekleri mevcut. Hatta TÜİK'in sitesinde de çok zengin içerikler mevcut. Ancak başlangıç için temizlenmiş verilere ihtiyaç duyabilirsiniz. Ben burada verilerin temiz olduğunu varsayarak işleme devam edeceğim. Veri temizleme işlemleri için de yine RapidMiner'dan ilgili operator'ü seçerek yapabilirsiniz. Bu biraz daha ileri düzey bir konu. Eğer konu ile ilgili yazmaya devam edecek olursam bunları da anlatmaya çalışırım. Her neyse; diyelim ki TÜİK ya da benzeri bir siteden text dosyası halinde bir veri kümesi indirdiniz.

RapidMiner'da pek çok veri girişi yöntemi mevcut fakat burada Excel ile veri almayı öğrenelim. Öncelikle Excel'i açıyoruz ve Veri seçeneği altındaa Metinden kısmını tıklıyoruz. Açılan pencerede indirilen text dosyasının yerini bildiriyoruz. Sınırlandırılmış'ı seçip ilerliyoruz. Ayırıcı olarak , (virgül) seçiyoruz. İlerleyip varsayılan ayarlarla işlemi bitiriyoruz. Sonuçta metin dosyasındaki verilerin satır ve sütunlara düzenli olarak yerleşmesi gerekiyor. Bu işlemden sonra excel dosyasını kaydedip çıkıyoruz.

RapidMiner'ı açıyoruz. File->New ile yeni proses açıyoruz. Read Excel Prosesini sürükleyip çalışma ekranına bırakıyoruz.
Daha sonra eklediğiniz operatörün özelliklerine erişmek için üzerine tıklayın. Sağda o operatöre ait özelikler belirir. Yine bir operatörün ne iş yaptığını bilmiyorsanız sağ tıklayıp operatör hakkında bilgi edinebilirsiniz. Yeni başlayanlar için bütün operatörlerin tek tek incelenmesini öneririm. 


Browser ile Excel dosyasının olduğu dizini gösteriyoruz. Daha sonra Import Configuration Wizard ile işlerimizi kolaylaştıran sihirbazımızı açıyoruz. Excel dosyasını seçip Next ile ilerliyoruz. Bu sayfada almak istemediğiniz verilerin seçimini iptal edebiliyorsunuz. Tüm verileri alabilmeniz için hepsinin seçili olması gerekir. 
Next ile ilerleyelim. Bir sonraki adım 3 te satırlarınıza ait nitelikleri belirliyorsunuz. Burayı Next ile geçelim. Bir sonraki adım olan aşağıdaki resimde görülen aşama en önemlisidir. Burada sütunların veri tipleri belirlenir. Genelde RapidMiner bu tipleri doğru olarak belirler. Sütunun ID olması, Classification ise Label kullanımı gibi özellikler burada belirlenir. Diğer sütunlar attibute olarak bırakılır. Bu işlem finish butonu ile bitirildikten sonra artık girdiniz kullanımza hazırdır ve istediğiniz algoritmalar ile deneyebilirsiniz. 
RapidMiner'da sürüklenen operatörün sağ altında eğer kırmızı işaret görülüyorsa o operatör hatalı kullanılmış demektir. Eğer yeşil olursa doğru kullanılmış demektir. Eğer sarı ise de şu an aktif olarak çalışmıyor demektir.

Bunun dışında RapidMiner'da kurulumla birlikte gelen ve öğrenmenizi hızlandıracak algoritmalar için her birine birer örnek eklenmiştir. Bunları inceleyerek daha hızlı yol alabilirsiniz. Bunları soldaki Repositories'in altında Sample kısmından görebilirsiniz.  

Görüldüğü gibi RapidMiner'ın kullanıcı dostu bir arayüzü vardır. Arayüzü öğrenmenizle ilgili bir sıkıntı yaşayacağınızı sanmıyorum. Önemli olan hangi algoritmanın hangi işi yaptığını bilmek. Bunun için de objelere ait bilgileri mutlaka takip etmelisiniz. 

Bu yazıda özetle bir veri setinin Excel üzerinden RapidMiner'a import edilmesini aktarmaya çalıştım. Umarım faydalı olmuştur. Önümüzdeki günlerde bu konuyla alakalı çalışacağım. Bu çalışmayı burada paylaşmayı düşünüyorum. Şimdilik hiç konu üzerine bilgisi olmayan yeni başlayanlar için bir giriş yazısı niteliğinde olan bu yazıyla yetinelim. 

Hepinize başarılar!

19 yorum:

  1. verdiğiniz bilgi sayesinde programı bir aşamaya kadar anladım fakat ilerleyemiyorum.bir hastanede ki hasta anamnez bilgileri doğrultusunda önceden tesbit edilmemiş bir bilgi açığa çıkarmak istiyorum fakat nasıl başlayacağımı bilemedim.excel de mi veri toplayayom yoksa sql de mi onu bile ayrıştıramıyorum.birde bu program ile ilgili daha fazla türkçe bilgi bulamaz mıyız

    YanıtlaSil
  2. Merhaba,
    Anladığım üzere VM çalışmalarınızda başlangıç aşamasındasınız. Bu durumda ben size Excel üzerinde çalışma yapmanızı bu kısmı öğrendikten sonra işin veritabanı boyutuna geçmenizi öneririm. Bahsettiğiniz bilgilerin hastane veritabanında mevcut olduğunu düşünerek bunları excel'e export etmenizi öneririm. Ve malesef RapidMiner üzerine fazla Türkçe kaynak mevcut değil. Fakat eğer İngilizceniz varsa youtube üzerinde eğitim videoları mevcut. Kolay gelsin.

    YanıtlaSil
  3. merhaba şuan rapidminnerle boğuşuyorum excelden atıyor tüm aşamaları tamamlıyorum ama son aşamada isim vermem gerekiyor ya işte orda verdiğim isimlerin hiçbirini kabul etmiyor. yani excelden seçiyorum herşey tamam en son adımda isim istiyor orayı halledemiyorum kabul etmiyor. ne yapmam gerekir çok teşekkürler şimdiden

    YanıtlaSil
  4. İsim vermekten kastınız sanırım attribute değerlerinin belirlendiği adım. Sihirbaza ait son adımı kastediyor olmalısınız. Son adımda seçtiğiniz veri tipi ile sütunun gerçek veri tipi uyumlu olmalı. Bu aşama dahil olmak üzere RapidMiner'a veri eklerken herhangi bir isimlendirme yapmanıza gerek yok. Sadece kullanacağınız algoritmaya göre veri setini hazırlayıp bu veri setindeki sütunları bu algoritmaya uyacak şekilde attribute değerlerini vermelisiniz.

    YanıtlaSil
  5. mesela yıllık enflasyon oranlarını yazdım diyelim veri seti attribute mi olur?

    YanıtlaSil
  6. Sınıflandırmak istediğiniz sütuna göre durum değişir. Sınıflandırılacak sütun genelde "label" seçilir. Yada eğer ID sütununuz varsa bu sütunun attribute değeri ID olarak seçilir. Bu gibi özel durumlar haricinde kalan hesaplama amaçlı sütunlar da varsayılan olarak bırakılabilir.

    YanıtlaSil
  7. çok teşekkür ederim yardımlarınız için tüm aşamaları tamamladım karar ağacını oluşturdum :)))

    YanıtlaSil
  8. mrb excelden veri girip birliktelik kuralları ve sınıflandırma işlmlerinin nasıl yapıldıgını özetle acıklayabılırmısın

    YanıtlaSil
  9. Excelden veri alıp karar ağacı oluşturma için öğretici bir örneği aşağıdaki linkte anlatmıştım:
    http://mcoshtan.blogspot.com/2012/11/rapidminerda-decision-tree-uygulamas.html
    Fakat bu sınıflandırma algoritmalarından olan karar ağacı dökme işleminin bir örneğiydi. Onu buradan takip edebilirsiniz. Yalnız birliktelik kuralları için RapidMiner'da genelde Apriori algoritması aranır. Fakat bu algoritma RapidMiner'a direkt konmamıştır. Bunun yerine FP-Growth denen ve ihtiyacınızı görecek bir algoritma mevcuttur ki bunu Operators kısmında Modeling menüsü altında Association and Item Set Mining kısmında bulabilirsiniz. Kolay gelsin.

    YanıtlaSil
  10. tesekkurler bu işlemler yapıldıktan sonra yorumlama için rapidmıner da bır rapor kısmı varmı yoksa onu kullanıcı kendısı mı belırleyecek

    YanıtlaSil
  11. bu sınıflandırma ve bırlıktelık kuralları işlemlerinin sırası nasıl olacak bu konuda da bılgılendırırsenız sevinrim tesekkürler

    YanıtlaSil
  12. Gökhan Bey şunu belirteyim ki RapidMiner'da işlemlerin sırası daima aynıdır. (Ki bunu da bugün eklediğim yazıda da anlattım bkz: RapidMiner'da K-Means İle Kümeleme Çalışması) Veri setiniz hazırsa hiç beklemeyin. Hemen bu yazılarda anlatılanları uygulayın. Sınıflandırma, kümeleme, birliktelik metotlarının uygulanmasındaki tek fark kullanacağınız 1 operatörün değişmesi. En azından şimdilik... Ayrıca evet: RapidMiner'da raporlama yapabilmeniz mümkün. Bununla ilgili Rapor oluşturma operatörleri mevcut. Generate Report gibi...

    YanıtlaSil
  13. cok tesekkur ediyorum anlamadığım nokta mesela sınıflandırmayı ayrı APRIORI algoratması ıslemlerını ayrı ayrı maın process menusundemı yapacağım onun dıısnda yazılarınızdan baya bısey kazandım Kümeleme işleminde ki algorıtma sırasını sınıflandırma ıcınde uygulayabılırmıyım

    YanıtlaSil
  14. Tek bir prosesle de işi halledebilirsiniz. Ama sınıflandırma ve apriori algoritması(birliktelik metodu) bambaşka metotlar. Bu kavramları karıştırmamak lazım. Kümeleme için gösterdiğim operatörleri evet; sınıflandırma için de kullanabilirsiniz.

    YanıtlaSil
  15. rica etsem onuda yazı olarak ekleyebılırmısınız denedım hep error verıyor

    YanıtlaSil
  16. yaa hocam bana numaranızı verebilirseniz çok memnun kalırım. Burdan olmuyor yaa

    YanıtlaSil
  17. ellerine sağlık. çekilen sıkıntı başkalarına fayda sağladı. okuyan herkesin işine eminim yaramıştır. kolay gelsin :)

    YanıtlaSil
  18. Teşekkür ederim Günce :) Gökhan Bey üzgünüm, mail adresim ile iletişim kurabilirsiniz. (Bkz: Hakkımda)

    YanıtlaSil
  19. Merhabalar Muhammed hocam,

    Teamwiewer veya farklı bir platformda programın eğitimi ücretli şekilde vermeyi düşünürmüsünüz. Eğer düşünürseniz yorumuma cevap verdikden sonra email ile iletişim kurabilirim. Fazla detaylardan bahsetmek istemedim. Fakat öğrenmek istiyorum programı.Fazla vaktinizide almayacağıma eminim. Yani haftada 1-2 saat veya siz ne diyorsanız o. Çalışmalarınızda kolaylıklar dilerim.
    Saygılarımla

    YanıtlaSil