본문 바로가기
AI · 인공지능/알기쉬운 AI

[알기쉬운 AI - 26] 분류 (Classification)

by 두우우부 2020. 4. 26.
반응형

 

이번에는 감독 학습의 '분류' 중에서 '로지스틱 회귀'와 'K근접법'에 대해서 설명합니다. 딥러닝을 빨리 배우고 싶은데, 기계 학습 알고리즘에 계속 발이 묶여있는 것 같네요... 그러나 딥러닝을 배워 나가는 데 있어서 기본적인 알고리즘을 알고 있는 것이 좋기 때문에 인내심을 가지고 따라와 주십시오.

 

분류(Classification)

분류에는 2항 분류(Two-class Classification)와 다항 분류(Multi -class Classification)가 있습니다. 2항의 분류는 그 이름같이 2가지로 분류하는 것입니다. 예를 들어 제품 검사 시 정상/비정상으로 나누는 것이 대표적인 2항 분류입니다. 한편, 다항 분류는 3개 이상으로 분류하는 것으로, 예를 들면 꽃의 이름을 가르쳐주는 AI를 들 수 있겠죠.

 

(1) 로지스틱 회귀

지난번에 회귀(Regression) 알고리즘의 다수가 분류(Classification)에도 사용된다고 했었지요, 로지스틱 회귀도 그중 하나입니다. '회귀'라는 이름이 붙어 있지만 실은 '분류'에서 자주 사용됩니다. 

 

이 고객이 살까? 사지 않을까?, 환자의 암 발병 여부, 이 이메일은 스팸일까?, 이 고객들은 DM에 반응할까? 같은 데이터를 바탕으로 Yes/No로 분류하는 것이 2항 분류입니다. '[23] P값과 Q값'에서 나왔던 'IT 업계에는 B형이 많다'라는 가설이 맞는지 여부도 2항 분류라고 할 수 있습니다.

 

 

[알기쉬운 AI - 23] P 값과 Q 값

Q-Learning의 Q는 무슨 의미? 이 질문에 답하려면 먼저 통계의 P 값 (P -Value)에 대해 알아야 합니다. 우선 P 값의 설명부터 시작합니다. P 값 (P -Value )는 P 값 (P -Value) 이란? 세상에는 "증명하고 싶은 가..

doooob.tistory.com

 

로지스틱 회귀는 한마디로 "발생 확률을 예측하여 확률에 따라 Yes/No로 분류하는 것"입니다. 구체적인 예로 설명하겠습니다.

 

당신은 스토커입니다. 근처에 사는 영희의 출퇴근 모습을 볼 수 있다면 행복한 하루입니다. 아침은 좋습니다. 매일 아침 7시 30분경 자판기 뒤에 숨어서 기다리고 있으면, 거의 확실하게 볼 수 있습니다. 문제는 퇴근입니다. 그대로 귀가할 때는 19시쯤 기다리면 되지만, 회식이나 약속 등으로 늦어지는 일이 있기 때문에 멍하니 기다릴 때도 있습니다.  

 

그래서 아침에 입은 옷을 보고 "오늘은 정시에 그대로 귀가하는가"를 예측하기로 했습니다. 지금까지의 감각으로는 정시에 돌아올지 여부는 그날의 복장과 요일이 중요한 요인이 되는 것 같습니다. 그래서 그 두 가지에 주목하여 3개월치 데이터를 뽑아 보았습니다(표 1). 

 

표 1 : 정시 퇴근의 기록(왠지 무섭...)

 

요일 

멋부림 여부 

정시에 귀가 

1 일

멋쟁이

2 일

보통

3 일

보통

4 일

멋쟁이

X

5 일

보통

 

~

 

 

 

30 일

보통

31 일

멋쟁이

X

 

3개월의 데이터를 살펴보면, 아무래도 목요일 또는 금요일에 좀 더 멋을 부리고 출근한 경우, 늦게 귀가하는 것 같습니다. 이 법칙을 로지스틱 회귀에서 찾아봅시다. 단, 수식으로는 설명하지 않습니다. 이런 식으로 분류한다는 것만 알면 충분합니다.

 

 

수식은 사용하지 않지만, 모처럼만에 어려운 단어를 하나 기억해 둡시다. 그것은 '우도(尤度)'입니다. 영어로는 Likelihood입니다. 우도는 확률로 표시되며, 그것을 우도 함수라고 부릅니다. 네 맞습니다. [23]에서 등장했던 정규분포는 확률 분포이므로 우도 함수의 하나입니다(그림 2).  

 

