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
| 1 | from sklearn.model_selection import train_test_split |
| 2 | from sklearn.datasets import load_iris |
| 3 | |
| 4 | X, y = load_iris(return_X_y=True) |
| 5 | |
| 6 | X_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 | |
| 13 | print(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ışı
| 1 | from sklearn.pipeline import Pipeline |
| 2 | from sklearn.preprocessing import StandardScaler |
| 3 | from sklearn.linear_model import LogisticRegression |
| 4 | |
| 5 | # Ön işleme + model tek nesnede |
| 6 | pipe = Pipeline([ |
| 7 | ('scaler', StandardScaler()), # Adım 1: Ölçekleme |
| 8 | ('classifier', LogisticRegression()) # Adım 2: Model |
| 9 | ]) |
| 10 | |
| 11 | # Tek satırda eğit |
| 12 | pipe.fit(X_train, y_train) |
| 13 | |
| 14 | # Tek satırda tahmin (scaler otomatik uygulanır) |
| 15 | predictions = pipe.predict(X_test) |
| 16 | print(f"Accuracy: {pipe.score(X_test, y_test):.2%}") |
❌ Yanlış: Manuel Ölçekleme
✅ Doğru: Pipeline
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
| 1 | from sklearn.metrics import classification_report |
| 2 | |
| 3 | y_pred = pipe.predict(X_test) |
| 4 | |
| 5 | print(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