Đo lường hiệu suất mô hình

Học có giám sát với scikit-learn

George Boorman

Core Curriculum Manager, DataCamp

Đo lường hiệu suất mô hình

  • Trong phân loại, accuracy là thước đo phổ biến

  • Accuracy:

dự đoán đúng chia cho tổng quan sát

Học có giám sát với scikit-learn

Đo lường hiệu suất mô hình

  • Đo accuracy thế nào?

  • Có thể tính accuracy trên dữ liệu dùng để fit bộ phân loại

  • KHÔNG phản ánh khả năng tổng quát hóa

Học có giám sát với scikit-learn

Tính độ chính xác

dữ liệu được chia thành tập huấn luyện và tập kiểm tra

Học có giám sát với scikit-learn

Tính độ chính xác

fit bộ phân loại trên tập huấn luyện

Học có giám sát với scikit-learn

Tính độ chính xác

tính độ chính xác bằng tập kiểm tra

Học có giám sát với scikit-learn

Chia train/test

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
Học có giám sát với scikit-learn

Độ phức tạp mô hình

  • k lớn = mô hình ít phức tạp = có thể underfit

  • k nhỏ = mô hình phức tạp hơn = dễ overfit

các biểu đồ phân tán hiển thị biên quyết định KNN với k=1, k=9 và k=18

Học có giám sát với scikit-learn

Độ phức tạp và 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)
Học có giám sát với scikit-learn

Vẽ biểu đồ kết quả

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()
Học có giám sát với scikit-learn

Đường cong độ phức tạp mô hình

biểu đồ đường: độ chính xác theo số láng giềng; cả train và test giảm khi k tăng

Học có giám sát với scikit-learn

Đường cong độ phức tạp mô hình

mũi tên trên biểu đồ đường chỉ k=13 cho độ chính xác test tốt nhất

Học có giám sát với scikit-learn

Ayo berlatih!

Học có giám sát với scikit-learn

Preparing Video For Download...