지금은마라톤중

멋사 AI스쿨 TIL - (24) 본문

멋쟁이사자처럼/Python

멋사 AI스쿨 TIL - (24)

달리는중 2023. 3. 23. 16:15

2023.03.21

 

질문🙋🏻‍♂️ : 수백 수천개의 피처를 다루는 방법은?
기술통계의 기술통계들을 구해보거나 , 왜도 첨도를 구해서 데이터의 특성을 파악합니다.
ex) df.describe().T.describe()

 

질문🙋🏻‍♂️ :히트맵으로 표현했을 때, 검은색, 흰색이 많고 붉은색 계열이 없으니 모두 0, 1로 이루어졌다고 해석해도 되나요?
대략적으로 대부분 0,1로 되어있는 것으로 보여지기 때문에 유일값의 빈도가 많은 값이 있을 수도 있기 때문에 
해당 값을 따로 찾아봐야겠다는 힌트를 해당 시각화를 통해 얻을 수 있습니다

 

질문🙋🏻‍♂️ :handle_unknown="ignore" 는 무엇을 의미할까요?
train 셋에는 없었지만 test 셋에는 있을 때 당황하지 않고 무시하고 넘어가기

'train에는 없지만 test에는 있는 변수에 대해 0으로 처리'하는 것을 '무시한다'라고 표현하는 건가요?
아예 해당 피처를 생성하지 않습니다

 

 

●  XGBoost 공식문서에 설명이 다음과 같이 나와있다. XGBoost의 공식 문서에 첫줄에 나와있는 portable 의 의미가 무엇일까요?

XGBoost is an optimized distributed gradient boosting library designed to be highly efficient, flexible and portable

 

번역기에서 portable 을 휴대성으로 번역을 했는데 보통 책에서는 이식성이 높다고 번역을 합니다.

다른 프로그래밍 언어를 지원하기 적합한 구조로 설계되어 있어 여러 언어를 지원합니다.

XGBoost 문서에도 Python, R, Julia.. 등의 언어를 지원한다고 적혀있습니다.

 

 

●  XGBoost의 래퍼 비교

- 출처 : https://for-my-wealthy-life.tistory.com/35?category=950145

 

 

● XGBoost 피쳐 중요도 및 트리 시각화

- XGB 예측 모형에 대해 변수 중요도를 시각화할 수 있다.

- graphviz 를 사용하면 의사결정나무도 시각화할 수 있다

 

 

● XGBoost의 장점

- GBM 대비 빠른 수행시간

- 병렬 처리로 학습, 분류 속도가 빠름.

- 과적합 규제(Regularization)

- 표준 GBM 경우 과적합 규제기능이 없으나, XGBoost는 자체에 과적합 규제 기능으로 강한 내구성을 가진다.

- Early Stopping(조기 종료) 기능이 있다.

- 다양한 옵션을 제공하며 Customizing이 용이하다

 

 

● 배깅과 부스팅 특징

배깅 => 병렬트리를 여러 개 생성, 오버피팅에 좀 더 덜 취약합니다. => 랜덤포레스트, ExtraTree

부스팅 => 순차적으로 트리를 생성, 오버피팅에 좀 더 취약하며, 개별 트리의 성능이 중요할 때 사용합니다. => GBM, XGBoost, LightGBM, CatBoost 등

 

 

● LightGBM 이란?

- XGBoost에 비해 훈련 시간이 짧고 성능도 좋아 부스팅 알고리즘에서 주목을 받고 있다.

- GradientBoosting을 발전시킨 것이 XGBoost, 여기서 속도를 더 높인 것이 LightGBM이다.

- 트리 기준 분할이 아닌 리프 기준 (leaf wise tree) 분할 방식을 사용한다.

- 학습에 소요되는 시간이 짧고 메모리 사용량도 절약할 수 있어 대용량 데이터 처리가 가능하다.

- 적은 데이터셋에서 과적합 발생 우려가 있다.

 

 

● LightGBM 핵심 알고리즘

1) GOSS : Gradient based One Side Sampling

- 기울기 기반 단측 표본 추출법

-> “모델의 학습에 많은 도움이 되는 샘플” 모두 학습에 사용하고, "학습에 별 도움이 안 되는 샘플”은 일부만 학습에 사용.

=> 행을 줄입니다.

틀린 문제 위주로 다시 샘플을 구성하기 때문에 트리를 시각화 하면 한쪽 방향으로 트리가 만들어지는 것을 확인해 볼 수 있습니다.

 

2) EFB : Exclusive Feature Bundling

- 변수 개수를 줄여 차원을 효과적으로 감소

- 트리의 가지를 뻗어나가면서 사용되는 feature의 가짓수를 줄여 트리가 overfitting되는 것을 방지한다

=> 열을 줄입니다.

=> 인코딩이 되어있는 데이터는 밀도가 낮습니다. 그래서 낮은 밀도의 데이터끼리 합칠 수 있는 것은 합칩니다.

예를 들어 바이너리 값인 연장자 여부를 주니어, 시니어 각각 인코딩했다면 불필요한 인코딩이 됩니다. 서로 배타적인 특징을 갖습니다. 이런 피처를 합쳐서 사용하는 것이 EFB 기법입니다. 알고리즘 내부에서 서로 배타적인 특징을 갖는 피처를 찾아 합칩니다.

 

'멋쟁이사자처럼 > Python' 카테고리의 다른 글

멋사 AI스쿨 TIL - (26)  (0) 2023.04.18
멋사 AI스쿨 TIL - (25)  (0) 2023.03.23
멋사 AI스쿨 TIL - (23)  (0) 2023.03.23
멋사 AI스쿨 TIL - (22)  (1) 2023.03.16
멋사 AI스쿨 TIL - (21)  (0) 2023.03.15
Comments