그림2 : 정규 분포와 P값

 

또 한 가지, 함수가 나온 김에 로지스틱 함수(≒시그모이드 함수)도 알아둡시다. 이것은 그림 3과 같은 S자형 함수입니다. 포인트는 Y축이 0에서 1의 범위의 것으로, 어느 사건에 따른 확률을 우도 함수로 구하고 0 ~ 1의 범위로 나타내는 것입니다. 위의 예에서는 두 변수인 '요일'과 '멋부림'의 조합으로 x값을 결정하고 그에 따라 정시에 돌아올 확률 y가 도출될 것입니다. 임계값(이 그림에서는 중간 선)보다 오른쪽(핑크)이라면 '정시 귀가', 왼쪽(블루)이라면 '늦게 귀가'라는 예측이 세워질 것입니다. 

 

음, 매우 조잡한 설명이었지만, 여기까지 이해한 다음 한번 더, "발생 확률을 예측하여 확률에 따라 Yes/No로 분류하는 것"이라는 정의를 읽으면, 이제 알겠다는 느낌이 들 것이라 생각됩니다.

 

그림 3 : 로지스틱 함수

 

(2) K근접법

다음은 다항 분류 알고리즘인 k근접법입니다. 영어로는 Nearest Neighbor로 직역하면 '가장 가까운 이웃'이네요. k근접법을 한마디로 말하면, "무리는 동료를 부른다"입니다. 좀 더 정중하게 말하면 "어느 미지의 값을 가장 가까운 그룹에 속하도록 분류한다"입니다.

 

 

[알기쉬운 AI - 25] 회귀 (Regression)

이전에 [학습 방법, 통계, 알고리즘]의 삼각관계 중 '학습 방법과 통계학'의 관계를 알아본 적이 있습니다. 이번에는 '통계와 알고리즘'의 관계에 대해 설명합니다. 딥러닝(신경망)이 아닌, 기존의 기계 학습에..

doooob.tistory.com

 

'[25] 회귀'의 서포트 벡터 머신(SVM)의 설명에서 사용했던 직장 내 적성 분포를 사용하여 설명합시다. 그림 4는 영업부서의 사람(파랑)과 관리부서의 사람(녹색)의 적성 분포입니다. SVM은 이 둘의 사이를 가장 폭(마진)이 커지도록 비스듬히 기울여서 분류했었지요.

 

그림 4 : k근접법

 

이번에는 k근접법으로 분류해 봅시다. 새로 입사한 사람의 성격을 진단한 결과, 붉은 점과 같은 결과가 되었습니다. 그런데, 이 사람의 적성은 영업일까요? 관리일까요?

 

우선, k(샘플수)가 3인 예로 해봅시다. 레드(미지의 데이터)를 중심으로 3개의 샘플이 들어가는 범위에서 동심원을 그리면 그 안에 파랑이 2명, 녹색이 1명이 들어갑니다. k근접법은 다수결로 결정합니다. 그 범위에 데이터가 많은 그룹의 동료로 분류되므로, 이 경우 신입은 파란색의 영업 쪽 성향이라고 판단됩니다.  

 

k = 11이라면 어떨까요. 파랑 4명, 녹색 7명으로 녹색이 우세하므로 신입은 관리 쪽 성향이라는 것입니다. 근접법은 이런 느낌으로, 가까운 동료로 분류하는 간단한 알고리즘입니다. 데이터 전체가 아니라 가까운 데이터만으로 추측할 수 있으므로, 사용하기 쉬운 방법입니다. 또한, 이 예제는 2차원이라 원형으로 범위를 지정하고 있습니다만, 1차원은 선에서, 3차원은 공간에서 근접도를 비교합니다(너무 고차원적인 것에는 적합하지 않다고 알려져 있습니다). 

 

위와 같이 k의 값에 따라 결과가 다른 경우도 있으므로, k의 값을 결정하는 방법이 중요합니다. 자주 사용되는 것은 총수의 제곱근을 k로 하는 방법입니다. 이번에는 데이터 개수가 25이므로 k = 5 가 좋은 셈이지만, 일부 k를 바꾸어 더 좋은 결과를 내기도 하기에, 다양하게 적용해 보는 것이 좋습니다.  

 

k근접법은 유사한 취향을 가진 사용자를 분류하는 고객 세분화 및 권유에 자주 사용됩니다. 다음에 설명하는 클러스터링도 같은 영역에서 사용되고 있지만, k근접법은 감독 학습이고, 클러스터링은 비 감독 학습이라는 차이가 있음을 기억하십시오.

반응형