Veri Madenciliğinde Kullanılan Programlama Dilleri

Veri madenciliği, Harvard Business Review’e göre 21.YY en değerli mesleklerinden biri. En değerli madenin artık petrol değil, veri olduğu günümüzde müşterinin ne alacağını önceden tahmin etmek, olayları analiz etmek önemli stratejilerin parçaları haline geliyor. Bu yazımızda veri madenciliğinde kullanılan dillerini derledik.

26

Veri madenciliği güçlü ve sofistike analizlere ihtiyaç duyan gerçek zamanlı prosesler için günümüzün olmazsa olmazları arasında yer alıyor. Endüstri 4.0’ın yapı taşlarından olan büyük veri ve bulut depolama gibi çözümler, veri madenciliğine duyulan ihtiyacın artmasına neden oluyor. Peki devasa bilgi setleri arasında etkili ayıklama yapmak için hangi araçları kullanmalıyız?

R

1997'den beri revaçta olan bu yazılım, Matlab ve SAS gibi pahalı istatistiksel yazılımlara karşı güçlü bir bedava alternatif oldu. Son yıllarda veri biliminin altın çocuğu haline gelen R dili sadece istatistikçiler için değil, Wall Street tüccarları, biyologlar, silikon vadisi programcıları arasında da epey popüler hale geldi. Google, Facebook, Bank of America ve New York Times gibi firmalar R dilini kullanıyorlar ve böylece bu dil ticari anlamda daha da yaygınlaşıyor.

R dili basit ve apaçık bir görünüme sahip. Sadece birkaç satır kod ile kompleks veri setleri arasından ayıklama yapabilir, sofistike model fonksiyonları içerisinde verileri manipüle edebilir ve gösterişli grafikler ile numaraları temsil edebilirsiniz. R dilinin en değerli tarafı etrafında enerjik bir ekosistemin geliştirilmiş olmasıdır. R dili topluluğu, zaten zengin olan fonksiyon setlerine şu an bile yeni paketler ve özellikler ekliyor. Tahminlere göre 2 milyondan fazla kişi R dilini kullanıyor. Yapılan bir ankete göre, veri biliminde R dili %61 oy ile en çok kullanılan dil seçilmiştir ve %39 ile kendisini Python takip etmiştir.

Wall Street sektöründe de çok popüler hale gelmiş bir dil. Bank of America’nın müdürü Niall O’Conner’a göre finansal modeller hala excel ile görselleştirilseydi analistler sabahlamak zorunda kalacaktı. Veri modellemede R dili muhakkak başvurulması gereken bir dil, ancak büyük çaplı işler için firmaların ihtiyaçlarını görmede sınırlı hale gelebiliyor ve birçok kişiye göre başka diller R dili yerini almaya başladı bile.

R dili daha çok tasarlamak ve karalamak amaçlı, inşa etmek amaçlı değil. Google’ın sayfa sıralamasında ya da Facebook’un arkadaş tavsiye eden algoritmasının çekirdeğinde bu dile rastlayamazsınız. Mühendisler prototiplerini R dili ile meydana getirirler ancak iş ciddi programlamaya geldiğinde mühendisler Java ya da Python dilini tercih ederler.

Paul Butler R dili kullanımında ünlü biri, kendisi Dünya Facebook haritasını inşa ederken 2010 yılında R dilinin zengin görsel kapasitelerini kullanmıştı. Ancak Butler bile, büyük veri setlerinde bu dilin yavaş ve hantal kaldığını belirtiyor. Peki, R dili yerine kendisi hangi dili tercih ediyor?

PYTHON

Python’un hem R dili gibi hızlı ve sofistike veri madenciliği kabiliyeti var hem de ürünleri inşa etmek çok daha pratik. Python dilini öğrenmek daha kolay ve daha sezgisel. Bunun yanı sıra, istatistiksel analizleri çözmede daha kabiliyetli olduğu için son yıllarda ekosistemi inanılmaz derecede çoğaldı. Son yıllarda en çok geçiş yapılan dil Python olmuştur. Bilhassa R dilinden Python’a çok fazla geçiş gerçekleşmiştir.

Veri işlemede işin büyüklüğü ile mantığı arasında sürekli bir mübadele olur ancak Python bu iki konuyu uyum içinde yürütmede başarılı. IPython notebook ve NumPy hafif işler için karalama defteri amacıyla kullanılabilirken, Python orta ölçekli veri işleme işleri için çok güçlü bir araç. Python ’un diğer bir avantajı ise zengin bir veri topluluğuna sahip olması ki bu topluluk muazzam sayıda araç ve özellik sunuyor.

