본문 바로가기

AI/머신러닝&딥러닝

진짜 나를 위한 머신러닝 #k-최근접 이웃 회귀

나의 이해는 주관적인 저의 이해를 적어놓은 글입니다. 개념을 쉽게 이해해보고자 서술해본 글이지만 알고리즘이나 용어의 개념과 100% 일치하지 못할 수 있습니다.

회귀

- 임의의 수치를 예측하는 문제

- 두 변수 사이의 상관관계를 분석하는 방법(여러 변수 거나..)

 

나의 이해 : 스타2에서 마린이 머신건을 몇 초 동안 쏴야 울트라리스크를 죽일 수 있을까? 를 예측하는 것이 회귀.

분류는 마린과 울트라리스크는 다르다는 것.

 

 

k-최근접 이웃 회귀

- k-최근접 이웃 알고리즘을 사용해 가장 가까운 이웃 샘플을 찾고 이 샘플들의 타깃 값을 평균하여 예측으로 삼음

 

나의 이해 : 마린 1은 눈이 안 좋아서 저글링을 10발만에 잡고 마린 2는 눈이 좋아서 저글링을 5발만에 잡고 마린 3은 타고난 저격수라 저글링을 1발만에 잡음. 그럼 저 마린들이 평균 몇 발만에 저글링을 잡는가? (10 + 5 + 1)/3 = 5.3발만에 잡는다고 예측하는 게 k-최근접 이웃 회귀. 여기서 각 마린이 총을 쏜 횟수를 특성이라 볼 수 있고, 보통 마린이 몇 발에 잡는가를 예측하는 건 타깃으로 보면 됨.

 

 

결정계수(R²)

- 회귀에선 정확한 숫자를 맞힌다는 것은 거의 불가능해서 예측하는 정확도를 점수로 표현하는데 이를 결정계수(R²)라고 부름

- 타깃의 평균 정도를 예측하는 수준이면 0에 가까워지고 예측이 타깃에 아주 가까워지면 1에 가까워짐

- 1에 가까울수록 예측을 잘하고 있다는 의미로 생각하면 됨

결정계수 계산식

 

나의 이해 : 특성을 마린의 근속연수라고 보고 타깃을 사격실력이라고 가정하자. 10마리의 마린이 있는데 이 마린들은 근속연수에 비례해 사격실력이 올라간다. 그럼 k-최근접 이웃 회귀 모델로 새로 뽑은 1마리의 마린의 사격실력을 예측하는 학습을 시켰는데 그 값을 예측이라고 보자. 

각 마린의 사격실력에서 마린들의 사격실력의 평균을 빼고 제곱을 한 값을 분모, 각 마린의 사격실력에서 새로 뽑은 1마리의 마린 사격실력을 예측한 값을 빼고 제곱을 한 값을 분자로 보면 예측값이 평균값에 가까워질수록 R²값이 1에 가까워진다. 즉 예측값이 평균값에 가까워진다는 말은 정확도가 올라간다는 의미.

 

 

과대적합, 과소적합, 과적합

- 과대적합은 모델의 훈련 성능이 테스트 성능 세트보다 훨씬 높을 때 일어남

- 과소적합은 훈련 세트와 테스트 세트의 성능이 모두 낮거나 테스트 세트 성능이 훈련 세트보다 높을 때 일어남

- 과적합은 과대적합과 과소적합을 합쳐서 부르는 말

 

나의 이해 : 훈련 세트와 테스트 세트의 결정계수의 관계만 잘 이해하자. 바람직한 적합도는 첫째: 훈련세트가 테스트세트 점수보다 높아야하고, 둘째: 훈련세트와 테스트세트의 차이가 최대한 작아야 한다. 훈련세트 점수가 테스트세트 점수보다 많이 높을 때 과대적합이라 부르고 과소적합은 훈련세트의 점수가 테스트세트의 점수보다 낮거나 아니면 둘 다의 점수가 많이 낮은 경우를 말한다. 좀 더 쉽게 얘기하자면 예측한 점수가 큰 의미가 없는 예측이 되는 경우를 모델이 과적합 되었다고 얘기하는 것.

 

 


핵심 패키지와 함수

 

사이킷런(scikit-learn)

KNeighborsRegressor

- k-최근접 이웃 회귀 모델을 만드는 사이킷런 클래스

- n_neighbors 매개변수로 이웃의 개수를 지정. 기본값은 5

 

mean_absolute_error()- 회귀 모델의 평균 절댓값 오차를 계산- 첫 번째 매개변수는 타깃, 두 번째 매개변수는 예측값을 전달- 타깃과 예측을 뺀 값을 제곱한 다음 전체 샘플에 대해 평균한 값을 반환

 

넘파이(numpy)

reshape()- 배열의 크기를 바꾸는 메서드- 바꾸고자 하는 배열의 크기를 매개변수로 전달- 바꾸기 전후의 배열 원소 개수는 동일해야 함- 사이킷런에 사용해야 할 훈련 세트는 2차원 배열이어야 하기 때문에 사용

 

 


참고

http://www.yes24.com/Product/Goods/96024871

 

혼자 공부하는 머신러닝+딥러닝 - YES24

- 혼자 해도 충분하다! 1:1 과외하듯 배우는 인공지능 자습서 이 책은 수식과 이론으로 중무장한 머신러닝, 딥러닝 책에 지친 ‘독학하는 입문자’가 ‘꼭 필요한 내용을 제대로’ 학습할 수 있

www.yes24.com

 

반응형