Model performansını ölçme

scikit-learn ile Supervised Learning

George Boorman

Core Curriculum Manager, DataCamp

Model performansını ölçme

  • Sınıflandırmada doğruluk yaygın bir metriktir

  • Doğruluk:

doğru tahminler / toplam gözlem

scikit-learn ile Supervised Learning

Model performansını ölçme

  • Doğruluğu nasıl ölçeriz?

  • Doğruluğu sınıflandırıcıyı eğittiğiniz veride hesaplayabilirsiniz

  • Ancak genelleme yetisini göstermez

scikit-learn ile Supervised Learning

Doğruluk hesaplama

verinin eğitim ve test kümelerine ayrılması

scikit-learn ile Supervised Learning

Doğruluk hesaplama

eğitim kümesinde sınıflandırıcıyı eğitme

scikit-learn ile Supervised Learning

Doğruluk hesaplama

test kümesiyle doğruluğu hesaplama

scikit-learn ile Supervised Learning

Eğitim/test ayrımı

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=21, stratify=y)
knn = KNeighborsClassifier(n_neighbors=6)
knn.fit(X_train, y_train)
print(knn.score(X_test, y_test))
0.8800599700149925
scikit-learn ile Supervised Learning

Model karmaşıklığı

  • Daha büyük k = daha az karmaşık model = eksik öğrenmeye yol açabilir

  • Daha küçük k = daha karmaşık model = aşırı öğrenmeye yol açabilir

k=1, k=9 ve k=18 için KNN karar sınırını gösteren saçılım grafikleri

scikit-learn ile Supervised Learning

Model karmaşıklığı ve aşırı/eksik öğrenme

train_accuracies = {}
test_accuracies = {}
neighbors = np.arange(1, 26)

for neighbor in neighbors:
knn = KNeighborsClassifier(n_neighbors=neighbor)
knn.fit(X_train, y_train)
train_accuracies[neighbor] = knn.score(X_train, y_train) test_accuracies[neighbor] = knn.score(X_test, y_test)
scikit-learn ile Supervised Learning

Sonuçları görselleştirme

plt.figure(figsize=(8, 6))
plt.title("KNN: Komşu Sayısını Değiştirme")
plt.plot(neighbors, train_accuracies.values(), label="Eğitim doğruluğu")
plt.plot(neighbors, test_accuracies.values(), label="Test doğruluğu")
plt.legend()
plt.xlabel("Komşu sayısı")
plt.ylabel("Doğruluk")
plt.show()
scikit-learn ile Supervised Learning

Model karmaşıklık eğrisi

doğruluk vs komşu sayısı çizgi grafiği; k arttıkça eğitim ve test doğruluğu düşüyor

scikit-learn ile Supervised Learning

Model karmaşıklık eğrisi

çizgi grafikte 13 komşunun en iyi test doğruluğunu verdiğini gösteren ok

scikit-learn ile Supervised Learning

Hadi pratik yapalım!

scikit-learn ile Supervised Learning

Preparing Video For Download...