Bank of America altyapısında yeni ürünlerini oluştururken ve bunların ara yüzlerini oluştururken Python’u kullanıyor. O’Donnell’a göre Python kapsamı hem geniş hem de esnek, bu da insanların bu dile yönelmesini sağlıyor. Ancak yine de en performansı dil bu dil değil, büyük ölçekli işlerin hakkını bazen verebiliyor bazen veremiyor.

JULIA

Veri biliminin büyük oyuncuları R dili, Python, Java, MatLab ve SAS’dir. Ancak yine de doldurulması gereken boşluklar mevcut ve Julia yeni gelen alternatifler arasında üzerinde gözünüz olması gereken bir dil.

Geniş çaplı endüstriyel uygulamalar için Julia hala fazla içine kapanık. Ancak veri uzmanları Julia’nın yakın zamanda R dilinden ve Python’dan krallığı alacağına eminler. Julia üst seviye, hızlı ve olayları iyi ifade eden bir dil. R dilinden daha hızlı çalışır, Python’dan daha büyük ölçeklerde çalışma potansiyeli var ve öğrenilmesi kolay bir dil.

Butler’a göre Julia dili keşfedilmeye başlandı ve hızla gelmeye devam ediyor. Bu dil ile Python ve R dili ile yapabileceğin her şeyi yapabilirsiniz. Driscoll’a göre ise Julia dili genç, ancak enerjisi ve potansiyeli çok yüksek bir dil.

JAVA

Java ve Java bazlı çerçeveler, Silikon Vadisi'ndeki teknoloji firmaların ana iskeleti haline gelmiş durumda. Twitter, Linkedin veya Facebook’un veri mühendislik alt yapısına baktığın her yerde Java’yı görürsünüz der Driscoll.

Görselleştirme açısından Java R dili ve Python kadar başarılı değil, ayrıca istatistiksel modelleme işinde de en iyisi değil. Ancak prototiplemeye ihtiyaç varsa ve büyük ölçekli sistemleri inşa etmek gerekiyorsa Java halen en güvenli limanlardan biri.

HADOOP ve HIVE

Veri işlemindeki muazzam talebi karşılayabilmek için Java bazlı araçlar sürekli tercih ediliyor. Veri yığının üstesinden gelmek için HADOOP popüler hale geldi. Birçok alternatiflerine göre daha yavaş çalışıyor ancak inanılmaz kesin sonuçlar veriyor ve arka plan analizlerinde çok iyi işler açığa çıkarıyor. Ayrıca HIVE ile çok iyi bir iki oluşturarak sorgu bazlı işlemleri iyi çözüyorlar.

SCALA

Scala, Java temelli başka bir dil ve Java’ya çok benziyor. Büyük çaplı makine öğrenimi işiyle uğraşanlar, yüksek seviyede algoritma inşa edenler en çok tercih ettiği araç haline geldi. İfade gücü yüksek, yetenekli ve güçlü sistemlerin inşa edilmesinde iyi bir araçtır.

KAFKA ve STORM

Hızlı ve gerçek zamanlı analizlere ihtiyaç duyduğunda ne yaparsınız? Kafka bu tip durumlarda imdadınıza yetişiyor. Yaklaşık beş senedir bu işte faaliyet göstermesine karşın, son zamanlarda akış işlemlerinde popüler hale geldi. Kafka, Linkedin içinde doğan, ultra hızlı sorgu mesajlaşma sistemidir. Kafka’nın kötü tarafı nedir diye soracak olursanız, o kadar hızlı ki gerçek zamanlı analizlerinde gözünden bir şeyler kaçırarak hatalara neden oluyor.

Keskinlik ve hız konusunda bir denge olması gerekiyor. Yani Silikon Vadisi'ndeki birçok firma iki yoldan ilerliyor. Kafka ya da Storm’u gerçek zamanlı analizler için kullanırken, Hadoop’u ise yığın işlemlerinde kullanarak yavaş ama süper keskin sonuçlar elde ediyorlar. Storm, Scala ile yazılmış başka bir araç. Emin adımlarla ilerlemek için Silikon Vadisi'nde tercih edilen bir araç haline geldi. Twitter’in alt yapısında birçok işlemlerde Storm’a denk geliriz.

 

Kaynak:

►fastcompany