Veri Bilimi Yol Haritası · 0 → Pro

Veri
Bilimi
Roadmap

Sadece model kurmak değil — problem çözme + istatistik + yazılım + iş bilgisi. Gerçek veri bilimi böyle görünür. %70 temizleme, %20 analiz, %10 model. Hazır mısın?

0
BÖLÜM
0
PROJE
0
AY (MIN)
Zihniyet
%70
Veri TemizlemeGerçekliğin büyük çoğunluğu burada
%20
Analiz & GörselleştirmePattern'leri bul, yorumla
%10
Model KurmaEvet, sadece %10
Problem Çözme Mindset'iTeknik bilgiden önce gelir
0
ZİHNİYET
1
ALTYAPI
2
ANALİZ
3
ML
4
DERİN ÖĞRENME
5
GERÇEK DÜNYA
6
UZMANLIK
7
PROJELER
1
// TEMEL ALTYAPI · BAŞLANGIÇ
Python + Kütüphaneler + Matematik
NumPy · Pandas · Matplotlib · Seaborn · İstatistik · Lineer Cebir
NumPyPandasMatplotlib SeabornList Comprehension LambdaJSONCSV
# NumPy — sayısal hesaplama temeli import numpy as np import pandas as pd dizi = np.array([1, 2, 3, 4, 5]) matris = np.array([[1,2],[3,4]]) np.mean(dizi), np.std(dizi), np.dot(matris, matris.T) # Pandas — veri manipülasyonu kalbi df = pd.read_csv("veri.csv") df.info() # genel bakış df.describe() # istatistik özeti df["yas"].value_counts() # frekans df.groupby("sehir")["gelir"].mean() # groupby # Pandas merge — SQL join gibi sonuc = pd.merge(df1, df2, on="id", how="left") pivot = df.pivot_table(values="satis", index="ay", aggfunc="sum")
// MATEMATİK & İSTATİSTİK — YETERİ KADAR, AKADEMİK DEĞİL
μ
Ortalama (Mean)
Σx / n — merkezin nerede?
M
Medyan (Median)
Ortanca değer — outlier'a dayanıklı
σ²
Varyans
Ortalamadan ortalama sapma karesi
r
Korelasyon
-1 ile 1 arası — doğrusal ilişki gücü
p
p-value
<0.05 → sonuç istatistiksel anlamlı
CLT
Central Limit Theorem
Büyük örneklem → normal dağılım. ML'nin temeli!
💡 Lineer Cebir neden önemli? ML algoritmalarının %90'ı matris operasyonları üstüne kurulu. Gradient descent, neural network ağırlıkları, PCA — hepsi lineer cebir. Vektör ve matris çarpımını anlayan, "kara kutuyu" anlayan olur.
Hedef: CSV okuyup analiz yap. Histogram, scatter, heatmap çiz. İstatistiksel özet çıkar.
2
// VERİ ANALİZİ · JUNIOR
EDA + Data Cleaning + Görselleştirme
Pandas Mastery · Outlier · Missing Data · Encoding · Scaling · EDA
⭐ En Kritik Skill: Data Cleaning olmadan model kurulamazsiniz. "Garbage in, garbage out" — temiz veri = iyi model. Sektörde zamanın %70'i burada geçer.
# Exploratory Data Analysis — EDA akışı import pandas as pd import matplotlib.pyplot as plt import seaborn as sns # 1. Genel bakış df.shape, df.dtypes, df.isnull().sum() # 2. Missing data analizi eksik_oran = (df.isnull().sum() / len(df)) * 100 # 3. Doldurma stratejileri df["yas"].fillna(df["yas"].median(), inplace=True) # sayısal df["sehir"].fillna(df["sehir"].mode()[0], inplace=True) # kategorik # 4. Outlier tespiti — IQR yöntemi Q1, Q3 = df["gelir"].quantile([.25, .75]) IQR = Q3 - Q1 alt, ust = Q1 - 1.5*IQR, Q3 + 1.5*IQR df_temiz = df[(df["gelir"] >= alt) & (df["gelir"] <= ust)] # 5. Encoding from sklearn.preprocessing import LabelEncoder, StandardScaler le = LabelEncoder() df["cinsiyet_enc"] = le.fit_transform(df["cinsiyet"]) df_dummies = pd.get_dummies(df, columns=["sehir"]) # one-hot # 6. Scaling scaler = StandardScaler() X_scaled = scaler.fit_transform(X_train) # fit sadece train'e! X_test_scaled = scaler.transform(X_test) # transform test'e
# Görselleştirme — iletişim aracı fig, axes = plt.subplots(2, 2, figsize=(12, 8)) # Histogram df["gelir"].hist(ax=axes[0,0], bins=30) # Scatter — iki değişken ilişkisi sns.scatterplot(data=df, x="yas", y="gelir", hue="cinsiyet") # Heatmap — korelasyon matrisi sns.heatmap(df.corr(), annot=True, fmt=".2f", cmap="coolwarm") # Box plot — outlier görselleştirme sns.boxplot(data=df, x="sehir", y="gelir")
🚢 Titanic Analizi
🎬 Netflix Verisi
📊 EDA Raporu
3
// MACHINE LEARNING · ORTA SEVİYE
Algoritmalar + Model Değerlendirme + Scikit-learn
Supervised · Unsupervised · Overfitting · Cross-Val · Metrикler
SUPERVISED · REG.
Linear Regression
Sürekli tahmin · house price · y = mx+b
SUPERVISED · CLF.
Logistic Regression
İkili sınıflandırma · sigmoid fonksiyon
SUPERVISED · TREE
Decision Tree
Kural ağacı · yorumlanabilir · overfitting riski
ENSEMBLE · 🔥
Random Forest
N ağaç → oylama · güçlü baseline · feature importance
SUPERVISED · DIST.
KNN
K en yakın komşu · mesafe bazlı · scaling şart
UNSUPERVISED
K-Means + PCA
Kümeleme · boyut azaltma · müşteri segmentasyonu
# Scikit-learn — standart ML workflow from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split, cross_val_score from sklearn.metrics import classification_report, roc_auc_score from sklearn.pipeline import Pipeline # Pipeline — preprocessing + model birleştir pipe = Pipeline([ ("scaler", StandardScaler()), ("model", RandomForestClassifier(n_estimators=100, random_state=42)) ]) X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, stratify=y, random_state=42 ) pipe.fit(X_train, y_train) # Cross validation — güvenilir değerlendirme cv_scores = cross_val_score(pipe, X, y, cv=5, scoring="f1") print(f"CV F1: {cv_scores.mean():.3f} ± {cv_scores.std():.3f}") # Model değerlendirme y_pred = pipe.predict(X_test) print(classification_report(y_test, y_pred)) print(f"ROC-AUC: {roc_auc_score(y_test, pipe.predict_proba(X_test)[:,1]):.3f}") # Hyperparameter tuning from sklearn.model_selection import GridSearchCV params = {"model__n_estimators": [50,100], "model__max_depth": [None,5,10]} grid = GridSearchCV(pipe, params, cv=5, n_jobs=-1) grid.fit(X_train, y_train)
Overfitting / Underfitting
Overfitting: train↑ test↓ → regularization, daha az feature. Underfitting: her ikisi↓ → daha karmaşık model.
Bias-Variance Tradeoff
Yüksek bias = underfitting. Yüksek variance = overfitting. Cross-val ile dengeyi bul.
METRİKFORMÜLNE ZAMAN?
Accuracydoğru / toplamDengeli sınıf dağılımı
PrecisionTP/(TP+FP)False positive maliyetliyse (spam)
RecallTP/(TP+FN)False negative kritikse (hastalık)
F1 Score2×(P×R)/(P+R)Dengesiz sınıf dağılımı
ROC-AUCeğri altı alanİkili sınıflandırma genel değerlendirme
🏠 House Price Prediction
📉 Customer Churn
4
// İLERİ SEVİYE · SENIOR YOL
Advanced ML + Deep Learning + NLP + Zaman Serisi
XGBoost · LightGBM · Neural Networks · CNN · LSTM · Transformer · ARIMA
# XGBoost — Kaggle'ın favorisi import xgboost as xgb from lightgbm import LGBMClassifier xgb_model = xgb.XGBClassifier( n_estimators=500, learning_rate=0.05, max_depth=6, subsample=0.8, use_label_encoder=False, eval_metric="logloss", early_stopping_rounds=50 ) xgb_model.fit(X_train, y_train, eval_set=[(X_val, y_val)], verbose=False) # LightGBM — daha hızlı, büyük veri için lgb_model = LGBMClassifier(n_estimators=1000, learning_rate=0.01) # Stacking ensemble from sklearn.ensemble import StackingClassifier stack = StackingClassifier( estimators=[("xgb", xgb_model), ("lgb", lgb_model)], final_estimator=LogisticRegression() )
# PyTorch — Neural Network import torch, torch.nn as nn class TabularNet(nn.Module): def __init__(self, in_features: int, n_classes: int): super().__init__() self.net = nn.Sequential( nn.Linear(in_features, 256), nn.BatchNorm1d(256), nn.ReLU(), nn.Dropout(0.3), nn.Linear(256, 128), nn.BatchNorm1d(128), nn.ReLU(), nn.Dropout(0.2), nn.Linear(128, n_classes) ) def forward(self, x): return self.net(x) # Zaman Serisi — Prophet from prophet import Prophet model = Prophet(seasonality_mode="multiplicative", yearly_seasonality=True) model.fit(df) # df: ds (tarih), y (değer) kolonları gelecek = model.make_future_dataframe(periods=90) tahmin = model.predict(gelecek)
NLP Pipeline
Text → temizleme → tokenizasyon → TF-IDF / Word2Vec → model. HuggingFace Transformers ile BERT fine-tuning.
CNN (Görüntü)
Konvolüsyon → pooling → flatten → dense. Transfer learning: ResNet/EfficientNet ile fine-tune.
🎬 Recommendation System
💳 Fraud Detection
🤖 NLP Chatbot
5
// GERÇEK DÜNYA · ÇOK ÖNEMLİ
SQL + ETL + Model Deployment + Dashboard
Window Functions · Airflow · Spark · FastAPI · Docker · Power BI
-- SQL Window Functions — güçlü analitik araç SELECT musteri_id, satis_tarihi, tutar, -- Kümülatif toplam SUM(tutar) OVER (PARTITION BY musteri_id ORDER BY satis_tarihi) AS kumulatif, -- Önceki satışa fark tutar - LAG(tutar) OVER (PARTITION BY musteri_id ORDER BY satis_tarihi) AS fark, -- Sıralama RANK() OVER (PARTITION BY ay ORDER BY tutar DESC) AS sira, -- Yüzdelik dilim PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY tutar) OVER () AS medyan FROM satislar;
# Model Deployment — FastAPI from fastapi import FastAPI from pydantic import BaseModel import joblib, numpy as np app = FastAPI(title="Churn Prediction API") model = joblib.load("models/churn_model.pkl") scaler = joblib.load("models/scaler.pkl") class MusteriVerisi(BaseModel): yas: int; tenure: int; aylik_ucret: float urun_sayisi: int; aktif_kart: bool @app.post("/tahmin") async def tahmin_et(veri: MusteriVerisi): X = np.array([[veri.yas, veri.tenure, veri.aylik_ucret, veri.urun_sayisi, int(veri.aktif_kart)]]) X_s = scaler.transform(X) olasılik = model.predict_proba(X_s)[0,1] return {"churn_olasiligi": round(float(olasılik),4), "yuksek_risk": bool(olasılik > 0.7)}
ETL Pipeline
Extract → Transform → Load. Apache Airflow ile DAG (Directed Acyclic Graph) tanımla. Spark ile büyük veri.
Docker
Model + dependencies → container. "Bende çalışıyor" problemi biter. Kubernetes ile ölçeklendir.
MLflow
Deney takibi, model versiyonlama, artifact store. Hangi parametre hangi sonucu verdi?
6
// UZMANLAŞMA ALANLARI · BİR SEÇMEK LAZIM
İş Analitiği · ML Engineer · AI/Deep Learning
KPI · Dashboard · Deployment · Görüntü işleme · NLP · Transformer
⚠️ Karar Ver: Her şeyi öğrenmek = hiçbirini bilmemek. 6 aylık odaklanmış çalışma, 2 yıllık dağınık çalışmadan değerlidir. Güçlü yönünü bul.
1️⃣ İş Analitiği
KPI tanımlama · Power BI/Tableau · SQL mastery · A/B testing · İş kararlarını veriye dökmek. Şirketlerde en fazla açık bu profil.
2️⃣ ML Engineer
Model deployment · API · Docker · Kubernetes · MLOps · CI/CD pipeline. Backend bilgisi kritik. En yüksek maaş bu alanda.
3️⃣ AI / Deep Learning
PyTorch/TF · Görüntü işleme (YOLO, SAM) · NLP (BERT, GPT fine-tune) · Akademik yayın. En uzun süre gerektiren yol.
💡 Tavsiye: Yeni başlıyorsan → İş Analitiği ile başla. İlk iş en çabuk bu yolla gelir. Deneyim kazanınca ML Engineer veya AI'a geç. Sektörde iş fırsatları en fazla bu sıralamada.

Net Yol Haritası
6 Adım.

Karmaşık görünüyor ama sistematik gidersen 6–12 ayda işe girilebilir seviyeye gelirsin. Sırayı bozma. Her adımı bitirmeden geçme.

↑ Başa Dön Kaggle →
1
Python + Pandas (1–2 ay)
Temel syntax, NumPy, CSV analizi, görselleştirme
2
EDA + Data Cleaning (1 ay)
Outlier, missing data, encoding, scaling — bu kısmı atlamak öldürür
3
ML Algoritmaları (2 ay)
Scikit-learn, cross-val, metrикler, XGBoost
4
Proje yap (paralel git)
Her öğrendiğini Titanic/Kaggle'da uygula
5
SQL öğren
Sektörde her veri bilimciden beklenir — SELECT to Window Functions
6
3–5 güçlü proje → GitHub + Kaggle
Deployment dahil projeler. README'li. Kendi yorumunu ekle.