저번 글에 이어서 저희는 오늘 교사학습에 대해 약간 더 자세히 알아보려고 합니다. 이번 글에서도 점진적으로 분류하는 방법에 대해서 그리고 머신러닝에 대해서 접근하려고 합니다.


교사학습의 특징은 3가지 정도로 나눌 수 있습니다.

  • ‘정확한 정답’이 주어짐; 교사학습은 제공된 데이터를 기반으로 새롭고 더 많은 정답을 찾아냅니다.
  • 회귀(Regression); 연속적인 출력을 가집니다.
  • 분류(Classification); 비연속적인 출력을 가집니다.

저희는 여기에서 풀려는 문제가 회귀 문제인지 분류 문제인지 검토하고 구별해야 합니다. 이는 올바른 알고리즘을 선택하는 첫 번째 과정이기도 합니다. 이 글에서 완전히 모든 종류의 알고리즘을, 그리고 자세히는 다루지 않을 것입니다. 대략적으로 이러한 것들이 있다는 것을 끄적일 예정입니다.

회귀(Regression) 문제

회귀 문제는 위에서 보다시피 연속적인 출력을 가집니다. 여기에서 연속적이라는 것은 느낌 상(정확한 뜻이 아닌 이해를 돕기 위한 표현)으로는 데이터의 흐름을 찾으시면 도움이 될 것입니다. 예를 들어서 기존 이전 몇 달 간의 데이터를 통해 다음 달의 예상 수익을 예측 하거나 하는 문제 등이 존재합니다.

  • 다음 달의 예상 수익을 예측하기
  • 특정인의 나이를 예측하기

또한 데이터가 시간의 흐름에 따라 달라지는 경우를 시계열 예측 문제라고 합니다. 그리고 여러 가지의 데이터 입력이 있을 경우에는 다중 회귀 분석이라고 합니다.

  • 시계열 예측 문제; 데이터가 시간적인 흐름을 가지고 있는 문제
  • 다중 회귀 분석; 여러가지 데이터 입력이 있는 문제

분류(Classification) 문제

분류에 해당하는 문제 또한 구별하기가 쉽습니다. 필자는 개인적으로 문제가 회귀적인 특성을 가지고 있는지보다 분류의 특성을 가지고 있는지 판단하는 편이 더 간단했습니다. 그 이유는 회귀적인 특성을 보려면 앞이나 뒤에 연속적인 값이 존재하는지 확인해야 합니다. 그러나 분류 문제의 경우에는 약간 다릅니다. 데이터는 여기저기에 무리를 지어 흩어져 있습니다. 이 무리를 각각 클러스터라고 합니다.

  • 암 종양이 악성인지 양성인지 예측하기
  • 메일이 스팸인지 아닌지 예측하기

또한 분류되는 종류의 가짓 수마다 이름을 가지고 있습니다. 위의 두 예제는 총 2개로 분류를 해야 하며, 이진 분류 문제라고 합니다. 그리고 분류해야 할 가짓 수가 2개 이상인 경우 다중 분류 문제라고 합니다. 마지막으로는 데이터에 다중 클래스가 할당되어 있는 경우를 다중 레이블 문제라고 부릅니다.

  • 이진 분류; 2개의 클래스로 이루어진 문제
  • 다중 분류; 2개 이상의 클래스로 이루어진 문제
  • 다중 레이블 분류; 데이터에 2개 이상의 클래스(속성)이 할당되는 문제

회귀와 분류 문제의 구별

이 두 큰 문제 유형에 대한 분류는 그다지 어렵지 않습니다. 상대적으로 어려운 문제가 있을 수 있습니다. 그래도 대체적으로 정수와 같은 값으로 결과가 출력되는 경우는 회귀 문제입니다. 반면에 분류 문제는 데이터 A가 얼마나 X라는 특징에 가까운지를 물어보기에 확률(0부터 1 사이의 정확도 값)의 형태로 결과가 출력됩니다.

회귀와 분류 문제의 변환

경우에 따라서 회귀와 분류 문제를 서로 변환할 수 있습니다.

분류 문제를 회귀 문제로 변환하기

회귀 문제에서 분류 문제로 변환할 때는 다음과 같은 예시가 있습니다. 특정 정수 범위를 기준으로 몇 가지의 형태로 나눌 수 있습니다. 마치 호텔의 하루 치 가격을 기준으로 1~n까지의 정수 형태로 n만큼 비싸다라는 결과값으로 만들 수 있습니다.

  • 1 등급; a~b$
  • 2 등급; c~d$
  • 3 등급; e~f$

결과적으로 결과값의 정도에 따른 분류를 할 수 있습니다. 간단히 도수분포표를 생각하시면 되겠습니다. 또한 이를 때때로 이산화(Discretization)라고도 합니다.

회귀 문제를 분류 문제로 변환하기

또는 분류 문제를 회귀 문제로 만들 수 있습니다. 데이터 분류 기준을 연속적으로 만들면 됩니다. 위와 반대로 아래와 같이 기준을 구성할 수 있습니다.

  • a~b$; 1 등급
  • c~d$; 2 등급
  • e~f$; 3 등급

하지만 이는 경우에 따라 매우 무의미할 수 있습니다. 그 이유는 만약 데이터가 자연스러운 정렬가능한 관계를 가지고 있지 않을 경우입니다. 이 때에는 알고리즘이 실제로 존재하지 않는 등의 올바르지 않은 데이터를 학습할 가능성이 있기에 성능 등과 같은 결과를 예측할 수 없어집니다.

어렵지 않게 설명했는지는 모르겠지만 읽어주셔서 감사합니다.