Veri Bilimi Uygulamaları - Final Sınavı Çözüm Seti

Bu belge, sınav sorularının titiz ve soyut tanımlara dayalı çözümlerini içerir. Açıklamalar, genelden özele indirgeme (dedüktiyon) prensibiyle hazırlanmıştır.

Bölüm I: Yazılım Mühendisliği Temelleri ve Veri İşleme

1. Soru: Versiyon Kontrol Senkronizasyonu

Cevap: (c) git push

Analiz: Git mimarisinde yerel depo (local repository) ile uzak depo (remote repository) arasındaki yönlü graf akışı şöyledir:

  • pull: Uzak $\to$ Yerel (Fetch + Merge)
  • push: Yerel $\to$ Uzak
  • commit: Çalışma Dizini $\to$ Yerel Depo
  • clone: Uzak $\to$ Yeni Yerel

Yerel durumun $S_{local}$ uzak duruma $S_{remote}$ aktarılması işlemi idempotent olmayan push operasyonudur.

2. Soru: TDD Döngüsü (Red-Green-Refactor)

Cevap: (b) Başarısız test yaz $\rightarrow$ Kodu yaz $\rightarrow$ İyileştir.

Prensip: Test Güdümlü Geliştirme (TDD), yazılımın doğruluğunu aksiyomatik olarak testlerle tanımlar.

  1. Red: $\exists$ Test $T$, henüz $C$ kodu yokken başarısız olmalı (False Positive kontrolü).
  2. Green: $C$ kodunu, $T$‘yi geçecek minimal karmaşıklıkta yaz.
  3. Refactor: davranışı koruyarak ($T$ hala başarılı), $C$‘nin yapısal optimizasyonu.

3. Soru: Eksik Veri Tamamlama ve Aykırı Değerler

Cevap: (b) Medyan (Median) ile doldurma.

İspat: Bir $X$ örneklemi için merkezi eğilim ölçüleri incelendiğinde:

  • Ortalama (Mean): $L^2$ normunu minimize eder ($\sum (x_i - \mu)^2$). Uç değerlerin karesiyle büyüyen hata fonksiyonu nedeniyle aykırı değerlere hassastır.
  • Medyan (Median): $L^1$ normunu minimize eder ($\sum |x_i - m|$). Türevi sabit olduğundan, aykırı değerlerin büyüklüğü sonucu değiştirmez (Robustness).

4. Soru: Nominal Veri Kodlama

Cevap: (b) One-Hot Encoding.

Tanım: Kategorik uzay $K = {k_1, \dots, k_n}$ olsun.

  • Eğer $K$ üzerinde bir sıralama bağıntısı ($<$) tanımlı değilse (Nominal), bu uzayı $\mathbb{R}^1$‘e izomorfik eşlemek (Label Encoding) yapay bir sıra ($0 < 1 < 2$) empoze eder. Bu, modelin yanlış ilişki öğrenmesine yol açar.
  • Doğru dönüşüm, her elemanı $\mathbb{R}^n$ uzayında ortogonal bir baz vektörüne eşleyen One-Hot dönüşümüdür: $k_i \to e_i = (0, \dots, 1, \dots, 0)$.

5. Soru: Dağılım Karşılaştırma Hipotez Testi

Cevap: (c) Kolmogorov-Smirnov (K-S) Testi.

Teorem: İki olasılık dağılımı $P$ ve $Q$‘nun eşitliği ($H_0: P = Q$) test edilirken:

  • T-Testi: Sadece birinci momentleri (beklenen değer/ortalama, $\mu$) karşılaştırır. $\mu_P = \mu_Q$ olması $P=Q$ olduğunu gerektirmez (Örn: $N(0,1)$ ve Uniform$[-1,1]$).
  • K-S Testi: Kümülatif dağılım fonksiyonları (CDF) arasındaki supremum (en büyük) mesafeye bakar: $D = \sup_x |F_P(x) - F_Q(x)|$. Bu metrik, dağılımın şekli, varyansı ve konumu dahil tüm özelliklerine duyarlıdır.

6. Soru: Veri Sızıntısı (Data Leakage) ve Ölçeklendirme

Cevap: (c) Veriyi ayırdıktan sonra, sadece eğitim verisine göre (fit) uygulanmalıdır.

