예측 문제(혹은 회귀 문제)는 무엇일까?
본격적인 설명에 앞서 Regression의 의미에 대해 간략히 설명할 필요가 있다. 한국어로 해석하자면 '회귀', 즉 '돌아간다'라는 의미를 가진 단어이다. 어디로 돌아가는 것일까? 결론부터 말하면 '전체 평균'으로 되돌아간다는 의미로 해석할 수 있다.
통계학자이자 인류학자였던 프랜시스 골턴(sir francis galton)은 평균으로의 회귀(regression toward the mean)라는 통계적 원리를 역설한 바 있다. 여기서 'the mean'은 전체의 평균을 의미한다. 프랜시스 골턴이 했던 주장의 골자는 '극단적인 데이터들이 존재하더라도 모든 데이터를 두고 봤을 때는 전체의 평균으로 되돌아가려는 특징이 있다'는 것이다. 오늘날에는 그 주장에 기반하여 일반적으로 regression이라고 부른다.
다시 본론으로 돌아와보자. 우리는 정말 간단하게 'y = x + a'라는 1차 방정식을 통해 예측 문제가 어떤 문제인지 직관적으로 느낄 수 있다. (직관적일 뿐, 미세먼지 정도만큼만 이해하고 간다고 생각하자. 심지어 이해하는 것도 아니고 '느낀다'고 생각하자.) 해당 식에서 x가 1이고 상수값 a가 1일 경우, 찾고자 하는 y 값은 2다. 1차 방정식 'y = x + a' 자체가 지도학습 알고리즘이고 x와 a는 알고리즘에게 제공한 데이터 중 '정답'이 제외된 데이터, y는 알고리즘에게 제공한 데이터 중 '정답'이라고 할 수 있다.
조금 더 머신러닝에 적합한 용어로 바꾸자면, a와 x처럼 알고리즘에게 제공한 데이터 중 '정답'이 아닌 데이터는 feature(특징 데이터)라고 하며 이것을 input variable로 활용하게 된다. 또한 y와 같은 정답을 target(타겟 데이터)라고 하는데, 이것은 알고리즘의 output variable로 활용한다. 사실 y는 지도학습 알고리즘에게 먹이로 줄 데이터에만 기재되어 있지, 새로운 관측치에서는 알 수 없다. 지도학습 알고리즘의 목적 자체가 새로운 관측치의 y를 최대한 정답에 가깝게 유추해내야 하는 것이기 때문에, 우리는 그것을 target이라 부른다.
1. scikit-learn : 데이터 사이언스 스쿨 블로그
2. keras : Wide and Deep Programming님의 블로그
그렇다면, 분류 문제는 무엇일까?
예측 문제와 마찬가지로 지도학습으로 해결하는 문제로, 알고리즘에게 정답이 포함된 데이터 셋을 주게 된다. 다만, 여기서 정답은 연속적인 값(continuous variable)이 아닌 특정 범주(category)를 나타낸다. 가령 어떠한 데이터 셋이 교통카드 소유 여부와 체크카드 혹은 신용카드에 후불로 결제되는 대중교통 비용을 feature로 구성되어, 그 사람이 자동차를 소유하고 있을지 여부를 예측한다고 해보자. 여기서 정답, 즉 타겟은 '자동차를 소유했다' 혹은 '소유하지 않았다'로 분류될 것이다. 이렇듯 특정 feature들을 이용하여 해당 데이터가 어느 범주에 속하게 될지 분류하는 문제가 분류 문제다. 여기서 target은 반드시 두 개일 필요가 없으며 다수인 경우도 비일비재하다.
참고로 예측 혹은 회귀 문제를 해결하기 위한 알고리즘의 output은 연속형 변수(continuous variable)이며, 분류 문제를 해결하기 위한 알고리즘의 output은 이산형 변수(discrete variable)이며 이산 변수 대신 범주형 변수(categorical variable)라고도 부른다. 즉, 집값을 예측하는 예측 문제에서는 output이 되는 target이 연속적인 수 1298.2가 될 수도 있고, 2928.7이 될 수도 있고, 12590.4이 될 수도 있는 반면 (정말 혹시나 해서 하는 말이지만 윗 줄에 언급한 숫자들은 아무 숫자나 쓴 것이다!), 자동차 소유 여부를 예측하는 분류 문제에서는 output이 0(자동차를 소유하지 않았다), 1(자동차를 소유했다)와 같이 이산 변수로 표현된다.
또한 분류 문제에서는 target을 또 다른 방식으로 표현하곤 한다. class 혹은 label로 표기할 수도 있다는 것 알아두자! 흔히들 target보다는 label이라고 표기한다.
Iris flower 데이터 셋은 붓꽃과 관련된 정보로 구성되어 있으며, 꽃받침의 길이/너비 정보, 꽃잎의 길이/너비 정보가 기입되어 있다. 이러한 feature들과 함께 해당 붓꽃의 종류가 함께 기재되어 있는데 'setosa', 'versicolor', 'virginica' 이렇게 총 3개의 범주가 존재한다. 우리는 지도학습 알고리즘에게 이것을 target이라고 인식시켜 학습시킬 것이며, 알고리즘은 '꽃받침과 꽃잎이 이 정도 사이즈면 이러한 종류의 붓꽃이구나'라고 학습하게 될 것이다.
* Iris flower과 관련하여 배경지식부터 분석 과정까지 깔끔하게 정리되어 있는 블로그가 있어 해당 데이터 셋은 레퍼런스로 하나의 블로그만 기입하겠습니다. GDG Campus Korea행사에 참여했을 때 박해선 개발자님의 강연을 듣고 느낀 바가 많아 행복했는데, 이렇게 또다시 뵙게 되었네요. 혼자 반갑습니다 :)
아주 간단명료해 보이지만, 세상이 그렇게 녹록지는 않다. 예측과 분류를 수행할 때, 시작부터 이상치와 결측치에 치이고 알고리즘의 파라미터를 튜닝하는 과정 중 오버피팅과 언더피팅 문제 등 다양한 문제와 직면하게 된다. 생각해보니 그 외에도 치명적인 문제들이 한 두 개가 아니다...... 앞으로 그런 문제들은 어떻게 해결해나가야 하는지 다시 한번 공부하고 정리하며 차근차근 포스팅하겠다 ㅎ_ㅎ
source :
1. Andrew Ng <Machine Learning> - Introduction - "Supervised Learning", Coursera
2. 한국외국어대학교 2019년도 2학기 경영학과 강의 中 정상욱 교수님의 <마케팅애널리틱스> 강의 교안
'DS > Coursera' 카테고리의 다른 글
비용함수(Cost Function) #1 (0) | 2020.02.14 |
---|---|
비지도학습(Unsupervised Learning)에 대한 이해 (2) | 2020.02.13 |
머신러닝에 대한 정의 (Maching Learning Definition) (0) | 2020.02.10 |