Tidyverse ile Veri Bilimi

Tidyverse, veri bilimi için tasarlanmış R paketler koleksiyonudur. Tidyverse içerisinde yer alan tüm paketler temel bir tasarım felsefesini, sözdizimini ve veri yapılarını paylaşır.

Tidyverse paketler koleksiyonu ilk olarak 2016 yılında Hadley Wickham ve arkadaşları tarafından tasarlanmıştır. Farklı paketler yardımıyla R programlama dili üzerinde veri görselleştirme, veri birleştirme ve düzenleme, veri manipülasyonu gibi çeşitli analizler yapılabilmektedir. Tüm paketler birbirleriyle etkileşimli bir şekilde çalıştığı için bu analizleri yapmak çok daha kolay ve hızlı bir duruma getirilmiştir.

Tipik bir veri bilimi projesinde ihtiyaç duyulan araç modeli Şekil 1’de gösterildiği gibidir:

Şekil 1: Program

Import: Öncelikle, üzerinde çalışacağımız veri seti R ortamına aktarılmalıdır. Bu genellikle bir dosyada, veri tabanında ya da web uygulamasında depolanan verileri alıp R’daki bir veri çerçevesine aktardığımız anlamına gelmektedir.

Tidy: Veri seti içe aktarıldıktan sonra bu veriler üzerinden düzenleme yapmak gerekebilir. Bu veri setinde her sütun bir değişkeni temsil ederken satırlar gözlemleri belirtmektedir. Özellikle, verilerin türleri ile içe aktarılan veri seti arasında tutarsızlıklar varsa bunların giderilmesi gerekmektedir. Buna ek olarak veri setinde kayıp gözlemler olabilir. Bu kayıp gözlemleri de gidererek veri seti düzenli bir duruma getirilir. Düzenli veriler önemlidir, çünkü tutarlı yapı verilerle ilgili asıl sorunlara odaklanmayı sağlamaktadır ve analiz yapmayı kolaylaştırır.

Transform: Düzenli verilere sahip olduktan sonra ilk adım onu dönüştürmektir. Dönüşüm, ilgili gözlemleri daraltmayı (bir şehirdeki tüm insanlar veya geçen yıla ait tüm veriler gibi), mevcut değişkenlerin işlevleri olan yeni değişkenler oluşturmayı (hız ve zamandan hız hesaplama gibi) ve bir dizi özet istatistikler hesaplanmasını içerir (sayımlar veya ortalamalar gibi). Böylece veri setinin konusu hakkında daha detaylı bilgilere sahip olabiliriz.

İhtiyaç duyulan değişkenlerle düzenli verilere sahip olduğumuzda bilgi üretmenin iki ana motoru vardır: görselleştirme ve modelleme.

Visualize: Görselleştirme, veriler hakkında yeni sorular çıkarma, veri seti hakkında faydalı bilgiler elde etme gibi sebeplerden dolayı kullanılmaktadır. İyi bir görselleştirme yanlış soruyu sorduğumuzu ya da farklı veriler toplamamız gerektiğini de gösterebilir. Bu yüzden veriler düzenlendikten sonra, bu veriler hakkında bilgi edinmek için veriyi görselleştirmek en faydalı aşamalardan birisidir.

Model: Modeller, görselleştirme için tamamlayıcı araçlardır. Veri seti hakkındaki soruları yeterince hassas bir şekilde belirledikten sonra, cevaplamak için bir model kullanabiliriz. Modeller temelde matematiksel veya hesaplamalı bir araçtır, bu nedenle genellikle iyi ölçeklenmektedir. Ancak her model varsayımlar yapar ve doğası gereği bir model kendi varsayımlarını sorgulayamaz. Bu yüzden modelleme aşamasında veriyi iyi anlamak ve modele uygun hale getirmek gerekir.

Communicate: Veri biliminin son adımı ise bir veri analizi projesinin sonuçlarını başkalarına iletmektir. Sonuçları başkalarına da iletemediğimiz sürece, modellerimiz ve görselleştirmemizin verileri anlamamıza ne kadar yol açtığı önemli değildir.

Tidyverse paketler koleksiyonu yukarıda saydığımız aşamaları yapmamızı kolaylaştırır ve bunu çeşitli paketler kullanarak yapmamızı sağlar. Şimdi bu paketlerden bahsedelim:

ggplot2 paketi ile düzeni veriler üzerinde görselleştirmeler yapabiliriz. Örneğin; box plot, histogram, scatter plot ve daha bir çok grafik için ggplot2 paketinin içerisinde fonksiyonlar yer almaktadır. Buna ek olarak, değişkenler arasındaki ilişkiyi modelleyeceğimiz ve görsel olarak görebileceğimiz fonksiyonları da içermektedir.

Veri manipülasyonu için en çok zorlandığımız işlevleri bizim için daha kolay bir hale getiren pakettir dplyr ve temel olarak en çok ihtiyaç duyacağımız 5 fonksiyonu içermektedir:

mutate() mevcut değişkenlerle ilişkili yeni değişkenler ekler.

select() değişkenlerin isimlerine göre seçim yapar.

filter() değişkenler ile ilgili durumları değerlerine göre seçer, filtreleme yapar.

summarise() birden çok değeri tek bir özete indirger.

arrange() satırların sırasını değiştirir.

dplyr paketi günümüzde çok yaygın olarak kullanılmaktadır ve tidyverse paketler koleksiyonunun içerisinde olan en popüler paketlerden birisidir.

Tidyr’in amacı, düzenli veriler oluşturmanıza yardımcı olmaktır. Düzenli veriler şu durumlarda gerçekleşir:

  1. Her sütun değişkendir.
  2. Her sıra bir gözlemdir.
  3. Her hücre tek bir değerdir.

readr paketinin amacı csv, tsv ve fwf gibi formatlarda yer alan veri setlerini okumanın hızlı ve kolay bir yolunu sağlamaktır. Bir çok farklı formatlarda veri yapılarını desteklediği için çok tercih edilen paketlerden birisidir.

purrr, fonksiyonlar ve vektörlerle çalışmak için eksiksiz ve tutarlı bir araç seti sağlayarak R’nin fonksiyonel programlama (FP) araç setini geliştirir. Birçok döngüyü hem daha kısa hem de okunması daha kolay olan kodla değiştirmemize olanak tanıyan map() fonksiyonları ailesi en çok tercih edilen komutlardandır.

tibble, R programlama dilinin veri yapılarından biri olan data frame’in geliştirilmiş versiyonudur. Bu veri yapısı kullanılarak veri setleri daha anlaşılır ve analiz yapılması kolay hale getirilir. tibble paketinin içerisinde verinin yapısını ayarlayabileceğimiz bazı fonksiyonlar yer almaktadır.

Stringr paketi, metinsel ifadelerle çalışmayı olabildiğince kolaylaştırmak için tasarlanmış bir dizi uyumlu fonksiyon sağlar. Metinsel ifadeler birçok veri temizleme ve hazırlama görevinde büyük rol oynadıkları için tercih edilen paketlerden birisidir.

forcats paketinin amacı düzeylerin veya değerlerin sırasını değiştirmek de dahil olmak üzere faktörlerle ilgili ortak sorunları çözen bir araç seti sağlamaktır.

KAYNAKLAR

  • https://www.tidyverse.org/
  • H. Wickham & G. Grolemund (2017). R for Data Science.