AI/ML/DL (5) - Hyperparameters

xsldihsl·2024년 5월 6일
0

AI/ML/DL

목록 보기
5/25

Contents

  1. Hyperparameters

1. Hyperparameters

The types of parameters of our choice is called "hyperparameters".

앞서 설명한 underfitting 또는 overfitting 문제를 해결하기 위해 우리는 "hyperparameters" 의 값을 조정해 줄 수 있다. 특히 k-nearest neighbors algorithm 을 이용하는 경우 n_neighbors, 또는 k, 가 hyperparameter 에 해당한다.

k ↑: Underfitting

  • 만약 k 가 샘플 전체라면, 모델은 제대로 배우지 못한채로 다수가 속한 class 의 membership 을 답으로 내놓을 것이다. 따라서, underfitting 을 해결하기 위해 k 를 낮추도록 하자.

k ↓: Overfitting

  • 만약 k 가 1 이라면, 우리의 모델은 가장 가까운 점 하나만을 참조할 뿐 train set 에서 학습한 pattern 을 따르지 못한다. 따라서, overfitting 을 해결하기 위해 k 를 높이도록 하자.

앞선 KNeighborsRegressor 에서 train 과 test data 에 대한 점수를 출력해보면 다음과 같다.

print(knr.score(train_input, train_target)) # 0.9653220333722549
print(knr.score(test_input, test_target)) # 0.9849925846483837

이를 통해 우리의 knr 모델이 다소 underfitted 된 것을 알 수 있다. 이를 해결하기 위해 우리는 가까운 이웃들의 개수를 줄여야한다. knr 의 n_neighbors 기본값이 5 이므로 3 을 적용한다면 결과는 다음과 같다.

knr.n_neighbors = 3
knr.fit(train_input, train_target)
print(knr.score(train_input, train_target)) # 0.9773889419824655
print(knr.score(test_input, test_target)) # 0.9669538619799076

따라서 underfitting 문제가 해결된 것을 알 수 있고 우리는 k=3 일 때 underfitting 과 overfitting 의 적절한 균형점을 찾았다고 할 수 있다.


0개의 댓글