Veri Bilimi ve Programlama Dilleri

Bu yazıda veri bilimi alanında en çok kullanılan diller üzerindeki yorumlarımı paylaşmak istiyorum. Birkaç yıl sonra bu yazı muhtemelen güncelliğini kaybedecek. Bugün öve öve bitiremediğimiz programlama dilleri ya da kütüphaneler belki de yerlerini daha modernlerine bırakacak. Fakat yine de şu an ön planda olanlar hakkında bir değerlendirme yapmak isterim.

İki Büyükler: Python ve R

Veri bilimi alanında en çok kullanılan iki programlama dili Python ve R. Bunların yanı sıra MATLAB, Julia, Scala gibi diller de kullanılamaktadır. Teknik olarak her programlama dilini kullanabilirsiniz ama, Python ve R gibi diller geniş bir tarafından kullanıldığı için bunları tercih etmek bir takım avantajlar sağlar.

Python genel amaçlı bir dil iken R ve alana özgü bir dildir. Yani Python ile veri bilimi dışındaki işler için de kullanabilirsiniz. R ile çalışırsanız çoğunlukla bu alanda sınırlı kalabilirsiniz.

Eğer bir programlama dilinde ciddi bir tecrübeniz yoksa ve bir tanesini öğrenmek istiyorsanız, ben şahsen Python programlama dilini tavsiye ederim. Çünkü gerçekten pek çok problem için bir çözüm barındırıyor. Bunun yanı sıra öğrenmesi de kolay.

Makine öğrenmesi alanında ve özellikle derin öğrenme alanında Python programlama dili diğer programlama dillerine göre çok daha iyi bir tercih olabilir. Bu yazının yazıldığı gün itibariyle, derin öğrenme alanı oldukça popüler bir alan. Bu alandaki uygulamaların ilk önce Python ile yapıldığını görüyorum. Örneğin, derin öğrenme için geliştirilen pek çok high level kütüphane Python ile geliştiriliyor.

R programlama dili ise düzgün yapılandırılmış veri türü için oldukça kullanışlı. Veriyi dönüştürme, temizleme, açıklayıcı veri analizi (EDA), veri görselleştirme gibi alanlarda oldukça kapsayıcı kütüphaneleri var. Aslında temel R programlama dilinin çok eskide kalmış ve kullanışsız bir arayüzü var. Fakat modern kütüphaneler kurduğunuzda (örneğin tidyverse) bu görünümü epey değişiyor.

Julia

Julia konusunda benim ciddi bir tecrübem yok ama yine de gelişmeleri göz ucu ile takip etmeye çalışıyorum. Şu an, Python ya da R programlama dili ile çalışırken üçüncü bir programlama dili öğrenmek için ciddi bir motivasyonum yok. 

Özetle, bu programlama dilinin ön plana çıkan tarafı Python ve R programlama dili gibi yüksek düzeyli bir programlama dili olması ve aynı zamanda biraz özen gösterilerek yazıldığında C kadar hızlı olabilmesi. Trende bakılırsa önümüzdeki yıllarda kullanımı artabilir.

Scala

Yine ciddi bir tecrübem olmakla beraber, Scala programlama dilini tercih eden insanların daha çok büyük veri alanında çalıştıkları için bu dili kullandıklarını görüyorum.

MATLAB & Octave

MATLAB benim kullandığım ilk programlama diliydi. Üniversitede ekonometri dersinde kullanmıştım. Kullanmak için lisans gerekiyor. Dolayısıyla bu açık kaynak dillere göre ciddi bir dezavantaj. Alternatif olarak Octave da kullanmak mümkün. Ama o da MATLAB e göre biraz kısıtlı. Internette bulabileceğiniz bazı online dersler MATLAB ya da Octave ile verildiğini görebilirsiniz. Özellikle Coursera'daki Machine learning ve bazı Robotics dersleri. Fakat bu dilleri öğrenmek çok zor değil. Sadece bu dersleri almak için temellerini hızlıca gözden geçirebilirsiniz.

Bir İfade Aracı Olarak Programlama Dili

Özel bir sebebiniz yoksa, ben yine de Python programlama dilini tavsiye ederim. 2019 Şubat ayında en iyi tercih o. Önümüzdeki yıllarda değişebilir elbette. Ama zamanınızı hiç ölmeyecek şeyleri ayırmakta fayda var. Programlama dilini sadece bir kendinizi ya da bir fikri ifade aracı olarak düşünebilirsiniz. Ve elbette iyi ifade edebilmenizde fayda var.

Bir an düşünün. Şu an derin öğrenme bir romanı anlayabilme seviyesine gelmeye yakın. Her ne kadar basit hataları düzeltmem gerekse de, ben bu yazıyı konuşarak bir uygulamaya yazdırıyorum.

Böyle şeylerin nasıl çalıştığını anlamak elbette sadece çok iyi programlama dili bilmekten geçmiyor. Bunun altında yatan fikir, programlama dilinden bağımsız. Ama yine de fikri ifade edebilmek için bir tane programlama dili bilmeniz gerekiyor. Programlama dili alanındaki bilginizin derinleşmesine istiyorsanız dilerseniz buna daha çok yoğunlaşabilirsiniz. Fakat aynı zamanda stratejik davranarak sadece bir programlama dilini iyi öğrenip zamanınızı çoğunlukla hiç eskimeyecek şeylere, yani fikirlere ayırabilirsiniz.


  • Data Science