훈련 세트(training set)
모델 훈련에 쓰이는 데이터 세트.
테스트 세트(test set)
모델의 실제 정확도를 판별하기 위해 쓰이는 데이터 세트.
전 글에서 훈련 세트와 테스트 세트를 나누지 않고 모델을 만들어 훈련을 했습니다.
결과는 당연히 100%로 나왔습니다. 머신러닝 알고리즘의 성능을 제대로 평가하려면 훈련 데이터와 평가에 사용할 데이 터가 각각 달라야 합니다.
그러기 위해 준비된 데이터 중에 일부를 떼어 훈련 세트와 테스트 세트를 나누어 줍니다. 훈련 세트와 테스트 세트를 나누어 줄 때 데이터가 한 쪽으로 편향되는 것을 방지하기 위해 데이터를 섞어주어야 합니다. scikit-learn 에서 train_test_split()이라는 함수를 사용해 비율에 맞게 섞어 훈련 세트와 테스트 세트로 나눌 수 있습니다.
코드로 내용을 더 보겠습니다.
github 코드 첨부
https://github.com/erdnussretono/K-Nearest-Neighbors_2/blob/main/KNN_2.ipynb
하이퍼 파라미터 정리
1. train_test_split() - 데이터를 나누는 함수
- test_size : 훈련 세트와 테스트 세트로 나누는 비율 지정, default 값 0.25(25%)
- shuffle : 훈련 세트와 테스트 세트로 나누기 전에 무작위로 섞을지 여부 결정, default 값 True, 클래스 레이블이 담긴 배열(보통 target data)을 전달하면 클래스 비율에 맞게 훈련 세트와 테스트 세트를 나눈다.
2. kneighbors() - 입력한 데이터에 가장 가까운 이웃을 찾아 거리와 인덱스를 반환하는 함수
- 이웃의 개수는 KNeighborsClassifier 객체를 생성할 때 지정한 개수를 사용하지만 n_neighbors 매개변수에서 다르게 지정할 수 있다.
- return_distance 매개변수를 False로 지정하면 이웃 샘플의 인덱스만 반환하고 거리는 반환하지 않는다. default 값은 True.
'AI' 카테고리의 다른 글
[머신러닝] 선형회귀(Linear Regression) (0) | 2021.07.17 |
---|---|
KNN(K-Nearest Neighbors) 회귀(regression) (0) | 2021.07.17 |
[데이터 전처리] titanic data 전처리 (0) | 2021.07.17 |
[머신러닝 데이터] 전처리 (0) | 2021.07.16 |
KNN(K-Nearest Neighbors) 알고리즘 기본개념 (0) | 2021.07.14 |