본문 바로가기

데이터분석/이론

[머신러닝 개념]머신러닝(Machine Learning)의 종류와 장단점, Tree 기반 모델 쓰는 이유

1. 지도학습(supervised learning)

 

Y=f(X)

입력변수(X)와 출력변수(Y)의 관계에 대해 모델링 또는 Y에 대해 예측, 분류

 

-종류:

  1. 회귀(regression): 연속형 Y

  2. 분류(classification): 이산형 Y

 

 

2. 비지도 학습(unsupervised learning)

 

출력변수(Y)가 존재하지 않고, 입력변수(X)간의 관계에 대해 모델링

 

-종류:

  1. 군집분석: 유사한 데이터끼리 그룹화

  2. PCA(principal component analysis): 독립변수들의 차원을 축소화

 

 

3. 강화학습(reinforcement learning)

 

수많은 시뮬레이션을 통해 현재 선택이 먼 미래에 보상이 최대가 되도록 학습(Agent가 action을 취하고 state에서 reward를 받고 이 보상이 최대가 되도록 최적의 action을 취하는 방법을 배움)

 

-예시: 알파고

 

 


 

Machine Learning의 종류

 

1. 선형 회귀분석(Linear Regression)

 

-독립변수와 종속변수가 선형적인 관계가 있다는 가정하에 분석

-장점: 직선을 통해 종속변수를 예측하기 때문에 독립변수의 중요도와 영향력을 파악하기 쉬움

-단점: 비선형 관계에선 표현을 잘 못함

 

 

2. 의사결정나무(Dicision Tree)

 

-독립변수의 조건에 따라 종속변수를 분리(매우 직관적)

-장점: 이해하기 쉬움

-단점: 과적합(overfitting)이 잘 일어남(학습 data엔 잘 맞지만 실제 data엔 잘 안 맞음)

 

 

3. KNN(K-Nearest Neighbor)

 

-새로 들어온 데이터의 주변 k개의 데이터의 class로 분류하는 기법

-k에 따라 성능이 달라짐(K: 사람이 지정, hypher parameter)

 

 

4. Neural Network

 

-입력, 은닉, 출력층으로 구성된 모형, 각 층을 연결하는 노드의 가중치를 업데이트하며 학습

-딥러닝 모델의 근간

-단점: over fitting이 잘됨(decision boundary가 좋지 않아 실제 data엔 잘 안 맞음)

 

 

5. SVM(Support Vector Machine)

 

-class 간 거리(margin)가 최대가 되도록 dicision boundary를 만드는 방법

-학습 과정 내에서 어느 정도의 오차를 허용

-단점: 학습 시간이 너무 오래 걸림, 요즘엔 잘 안 씀

 

 

6. 앙상블 러닝(Ensemble Learning)

 

-여러 개의 모델(classifier or baase learner)을 결합하여 사용하는 모델

-각 모델들의 output을 평균을 내거나 투표(최빈값)하여 결정

-base learner를 다양하게 해야 함

-최근에 많이 씀, 보통 의사결정나무 사용

-종류: bagging, radom forest, boosting

-장점: 성능 좋음(정확도(accuracy) 높음, 캐글 같은 대회에서 항상 우승 차지) but 목적에 따라 사용

 

 

7. K-means clustering

 

-비지도 학습의 대표적인 예(군집분석)중 하나

-labeled data(Y) 없이 k개의 데이터 군집 생성

-단점: k에 따라 성능이 달라짐, 고차원 data에선 잘 안 맞음

 

 


 

data science 분야에서 tree기반 모델을 쓰면 좋은 이유

 

딥러닝 vs 머신러닝

 

-최근 몇년간 깊고 다양한 분야가 나옴

-but 캐글 대회 등 머신러닝 대회에서 boosting 계열 알고리즘이 우승

-데이터 사이언스 분야에서 딥러닝보다 트리 기반 모델을 자주 사용함

   => 왜?

 

이유

1) 딥러닝은 graphical feature를 잘 뽑기 위한 알고리즘이므로, data에 graphical feature가 없으면 굳이 안써도 됨

2) 의사결정나무는 굉장히 간단한 모델이므로, 이를 기반으로 한 boosting, randomforest는 복잡하더라도 학습원리가 직관적(데이터를 명확하게 분리)

   => 신경망은 수많은 직선의 결합으로 비선형적인 관계를 모델링하므로 원리 복잡

   =>복잡한 모형은 복잡한 문제를 풀 때 써야함(간단한 문제에 풀면 잘 안맞음)

   => NN(Neural Network)보다 Tree기반 모델이 잘 맞을 수 밖에 없음

3) Neural Network는 input feature들의 연속성을 가정(like image)하므로 데이터 사이언스 분야엔 잘 안맞음