매직코드
article thumbnail

지도학습과 비지도학습의 차이

답을 알려주고 학습을 시키느냐(지도학습) 답과 특징을 알려주지 않고 학습을 시키느냐(비지도학습)


k-최근접 이웃 (k-Nearest Neighbor, kNN)

> 특징

대표적인 지도학습 알고리즘

특정 공간 내에서 입력과 제일 근접한 K개의 요소를 찾아 더 많이 일치하는 것으로 분류하는 알고리즘

유사한 특성을 가진 데이터들끼리는 거리가 가깝다고 가정하여 거리 공식을 사용해 가까운 데이터 탐색

k값 변경 가능

 

> 예시

k = 1

기준 데이터로부터 가장 가까이에 있는 데이터

ex) 나는 무슨색인가? 나와 가장 가까이에 있는 데이터가 파란색이면 나도 파란색

 

k = 3

기준 데이터로부터 가장 가까이에 있는 데이터 3개

ex) 나는 무슨색인가? 나와 가장 가까이에 있는 데이터 3개 중 과반 이상이 노란색이면 나도 노란색

 

> 예측률을 높일 수 있는 방법?

- k값을 홀수값으로 놓고 찾는게 좋다 (과반수를 넘길 수 있도록)

- 최적의 k값을 적용하자

    kNN은 지도학습으로 기준데이터값을 알고있다. 기준데이터와 비교했을 때 정답인 경우의 k값을 적용하면 된다.

 

> 장단점

장점

- 구현이 쉽다

- 알고리즘을 이해하기 쉽다

- 별도의 모델 학습이 필요 없다

- 하이퍼 파라미터가 적다 (이웃의 개수k)

 

단점

- 예측 속도가 느리다

- 메모리를 많이 쓴다

- 노이즈 데이터에 예민하다


최적의 K 찾기 - 교차검증

> k-fold 교차검증 (k폴드 교차검증)

100의 데이터를 80은 훈련용, 20은 테스트용으로 나눈다.

훈련용 80 중에 일부를 검증용으로 나눈다. 

검증용의 치우침을 예방하고자 k폴드 검증을 한다.

 

k = 10 >> 80개의 데이터를 10으로 나눈다.

10개의 그룹이 생기면 1번을 검증용으로 쓰고 나머지를 훈련용으로 사용하여 학습시킨다.

다음 2번그룹을 검증용으로 쓰고 나머지를 훈련용으로 사용하여 학습시킨다.

10번그룹까지 반복하여 검증용으로 학습시킨 후 평균값을 최종 검증값으로 사용한다.


선형 회귀 분석

입력으로 전달받은 값을 보고 1차함수를 만들어 모든 x값에 대한 y값을 예측한다.

 

분류 분석

입력으로 전달받은 값을 보고 바이너리 형태의 true false로 분류한다.

profile

매직코드

@개발법사

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!