WIDA/DACON 분류-회귀

[DACON/김세연] 분류 모델 알아보기

알 수 없는 사용자 2023. 3. 23. 23:47

*Decision tree & Random forest

 

#Decision tree

 

-의사결정나무

데이터 마이닝 기법으로, 데이터 분석을 하고 예측 모델을 만들기 위해 사용한다.

, 의사결정나무 알고리즘은 분류와 회귀 두가지 형태로 제공된다.

 

목표 변수가 유한한 수의 값을 가지면 분류목적의 분류 나무이고

실수값을 가지면 수치예측 목적의 회귀 나무가 된다.

 

-의사결정나무의 형태 및 구조

입력 데이터에 대해 노드(Node)가지(Edge)로 이루어진 트리(Tree)형태의 구조를 만들어

결정경계를 나누는 알고리즘이며, 각 노드는 하나의 변수를 선택하며, 선택된 변수에 따라 하위 노드가 분리된다.

 

제일 상위의 마디를 뿌리 마디(root node)라 하고 이는 분류 대상이 되는 모든 자료집단을 포함한다.
상위 마디가 하위 마디로 분기될 때, 상위 마디를 부모 마디(parent node) 또는 부모노드라 하고 하위 마디를 자식마디(child node) 또는 자식노드라 하며 더 이상 분기되지 않는 마디를 최종 마디(terminal node) 라 한다

-각 노드의 분리 기준을 결정하는 방법

대표적인 방법은 CART (Classification and Regression Tree) 등이 있고,

이러한 알고리즘은 노드 분리 기준을 결정하는데 사용되는 지표와 알고리즘의 구조 등에서 차이가 있다.

 

-데이터가 얼마나 잘 분리되었는지 평가하는 지표: 불순도

노드에 여러 분류가 섞여 있을수록 높고, 노드에 하나의 분류만 존재할 때 가장 낮아진다.

 

-의사결정 나무의 분석과정

1)    목표 변수와 관계가 있는 설명 변수들의 선택

2)    분석목적과 자료의 구조에 따라 적절한 분리기준과 정지 규칙을 정하여 의사결정나무 생성

3)    부적절한 나뭇가지는 제거

4)    이익,위험,비용 등을 고려하여 모형평가

5)    분류 및 예측

 

 

 

#Random forest

-Random forest (의사결정 나무의 오버피팅 한계를 극복하기 위함)

회귀 및 분류 문제를 해결하는데 사용하는 머신러닝 기법이다.

:숲은 나무로 구성되어있음 > 수많은 의사 결정 트리가 모여서 생성된다.

 

여러가지 결과를 합치는 방식인 앙상블 기법이다.

하나의 거대한 결정 트리를 만드는 것이 아니라 여러 개의 의사결정 트리를 만드는 방식으로 구성된다.

훈련을 통해 구성해 놓은 다수의 나무들로부터 분류결과를 취합해서 결론을 얻는다.

여러 결정 트리가 내린 예측 값들 중, 가장 많이 나온 값을 최종 예측값으로 정합니다.

(1명의 똑똑한 사람보다 100명의 평범한 사람)

 

-오버피팅(feat. 기울어진 운동장)

:모델의 파라미터들을 학습 데이터에 너무 가깝게 맞췄을때 발생하는 현상

 

학습데이터가 실제 세계에서 나타나는 방식과 완전히 똑같을 거라고 가정하는 것이다. 학습데이터에 속한 각각각각의 데이터들을 완벽하게 설명하기위한 모델을 생성한다. 

 

너무 세밀하게 학습 데이터 하나하나를 다 설명하려고 하면 중요한 패텅릏 설명할 수 없는 현상

-앙상블

:주어진 자료로부터 여러 개의 예측모형들을 만든 후 예측모형들을 조합하여

하나의 최종 예측 모형을 만드는 방법

:Test데이터에 대해 다양한 의견(예측값)을 수렴하기 위해 overfitting이 잘 되는 모델(의사결정트리)을

기본적으로 사용(부스팅, 랜덤포레스트)

-배깅

최종결과를 얻기 위해 앙상블 기법중 하나인 배깅을 사용한다. 

배깅이라는 프로세스를 통해서 랜덤포레스트의 각 나무를 만든다.

 

배깅은 학습 데이터 세트에서 임의로 하위 데이터 세트를 추출하여 생성하는 것이다.

여러 개의 모델을 만들지만 이 과정에서 각각의 모델들은 서로의 영향을 받지 않는다.

여러 개의 모델을 만들기 위해 각 모델별로 임의의 데이터 세트를 생성하는데

이 때 복원 추출(하나를 뽑을때마다 뽑은걸 다시 넣어서 다음번 뽑을때 다시 후보가 될 수 있게함)을 사용하여 무작위로 N개를 선택하여 데이터 세트를 생성합니다.

 

ex) 1000개의 행이 있는 가방에서 임의로 100개를 뽑아 첫 번째 트리를 만들고, 그 100개의 행은 다시 가방에 넣는다. 이와 같은 행동을 반복한다.

 

-배깅 속성

트리를 만들 때 사용될 속성들을 제한함으로써 각 나무의 다양성을 줘야한다.

모든 속성을 살펴보고 정보 획득량이 가장 많은 속성을 선택하여

그거 기준으로 데이터를 분할한다. 그러나 이제는 각 분야에서 전체속성들중 일부만 고려하여 트리를

작성하는 전략이다.

 

ex) 총 25개의 속성이 있는데 그중 5개의 속성만 뽑아서 살펴본 후 정보획득량이 높은걸 기준으로 데이터를 분할한다. 그 후 다음 단계에서도 다시 임의로 5개를 선택해 살펴본다. 

 

경험적으로는 전체속성 개수의 제곱근만큼 선택하는게 좋다고 한다.

랜덤 포레스트를 사용해서 풀고자하는 문제가 분류인 경우에는다수의 결과를 따라  최종 결정이되고

회귀인 경우에는 의사 결정 트리의 결과들을 평균내어서 최종 결정을 정합니다.  

 

-장점

:Classification(분류) 및 Regression(회귀) 문제에 모두 사용 가능
:Missing value(결측치)를 다루기 쉬움
:대용량 데이터 처리에 효과적
:모델의 노이즈를 심화시키는 Overfitting(오버피팅) 문제를 회피하여, 모델 정확도를 향상시킴
:Classification 모델에서 상대적으로 중요한 변수를 선정 및 Ranking 가능

 

sklearn.ensemble  모듈에서  불러오면 되고, 숲을 만들 때  나무의 개수 를  n_estimators 라는 파라미터로 지정해주어야 한다.

 

[출처]

R 배우는 데이터분석 #19 - 의사결나무모형 : 네이버 포스트 (naver.com)

[ML]의사결정나무 | decision tre.. : 네이버블로그 (naver.com)

기계 학습: 의사 결정 트리 재검토 | 캐피톨 테크놀로지 대학교 (captechu.edu)

지도 학습 분류 - 랜덤 포레스트 : 네이버 블로그 (naver.com)

랜덤 포레스트(Random Forest) 쉽게 이해하기 - 아무튼 워라밸 (hleecaster.com)

[ML] 랜덤 포레스트(Random Forest)란? (tistory.com)

[데이터마이닝] 3. 앙상블 분석 (배깅, 부.. : 네이버블로그 (naver.com)

머신러닝 오버피팅의 개념과 해결 방법 (feat. 기울어진 운동장) - 아무튼 워라밸 (hleecaster.com)