데이터분석/Machine Learning

일반인을 위한 머신러닝 (2) - 지도/비지도학습

늘근이 2015. 8. 16. 19:48

컴퓨터가 아무리 알아서 한다 치더라도 뭔가 공부를 하라고 누군가가 말해줘야 한다. 학창시절을 떠올려보자. 누군가 공부라고 하기 전까지는 절대 공부하지 않았다. (물론 저는 예외에요.) 그런데 컴퓨터에게 공부하라고 하는 명령을 내려야 하기는 하는데 어떻게 내려야 할까? 뭔가를 초기조건으로 불을 붙여줘야 얘가 혼자 타올라서 열심히 공부하든 아니면 마지못해 눈높이 수학이라도 풀든 하지 않겠는가.

이러한 것들에 대해 머신러닝은 두가지 방법이 있다. 지도학습(Supervised)과 비지도(Unsupervised) 학습니다.


지도학습은 컴퓨터에게 '이게 맞는 답이야~ 알았지? 이제 이거랑 비슷한걸 판단해서 맞는걸 찍어보도록해' 라고 말하는것을 뜻한다.

이러한 지도학습에는 예측과 분류가 있는데,

 

1) 예측은 일종의 회귀분석으로써 하나의 F(x) = x + 5 와 같은 단순한 선형회귀분석이나 기타등등으로 데이터를 예측할수 있겠다.

예를들어 나의와 섹시함간의 연관관계를 컴퓨터에게 알려준 후, 이를 통해 나이가 60이 되는 사람의 섹시함을 예측해볼수 있겠다. 이를 예측하는 회귀는 선형회귀처럼 단순한 회귀식으로 풀지 못하는 경우도 있다. (섹시함은 20~30대가 절정 아니겠는가)

 


2) 분류는, 이전까지의 학습데이터를 기초로 컴퓨터가 기다/아니다 를 판별하게 되는 문제이다.

예를들어 굉장히 자주나오는 문제로, 스팸메일을 골라내야 한다고 치자. 거지같은 스팸메일을 다발로 가져다주고 학습하게 한다음에 그 이후로 부터는 스팸이다/아니다 를 기계보고 판단할수 있게 만들 수 있다.



 

 

비지도학습에 있어서는 분류를 하긴 하되, 컴퓨터에게 답을 알려줄수 없는 문제이다. 마켓을 어떻게 계층화해서 나눌것인가하는 문제에서 컴퓨터는 알아서 분류를 해서 사용자에게 의미있는 값을 가르쳐 주어야 한다.

 

아까 말했듯이, 시장에서 니치마켓을 공략하기 위해 소비자를 여러 군으로 분류하려 할때 위와같은 분류결과를 컴퓨터로부터 받을수 있다.

 


참고 )

머신러닝에서 MATLAB - Octave를 이용하면 정말 쉽게 몇천줄이나 되는 코드를 아래와 같이 한줄로 요약할수 있다고 한다.

[W,s,v] = svd((repmat(sum(x. *x, 1),size(x,1),1).*x)*x');

 

나중에 해보겠다