Mengukur kinerja model

Supervised Learning dengan scikit-learn

George Boorman

Core Curriculum Manager, DataCamp

Mengukur kinerja model

  • Pada klasifikasi, akurasi sering dipakai

  • Akurasi:

prediksi benar dibagi total observasi

Supervised Learning dengan scikit-learn

Mengukur kinerja model

  • Bagaimana kita mengukur akurasi?

  • Bisa dihitung pada data yang dipakai melatih klasifier

  • TIDAK menunjukkan kemampuan generalisasi

Supervised Learning dengan scikit-learn

Menghitung akurasi

data dibagi menjadi train dan test

Supervised Learning dengan scikit-learn

Menghitung akurasi

melatih klasifier pada data train

Supervised Learning dengan scikit-learn

Menghitung akurasi

hitung akurasi memakai data test

Supervised Learning dengan scikit-learn

Train/test split

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
Supervised Learning dengan scikit-learn

Kompleksitas model

  • k lebih besar = model kurang kompleks = bisa underfitting

  • k lebih kecil = model lebih kompleks = bisa overfitting

plot sebar dengan batas keputusan KNN untuk k=1, k=9, dan k=18

Supervised Learning dengan scikit-learn

Kompleksitas dan over/underfitting

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)
Supervised Learning dengan scikit-learn

Memplot hasil

plt.figure(figsize=(8, 6))
plt.title("KNN: Varying Number of Neighbors")
plt.plot(neighbors, train_accuracies.values(), label="Training Accuracy")
plt.plot(neighbors, test_accuracies.values(), label="Testing Accuracy")
plt.legend()
plt.xlabel("Number of Neighbors")
plt.ylabel("Accuracy")
plt.show()
Supervised Learning dengan scikit-learn

Kurva kompleksitas model

plot garis akurasi vs jumlah tetangga; akurasi train dan test turun saat k naik

Supervised Learning dengan scikit-learn

Kurva kompleksitas model

panah pada plot garis menunjuk 13 tetangga sebagai akurasi uji terbaik

Supervised Learning dengan scikit-learn

Ayo berlatih!

Supervised Learning dengan scikit-learn

Preparing Video For Download...