Nasıl Veri Bilimci Olabilirim?
Eğer veri bilimci olmayı benim gibi kafaya koyduysanız Google arama kutucuğuna yazdığınız ilk şey bu soru olmuştur. Sonucunda ise İngilizce ya da Türkçe birçok kaynak okumuş, sekmeleri kapattığınızda ise elinizde öğrenilecek birçok konu, okunulacak bir sürü kaynak ve katılınacak bol bol online kurs kalmıştır. Bu durum çok can sıkıcı olabilir, kendimden biliyorum. Bu başlığa sahip böyle bir yazı yazmak ise benim için bir rüya ama dünya kadar video izleyip kaynak okuyunca sizinde kafanızın içinde topladığınız şeyleri bir şekilde yazmanız gerekiyor. Yeni gelenlerin anlayabilmesi, gözünün korkmaması için olabildiğince yalın yazmayı planlıyorum. Unutmadan, ben bir profesyonel değilim. Yazacağım hiçbir şeyi deneyimleyip size yapmanızı önermiyorum, sadece kafamda oturttuğum ve uygulamaya başladığım bu yolu sizlerle de paylaşmak ve Türkçe kaynaklara katkıda bulunmak istiyorum.
Ben Astronomi ve Uzay Bölümlerin’de okuyorum. Bu bölüm ile iş ilanlarının, istenenler bölümünün ilk satırında bulunan özelliği sağlayamadığımı düşünüyor olabilirsiniz, işverenler de böyle düşünüyor olabilir ama aslında öyle değil. İlk yarıyıldan beri bilgisayar dersleri alıyoruz. Şimdiye kadar Linux işletim sistemi, MySQL ile SQL, Fortran ve Python derleri aldım. Zaten biraz düşünürseniz, uzay kendi başına bir veri kaynağı. Milyarlarca gök cismi kendi içinde birden fazla kez kategorilere ayrılıyor. Bu verilerle bir şeyler yapabilmek için istatistik dersi bile aldık. Image Reduction dersini de bu dönem almaktayım. Bu konuya aslında pek de uzak değilim. Fortran ile de olsa veriler üzerinde işlemler yaptım ve inanın çok zordu. Şimdi Numpy ile bunları yapınca aradaki fark insanı şaşkına çeviriyor.
Giriş bölümünü de aradan çıkardığımıza göre, yol haritamıza geçebiliriz.
#0
Bir programlama dili öğrenmeniz gerekiyor. Veri Bilimi için tercih edilen birden fazla dil var. Python, Scala, R, Java, JavaScript, C/C++, Julia. Ben Python dilini seçtiğim için onu biraz açmak istiyorum.
Python
Nesne yönelimli, kod okunabilirliği kolay olduğu için yazılımcı dostu bir dildir. Veri bilimi için oldukça kullanışlı olan zengin kütüphane seçeneği onu çok yönlü ve cazip bir programlama dili yapıyor. Numpy, Pandas, Matplotlib, Seaborn, Sklearn, Tensorflow, Keras gibi isimler bu alanda en çok duyacağınız kütüphaneleridir.
Bu programlama dili için size önerebileceğim kaynaklar ise şu şekilde:
- Eğer ingilizceniz iyi ise, ki yazılımcı olmak istiyorsanız ingilizcenizin olması kolaylık sağlayacaktır, Corey Schafer’ın bu playlisti başlangıç için bire bir:
- Benimde sertifika aldığım, anlatımı kesinlikle mükemmel olan Atıl Samancıoğlu tarafından BTK Akademi’de ücretsiz bir şekilde verilen ‘Veri Bilimi için Python ve Tenserflow’ kursunu tavsiye ederim. Yalın bir anlatımla ilerleyen bu kurs birçok örnekle dolu. Mutlaka öneririm.
#1
Programlama dilini halletiysek kütüphanelere geçebiliriz. Her kütüphanenin kendi fonksiyonları ve nitelikleri olduğu için bunları da öğrenmemiz gerekiyor. Adı üstünde ‘Veri Bilimi’, verinin bilimi. bu işte çokça uğraşacağımız şey veriler olacak. Ve ne yazık ki veriler her zaman tertemiz ve sorunsuz bir şekilde onları kullanmamız için hazır olmayacak. Onlarla oynamak, kullanmaya ve anlamaya hazır hale getirmemiz gerekiyor. Bunları yapmamızı sağlayan da bazı popüler kütüphaneler var.
NumPy : Kendi internet sitesinde kendileri şöyle tanımlıyorlar
The fundamental package for scientific computing with Python
Yani:
Python ile bilimsel işlem için temel paket
Biraz da böyle bahsediyorlar:
NumPy brings the computational power of languages like C and Fortran to Python, a language much easier to learn and use. With this power comes simplicity: a solution in NumPy is often clear and elegant.
Yani:
NumPy, C ve Fortran gibi dillerin hesaplama gücünü öğrenmesi ve kullanması çok daha kolay bir dil olan Python’a getiriyor. Bu güçle birlikte basitlik gelir: NumPy’daki bir çözüm genellikle açık ve zariftir.
Pandas: Yine, kendi internet sitelerinde kendilerini şöyle tanımlıyorlar:
pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool, built on top of the Python programming language.
Kendi web sitelerinde ki tanımlarını kullanmamın sebebi, bir ürünü her zaman kendi sitelerinde kendilerini nasıl tanımladıklarına bakarak öğrenmek ve değerlendirmek gerektiğini düşünüyorum.
pandas, hızlı, güçlü, esnek ve kullanımı kolay bir açık kaynak veri analizi ve işleme aracıdır, Python programlama dilinin üzerine inşa edilmiştir.
Matplotlib: Verileri temizledik, NaN değerleri attık, anlaşılabilir hale getirdik, şimdi ise özelliklerin kendi aralarındaki ilişkilerine bakmak için görselleştirme yapmamız gerekiyor. Bunun için seçenek çok: Matplotlib, Seaborn, Bokeh, Plotly... Araştırırsanız daha fazlasını bulabilirsiniz. Ama Matplotlib akla ilk gelen olduğu için onu ele alalım.
Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python.
Yani:
Matplotlib, Python’da statik, animasyonlu ve etkileşimli görselleştirmeler oluşturmak için kapsamlı bir kitaplıktır.
Bunların arasına bir de Seaborn’u ekleyebiliriz. O da bir görselleştirme kütüphanesi ve Matplotlib’e göre görsel olarak daha çekici.
#2
Evet, işler ciddileşmeye başladı. Sıra geldi işin matematiğine. Veri analizi tanımlayıcı istatistik bilgisi ve olasılık teorisi bilgisi gerektirir. Bunlar hakkında bilginiz olursa verilerden daha kolay anlam çıkarırsınız. Bu yüzden, bence bu adımı atlamamanız gerekiyor. Veri analizlerine başladığınız zaman bu tarz istatistiki bilgilere çokça ihtiyaç duyacaksınız. İstatistik kendi içinde ayrı bir alan, her şeyi öğrenemezsiniz. Her bir konu ile alakalı kitaplar bitirip test çözmenize gerek yok. Arkasındaki mantığı anlamanız yeterli. Gerekli işlemleri gerekli kütüphaneler tek bir fonksiyonla yapacak zaten. Sadece sizin bunu ne zaman ve neden yapacağınızı bilmeniz gerekiyor.
Bu bölümde iki tane konumuz var aslında. Lineer Cebir. Kulağa korkutucu gelebilir ama merak etmeyin, gerçekten zor değil.
İnternette çok üzün süren araştırmalarım sonucunda her bir konu için bir liste toparlamayı başardım.
İstatistik
- Aritmetik Ortalama
- Median
- Mod
- Covariance
- Variance
- Correlation Coefficiant
- Standart Deviation/Variance
- R square test
- P-value
- Mean Square Error
- Probability Distributions (Binomial, Poisson, Gaussian)
- Chi-square test
- T-test
- ANOVA (F-test)
- A/B Testing
- Monte Carlo Simulation
- Bayes Theorem
- Spearman’s Rank Correlation
- Central Limit Theorem
- Bernoulli Distribution
Lineer Cebir
- Vectors
- Matrices
- Transpose of a Matrix
- The Inverse of a Matrix
- The Determinant of a Matrix
- Dot Product
- Eigenvalues
- Eigenvectors
- Optimization Methods
Ben Udemy, Coursera, EdX gibi siteler kullanmıyorum ama bu tamamen benim tercihim. Sizler isterseniz bu online eğitim sitelerinden istatistik ve benzeri konular hakkında eğitim alabilirsiniz. Hangi yolu seçerseniz seçin ben birkaç ücretsiz kaynak bırakacağım.
#3
Machine Learning
Vikipedi şöyle açıklıyor:
Makine öğrenimi, bilgisayarların algılayıcı verisi ya da veritabanları gibi veri türlerine dayalı öğrenimini olanaklı kılan algoritmaların tasarım ve geliştirme süreçlerini konu edinen bir bilim dalıdır.
Makine öğrenmesi konusunda daha başlangıç aşamasında olduğum için yorum yok hakkımı kullanacağım. Şimdilik eğlenceli gidiyor olsa da işlerin nerede karışacağını bilemeyiz. Yine de işler burada tam anlamıyla başlıyor diyebilirim. Ama bırakmak yok. DEVAM!
Geçelim kaynaklara:
- Öncelik, BTK Akademi tarafından Şadi Evren Şeker hocanın verdiği ‘Python ile Makine Öğrenmesi’ kursu. Ben de yeni başladım ve iyi gittiğini söyleyebilirim.
- Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems kitabı da beğenilen bir kitap. Ben yeterince öğrendikten sonra bu kitabı kullanmayı düşünüyorum.
#4
Deep Learning
Yine Vikipedi’den bir açıklama:
Derin öğrenme bir veya daha fazla gizli katman içeren yapay sinir ağları ve benzeri makine öğrenme algoritmalarını kapsayan çalışma alanıdır. Yani en az bir adet yapay sinir ağının kullanıldığı ve birçok algoritma ile, bilgisayarın eldeki verilerden yeni veriler elde etmesidir.
- Merve Ayyüce Kızrak’ı önceden de takip ediyordum. Bir kadın olarak onu sektörde görmek hem hoşuma gidiyor hem de onun gibi olma isteğimi arttırıyor. BTK Akademi’de ‘Keras ile Derin Öğrenme’ kursunu tabii ki de alacağım bu yüzden. Sizde değerlendirebilirsiniz.
#5
Kaggle
Kaggle mutlaka öğrenme ve sonrası sürecinizde hayatınızın içerisinde olmalı. Bu adımı tüm adımlarda kullanabilirsiniz. Öğrendiklerinizi uygulamak isterseniz, Kaggle en iyi kaynaklarınızdan biri olacaktır. Notebook okuyun ve uygulayın. Sanki videoya çekiyormuşsunuz, biri sizi izleyecekmiş gibi yaptığınız her şeyi anlatın. Hatta anlamadığınızı düşünseniz bile, her bir kod parçasını açıklamaya çalışın. İnanın ki faydasını göreceksiniz.
Son olarak birkaç kanal eklemek istiyorum. Bunlara mutlaka göz atmalısınız. Bu kanallarda işinize yarayacak tutorial videoları bulabilirsiniz: