Knime ile Veri Bilimi : Veri Manipülasyonu

Veri Manipülasyonu

Merhaba, bu yazıda Knime ile veri manipülasyonun nasıl gerçekleştirileceğini inceleyeceğiz. Knime manipülasyon işlemi için bize birçok seçenek sunmakta. Biz bu seçeneklerin küçük bir kısmını inceleyeceğiz. Manipülasyon düğümlerine ‘ Node Repository -> Manipulation’ adımlarını izleyerek erişebilirsiniz.

Şimdi akışımızı oluşturup. Düğümlerin konfigürasyonlarını yapalım.

İlk olarak eksik veriler tespit edelim. Bunun için ‘Missing Value’ düğümünü kullanıyoruz.

Missing Value

Burada eksik değer bulduğunda nasıl bir işlem uygulamasını istiyorsak onu belirtiyoruz. Veri tipine göre belirtebildiğimiz gibi ‘Column Settings’ kısmından tek tek sütun bazlı olarak da belirtebiliriz. Eksik değeri doldurmak için birçok yöntem bulunmaktadır. Ortalama, medyan, maksimum değer, minimum değer vb. Knime bu seçeneklerin hepsini bize sunmakta.

  • Average Interpolation: Eksik değerleri, yapılandırıldığı sütundaki önceki ve sonraki karşılaşılan eksik olmayan değerin ortalama değeriyle değiştirir.
  • Fix Value (Double): Eksik değerleri kullanıcı tarafından verilen bir Double değer ile değiştirir.
  • Fix Value (Integer): Eksik değerleri kullanıcı tarafından verilen bir Interger değer ile değiştirir.
  • Fix Value (String): Eksik değerleri kullanıcı tarafından verilen bir String değer ile değiştirir.
  • Fix Value (Long): Eksik değerleri kullanıcı tarafından verilen bir Long değer ile değiştirir.
  • Linear Interpolation: Eksik değerleri, yapılandırıldığı sütunda önceki ve sonraki karşılaşılan eksik olmayan değer arasındaki doğrusal enterpolasyonla değiştirir.
  • Maximum: Sütunun en büyük değerini bulur ve tüm eksik değerleri onunla değiştirir.
  • Mean: Bir sütundaki eksik olmayan tüm hücrelerin ortalama değerini hesaplar ve eksik değerleri bu ortalamayla değiştirir.
  • Median: Sütunun medyan değerini bulur ve tüm eksik değerleri onunla değiştirir.
  • Minimum: Sütunun en küçük değerini bulur ve tüm eksik değerleri onunla değiştirir.
  • Most Frequent Value: Bir sütundaki en sık değeri hesaplar ve eksik değerleri onunla değiştirir.
  • Next: Eksik değerleri, yapılandırıldığı sütunda bir sonraki karşılaşılan eksik olmayan değerle değiştirir.
  • Previous: Eksik değerleri, yapılandırıldığı sütunda karşılaşılan son eksik olmayan değerle değiştirir.
  • Remove Row: Sütun eksik bir değere sahipse satırları kaldırır.
  • Rounded Mean: Bir sütundaki eksik olmayan tüm hücrelerin ortalama değerini hesaplar ve eksik değerleri bu ortalamayla değiştirir.

Aşağıdaki görselde sol tarafta soru işaretleri verisetinde eksik verileri temsil etmekte sağ tarafta ise ‘missing values’ düğümü ile eksik verileri temizlemiş olduk.

Category To Number

Bu düğüm, nominal verilerle sütunlar alır ve her kategoriyi bir tamsayıya eşler.

  • Columns: İşlenecek sütunları ekleyin. Yalnızca nominal verilere sahip sütunlar ekleyebilirsiniz.
  • Append columns: İşaretlendiğinde, hesaplanan sütunlar giriş tablosuna eklenir. Aksi takdirde, hesaplanan sütunlar ‘Include’ listesindeki sütunların yerini alır.
  • Column suffix: Hesaplanan sütunların sütun adı, yazılan sonekle eklenen girişteki sütunun adıdır.
  • Start value: İlk satırdaki kategori bu değerle eşlenecek.
  • Increment: Artış değeri.
  • Max. categories: Verilen değerden daha fazla kategori olması durumda işleme devam edilmez.
  • Map missing to: Eksik değer bulması durumunda girmesini istediğiniz değeri yazabilirsiniz.

