Julia Programlama Dili İçin Başarılı Veri Bilimi Paketleri

Herkese selamlar. 🙂

Julia programlama dili şu an için yeni ve gelişim göstermekte olduğunu söyleyebileceğimiz bir programlama dili ancak Julia’nın tasarımının başarısı, dinamikliği ve performansı geliştiricilerin, uzmanların ve bilim insanlarının kısa sürede dikkatini çekmiş durumda. Hatta ve hatta MIT’nin Bilgisayar Bilimi ve Yapay Zeka Laboratuvarı’nın (CSAIL) neredeyse resmi dili olmayı başardı. Bunun yansıması olarak, 2012 yılında tanıtıldığından bu yana hareketli ve canlı bir geliştirici ekosistemi kazanmayı gayet güzel bir şekilde başardığını söyleyebiliriz. Şu an için Julia, geliştiricilerin kullandığı en iyi 10 programlama dili arasında değil, ancak Stack Overflow’un 2020 yılı anketinde en çok sevilen 10 programlama dili arasında yer alıyor. Hal böyle olunca da son birkaç yıl itibariyle veri bilimi, yapay zeka ve makine öğrenmesi uzmanlarının ve ilgililerinin kullanabileceği inanılmaz ve benzersiz paketler ortaya çıkmaya başladı.

İsterseniz gelin hep birlikte veri bilimi projelerinizde kullanabileceğiniz; öne çıkan, başarılı bu Julia paketlerini tanıyalım ve sistemimize nasıl kurabileceğimizi görelim.

1. DataFrames.jl

DataFrames.jl,  Julia’da Python için Pandas’ın veya R programlama dili için tidyverse’in karşılığı olan kütüphane olarak düşünülebilir. Birçok veri analizi ve tartışmanın temeli olan DataFrame nesnesini sağlar ve sütun seçme, satırları filtreleme, veri kümelerini sıralama, yeni değişkenler oluşturma, birleştirme, veri kümelerini genişten uzuna dönüştürme vb.  işlevleri uygulayabilmemizi sağlar. Veri kümelerini okumak veya kendiniz oluşturmak için CSV paketi de getirmektedir.

Kurulum:

DataFrames paketi Julia paket sistemi aracılığıyla kullanılabilir ve aşağıdaki komutlar kullanılarak kurulabilir:

Projelerinizde kullanırken de; using DataFrames tanımlamasıyla projenize dahil edebilirsiniz.

Dökümantasyon: https://juliadata.github.io/DataFrames.jl/stable/

2. Plots.jl

Plots, diğer çeşitli plotting paketleri için bir yorumlayıcı olarak düşünülebilecek çok basit ve kullanımı kolay bir görselleştirme kütüphanesidir. En önemlisi Plotly olmak üzere çeşitli farklı arka uçları destekler. Düzenler, renkler, özellikler ve nesneler için seçenekler sunar ve özelleştirilebilirdir. Ayrıca, grafiklerin farklı plotting komutlarını gerçekleştirmesini, farklı işlevleri kullanmasını ve farklı veri türlerini işlemesini sağlayan “recipes” uzantısı sunar.

Kurulum:

Dökümantasyon: http://docs.juliaplots.org/latest/

3. ScikitLearn.jl

Python’da ki ScikitLearn paketinin Julia programlama diline implementasyon paketidir. Ve Python’da ScikitLearn ile yapabilecekleriniz ne ise aynı derecede Julia’da da yapabilmenize olanak tanır ve oldukça benzer şekilde çalışır. Aynı zamanda standart Python yöntemlerinin üstüne yeni Julia tabanlı yöntemler sunar.

Model türleri, denetimli öğrenmeyi, denetimsiz öğrenmeyi ve veri kümesi dönüşümlerini içerirmektedir. Bunların haricinde ScikitLearn.jl ayrıca çapraz doğrulama, hiper parametrelerin ayarlanması vb. için de işlevler sunar.

Kurulum:

Dökümantasyon: https://scikitlearnjl.readthedocs.io/en/latest/

4. Distributions.jl

Distibutions paketi, geniş bir olasılık dağılımları ve ilgili işlevler koleksiyonu sağlar. Bunları oluşturmanın yanı sıra bunlardan örnekleme yapmak için de kullanılabilir. Normal, üstel, düzenli, binom, gama dağılımı ve daha fazlasını destekler.

  • Dağılımlardan örnekleme
  • Momentler (örn: ortalama, varyans, çarpıklık ve basıklık), entropi ve diğer özellikler
  • Olasılık yoğunluğu, kütle fonksiyonları (pdf) ve logaritmaları (logpdf)
  • Moment üreten fonksiyonlar ve karakteristik fonksiyonlar
  • Maksimum olasılık tahmini
  • Dağıtım bileşimi (dağılımların kartezyen çarpımı, kesilmiş dağılımlar)

