지도학습
지도학습(supervised learning)은 훈련 데이터(Training Data)로부터 하나의 함수를 유추해내기 위한 기계학습(machine learning)의 한 방법이다.
개요
학습 훈련 데이터(training data)로 입력과 출력이 같이 제공되는 상황을 문제(입력)의 답(출력)을 가르쳐 주는 것에 비유하여 지도형 기계 학습(이하 '지도 학습')이라고 한다. 예로, 개와 고양이 사진을 구분하는 것을 들 수 있다. 이때 입력은 사진이고, 출력은 개 또는 고양이인지의 여부가 된다. 개인지 고양이인지의 여부가 기록된 사진을 이용해 지도 학습을 하며, 학습 결과는 훈련 데이터에 포함되지 않은 사진을 구분하는 데 적용된다. 지도학습(Supervised learnin)훈련 데이터는 일반적으로 입력 객체에 대한 속성을 벡터 형태로 포함하고 있으며 각각의 벡터에 대해 원하는 결과가 무엇인지 표시되어 있다. 이렇게 유추된 함수 중 연속적인 값을 출력하는 것을 회귀분석(Regression)이라 하고 주어진 입력 벡터가 어떤 종류의 값인지 표식하는 것을 분류(Classification)라 한다. 지도 학습기(Supervised Learner)가 하는 작업은 훈련 데이터로부터 주어진 데이터에 대해 예측하고자 하는 값을 올바로 추측해내는 것이다. 이 목표를 달성하기 위해서는 학습기가 "알맞은" 방법을 통하여 기존의 훈련 데이터로부터 나타나지 않던 상황까지도 일반화하여 처리할 수 있어야 한다. 사람과 동물에 대응하는 심리학으로는 개념학습(Concept Learning)을 예로 들 수 있다. 쉽게 말해서 지도학습은 예측하고 싶을 때 사용하는 머신러닝의 알고리즘이다.
예측 단계
- 데이터 준비하기
- 모든 지도 학습 방법은 입력 데이터 행렬(일반적으로 X)로 시작합니다. X의 각 행은 하나의 관측값을 나타냅니다. X의 각 열은 하나의 변수, 즉 예측 변수를 나타낸다. 누락된 항목은 X에서 NaN 값으로 나타낸다. 지도 학습 알고리즘은 NaN 값을 무시하거나 NaN 값을 갖는 모든 행을 무시하는 방법으로 이 값을 처리할 수 있다. 응답 변수 데이터 Y에 다양한 데이터형을 사용할 수 있습니다. Y의 각 요소는 대응하는 X의 행에 대한 응답 변수를 나타내며 역시 누락된 Y 데이터를 갖는 관측값은 무시된다. 회귀를 수행하는 경우, Y는 X의 행 개수와 같은 개수의 요소를 갖는 숫자형 벡터여야 하며, 분류를 수행하는 경우, Y는 다음 데이터형 중 하나일 수 있다.
- 알고리즘 선택하기
- 여러 알고리즘 특성 간에는 상충하는 장단점이 있다. 예를 들어 훈련 속도, 메모리 사용량, 예측 정확도, 투명도 등에서 차이가 난다.
- 모델 피팅하기
- 사용하는 피팅 함수는 선택하는 알고리즘에 따라 다르다.
- 검증 방법 선택하기
- 결과로 생성되는 피팅된 모델의 정확도를 검토하는 세 가지 기본 방법에는 재입대 오차를 검토, 교차 검증 오차 검토 그리고 배깅 결절 트리에 대한 Out-of-bag 오차를 검토하는 방법이 있다.
- 피팅 검토 후 업데이트 하기
- 피팅 모델 사용하기
알고리즘
- 최근접 이웃(k-NN)
- 데이터 포인트에서 가장 가까운 훈련 데이터 포인트, 최근접 이웃을 찾는 알고리즘, 작은 데이터세트일 경우에 기본모델로서 좋고 이해하기 쉽다.
- 선형 모델
- 선형적인 직선이나 평면, 초평면 등을 이용하여 출력을 찾는 알고리즘, 첫 번째로 시도하기 좋으며, 대용량 데이터세트와 고차원 데이터세트에 가능하다.
- 결정 트리
- 데이트를 이진 분류하는 것을 반복하여 최종적으로 결과를 출력한다. 매우 빠르고 데이터 스케일이 조정이 필요 없다. 시각화하기 좋고 설명하기 쉬우나 과대적합되는 경향이 있다.
- 랜덤 포레스트
- 과대적합된 단일 결정 트리를 여러 개 묶어 하나의 모델로 만든 것이다. 결정 트리 하나보다 거의 항상 좋은 성능을 낸다. 매우 안정적이고 강력하며 데이터 스케일의 조정이 필요 없다. 다만 시간이 오래 걸리고 텍스트같은 고차원 희소 데이터에는 잘 맞지 않는다.
- 그래디언트 부스팅 결정 트리
- 깊이가 깊지 않은 단일 결정 트리를 하나의 모델로 만든 것이다. 랜덤포레스트보다 조금 더 성능이 좋다. 랜덤 포레스트보다 학습은 느리지만 예측은 빠르고 메모리를 적게 사용한다. 다만 랜덤 포레스트보다 매개변수의 튜닝이 많이 필요하다.
- 서포트 벡터 머신(SVM)
- 클래스 사이의 경계에 위치한 데이터 포인트(서포트 벡터)간의 거리를 최대화하여 결과를 찾는 알고리즘, 비슷한 의미의 특성으로 이루어진 중간 규모 데이터 세트에는 잘 맞지만, 데이터 스케일의 조정이 필요하고 매개변수에 민감하다.
- 신경망
- 대용량 데이터세트에서 매우 복잡한 모델을 만들 수 있다. 다만 매개변수의 데이터 스케일에 민감하며, 큰 모델에는 학습이 오래 걸린다.
각주
참고자료
- 〈지도학습〉, 《위키백과》
- 신매력, 〈머신러닝 지도학습(Supervised), 비지도학습(Unsupervised), 강화학습(Reinforcement)〉, 《네이버블로그》, 2018-04-02
- 김콜리, 〈#2-(8) 지도학습 알고리즘:정리)〉, 《티스토리》, 2018-02-03
- 〈지도학습 워크플로와 알고리즘〉, 《매쓰워크》
같이 보기
|