Double to Int

Bir sütundaki (veya sütun kümesinde) Double değerleri Interger değere dönüştürür.

  • Column Selection: İlgi sütunlarını “Include” listesine taşıma
  • Create long values: 32 bit tam sayı değerleri yerine 64 bit uzun değerler oluşturmak için bu seçeneği kullanın.
  • Rounding type: Sayıyı nasıl yuvarlayacağını belirleyin. (Round: standart yuvarlama, Floor: sonraki küçük tam sayı,  Ceil: sonraki büyük tam sayı)

Double olan ‘fare’ sütunun ‘floor’ metodu ile integer veri tipine çevirdik.

String Manipulation

String değerler üzerinde manipülasyon işlemlerini gerçekleştirmek için kullanılır.

  • Column List: Liste, giriş tablosunda bulunan sütunu içerir.İfade düzenleyicisine ilgili alanı eklemek için sütun adlarından herhangi birini çift tıklatın. Geçerli seçiminizin yerini alır veya sadece geçerli kare konumuna ekleyin.
  • Flow Variable List: Liste, düğüm girişinde mevcut olan akış değişkenlerini içerir. Girişlerden herhangi birine çift tıklamak, geçerli imleç konumuna ilgili tanımlayıcı ekler (varsa seçimin yerini alır).
  • Function: Açıklamasını görüntülemek için tek bir fonksiyon seçin. Çift tıklatma işlevi ifade düzenleyicisine ekler. Geçerli seçiminizin yerini alır veya sadece geçerli araç konumuna ekleyin. Görüntülenen işlevler listesini daraltmak için bir kategori seçin.
  • Expression: Otomatik tamamlama kutusu almak için ctrl + Space tuşlarına basabilirsiniz.
  • Replace/Append: Sonucun başka bir sütun olarak gösterilmesini istiyorsanız ‘Append’ seçeneğini işaretleyip sütun ismini yazabilirsiniz. Aksi takdirde mevcud sütun yeni değerleri ile değiştirilecektir.
  • Insert Missing As Null: Seçilirse, girdi tablosundaki eksik değerler baskıda ‘NULL’ olarak yeniden sunulabilir.

Burada yazığımız fonksiyon ile isim sütunun tüm karakterlerini büyük harfe çevirdik.

Column Filter

Bu düğüm, sütunların giriş tablosundan filtrelenmesine izin verir ve sadece kalan sütunlar çıktı tablosuna aktarılır. İletişim kutusunda, sütunlar ‘Include’ ve ‘Exclude’ listesi arasında taşınabilir.

  • Include: Bu liste, giriş tablosunda çıktı tablosuna eklenecek sütunların adlarını içerir.
  • Exclude: Bu liste, giriş tablosunda çıktı tablosundan dahil edilmeyecek sütunların adlarını içerir.
  • Filter: Belirli sütun adları veya ad alt dizeleri için ‘Include’ veya ‘Exclude’ listesini filtrelemek üzere bu alanlardan birini kullanın.
  • Enforce Exclusion/ Enforce Inclusion: Giriş tablosu özellikleri değişse bile geçerli listeyi aynı kalacak şekilde uygulamak için bu seçeneği işaretlenir. Sütunlardan bazıları artık kullanılamıyorsa bir uyarı görüntülenir. (Yeni sütunlar otomatik olarak dahil etme listesine eklenir.)

Row Filter

