0Pricing
Python Academy · Ders

Model Değerlendirme ve Çapraz Doğrulama

Modelleri doğruluk, F1, ROC-AUC ve k katlı CV ile değerlendirin.

Model Değerlendirme ve Çapraz Doğrulama, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.

Eğitim/Doğrulama/Sınama Bölmesi

Üçlü bir bölme kullanın: uydurmak için eğitim, hiperparametreleri ayarlamak için doğrulama, nihai performansı raporlamak için sınama. Geliştirme sırasında sınama kümesini asla kullanmayın.

from sklearn.model_selection import train_test_split
import numpy as np

X = np.random.rand(1000, 10)
y = (X[:,0] > 0.5).astype(int)

X_tr, X_rest, y_tr, y_rest = train_test_split(X, y, test_size=0.3)
X_val, X_te, y_val, y_te = train_test_split(X_rest, y_rest, test_size=0.5)

Doğruluk Skoru

accuracy_score, doğru tahminlerin oranıdır. Dengeli sınıflarda kullanın; dengesiz verilerde F1 veya AUC'yi tercih edin.

from sklearn.metrics import accuracy_score
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split

X, y = make_classification(random_state=0)
X_tr, X_te, y_tr, y_te = train_test_split(X, y, random_state=0)
model = LogisticRegression().fit(X_tr, y_tr)
print("Accuracy:", accuracy_score(y_te, model.predict(X_te)))

Kesinlik, Duyarlılık, F1

Dengesiz sınıflar için: kesinlik = TP/(TP+FP), duyarlılık = TP/(TP+FN), F1 = kesinlik ve duyarlılığın harmonik ortalamasıdır.

from sklearn.metrics import precision_score, recall_score, f1_score, classification_report

# Use classification_report for a full summary:
print(classification_report(y_te, model.predict(X_te)))
# shows precision, recall, f1 for each class

Karışıklık Matrisi

Bir karışıklık matrisi doğru pozitifleri, yanlış pozitifleri, doğru negatifleri ve yanlış negatifleri gösterir.

from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay
import matplotlib.pyplot as plt

cm = confusion_matrix(y_te, model.predict(X_te))
print(cm)
# [[TN FP]
#  [FN TP]]

ROC Eğrisi ve AUC

roc_auc_score, ROC eğrisinin altındaki alanı ölçer. AUC = 1.0 kusursuzdur; 0.5 rastgele tahmin anlamına gelir.

from sklearn.metrics import roc_auc_score, roc_curve

y_prob = model.predict_proba(X_te)[:,1]
print("AUC:", roc_auc_score(y_te, y_prob))

fpr, tpr, thresholds = roc_curve(y_te, y_prob)
# plot fpr vs tpr for the full ROC curve

Regresyon Ölçütleri

Regresyon görevleri için mean_squared_error (MSE), root_mean_squared_error (RMSE) ve r2_score kullanın.

from sklearn.metrics import mean_squared_error, r2_score

y_pred = regression_model.predict(X_te)
mse = mean_squared_error(y_te, y_pred)
print("RMSE:", mse**0.5)
print("R²:", r2_score(y_te, y_pred))

k Katlı Çapraz Doğrulama

cross_val_score, verileri k kata böler, k-1 katında eğitir, 1 katında değerlendirir ve bunu k kez tekrarlar. Tek bir bölmeden daha güvenilirdir.

from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
scores = cross_val_score(LogisticRegression(), X, y, cv=10, scoring="accuracy")
print(f"{scores.mean():.3f} ± {scores.std():.3f}")

StratifiedKFold

Her katın aynı sınıf dağılımına sahip olmasını sağlamak için StratifiedKFold kullanın — dengesiz veri kümeleri için kritik bir uygulamadır.

from sklearn.model_selection import StratifiedKFold, cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(weights=[0.9,0.1], random_state=0)
cv = StratifiedKFold(n_splits=5)
scores = cross_val_score(LogisticRegression(), X, y, cv=cv, scoring="f1")
print("Stratified F1:", scores.mean())

Yanlılık-Varyans Dengesi

Yüksek yanlılık = yetersiz uyum (model çok basit). Yüksek varyans = aşırı uyum (model çok karmaşık). Çapraz doğrulama, hangi sorunun bulunduğunu ortaya çıkarır.

# Underfitting: low train score AND low val score
# → increase model complexity, add features

# Overfitting: high train score, low val score
# → regularise, reduce complexity, get more data

from sklearn.model_selection import validation_curve
import numpy as np

train_sc, val_sc = validation_curve(DecisionTreeClassifier(), X, y, param_name="max_depth", param_range=range(1,10))

İç İçe Çapraz Doğrulama

Tarafsız hiperparametre ayarlama AND değerlendirmesi için iç içe CV kullanın: iç döngü ayarlar, dış döngü değerlendirir.

from sklearn.model_selection import cross_val_score, GridSearchCV
from sklearn.svm import SVC
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
gs = GridSearchCV(SVC(), {"C":[0.1,1,10]}, cv=5)
outer_scores = cross_val_score(gs, X, y, cv=5)
print("Nested CV accuracy:", outer_scores.mean())

Kalibrasyon

Bir sınıflandırıcının olasılık tahminleri kötü kalibre edilmiş olabilir. Daha iyi olasılık tahminleri için CalibratedClassifierCV kullanın.

from sklearn.calibration import CalibratedClassifierCV
from sklearn.svm import SVC
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split

X, y = make_classification(random_state=0)
X_tr, X_te, y_tr, y_te = train_test_split(X, y)

cal = CalibratedClassifierCV(SVC(), cv=5).fit(X_tr, y_tr)
print(cal.predict_proba(X_te[:3]))

Kısa Kontrol

Modelleri değerlendirmek için çapraz doğrulama neden tek bir eğitim/sınama bölmesine tercih edilir?

Özet

Dengeli problemler için doğruluğu, dengesiz problemler için F1/AUC'yi kullanın. k katlı cross_val_score ile değerlendirme yapın, dengesiz veriler için StratifiedKFold kullanın ve tarafsız bir nihai tahmin elde etmek üzere hiperparametreleri ayarlarken iç içe CV uygulayın. Geliştirme sırasında sınama kümesine asla bakmayın.

Sıkça Sorulan Sorular

“Model Değerlendirme ve Çapraz Doğrulama” dersi ücretsiz mi?

Evet — “Model Değerlendirme ve Çapraz Doğrulama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.

“Model Değerlendirme ve Çapraz Doğrulama” dersinde ne öğreneceğim?

Modelleri doğruluk, F1, ROC-AUC ve k katlı CV ile değerlendirin. Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Python Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Model Değerlendirme ve Çapraz Doğrulama” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. scikit-learn API'si: fit, transform, predict
  2. Doğrusal Modeller: Regresyon ve Sınıflandırma
  3. Ağaç Tabanlı Modeller: Karar Ağaçları ve Rastgele Ormanlar
  4. Model Değerlendirme ve Çapraz Doğrulama
← Python Academy Sayfasına Dön