Veri Bilimi Kütüphaneleri

Öncelikle veri biliminde kullanılan kütüphanelere göz atalım. Kütüphaneler; kendiniz kod yazmanıza ihtiyaç duymadan bir çok işlemi gerçekleştirebileceğiniz, hazır fonksiyon koleksiyonlarıdır. Çok bilinen işlemleri yerine getirmek için oluşturulmuş ve başka yazılımcıların da kullanması için paylaşılmışlardır. Örneğin, Python ile bir veritabanına bağlanmak istediğinizde bunu sağlayacak olan socket programlama kodlarını sıfırdan yazmaz, bunu yapan bir kütüphaneyi kodunuza ekler ve onu kullanırsınız. Böylece geliştirme yaparken zamandan kazanırsınız.

Veri biliminde Python yazılım dili ile kullanabileceğimiz;

  • Bilimsel hesaplama kütüphaneleri
  • Görselleştirme kütüphaneleri
  • Yüksek seviye Makine Öğrenimi ve Derin Öğrenme kütüphaneleri

mevcuttur.

Kütüphaneler genellikle farklı işlevsellikler sağlayan hazır modüller içerirler. Yazılım dünyasında sıkça duymaya başladığımız bir diğer kavram da Çerçeveler(Frameworks)’dir. Bunlar da kütüphanelerin genişletilmiş ve daha fazla faydalar sunan bir versiyonudur diyebiliriz.

Python Bilimsel Hesaplama Kütüphaneleri

Pandas; veri temizleme, veri manipülasyonu ve analizi için veri yapıları ve araçları sunar. Farklı türdeki veriler ile çalışmak için araçlar sunar. Pandas ile gelen temel işlev, satırlar ve sütunlar içeren 2 boyutlu bir tablo ile çalışmaktır. Bu tablo Veri Çerçevesi(DataFrame) olarak adlandırılır. Veriler ile çalışabilmenizi sağlayan basit bir indeksleme yapısıyla tasarlanmıştır.

NumPy; dizi temelli bir yapıya sahiptir. bu diziler üzerinde matematiksel fonksiyonları uygulamanızı sağlar.

Esasında Pandas, NumPY üzerine inşa edilmiştir.

Python Veri Görselleştirme Kütüphaneleri

Veri görselleştirme yöntemleri, analizlerinizin anlamlı sonuçlarını kolay anlaşılır şekilde sunmanın bir yoludur. Bu kütüphaneler; grafikler oluşturmanızı sağlar.

Matplotlib kütüphanesi, en çok bilinen veri görselleştirme kütüphanesidir. Oluşturulan grafikler çok çeşitlidir ve yüksek özelleştirme imkanına sahiptir.

Seaborn; esasında Matpplotlib temelli bir diğer yüksek seviyeli görselleştirme kütüphanesidir. burada ifade edilen “yüksek seviyeli” kavramı, detaya girmeden kolay kullanımı olan anlamındadır. Seaborn ile sıcaklık haritaları, zaman serileri ve violin grafikleri oluşturmak mümkündür.

Python Makine Öğrenimi ve Derin Öğrenme Kütüphaneleri

Scikit-Learn, makine öğrenimi alanında istatistiksel modelleme için regresyon, sınıflandırma ve kümeleme gibi araçlar içeren bir kütüphanedir. NumPy, SciPy ve Matplotlib üzerinde inşa edilmiştir ve göreceli olarak başlaması kolaydır. Bu yüksek seviyeli yaklaşımda; modelinizi tanımlayabilir, kullanmak istediğiniz parametre türlerinizi belirleyebilirsiniz.

Derin Öğrenme alanında ise Keras,  model oluşturmanızı sağlayan bir kütüphanedir. Tıpkı Scikit-learn gibi yüksek seviye bir arayüz ile modelinizi hızlıca ve kolayca oluşturmanızı sağlar. Çalışırken Grafik kartınızı(Graphic Process Units-GPU) kullanır.Ama bir çok derin öğrenme projesinde bir alt seviye ortam gerekli olur.

TensorFlow, derin öğrenme modellerinin yüksek ölçekli ürünlerinde kullanılan bir alt seviye kütüphanedir. Ürün geliştirmek için tasarlanmıştır, deney ortamı için becerileri yeterli olmayabilir.

PyTorch, deney ortamı için kullanılır. Araştırmacıların fikirlerini kolayca test etmelerini sağlar.

Diğer Kütüphaneler ve Araçlar

Apache Spark; genel amaçlı, kümelenmiş sunucular ile hesaplama yapabilen bir ortamdır. Bu birden çok bilgisayarı eşzamanlı olarak kullanarak veriyi paralel şekilde işleyebileceğiniz anlamına gelir. Spark kütüphanesi; Pandas, NumPy ve Scikit-learn ile benzer işlevselliğe sahiptir. Apache Spark veri işleme için Python, R, Scala ya da SQL kullanabilir.