Düğüm, belirli kriterlere göre satır filtrelemeye izin verir.

  • In- or exclude rows by criteria: Öncelikle sol taraftan filtreleme için hangi kriterlerin kullanılması gerektiğini seçmelisiniz. Ayrıca, seçilen kriterlere göre satırları dahil etmeyi veya hariç tutmayı da seçebilirsiniz. Seçime bağlı olarak, sağ paneldeki filtre parametrelerini ayarlamanız gerekir.
  • Column value matching: Öznitelik değerine göre filtrele seçiliyse değeri eşleştirilmesi gereken sütunun adını seçin. Seçilen sütun bir koleksiyon sütunu ise, koleksiyon öğelerine dayalı filtre seçeneği, her satırı dize sunumu yerine koleksiyonun öğelerine göre filtrelemeyi sağlar. Burada ‘Wildcard’ ile istedeğiniz paterni tanımlayarak filtreleme işlemini gerçekleştirebilirsiniz.
  • Row number range: Aralığa göre filtrele seçiliyse, ilk satır numarasını içinde/dışında olarak belirleyin. Aralığın sonu satır numarası ile belirtilebilir veya tablonun sonuna ayarlanabilir, bu da kalan tüm satırların dahil olmasına/hariç tutulmasına neden olur.
  • Row ID pattern: Satır kimliğine göre filtrele seçiliyse, her satırın satır kimliğiyle eşleşen normal bir ifade belirtin. Büyük/küçük harf duyarlı bir eşleşme yapılması gerekiyorsa ve satır kimliğinin belirtilen desenle başlaması gerekiyorsa bir onay işareti ayarlanabilir.

Burada ‘fare’ sütunun 50-60 aralığında olanların görüntülenmesini sağladık. Farklı aralıklar ve paternlere göre filtreleme işlemi gerçekleştirilebilir.

Partitioning

Giriş tablosu iki bölüme ayrılır (örn. train ve test verileri.) İki bölüm, iki çıkış portunda bulunmaktadır.

  • Absolute: İlk bölümdeki satırların mutlak sayısını belirtin. Eğer burada belirtilenden daha az satır varsa, ikinci tabloya veri girişi sağlanamaz. Pek tercih edilen bir yöntem değildir.
  • Relative: Veriyi girilen yüzde oranına göre böler. Girilen yüzde değeri ilk oluşturacak tabloya girilecek veri miktarını belirtir.
  • Take from top: Bu mod, en üstteki sıraları ilk çıktı tablosuna, geri kalanını da ikinci tabloya yerleştirir.
  • Linear sampling: Veriyi verilen orana göre atlamalı olarak böler.
  • Draw randomly: Veriyi verilen orana göre rastgele böler.
  • Stratified sampling: Veriyi belirlenen etikete göre belirlenen oranda böler. Hem birinci bölme de hem de ikinci bölmede belirlenen sütunda eşit miktarda olacak şekilde böler. Örneğin 1-0 sınıflandırması yapacağımızı düşünelim. Veri setinde %70 oranında 1, %30 oranında ise 0 değeri olsun. Bölümleme islemi geçekleştikten sonrada bu oranı koruyarak veri setini böler.
  • Use random seed: Veriyi her bölmenizde aynı rastgele oran ile bölmek istiyorsanız bu seçeneği seçmelisiniz. Aksi takdirde veri her seferinde farklı şekillerde bölünecektir.

Aşağıdaki görselde düğümün çıktısı gözlemlenmektedir.

Referanslar
  • https://www.knime.com/getting-started-guide

Data Science Earth

Data Science Earth ekibi, üst düzey Veri Bilim çözümleri üretmek amacı ile toplanmış akademisyenler ve uzmanlardan oluşmaktadır. Öncelikli olarak veri bilincini geliştirmeyi ve küreselleşen rekabet ortamında verinin gücünün doğru kullanılmasını sağlamayı amaçlamaktadır.

Sponsor

QuestionPro 35 farklı soru seçim özelliği ile anket çalışmalarımıza güç katmaktadır.