Kurulum:

Dökümantasyon: https://juliastats.org/Distributions.jl/latest/starting/

5. PrettyTables.jl

PrettyTables, metin, HTML veya LaTeX arka uçları kullanılarak tabloları formatlamak için kullanılabilir. Ayrıca hizalama ve belirli koşulları sağlayan satırları yazdırma vb. için özelleştirilebilir.

Kurulum:

Dökümantasyon: https://ronisbr.github.io/PrettyTables.jl/stable/

6. GLM.jl

GLM paketi; R2, katsayı tahminleri vb. veya diğer genelleştirilmiş doğrusal modellerle doğrusal bir regresyon modeli oluşturmak için altyapı sunar.

Kurulum:

Dökümantasyon: https://juliastats.org/GLM.jl/stable/manual/

7. Clustering.jl

Clustering.jl, veri kümeleme algoritmalarının, kümeleme doğrulamasının ve kümeleme kalitesinin değerlendirilmesi ve uygulanabilmesi için altyapı sunar.

Kurulum:

Dökümantasyon: https://github.com/JuliaStats/Clustering.jl/tree/master/doc

8. Flux.jl

Flux, makine öğrenimi ve derin öğrenme projelerinizde kullanabileceğiniz bir Julia paketidir. Diğer Julia kodlarının gradyanlarını almanın önemli bir özelliğini kullanarak çok fazla esneklik sağlar.

Özellikle şu faydalı özellikleri içerir:

  • kayıp fonksiyonlarını ve gradyan inişini tanımlama,
  • modellerin katmanlarını oluşturma, düzenleme ve eğitim modelleri.

Bu paketin yanında  Flux makine öğrenimi kütüphanesinin çeşitli tanımlarını içeren, fazlasıyla güçlü “model-zoo” paketi de dahili olarak gelir. Bunlardan herhangi biri, kendi modelleriniz için serbest bir başlangıç noktası olarak kullanılabilir.

Kurulum:

Dökümantasyon:

https://fluxml.ai/Flux.jl/stable/

https://github.com/FluxML/model-zoo

9. IJulia

IJulia, Jupyter Notebooks veya JupyterLab’ın kullanılmasını sağlar. Programlamanın yanı sıra raporlar oluşturmak ve bunları HTML, .MD, PDF vb. formatlarda çıkartmak için yararlı bir pakettir. Ayrıca diğer Julia çekirdekleri için seçenekler de sağlar.

Kurulum:

Dökümantasyon: https://www.juliaobserver.com/packages/IJulia

10. MLBase.jl

MLBase.jl, Python’da Sklearn’a benzer bir metodolojiyi izleyen başka bir Julia modülüdür. MLBase.jl, özellik ölçekleyiciler ve kodlayıcılar gibi genelleştirilmiş veri işleme araçlarının yanı sıra puana dayalı sınıflandırma ve doğrulama içerir.

Kurulum:

Dökümantasyon: http://mlbasejl.readthedocs.org/en/latest/

11. TensorFlow.jl

ScikitLearn.jl’de olduğu gibi bu pakette, Google’ın TensorFlow kütüphanesinin Julia’ya implementasyonunu sağlar. Ve TensorFlow’un özelliklerini sunar.

Kurulum:

Dökümantasyon: https://malmaud.github.io/tfdocs/

Bonus: RCall.jl ve PyCall.jl

R programlama dili, istatistiksel hesaplama ve grafikler için bir programlama dilidir ve en etkileyici bilimsel ve istatistiksel paket koleksiyonlarından birine sahiptir. Son zamanlarda Julia programlama dili, yüksek seviyeli dillerin okunabilirliğinden ve kullanım kolaylığından ödün vermeden düşük seviyeli bir dilin olağanüstü performansını sağladığı için çekici bir alternatif haline gelmiştir. Ancak Julia hala R paketi ortamının derinliğinden ve ölçeğinden yoksundur.

Bunu gidermek için RCall.jl ve PyCall.jl paketlerinden faydalanılabilir:

Bu paketler, bu iki dil arasındaki iletişimi kolaylaştırır ve kullanıcının Julia içinden R ve Python paketlerini çağırmasına olanak vererek her iki dünyanın da en kombinasyonunu elde etmemize olanak tanır. Ek olarak, bu saf bir Julia paketidir, bu nedenle taşınabilirdir ve kullanımı kolaydır.

RCall.jl

Kurulum:

Dökümantasyon: http://juliainterop.github.io/RCall.jl/stable/

PyCall.jl

Kurulum:

Dökümantasyon: https://github.com/JuliaPy/PyCall.jl

Bir sonraki yazıda görüşmek dileğiyle…