Scala için veri mühendisliğinde ağırlıklı olarak kullanılan ancak veri biliminde de kullanılabilecek daha pek çok kütüphane vardır.  Şimdi, Spark’ı tamamlayıcı bu kütüphanelere bir göz atalım;

Vegas, istatistiksel veri görselleştirme için kullanılan bir Scala kütüphanesidir. Vegas’da, veri dosyalarıyla Spark DataFrames ile birlikte çalışabilirsiniz.

Scala’da, Derin Öğrenme için Big DL kütüphanesini kullanabilirsiniz.

R dilinde, makine öğrenimi ve veri görselleştirme için hazır fonksiyonlar bulunur. Ancak bir çok tamamlayıcı kütüphanesi de vardır. ggplot2 popüler bir veri görselleştirme kütüphanesidir. Ayrıca Keras ve TensorFlow kullanmanızı sağlayan arayüz kütüphaneleri de vardır. R, yıllarca açık kaynaklı veri bilimi için fiilen standart olmuştur ama günümüzde Python bu konuda ağırlığını koymuştur.

Veri Bilimi API’leri

Bu başlık altında API nedir, API kütüphaneleri ve REST API kavramları nelerdir, İstek(Request) ve Cevap(Response) kavramları ne anlama gelmektedir inceleyeceğiz.

API, iki yazılım uygulamasının birbirleri ile konuşmasını sağlayan arayüzdür.

Örnek olarak Pandas kütüphanesini ele alalım. Pandas, esasında bir yazılım bileşenleri kümesidir. Hatta bu bileşenlerden bazıları Python ile dahi yazılmamıştır. Elinizde bir uygulamanız ve veriniz olduğunu varsayalım. Pandas API’sini kullanarak veri üzerinde işlemler gerçekleştirirsiniz.

Karşı tarafta API ile iletişim kurduğunuz tek bir bileşen olabilir, ancak farklı diller için geliştirilmiş farklı API’lerde olabilir. Örneğin TensorFlow’a göz atacak olursak, temelinde C++ ile yazılmıştır. Python, Javascript, C++, Java ve Go dilleri için farklı API’leri mevcuttur. Hatta gönüllü geliştiriciler tarafından Julia, MatLab, R, Scala için programlamış API’leri de vardır.

REST API, bir başka popüler API türüdür. İnternet üzerinden iletişim kurmanızı, depolama avantajından faydalanmanızı, daha büyük verilere erişmenizi, yapay zeka(Artificial Intelligence) algoritmalarına ve daha bir çok kaynağa erişmenizi sağlar. REST API terimindeki RE=representational S=state ve T=transfer kelimelerinin kısaltmasıdır. Yani REST= Temsili Durum Transferi anlamına gelmektedir.

REST API’de uygulamanız Alıcı(Client) olarak isimlendirilir. API, web hizmeti(Web Service) ile internet üzerinden iletişim kurmak için kullanılır.Bir takım kurallara sahiptir;

  • İletişim(Communication)
  • İstek(Request)
  • Cevap(Response)

Alıcı(Client) olarak adlandırılan siz ya da kodunuz , kaynak olarak isimlendirilen web hizmetinden(Web Service) bir istek(Request) yapar. İstek gönderilen adrese Uç Nokta(Endpoint) adı verilir. Kaynak web hizmetinin adresi olan bu uç noktadan(endpoint) yapılan istek(request) alıcıya(client) bir cevap(response) döndürür. HTTP metodları internet üzerinden veriyi iletmek için yollar sunar. REST API’ye bir istek göndermekle ne yapmak istediğimizi söylemiş oluruz. Bu istek bir HTTP mesajı olarak iletilir. HTTP mesajı genellikle yapılacak işlem ile ilgili yönergelere sahip olan bir JSON dosyası içerir. Web Hizmeti(Web Service) talep edilen işlemi yürütür ve benzer şekilde bir HTTP mesajı ile cevabını(Response) JSON dosyası formatında geri iletir.

Sesi metine çeviren bir hizmet içeren Watson Speech to Text API’si bir REST API örneğidir. API isteği yaparken bir ses dosyası gönderirsiniz. Bu işlem “Post” isteği olarak adlandırılır. Ses dosyası işlemden geçirilerek metne çevirilir ve cevap olarak geri döndürülür.

Bir başka web hizmeti(Web Service) olan Watson Language Translator API’si, farklı bir dile çevirmek isteğiniz metni istek olarak alır ve istenen dilde çevirisini yapıp cevabı döndürür.

Veri Setleri

 

 

 

 

Güncelleniyor…