모델 성능 측정

scikit-learn으로 배우는 지도 학습

George Boorman

Core Curriculum Manager, DataCamp

모델 성능 측정

  • 분류에서 정확도는 일반적으로 사용되는 지표입니다

  • 정확성:

correct predictions divided by total observations

scikit-learn으로 배우는 지도 학습

모델 성능 측정

  • 정확도는 어떻게 측정하나요?

  • 분류기를 학습하는 데 사용된 데이터에서 정확도를 계산할 수 있음

  • 일반화 능력을 나타내지 NOT

scikit-learn으로 배우는 지도 학습

컴퓨팅 정확도

data being split into a training set and test set

scikit-learn으로 배우는 지도 학습

컴퓨팅 정확도

fitting a classifier on the training set

scikit-learn으로 배우는 지도 학습

컴퓨팅 정확도

calculate accuracy using the test set

scikit-learn으로 배우는 지도 학습

학습/테스트 분할

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으로 배우는 지도 학습

- 모델의 복잡성

  • k가 클수록 = 더 단순한 모델 = 과소적합 유발 가능성

  • k가 작을수록 = 더 복잡한 모델 = 과적합 유발 가능성

the scatter plots showing a KNN decision boundary for k=1, k=9, and k=18

scikit-learn으로 배우는 지도 학습

모델 복잡성과 과적합/과소적합

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으로 배우는 지도 학습

결과 그래프 작성

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()
scikit-learn으로 배우는 지도 학습

모델 복잡도 곡선

line plot of accuracy vs number of neighbors, where both the training and test set accuracy decrease as k increases

scikit-learn으로 배우는 지도 학습

모델 복잡도 곡선

arrow in the line plot pointing to 13 neighbors as producing the best test set accuracy

scikit-learn으로 배우는 지도 학습

연습해 봅시다!

scikit-learn으로 배우는 지도 학습

Preparing Video For Download...