React Flow mini map
🛠️ Uygulamalı MLbaşlangıç18 dk

Scikit-learn ile İlk Model

ML workflow'unun sıfırdan uygulaması

Scikit-learn, makine öğrenmesinin İsviçre çakısıdır — onlarca algoritma, tek bir tutarlı arayüz. Bu konuda sıfırdan bir ML projesinin tam yaşam döngüsünü keşfedeceğiz: veri yüklemeden model değerlendirmeye, her adımı elle kodlayacağız.

Scikit-learn'ün dehası **üç metotluk sözleşmesidir**:…

🍳Mutfak Robotu Benzetmesi

fit/predict/score bir mutfak robotunun düğmeleri gibidir: farklı aparatlar (modeller) takabilirsiniz ama kontrol paneli hep aynı. Blender takın veya rondo — "başlat" düğmesi değişmez. Bu tutarlılık, sklearn'ü deney yapmak için ideal kılar.

Modeli eğittiğin veriyle test etmek, sınav sorularını önceden vermek gibidir. **train_test…

Stratified split ile veri bölme

Python
1from sklearn.model_selection import train_test_split
2from sklearn.datasets import load_iris
3
4X, y = load_iris(return_X_y=True)
5
6X_train, X_test, y_train, y_test = train_test_split(
7 X, y,
8 test_size=0.2, # %20 test
9 stratify=y, # sınıf oranlarını koru
10 random_state=42 # tekrarlanabilirlik
11)
12
13print(f"Eğitim: {len(X_train)}, Test: {len(X_test)}")

⚠️random_state olmadan her çalıştırmada farklı bölünme olur. Sonuçların tekrarlanabilir olması için mutlaka belirle!

**Veri sızıntısı (data leakage)** ML'in en sinsi hatasıdır. Ön işlemeyi (ölçekleme, encodi…

Pipeline ile güvenli iş akışı

Python
1from sklearn.pipeline import Pipeline
2from sklearn.preprocessing import StandardScaler
3from sklearn.linear_model import LogisticRegression
4
5# Ön işleme + model tek nesnede
6pipe = Pipeline([
7 ('scaler', StandardScaler()), # Adım 1: Ölçekleme
8 ('classifier', LogisticRegression()) # Adım 2: Model
9])
10
11# Tek satırda eğit
12pipe.fit(X_train, y_train)
13
14# Tek satırda tahmin (scaler otomatik uygulanır)
15predictions = pipe.predict(X_test)
16print(f"Accuracy: {pipe.score(X_test, y_test):.2%}")

❌ Yanlış: Manuel Ölçekleme

  • ·scaler.fit(X) — tüm veri!
  • ·X_scaled = scaler.transform(X)
  • ·Sonra train/test split
  • ·Test istatistikleri eğitime sızdı

✅ Doğru: Pipeline

  • ·Önce train/test split
  • ·pipe.fit(X_train, y_train)
  • ·Scaler sadece train'den öğrenir
  • ·Test'e sadece transform uygulanır

Karmaşık modellere atlamadan önce **basit bir baseline** kur. İki ideal aday:…

✦ Quiz

Pipeline kullanmanın en önemli avantajı nedir?

Sınıf dengesizliğinde accuracy yanıltıcıdır. %95 negatif veri setinde "hep negatif" tahmin…

Detaylı performans raporu

Python
1from sklearn.metrics import classification_report
2
3y_pred = pipe.predict(X_test)
4
5print(classification_report(y_test, y_pred, target_names=['setosa', 'versicolor', 'virginica']))
6
7# Çıktı örneği:
8# precision recall f1-score support
9# setosa 1.00 1.00 1.00 10
10# versicolor 1.00 0.90 0.95 10
11# virginica 0.91 1.00 0.95 10

💡Dengesiz sınıflarda macro avg yerine weighted avg F1'e bak — sınıf büyüklüklerini hesaba katar.

✦ Quiz

Fraud detection (%1 fraud) için hangi metrik daha anlamlı?

ℹ️Bu konu ml-nedir temellerini pratiğe döker. Devamında degerlendirme-metrikleri ile metrikleri derinleştirecek, karar-agaclari ile alternatif baseline modelleri keşfedeceksin.

Bağlantılı Konular