이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

지도 학습 워크플로와 알고리즘

지도 학습이란?

지도 기계 학습의 목적은 불확실성이 존재하는 상태에서 증거를 기반으로 예측하는 모델을 만드는 것입니다. 적응형 알고리즘으로 데이터의 패턴을 식별하기 때문에, 컴퓨터는 관측값을 통해 "학습"하게 됩니다. 컴퓨터에 더 많은 관측값을 제공하면 예측 성능이 향상됩니다.

특히, 지도 학습 알고리즘은 알려진 입력 데이터 세트와 이 데이터에 대해 알려진 응답 변수(출력값)를 받아들인 후, 새 데이터에 대한 응답 변수에 대해 타당한 예측값을 생성하도록 모델을 훈련시킵니다.

예를 들어, 1년 이내에 누군가에게 심장 마비가 일어날지 여부를 예측한다고 가정하겠습니다. 연령, 체중, 키, 혈압 등을 포함한 이전 환자들의 데이터 세트가 준비되어 있습니다. 또한, 1년의 측정 기간 동안 이전 환자들에게 심장 마비가 일어났는지 여부도 알고 있습니다. 따라서, 기존의 모든 데이터를 새 환자가 1년 이내에 심장 마비를 일으킬지 여부를 예측할 수 있는 모델로 결합하는 것이 문제입니다.

입력 데이터의 전체 세트를 이종 행렬로 간주할 수 있습니다. 행렬의 행을 관측값, 사례 또는 인스턴스라고 하며, 각 행은 개체(이 예제의 경우 환자)에 대한 측정값 세트를 포함합니다. 행렬의 열을 예측 변수, 특성(Attribute) 또는 특징이라고 하며, 각 열은 각 개체에 대해 얻은 측정값(이 예제의 경우 연령, 체중, 키 등)을 나타내는 변수입니다. 응답 변수 데이터를 하나의 열 벡터로 간주할 수 있는데, 이 열 벡터의 각 행은 대응하는 입력 데이터의 관측값에 대한 출력값(환자에게 심장 마비가 일어났는지 여부)을 포함합니다. 지도 학습 모델을 피팅하거나 훈련시키려면 적합한 알고리즘을 선택한 후 입력 데이터와 응답 변수 데이터를 이 알고리즘에 전달하십시오.

지도 학습은 크게 두 가지 범주, 즉 분류와 회귀로 나뉩니다.

  • 분류의 목표는 유한한 클래스 세트에서 하나의 특정 클래스(또는 레이블)를 하나의 관측값에 할당하는 것입니다. 즉, 응답 변수가 범주형 변수입니다. 응용 사례로는 스팸 필터, 광고 추천 시스템, 이미지/음성 인식 등이 있습니다. 환자에게 1년 이내에 심장 마비가 일어날지 여부를 예측하는 것은 분류 문제이며, 가능한 클래스는 truefalse입니다. 분류 알고리즘은 대개 명목형 응답 변수 값에 적용됩니다. 그러나, 일부 알고리즘은 순서형 클래스를 수용할 수 있습니다(fitcecoc 참조).

  • 회귀의 목표는 관측값에 대한 연속적인(Continuous) 측정값을 예측하는 것입니다. 즉, 응답 변수가 실수입니다. 응용 사례로는 주가, 에너지 소비량 또는 발병률 예측 등이 있습니다.

Statistics and Machine Learning Toolbox™ 지도 학습 기능은 간소화된 객체 프레임워크로 구성됩니다. 다양한 알고리즘을 효율적으로 훈련시키고, 여러 모델을 하나의 앙상블로 결합하고, 모델 성능을 평가하고, 교차 검증을 수행하며, 새 데이터에 대한 응답 변수를 예측할 수 있습니다.

지도 학습의 단계

지도 학습을 위한 많은 Statistics and Machine Learning Toolbox 알고리즘이 있지만 대부분 예측 변수 모델을 얻는 데 동일한 기본 워크플로를 사용합니다. 앙상블 학습 단계에 대한 자세한 지침은 Framework for Ensemble Learning에 나와 있습니다. 지도 학습의 단계는 다음과 같습니다.

