|
대표적으로 데이터의 종류에 따라, 결측치 처리에 따라, 이상치 처리에 따라 결정된다. 예를 들어 고차원 데이터를 다루는 이미지 데이터면 차원 축소를 전처리로 이용할 수 있다. 결측치 처리를 삭제하거나 가까운 값으로 대치할 수도 있고 이상치 처리를 정규화 할 수도 제거할 수도 있다. 프로젝트나 목적에 따라서 전처리 방법을 결정한다. |
2 |
k-최근접 이웃 알고리즘에서 n_neighbors 값 설정 기준과 변화는 어떻게 이루어지나요? |
|
K의 개수는 홀수로 하는 것이 좋다. 짝수로 할 경우, 이진 분류를 할 때 동점 상황이 만들어져서 분류하고자 하는 대상을 분류할 수가 없기 때문이. |
뿐만 아니라 수가 많아도, 적어서도 안 된다. 적절한 k의 선택이 필요하다. |
|
수가 너무 작으면 overfitting 문제가 생기고, 너무 커지면 데이터의 지역 구조에 영향을 받기 때문에 적절한 수인 5를 기본 값으로 선택한 것으로 판단된다 |
|
→cross validation( ex- k fold) 을 사용하여 k값, 거리측정 방법같은 hyperparameter를 결정하기도함 |
|
3 |
k-최근접 이웃 알고리즘이 다양한 데이터셋에서 어떤 성능을 보여주나요? |
|
K-NN 알고리즘은 다양한 데이터 세트에 대해서 유클리드 거리를 사용하여 거리를 측정한다. 다양한 데이터셋에 대해서 각각의 계산이 필요하기 때문에 낮은 성능을 보여준다. |
4 |
비선형 데이터셋에서 k-최근접 이웃 알고리즘이 어떻게 동작하나요? |
|
비선형 데이터셋, 선형 데이터셋 상관없이 똑같이 동작함. K-NN은 classification 하는 알고리즘으로 샘플 하나를 중심으로 창을 씌우고 k 개의 샘플이 들어올 때까지 h 파젠창을 확장한다. 기존의 x 데이터에 가까운 k개 샘플을 찾고 밀도를 추정해서 새로운 데이터가 들어오면 그룹을 판단한다. |
5 |
훈련 세트와 테스트 세트 분할 비율 결정 기준은 어떻게 되나요? |
|
훈련 세트 : 테스트 세트를 제외한 전부 (데이터 세트의 크기가 클수록 좋기 때문) |
테스트 세트 : 전체 데이터의 20 ~ 30% (전체 데이터 양이 크다면 1%만 사용해도 가능) |
|
6 |
적절한 데이터 분리와 셔플 방법은 어떻게 되나요? |
|
샘플링 편향을 방지하기 위해 훈련과 테스트에 적절히 데이터를 섞어야 한다. |
(ex : 한 종류의 어종만 포함되지 않도록 만들기 위함) |
|
numpy는 배열 인덱싱 기능을 제공하기 때문에 shuffle() 메소드를 사용하여 배열의 인덱스를 섞는다. |
|