Data Science için dil seçimi

hangi programlama dili veri bilim, veri madenciliği ve makine öğrenmesi için daha uygun?

En baştan yazmış olayım; bu yazı “Python şöyle iyi”, “R’nın da şu özellikleri var”, “java da böyle böyle” yazısı değildir. Bu yazı içerisinde daha temel parametreler üzerinden Dil seçimini irdeleyeceğim.

Veri Bilimci olmak için hangi dili kullanmak gerekir? Gibi bir sorunun cevabı elbetteki farklı parametrelere bağlıdır ve bu parametrelerin bazı temelleri vardır. Bunlar;

 

1- Çok kanallı Programlama

Evet elimizdeki veri miktarı arttıkça ve kullandığımız algoritmalar karmaşıklaştıkça ihtiyacımız olan hesaplama gücü de artıyor. Çok kanallı programlama temel itibarı ile bir algoritmanın çalışırken işlem sırası ve matematiksel aksiyonlara uygun bir şekilde parçalanarak, parçalanan kısımların farklı bir işlemciler üzerinde hesaplanmasının mümkün kılınmasıdır.

Dolayısı ile tek bir çekirdek üzerinde hesaplama yapmak yerine örneğin 10 çekirdek üzerinde işlem yapmak çalışma süresini oldukça kısaltmaktadır. Fakat burada ki süre azalması her algoritma için aynı değildir. Çünkü her algoritmanın yapısı itibarı ile ne kadar bu işe uygun olduğu tartışılır.

Bu çok kanallı hesaplama mantığı içerisinde, yapısı itibarı ile bu tip bir hesaplamaya imkan vermeyen algoritmalar yeniden kodlanmış ya da bu algoritmalara yakınsayan yöntemler geliştirilmiştir.

Tabi bu çok kanallı programlamayı sadece tek bir bilgisayar üzerinde olmalı gibi de düşünmeyin. Veriniz çok büyüktür ve dağıtık bir sistemde saklıyorsunuzdur verinizi. Öyleyse Elinizdeki tüm veriyi topluca bir sonuç elde etmek için kullanacaksanız size dağıtık hesaplama yöntemleri yardım edebilir.

Çok basit anlamıyla aşağıdaki tabloya bakacak olursak:

 

A bilgisayarı B bilgisayarı C bilgisayarı
Ürünler Buzdolabı 15 25 12
Fırın 18 11 22
Televizyon 8 17 25
Çamaşır Makinesi 31 35 20

 

elimizde kaç tane beyaz eşya olduğunu hesaplamak için tüm mağazaları dolaşıp teker teker saymam gerekiyor. Fakat diyorum ki kendime;

zaten 3 mağazada da çalışan bir elemanım var. Ben onları arayayım onlardan her biri kendi mağazalarındaki ürünleri saysınlar ve bana sonuçları söylesinler. Bende onlardan dönen sonuçları toplarım ve mağazalarımda toplam kaç tane beyaz eşya olduğunu öğrenmiş olurum. Bu matematiksel olarak böl ve hesapla yönteminin en popüler temsilcileri Hadoop ve Spark. Yani seçilen dil bu araçlardan birini desteklemeli.

Çok kanallı programlama konusunda algoritmaları parçalamak konusu iyi hoş ama şöyle bir durum var ki; elimizdeki veri çok hızlı büyüyor ve kullandığımız yöntemler giderek karmaşıklaşıyor. Dolayısı ile benim daha fazla kanal üzerinde işlem yapabilmem lazım. Bunun içinde algoritmaları daha küçük parçalara bölmeliyim. Ve hatta bu bölme işlemini her bir matematiksel ifadenin uygulanmasında yapabilmeliyim.

Tabi bu algoritmaları bölme işinin bizi götürdüğü yer Lineer Cebir ve GPU(Grafik İşlemciler). Özelikle son zamanlarda görüntü işleme ve NLP konusunda iyi sonuçlarını gözlemlediğimiz Derin Öğrenme algoritmalarını bu olgular olmadan çalıştırmak neredeyse imkansız. Hal böyle iken son zamanlarda oldukça popülerleşen bu Derin Öğrenme algoritmalarını destekleyen dillerden birini seçmek sizin için avantaj olacaktır.

 

2- Veri Bilim Toplulukları

Bu kavram günümüzde her işin internet üzerinden yürüdüğü gerçeğiyle birlikte bir dilin tercih edilmesi için yapılacak değerlendirilmelerde çok önemli bir yer almalıdır. Günümüz veri bilim ekosistemi paylaşıma ve birlikte çözüm üretmeye dayanmaktadır. Zaten geldiğimiz noktada veri bilimcilerden beklenen hızlı çözüm üretme kapasitesini başkaca bir türlü sağlamakta mümkün değildir.

Dolayısı ile Veri Bilim için dil seçerken yaygınlığını kontrol etmelisiniz.

Birkaç örnek soru:

  • Hangi şirketler hangi diller ile çalışıyor? Hangi dilleri destekliyorlar?
  • Yapılan anket sonuçlarında hangi dil öne çıkıyor?
  • Veri Bilim sosyal platformlarında kaç içerik açılmış dille ilgili?
  • Sonra üzerinde çalıştığınız konu ile ilgili akademik çalışmalara bakın. Akademisyenler hangi dili kullanmayı tercih etmişler?
  • Linkedin, Kaggle, Medium gibi platformlarda nitelikli içerik üretilmiş mi tercih etmek istediğini dille ilgili?
  • Açık kaynak kitaplar mevcut mu?
  • Yayınlanan iş ilanlarına bakmayı unutmayın!
  • Geliştirme ortamları yeterli mi?
  • Takım çalışmasını destekleyecek alt yapı gelişmiş mi?
  • Dilin veri bilim standartları var mı?
  • Ve son olarakta daha evvel yapılmış karşılaştırmaları inceleyin!

Ben yeni  bir projeye başlarken ilk önce kullanacağım teknolojiler üzerinde çalışırım. Proje konusuna göre yukarıdaki maddeleri irdelerim. Arama motorlarında gezinirim.

Örneğin: “Churn Prediction with Python” ya da “Portfolio analysis example Java” gibi yapabilirsiniz.

Not : Arkadaşlar zamanla buraya yeni maddelerde ekliyor olacağım 🙂

 

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.