Aksiyom: Test kümesi $D_{test}$, model eğitimi sırasında “görülmeyen” evreni temsil eder. Ölçeklendirme fonksiyonu $\phi(x) = \frac{x - \mu}{\sigma}$ parametreleri ($\mu, \sigma$), dağılımın özellikleridir. Eğer bu parametreler $D_{train} \cup D_{test}$ üzerinden hesaplanırsa, $D_{test}$ bilgisi modele sızmış olur. $\mu$ ve $\sigma$ sadece $D_{train}$ üzerinden hesaplanmalı, $D_{test}$ bu sabitlerle dönüştürülmelidir.

Bölüm II: MLOps ve LLM Mimarisi

7. Soru: MLflow Kullanım Amacı

Cevap: (b) Deneyleri, parametreleri ve metrikleri izlemek.

Açıklama: Deterministik yazılımın aksine, ML stokastik ve deneyseldir. MLflow Tracking bileşeni, hiperparametre uzayındaki $(h_1, \dots, h_k) \to M_{metric}$ fonksiyonunun kaydını tutarak tekrarlanabilirliği sağlar.

8. Soru: Sürekli Entegrasyon (CI)

Cevap: (b) Kod değişikliklerini sık sık ve otomatik olarak birleştirip test etmek.

Amaç: Entropiyi düşürmek. Farklı branchlerdeki kodların birbirinden uzaklaşma (divergence) süresini minimize ederek entegrasyon maliyetini logaritmik düzeyde tutmak.

9. Soru: Üretim Dağılım Değişimi

Cevap: (b) Data Drift (Veri Kayması).

Tanım: Eğitim anındaki girdi dağılımı $P_{train}(X)$ ile üretim anındaki $P_{prod}(X)$ arasındaki Klullback-Leibler ayrışımıdır ($D_{KL}(P_{prod} || P_{train}) > \epsilon$). Modelin koşullu olasılığı $P(Y|X)$ değişmese bile, $P(X)$ değişimi performansı düşürür (Covariate Shift).

10. Soru: Metin Sayısallaştırma

Cevap: (b) Tokenization.

İşlem: Sürekli karakter dizisi uzayının $\Sigma^*$, sonlu ve ayrık bir tamsayı uzayına $\mathbb{Z}^n$ (token IDs) indirgenmesi işlemidir. Embedding (a) ise bu ayrık uzayın sürekli vektör uzayına ($\mathbb{R}^d$) gömülmesidir. Soru “ilk dönüşümü” (sayısal parçalar) sormaktadır.

11. Soru: Örnekli Prompting

Cevap: (b) Few-Shot Prompting.

Tanım: Modelin ağırlıklarını güncellemeden ($\Delta W = 0$), bağlam penceresi (context window) içine $S = {(x_1, y_1), \dots, (x_k, y_k)}$ kümesini vererek, modelin $P(y|x, S)$ olasılığını maksimize etmesini sağlamaktır.

12. Soru: Temperature (Sıcaklık) Parametresi

Cevap: (b) Daha deterministik, tutarlı ve odaklı olur.

Matematiksel Temel: Softmax fonksiyonunda $\sigma(z_i) = \frac{e^{z_i/T}}{\sum e^{z_j/T}}$ kullanılır.

  • $T \to 0$ limiti alındığında, dağılım bir Dirac deltası gibi davranır ve sadece en yüksek logit ($max(z_i)$) 1 olasılığına yaklaşır. Bu da deterministik (Greedy) sonuç üretir.
  • $T \to \infty$ durumunda dağılım Uniform dağılıma yaklaşır.

13. Soru: Güncel Bilgi ve Eğitimsiz Yanıt

Cevap: (b) RAG (Retrieval-Augmented Generation).

Mekanizma: Parametrik hafıza (Ağırlıklar) statiktir. Non-parametrik hafıza (Vektör Veritabanı) dinamiktir. RAG, soruyu ($q$) bir sorgu vektörüne çevirip, veritabanından en yakın dokümanları ($d$) getirir ve modele bağlam $(q, d)$ olarak sunar.

14. Soru: Anlamsal Vektör Dönüşümü

Cevap: (b) Embedding Modeli.

Özellik: Kelimeler arasındaki semantik benzerliğin, vektör uzayındaki geometrik yakınlığa (Cosine Similarity) izometrik olmasa da topolojik olarak korunduğu dönüşümdür.

15. Soru: Function Calling

Cevap: (b) Yapılandırılmış çıktı (JSON) üretmesi.

Amaç: Olasılıksal (probabilistic) bir sistemin, deterministik (deterministic) API’lar ile konuşabilmesi için gereken arayüzdür. LLM kodu çalıştırmaz; sadece çalıştırılacak fonksiyonun imzasını (JSON Schema) doldurur.