새소식

데이터 사이언스

Machine Learning 개념

  • -

 

1. 지도 학습(Supervised Learning)

2. 비지도 학습(Unsupervised Learning)

3. 준지도 학습(semi supervised)

4. 강화 학습(Reinforcement Learning)


사실 이번 포스트에서 '파이썬으로 시작하는 캐글'이라는 책에서 진행한 모델링과정을 설명하려했으나,

캐글이라는 주어진 문제를 푸는 특수한 상황에서 앙상블, 보팅 등의 스킬을 다루는 것보다는,

기본적인 모델의 장단점, 어떤 기반으로 모델이 만들어졌는지를 공부하는 것이 현재로서는 더 중요하다고 판단하여

책에서의 모델링 과정은 블로그에 올리지 않기로 결정했다. (추후에 보스턴 문제에서 다뤄보도록 하자.)

 

 

 

 

1. 지도 학습(Supervised Learning)
: 정답이 있는 데이터를 활용해 데이터를 학습시키는 방법
종류: 분류(Classification), 회귀(Regression)
 

2. 비지도 학습(Unsupervised Learning)
: 정답이 없는 데이터를 군집화하여 새로운 데이터에 대한 결과를 예측하는 방법
종류: 클러스터링, k-means
 

3. 준지도 학습(semi supervised)
: 지도 학습과 비지도 학습의 중간에 해당하는 기술로, 명확한 정답이 존재하나 정답이 있는 데이터를 구하기 힘들 때 사용
 

4. 강화 학습(Reinforcement Learning)
: 주어진 환경에서 어떤 행동을 취하고 이로부터 어떤 보상을 얻으면서 학습을 진행


이외에도 딥러닝에는 ANN, DNN, CNN, RNN 등의 인공 신경망을 이용한 기계학습 알고리즘이 있지만,

이번 포스트에서는 머신러닝의 지도 학습에 대해서 다루고, 관련된 모델 알고리즘에 대해 설명하려고 한다.

 

 

1. 지도 학습 - 분류(classificition)

지금까지 다뤘던 타이타닉의 경우는 지도학습 중 분류(classification)문제이다.

'생존' or '사망'이라는 정답값이 주어진 데이터로 임의의 사람이 '생존'할지, '사망'할지 예측하는 문제.

즉 '생존'이라는 클래스일지, '사망'이라는 클래스일지 분류하는 문제이다.

<train data>
<train data>

 

&lt;train data&gt;
<test data>

 

2. 지도 학습 - 회귀(Regression)

지도학습의 또다른 유형인 회귀의 경우 클래스를 분류 및 예측하는 것이 아니라,

임의의 숫자값을 예측하는 것이다.

추후에 다룰 보스턴 집값 예측 문제가 그 예시이다.

(1층 평수, 화장실 개수, 주변 시설,,,, 등의 특성으로 집 값을 예측하는 것)

&lt;train data&gt;


그렇다면 이러한 데이터를 학습하는 모델은 무엇인가?

한 마디로 표현하자면 모델 자체는 그저 하나의 함수이다.

input 값으로 데이터를 입력하면 output으로 분류 값 혹은 예측 값을 반환해주는 함수.

 

그리고 이러한 모델에는 여러 종류가 있다.

기초적인 모델로는 선형 회귀, 결정 트리등이 있고, 더 나아가서는 XGBoost, Random Forest등이 있다.

 

 

그럼 어떤 모델을 사용하는게 가장 좋을까?

아쉽지만 어떤 모델이 가장 좋을 지는 100% 확신할 수 없다.

왜냐하면 각 모델마다 설계된 목적 및 가정사항이 있고, 그에 따라 적합한 데이터셋 및 문제 상황이 있기 때문이다.

(물론 대부분의 경우에 좋은 성능을 보이는 모델이 몇가지 있다..!!)

 

그럼 각 모델마다 싹다 돌려보고 가장 성능이 좋은 모델을 사용하면 되는 것 아닌가?

물론 그 방법이 가장 좋겠지만 심각한 허점이 존재한다.

 

 

1. 모델의 성능을 제대로 해석할 수 없으므로, 성능 개선에 한계가 있다.

예를 들어 선형 회귀에서 높은 성능이 나왔다고 했을 때,

데이터에 선형 관계가 있을 때 선형 회귀의 성능이 높다는 것을 알고 있다면,

선형 관계의 특성에 가중치를 부여함으로써 성능을 더 높일 수 있을 것이다. 

 

하지만 이유도 모른채 선형 회귀의 성능이 가장 좋으니 선형 회귀를 선택했다면?

성능을 더 높일 수 있음에도 불구하고 프로젝트를 허무하게 종료했을 것이다.

 

2. 데이터 크기에 따라 계산 복잡도 및 필요 시간이 매우 늘어날 수 있다.

쉽게 다룰 수 있는 데이터 크기라면 각 모델마다 전부 돌려볼 수 있겠지만,

만약 각 모델마다 그리드 서치를 추가했거나, 데이터가 너무 방대하다면?

하루가 지나도 성능이 도출되지 않을 수도 있다...

 

그럴 시간에 성능이 좋을만한 모델만 뽑아서 빠르게 성능을 평가하고 향상시켰다면?

같은 시간에 더 높은 성능을 만들어 낼 수 있을 것이다...!

 

 


이번 포스트에서는 머신 러닝의 유형과 그중에서도 지도학습에 대해 알아보았고,

모델 이해의 중요성에 대해서도 공부했다.

다음 포스트에서 10가지 머신러닝 알고리즘의 기본 개념부터 장단점까지 공부해보자!

중점:

1. 머신러닝 종류(지도학습, 비지도학습, 준지도학습, 강화학습)

2. 지도학습 (분류, 회귀) 개념

3. 모델 이해의 중요성

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.