Başlıklar
Veri Bilimi Kütüphaneleri
Veri bilimi kütüphanelerine geçmeden önce kütüphane kavramına bir 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 Veri Bilimi Kütüphaneleri 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
Öncelikle bir Veri Seti’nin ne olduğunu tanımlayalım. Veri setleri,(Veri Kümesi olarak da adlandıırlır) yapılandırılmış bir veri koleksiyonudur. Veriler metin, sayı veya görüntü, ses veya video dosyaları gibi medya olarak temsil edilen bilgileri içerir. Tablo olarak veri seti, bilgileri depolayan sütunları içeren bir satır koleksiyonunu içerir. Popüler bir tablo veri biçimi “virgülle ayrılmış değerler” veya CSV’dir.
CSV dosyası, her sıranın bir satırı temsil ettiği ve virgülün veri değerlerini ayırdığı sınırlandırılmış bir metin dosyasıdır. Örneğin, bir hava istasyonundan alınan gözlemlerin bir veri kümesini hayal edin. Her satır belirli bir zamanda bir gözlemi temsil ederken, her sütun bu gözlem hakkında sıcaklık, nem ve diğer hava koşulları gibi bilgileri içerir.
Hiyerarşik veya ağ veri yapıları genellikle veriler arasındaki ilişkileri temsil etmek için kullanılır.
Hiyerarşik veriler ağaç benzeri bir biçimde düzenlenirken, ağ
verileri bir grafik olarak saklanır.
Örneğin, bir sosyal ağ web sitesindeki kişiler arasındaki bağlantılar genellikle bir grafik olarak temsil edilir.
Bir veri seti, görüntü veya ses gibi ham veri dosyalarını da içerebilir. Modifiye Ulusal Standartlar ve Teknoloji Enstitüsü (Modified National Institute of Standards and Technology – MNIST) veri kümesi veri bilimi için popülerdir.
El yazısı rakamların görüntülerini içerir ve genellikle görüntü işleme sistemlerini eğitmek için kullanılır.
Geleneksel olarak, çoğu veri seti özeldir. Çünkü; müşteri verileri, fiyatlandırma verileri veya ticari olarak hassas diğer bilgiler gibi özel veya gizli bilgileri içerirler. Bu veri setleri genellikle herkese açık olarak paylaşılmaz. Ancak zaman içinde bilimsel kurumlar, hükümetler, kuruluşlar ve hatta şirketler gibi birçok kamu ve özel kuruluş, veri setlerini “açık veri” olarak kamuya açık hale getirmeye ve ücretsiz bilgi sağlamaya başlamıştır.
Örneğin günümüzde, Birleşmiş Milletler ve dünya çapındaki federal ve belediye hükümetleri, web sitelerinde ekonomi, toplum, sağlık, ulaşım, çevre ve çok daha fazlasını kapsayan birçok veri setini halka açık yayınlıyorlar. Bunlara ve diğer açık veri setlerine erişim; veri bilimcilerinin, araştırmacıların, analistlerin ve diğerlerinin daha önce bilinmeyen ve potansiyel olarak değerli içgörüleri ortaya çıkarmasını sağlıyor. Bu veri setleri ticari amaçlar ve kamu yararı için yeni uygulamalar oluşturmak için kullanılıyorlar. Ayrıca daha fazla araştırma yapmak için de kullanılıyorlar.
Açık veriler; veri bilimi, makine öğrenimi ve yapay zekanın büyümesinde önemli bir rol oynamıştır. Bu açık veri setleri, uygulayıcıların becerilerini çeşitli veri setlerinde geliştirmelerine izin vermektedir. İnternette birçok açık veri kaynağı bulunuyor.
Open Knowledge Foundation’ın dataportals.org web sitesinde dünya çapında mevcut veri portallarının kapsamlı bir listesini bulabilirsiniz. Birleşmiş Milletler(https://data.un.org/), Avrupa Birliği(https://data.europa.eu/en) ve diğer birçok hükümet(https://data.gov/) ve hükümetler arası kuruluş, geniş bir bilgi yelpazesine erişim sağlayan veri havuzlarını kamuya açık tutuyor. Popüler bir veri bilimi çevrimiçi topluluğu olan Kaggle‘da da, genel ilgi çekici olabilecek veri setlerini bulabilirsini (ve katkıda bulunabilirsiniz). Google da, sizin için değerli olabilecek veri setlerini bulmanıza yardımcı olabilecek özelleştirilmiş bir veri seti aramana sahiptir.
Açık veri dağıtımı ve kullanımı, belirli lisanslama koşulları tarafından tanımlandığı şekilde kısıtlanabilir. Açık veri dağıtımı lisansı olmadan, geçmişte birçok veri seti açık kaynaklı yazılım lisansları altında paylaşıldı. Ancak bu lisanslar, veri setlerinin dağıtımı ve kullanımıyla ilgili belirli hususları kapsayacak şekilde tasarlanmamıştı.
Sorunu çözmek için Linux Vakfı, Topluluk Veri Lisans Sözleşmesi’ni(Community Data License Agreement – CDLA) oluşturdu. Başlangıçta veri paylaşımı için iki lisans oluşturuldu: CDLA Paylaşım(CDLA-Sharing) ve CDLA Serbest İzinli(CDLA-Permissive).
CDLA Paylaşım lisansı, verileri kullanma ve değiştirme izni verir. Lisans, verilerin değiştirilmiş sürümünü yayınlarsanız, bunu orijinal verilerle aynı lisans koşulları altında yapmanız gerektiğini şart koşar.
CDLA Serbest İzinli lisansı da verileri kullanma ve değiştirme izni verir, ancak verilerdeki değişiklikleri paylaşmanız gerekmez.
Veri Bilimi için önemli olan husus ise; her iki lisansın da verileri kullanarak elde edebileceğiniz sonuçlara herhangi bir kısıtlama getirmediğini unutmayın. Örneğin, bir tahmin gerçekleştiren bir model oluşturduğunuzu varsayalım. Modeli CDLA lisanslı veri kümeleri kullanarak eğitiyorsanız, modeli paylaşma mecburiyetiniz yoktur veya paylaşmayı seçerseniz belirli bir lisans altında paylaşma yükümlülüğünüz yoktur.
Açık Veri Seti Kaynakları
Genel
- Data World
- Scientific Data Sharing
- Kaggle Datasets
- Huggingface
- Data Hub
- re3data
- Awesome Public Dataset
- reddit Dataset Paylaşımı
- Datarade
- Google Cloud
- Papers With Code
Hükümet Verileri
- https://www.data.gov/
- https://data.census.gov/
- https://data.gov.uk/
- https://www.opendatanetwork.com/
- https://data.un.org/
Finansal Veriler
- https://data.worldbank.org/
- https://www.globalfinancialdata.com/
- https://comtradeplus.un.org/
- https://www.nber.org/
- https://fred.stlouisfed.org/
Suç Verileri
- FBI Crime Data Explorer
- The National Archive of Criminal Justice Data
- United Nations Office on Drugs and Crime
Sağlık Verileri
- World Health Organization
- OpenFDA
- Cancer Data Access System
- Open Science Data Cloud
- NASA Planets – NASA Earth
Akademik Veriler
İlgili Yazılar
1 Comments
Comments are closed.
[…] önceki konuda yer alan adreslerde de gördüğünüz gibi kamuya açık birçok açık veri seti vardır, ancak […]