Veri Bilimi Nedir?
Veri bilimi sadece makine öğrenimi değil. Sadece istatistik değil. Sadece programlama değil.
Veri bilimi, verlerden yararlı bilgi çıkarmak olan bir disiplin. O çalışmanın çoğu göz alıcı değil: pis spreadsheetsi temizlemek, doğru soruları sormak ve kodunuzdan hoşnut olmayan insanlara sonuçları iletmek.
Tümci veri bilimi akışı şöyle görünüyor:
1. Toplama: Veritabanlarından, API'lerden, CSV'lerden veya web tarayarak kaba veriler toplayın
2. Temizleme: Boş değerleri ele almak, türleri düzeltmek, tekrarları silmek
3. Keşif: Dağılımları görselleştirmek, desenleri bulmak, sorular sormak
4. Müdürlük: Modellerin öğrenmesine yardımcı olmak için yeni özellikler oluşturun
5. Modelleme: Algoritmalar eğitmen, performansları değerlendirin, döngüsel olarak çalışın
6. İletişim: Kararlar veren paydaşlara bulguları sunun
Eğer bir zaman önce Excel pivot tabloları, koşullu biçimlendirme veya VLOOKUP kullandınız, zaten 3-1 adımlarını yapmışsınız demektir. Bu ders, endüstride kullanılan Python tabanlı akışı bu deneyimden uzaktan bağ kurmaya yardımcı olur.
Sıcaklatma
Veri Deneyimisiniz
Herkes veri ile bir şekilde çalıştı: bir bütçe spreadsheetsi, bir başarı takibi, bir fitness uygulaması, hatta bir çalma listesiyle play sayıları.
Çamur Giri, Çamur Çıktı
Neden Temizleme Önemli
Veri bilimcileri veri temizliği için %60-%80'ini harcarlar. Bu, abartı değil: endüstri anketlerinde sürekli olarak böyle bir sonuç elde edilmiştir.
Nedeni basit: çamur giri, çamur çıktı. Verilerinizde hatalar, eksik değerler veya farklı formatlar varsa, üzerlerine inşa ettiğiniz her analiz de yanlış olacaktır. Kirli veri üzerinde eğitilen mükemmel bir model, emin ve yanlış yanıtlar verecektir.
Sıklıkla Karşılaşılan Veri Sorunları
- Boş değerler: hücreler boş. Veri toplanmamış mı, yoksa değer gerçekten sıfır mı? Bu farklı durumlar farklı işlemler gerektirir.
- Yanlış veri türleri: bir sayı dizisi metin olarak depolanmış, tarihler farklı formatlarda (01/02/2024: O Ocak 2. mi yoksa Şubat 1. mi?)
- Anormaller: bir maaş sütununda $1.000.000.000 olan bir girişe sahip. Bu gerçek mi, bir yazım hatası mı? Her iki durumda da ortalamalarınızı etkileyecektir.
- Kopyalar: aynı kaynağın iki kopyası çünkü iki sistem kusurlu bir birleşme gerçekleştirdi
- Kategorik kodlama: bir sütun 'Evet', 'yes', 'Y', 'DOĞRU' ve '1' diyor. Tüm bunlar aynı şeyi ifade eder, ancak bilgisayarınız bunu bilmez.
Pandas (standart Python veri kütüphanesi) ile bu sorunları dropna(), fillna(), astype() ve drop_duplicates() gibi yöntemlerle ele alabilirsiniz. Ama en zor kısmı, her sorunla ne yapmak istediğinizi belirlemeyecektir.
Temizleme Kararları
Ne Yapacağını Belirtmek
Burada gerçek bir senaryo. 10.000 müşteri kaydı olan bir datasetiniz var. 'yaş' sütununda 500 eksik değer bulunmaktadır.
Yapabileceğiniz seçenekler:
- Satırı sil: 500 kaydı kaldırın. Basit, ancak 5% veri kaybı yaşanır. Eğer bu 500 müşteri ortak bir özellikte (belki de yaşlarından dolayı veri bilincli oldukları için yaş alanı atladılar) ise, silme önyargılı hale getirebilir.
- Ortalama ile doldur: boşlukları ortalama yaş ile doldurun. Hızlı, ancak gerçek yaş aralığını yapay olarak azaltır.
- Ortanca ile doldur: eğer yaş dağılımı eksenliyse (birkaç çok genç veya çok yaşlı müşteri ortalamayı etkiliyor) daha iyi.
- Bir bayrak kullan: 'yaş eksik' adlı yeni bir sütun oluşturun (1 veya 0) ve orijinali ortancayla doldurun. Şimdi model, eksikliğin kendisinin bilgilendirici olup olmadığına karar verebilir.
Hiçbir evrensel doğru yanıt yoktur. Verinin eksik nedenine ve ne yapacağınızla ilgilidir.
Doğru Sorular Sorarak
Keşfe Dayalı Veri Analizi (EDA)
Veri modeli oluşturmadan önce verinizi anlamalısınız. EDA, bir veri kümesinde örüntüler, anomaliler ve ilişkileri bulmak, görselleştirmek ve özetlemek için kullanılan süreçtir.
Ana Araçlar
- Histograms: Tek bir değişkenin dağılımını gösterir. Belkemiş mi? Eğri mi? İki tepe mi? Gelir histogramı, azınlık tarafından çok daha fazla kazanan az sayıda insanın var olduğu için her zaman sağa yansıktır.
- Scatter plots: İki değişken arasındaki ilişkiyi gösterir. Daha uzun insanlar daha fazla ağırlı mı yoksa daha fazla çalışma zamanı daha yüksek notlar ile ilişkili mi? Örüntü (veya eksik örüntü) bir ilişki olup olmadığını gösterir.
- Correlation: -1 ve +1 arasında bir sayıdır ve lineer bir ilişki ölçer. +1 mükemmel pozitif ilişki demektir, -1 mükemmel negatif, 0 ise lineer bir ilişki yoktur. Ama korelasyon, neden-sonuç ilişkisine işaret etmez: dondurma satışları ve boğulma ölümleri yaz aylarında arttığı için birlikte artar.
- Summary statistics: ortalama, medyan, standart sapma, min, max. Pandas'ta: df.describe() tüm bunları bir satırda gösterir.
Gerçek Yetenek
Araçlar kolayca öğrenilebilir. Zor olan şey doğru sorular sormaktır. Kötü soru: 'Veri ne diyor?' İyi soru: 'Destek ekibi ile ilk hafta içinde iletişime geçen müşterilerin tutma oranları yüksek mi?'
Korelasyon Püskürtme
Korelasyon vs. Neden-Sonuç
Bu, veri okuryazarlığındaki en önemli kavramlardan biridir. İki değişken, birinin diğerini neden olduğu sürece güçlü bir şekilde korele olabilir.
Klasik örnekler:
- Yangınları daha fazla olan şehirlerde daha fazla itfaiyeçisi vardır. (Büyük şehirler her ikisini de içerir.)
- Kahvaltı yayan öğrencilerin notları daha iyi olur. (Etkinli daha fazla zengin ailein kahvaltı sağlaması ve akademik desteği sağlaması muhtemeldir.)
- Çikolatın tüketilen ülkeler daha fazla Nobel Ödülü kazanıyor. (Her ikisi de ulusal zenginlikle ilişkilidir.)
Gizli faktör, kaynaşmış değişken olarak adlandırılır: bu iki değişkeni inceleyen üçüncü bir değişkendir.
Faydalı Değişkenler Oluşturma
Öznitelik Mühendisliği Nedir?
Bir öznitelik, modelin tahminler yapması için kullanılan bir girişti. Öznitelik mühendisliği, modellerin başkaca şekillerde öğrenemeyecekleri kalıpları keşfetmeleri için veriden yeni öznitelikler oluşturmaktır.
Veriler genellikle modellerin ihtiyaç duyduğu şekilde gelmez. Bir veri kümesinde 'doğum tarihi' sütunu varsa, model doğrudan tarihlerle pek bir şey yapamaz. Ama buna 'yaş' özniteliği eklersen, model yaşa dayalı kalıplar öğrenebilir.
Sıklıkla Kullanılan Teknikler
- Normallaştırma: sayıları ortak bir aralığa (0 ila 1 veya ortalama 0 ve standart sapma 1) ölçeklendirmek. Aksi takdirde, binlerde ölçülen bir öznitelik (maaş) tek basamaklı bir öznitelik (çalışma yılı) üzerinde hâkim olacaktır.
- Birlikte-hot kodlama: kategorik değişkenleri ikili sütunlara dönüştürmek. 'Renk' sütunu 'kırmızı', 'mavi', 'yeşil' değerlerine sahipse, üç sütun oluşturur: 'renk_kırmızı', 'renk_mavi', 'renk_yeşil', her biri 0 veya 1 ile temsil edilir.
- Kısayol: sürekli bir değişkeni kategorilere dönüştürmek. 0-17 yaş arası 'çocuk', 18-64 yaş arası 'yetişkin', 65+ yaş arası 'büyükler' olarak tanımlanır. Bu, ilişkinin doğrusal olmadığı durumlarda yararlıdır.
- Etkileşimli öznitelikler: iki özniteliğin çarpılması. 'Daire alanı sayısı' belki de 'ev fiyatı'nı daha iyi tahmin etmek için bir arada kullanılır.
- Alan bilgisi: en güçlü teknik. Bir doktor, bir tıbbi model için hangi laboratuvar değerlerinin önemli olduğunu bilmektedir. Bir pazarlama uzmanı, 'son satın alma tarihinden bu yana gün sayısı'nı 'son satın alma tarihi'nden daha kullanışlı olduğunu bilir. Bu, hiçbir algoritma yapamaz.
Özellik Uygulama
Özellik Mühendisliği Uygulaması
Üzgünüz, şu anda Türkçe'ye çevrilmiş olan metin bulunmamaktadır. Lütfen orijinal İngilizce metni kullanın.
- Account creation date
- Last login date
- Number of shows watched last month
- Monthly payment amount
- Customer support tickets filed
- Country
Train/Test Split
Why You Split Your Data
The most important rule in modeling: never evaluate a model on the same data you trained it on.
If you do, the model can just memorize the answers. It will score perfectly on the training data but fail on new, unseen data. This is called overfitting: the model learned the noise in your specific dataset instead of the real patterns.
The standard practice is to split your data:
- Training set (typically 70-80%): the model learns from this
- Test set (typically 20-30%): held back, used only to evaluate the final model
In scikit-learn: X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
Common Algorithms
- Linear regression: draws the best-fit straight line through data. Simple, interpretable, works when the relationship is roughly linear. Predicts a number (price, temperature, score).
- Decision trees: a flowchart of yes/no questions. Easy to understand and explain. Prone to overfitting unless pruned or limited in depth.
- Random forests: birçok karar ağaçları birlikte oyuyor. Bir tek ağaçtan daha doğru, overfittinge daha az eğilimlidir, ancak açıklanması daha zordur.
Overfitting vs. Underfitting
- Overfitting: model çok karmaşıktır. Eğitim verilerini, hatta gürültüyü de, hatırlar. Eğitim verilerine yüksek doğruluk, test verilerine düşük doğruluk sağlar.
- Underfitting: model çok basittir. Gerçek örüntüleri yakalamaz. Hem eğitim hem de test verilerine düşük doğruluk sağlar.
Arzu edilen orta noktadır.
Değerlendirmeye Metrikler
Modelinizin İyi Olup Olmadığını Nasıl Biliyorsunuz?
Doğruluk tek başına aldatıcı olabilir. %95'i spam olmayan e-postalar varsa, 'değil spam' dediği her e-posta %95 doğruluk sağlar: ancak tamamen işe yaramaz.
Ana metrikler:
- Doğruluk: doğru tahminlerin yüzdesi. Sınıf dengeli olduğunda yararlı.
- Dikkat: modelin pozitif olarak işaretlediği şeylerin, gerçekten pozitif olduğunu oran. Yüksek dikkat, az sayıda yanılgı anlamına gelir.
- Bulma Oranı: gerçekte pozitiflerin tamamında, modelin kaçınıp kaçınıp alındığını belirten. Yüksek bulma oranı, az sayıda kaçırma anlamına gelir.
- F1 skoru: dikkat ve bulma oranının harmonik ortalaması. Her iki durumda da dengeli olması gereken durumlarda yararlı.
- RMSE (Karekök Ortalamalı Hata): tahmin sayıları için (sayısal tahminler). Tahminlerin ortalama ne kadar yanılmadığını belirler?
Probleme göre hangi metrikin önemli olduğu değişir. Kanser tespiti için dikkat daha önemlidir: bir durumu kaçırmamak önemlidir. Spam filtrelemesi için dikkat daha önemlidir: gerçek bir e-postayı silmemek önemlidir.
Veri Analisti vs. Veri Bilimi Usta vs. Makine Öğrenimi Mühendisi
Üç Farklı Rol
Veri alanı üç ana kariyer yollarına sahiptir ve farklı beceriler gerektirir.
Veri Analisti
- Odak: mevcut verilerle iş sorularını yanıtlamak
- Araçlar: SQL, Excel, Tableau, temel Python veya R
- Günlük iş: paneller, raporlar, A/B test analizi, paydaş sunumları
- Giriş yolu: genellikle en erişilebilir. Çoğu analist CS derecesi olmadan başlar.
Veri Bilimi Usta
- Odak: karmaşık verilerde öngörücü modeller kurmak ve desenler bulmak
- Araçlar: Python (pandas, scikit-learn, matplotlib), istatistik, SQL, Jupyter notları
- Günlük iş: EDA, öznitelik mühendisliği, model oluşturma, deneyler
- Giriş yolu: genellikle istatistik veya nicel arka plan gerektirir. Bootcamp'ler ve öz-yürütme uygun yöntemlerdir.
Makine Öğrenimi Mühendisi
- Odak: modelleri üretim sistemlerine yerleştirme ve ölçeklendirme
- Araçlar: Python, TensorFlow/PyTorch, Docker, bulut platformları (AWS/GCP), API'ler
- Günlük iş: model optimizeasyonu,.pipeline altyapısı, üretim modellerini izleme
- Giriş yolu: genellikle güçlü yazılım mühendisliği becerileri ve makine öğrenimi bilgisi gerektirir.
Bir Portföy Oluşturmak
İşverenler, ne öğrendiğinizden daha çok ne yapabildiğinizle ilgilidir. GitHub'da 3-5 sağlam proje sergileyerek sertifikalarndan daha çok değer verirler. İyi projeler gerçek (değil oyuncak) datasetler kullanır, açık belgeler içerir ve kirli veri ile eyleme geçirecek bilgi arasında tam bir akış gösterir.
Gelecek Adımlar
Nereden Başlamalı
Ticaret araçları ücretsiz ve erişilebilir:
- pandas: veri işleme için standart Python kütüphanesi
- matplotlib / seaborn: görselleştirme kütüphaneleri
- scikit-learn: klasik makine öğrenimi için çalışma atı
- Jupyter notları: kod, çıktı ve notları birleştirebildiğiniz etkileşimli kodlama ortamları
- Kaggle: ücretsiz datasetler, yarışmalar ve bir topluluk pratiği
Bir gerçek veri kümesiyle başla. İndir, temizle, keşfe çık ve bir soru hakkında yanıt deney. Tek bir proje, herhangi bir dersi aşıyacak.