데이터 준비하기

모든 지도 학습 방법은 입력 데이터 행렬(여기서는 일반적으로 X라고 함)로 시작합니다. X의 각 행은 하나의 관측값을 나타냅니다. X의 각 열은 하나의 변수, 즉 예측 변수를 나타냅니다. 누락된 항목은 X에서 NaN 값으로 나타냅니다. Statistics and Machine Learning Toolbox 지도 학습 알고리즘은 NaN 값을 무시하거나 NaN 값을 갖는 모든 행을 무시하는 방법으로 이 값을 처리할 수 있습니다.

응답 변수 데이터 Y에 다양한 데이터형을 사용할 수 있습니다. Y의 각 요소는 대응하는 X의 행에 대한 응답 변수를 나타냅니다. 누락된 Y 데이터를 갖는 관측값은 무시됩니다.

  • 회귀를 수행하는 경우, YX의 행 개수와 같은 개수의 요소를 갖는 숫자형 벡터여야 합니다.

  • 분류를 수행하는 경우, Y는 다음 데이터형 중 하나일 수 있습니다. 다음 표에는 또한 누락된 항목을 포함하는 방법이 나와 있습니다.

    데이터형누락된 항목
    숫자형 벡터NaN
    categorical형 벡터<undefined>
    문자형 배열공백 행
    string형 배열<missing> 또는 ""
    문자형 벡터로 구성된 셀형 배열''
    논리형 벡터(나타낼 수 없음)

알고리즘 선택하기

다음과 같이 여러 알고리즘 특성 간에는 상충하는 장단점이 있습니다.

  • 훈련 속도

  • 메모리 사용량

  • 새 데이터에 대한 예측 정확도

  • 투명도 또는 해석 가능성(알고리즘이 그렇게 예측하는 이유를 인간이 얼마나 쉽게 파악할 수 있는지를 의미함)

알고리즘에 대한 세부 정보는 분류 알고리즘의 특성에 나와 있습니다. 앙상블 알고리즘에 대한 자세한 내용은 Choose an Applicable Ensemble Aggregation Method 항목을 참조하십시오.

모델 피팅하기

사용하는 피팅 함수는 선택하는 알고리즘에 따라 결정됩니다.

알고리즘피팅 함수
분류 트리fitctree
회귀 트리fitrtree
판별분석(분류)fitcdiscr
k-최근접이웃(분류)fitcknn
나이브 베이즈(분류)fitcnb
분류용 서포트 벡터 머신(SVM)fitcsvm
회귀용 SVMfitrsvm
SVM 또는 기타 분류기용 다중클래스 모델fitcecoc
분류 앙상블fitcensemble
회귀 앙상블fitrensemble
병렬로 연결된 분류 또는 회귀 트리 앙상블(예: 랜덤 포레스트 [1])TreeBagger

이러한 알고리즘에 대한 비교는 분류 알고리즘의 특성 항목을 참조하십시오.

검증 방법 선택하기

결과로 생성되는 피팅된 모델의 정확도를 검토하는 세 가지 기본 방법은 다음과 같습니다.

만족할 때까지 피팅을 검토하고 업데이트하기

모델을 검증한 후에도 정확도 또는 속도를 높이거나 메모리를 덜 사용하기 위해 모델을 변경해야 할 수 있습니다.

특정 유형의 모델에 만족한 경우 적합한 compact 함수(분류 트리용 compact, 회귀 트리용 compact, 판별분석용 compact, 나이브 베이즈용 compact, SVM용 compact, ECOC 모델용 compact, 분류 앙상블용 compact, 회귀 앙상블용 compact)를 사용하여 이 모델을 자를 수 있습니다. compact는 예측에 필요하지 않은 훈련 데이터와 기타 속성을 제거합니다. 예를 들면, 모델에서 결정 트리에 대한 정보를 가지치기하여 메모리 사용량을 줄입니다. kNN 분류 모델은 레이블을 예측하기 위해 모든 훈련 데이터를 필요로 하므로 ClassificationKNN 모델의 크기는 줄일 수 없습니다.

예측을 위해 피팅된 모델 사용하기

predict 메서드를 사용하여 대부분의 피팅된 모델에 대한 분류 응답 변수 또는 회귀 응답 변수를 예측할 수 있습니다.

Ypredicted = predict(obj,Xnew)
  • obj는 피팅된 모델 또는 피팅된 간소 모델입니다.

  • Xnew는 새 입력 데이터입니다.

  • Ypredicted는 예측된 응답 변수로, 분류 응답 변수 또는 회귀 응답 변수입니다.

분류 알고리즘의 특성

다음 표에는 다양한 지도 학습 알고리즘의 일반적인 특성이 나와 있습니다. 특정 사례의 경우, 실제 특성이 여기 나열된 특성과 다를 수 있습니다. 알고리즘을 처음 선택할 때의 지침으로 이 표를 사용하십시오. 속도, 메모리 사용량, 유연성, 해석 가능성 사이에서 원하는 절충안을 결정하십시오.

먼저, 빠르고 해석하기 쉬운 분류기인 결정 트리 또는 판별 분석을 사용해 보십시오. 모델이 응답 변수를 예측하기에 충분히 정확하지 않을 경우 유연성이 더 높은 다른 분류기를 사용해 보십시오.

유연성을 제어하려면 각 분류기 유형에 대한 세부 정보를 참조하십시오. 과적합을 방지하려면 충분한 수준의 정확도를 제공하는 유연성이 더 낮은 모델을 고려하십시오.

분류기다중클래스 지원categorical형 예측 변수 지원예측 속도메모리 사용량해석 가능성
결정 트리fitctree빠름적음쉬움
판별분석fitcdiscr아니요빠름선형의 경우 적음, 2차의 경우 큼쉬움
SVMfitcsvm아니요.
fitcecoc를 사용하여 여러 이진 SVM 분류기를 결합할 수 있습니다.
선형의 경우 중간.
다른 유형의 경우 느림.
선형의 경우 중간.
다른 모든 유형: 다중클래스의 경우 중간, 이진의 경우 큼.
선형 SVM의 경우 쉬움.
다른 모든 커널 유형의 경우 어려움.
나이브 베이즈fitcnb단순 분포의 경우 중간.
커널 분포 또는 고차원 데이터의 경우 느림
단순 분포의 경우 적음.
커널 분포 또는 고차원 데이터의 경우 중간
쉬움
최근접이웃fitcknn3차의 경우 느림.
다른 유형의 경우 중간.
중간어려움
앙상블fitcensemblefitrensemble선택하는 알고리즘에 따라 빠름~중간선택하는 알고리즘에 따라 낮음~높음.어려움

이 표에 나와 있는 결과는 수많은 데이터 세트에 대한 분석을 기반으로 합니다. 이 연구의 데이터 세트는 최대 7000개 관측값, 80개 예측 변수, 50개 클래스를 가집니다. 다음 목록에는 표에 사용된 용어에 대한 정의가 나와 있습니다.

속도:

  • 빠름 — 0.01초

  • 중간 — 1초

  • 느림 — 100초

메모리

  • 적음 — 1MB

  • 중간 — 4MB

  • 큼 — 100MB

참고

다음 표는 일반적인 지침을 제공합니다. 실제 결과는 데이터와 컴퓨터의 속도에 따라 달라질 수 있습니다.

categorical형 예측 변수 지원

다음 표에는 각 분류기의 예측 변수에 대한 데이터형 지원이 설명되어 있습니다.

분류기모든 예측 변수가 숫자형임모든 예측 변수가 categorical형임일부는 categorical형이고, 일부는 숫자형임
결정 트리
판별분석아니요아니요
SVM
나이브 베이즈(Naive Bayes)
최근접이웃유클리드 거리(Euclidean Distance)만 해당해밍 거리(Hamming Distance)만 해당아니요
앙상블예, 판별분석 분류기의 부분공간 앙상블은 예외예, 부분공간 앙상블은 예외

참고 문헌

[1] Breiman, L. Random Forests. Machine Learning 45, 2001, pp. 5–32.