본문 바로가기
BOOSTCAMP AI TECH/PStage

02-02. Tabular

by 이민우 2021. 4. 24.
728x90
반응형

정형 데이터

-엑셀 파일 형식이나 관계형 데이터베이스의 테이블에 담을 수 있는 데이터.

-즉, 행과 열로 표현이 가능한 데이터이다.

-하나의 행은 하나의 데이터 인스턴스를, 각 열은 데이터의 특징을 나타낸다.

-사람, 기업, 현상, 사회의 많은 부분들이 정형 데이터로 기록된다. 즉, 정형 데이터는 가장 기본적인 데이터이고,

 분야를 막론하고 많은 데이터가 정형데이터로 존재하기에 필수적인 데이터이다.

-정형데이터를 분석하는 능력은 데이터에 대한 상상력과 통찰력에 직결된다.

-즉 다양한 경험을 통해 데이터에 국한되지 않고 범용적으로 쓰일 수 있는 능력이다.

 

*비정형 데이터 : 이미지, 비디오, 음성, 자연어 등의 정제되지 않은 데이터

 

 

 

 

 

평가 지표

Confusion Matrix (오차 행렬)

1) Accuracy (정확도)

- (TP + TN) / (TP + TN + FP + FN)

-전체 데이터 중 제대로 예측한 비율

-불균형 데이터에 대해서는 믿을 수 없다.

 

2) Precision (정밀도)

- TP / (TP + FP)

-모델이 P라 예측한 데이터 중 맞는 비율

-N인 데이터가 더 중요하여, N인 데이터를 P라 예측하면 안될 때 사용한다.

-스팸 메일이 대표적인 예시.

 스팸 메일을 확실하게 스팸 메일로 분류하는 것보다, 일반 메일을 스팸 메일로 분류하지 않는 것이 더 중요하다.

 

3) Recall (재현율)

- TP / (TP + FN)

-실제 값이 P인 데이터 중 맞는 비율

-P인 데이터가 더 중요한 경우에 사용한다.

-예를 들어 악성 종양을 음성 종양으로 분류하면 안된다.

 

4) ROC (Receiver Operating Characteristic, 수신자 조작 특성)

-TPR을 Y축, FPR을 X축으로 한 곡선이다.

-TPR : TP / (TP+FN) : 실제 값이 T인 데이터 중 맞춘 비율

-FPR : FP / (FP+TN) : 실제 값이 0인 데이터 중 맞춘 비율

-AUC : ROC 곡선의 면적으로, 0~1의 값을 가지는데 1에 가까울수록 잘 예측하는 것을 의미한다.

 

 

 

 

 

 

 

EDA (Exploratory Data Analysis, 탐색적 데이터 분석)

-데이터를 탐색하고 가설을 세워 증명하는 과정

-다양한 시각화를 통해 데이터를 이해하고 특징을 찾아내는 과정이다.

-정형, 비정형의 모든 데이터는 분석에 앞서 EDA 과정을 수반한다.

-종합하면 데이터를 통한 문제를 해결하기 위해 데이터를 이해하기 위해 적절한 방법들을 사용하는 것.

-탐색하고, 생각하고, 증명하는 과정의 반복이다.

-데이터마다 도메인이 상이하고 해결하고자 하는 문제가 다르기에 EDA의 방향성은 그때그때 다르다.

 즉, 일반화가 어렵고 정해진 답이 없다.

-그렇기에 많은 가설 혹은 의문을 생각하고 풀어나가는 것이 좋다.

-그렇다고 EDA에 대한 개요가 없다면 비효율적이기 때문에 반드시 시작은

 1) 개별 변수의 분포

 2) 변수간 분포와 관계

 를 파악하며 시작해야 한다.

 

 

 

 

 

 

 

데이터 전처리 (Preprocessing)

-머신러닝 모델에 데이터를 입력하기 위해 데이터를 처리하는 과정

-EDA에 따라, 그리고 모델과 목적에 따라 전처리 방식은 달라진다.

-EDA처럼 정해진 정답은 없으나, 일단 연속형, 범주형 처리, 결측치 처리, 이상치 처리 등을 수행해야 한다.

 

1) 연속형 데이터 처리

1-1) Scaling

-데이터의 단위 혹은 분포를 변경

-선형기반의 모델인 경우 변수들 간의 스케일을 맞추는 것이 필수적이다.

-Min-Max Scaling, Standard Scaling, Robust Scaling 등이 있다.

-스케일링을 수행하면 Squared Error가 줄어들어 모델의 성능에 영향을 미친다.

 

1-2) Scaling + Distribution

-스케일링 뿐 아니라 분포도 바꾸는 것

-Log transformation은 한쪽에 치우친 경우 분포를 정규분포처럼 만들어준다.

-Quantile transformation의 경우 값을 Uniform하게 변화시키거나 정규분포로 바꿔준다.

 Log와 차이점은 어떠한 분포가 들어와도 정규분포처럼 만들어줄 수 있다.

-정규의 분포도 바꿔줌으로써 타겟과 관계를 더욱 직접적으로 바꿔준다.

 

1-3) Binning

-넓고 얇은 다봉분포

-오버피팅을 방지해준다.

 

 

2) 범주형 데이터 처리

-대부분 문자형 데이터로 되어있어 수치형으로 바꿔주는 작업이 필요하다.

2-1) One hot encoding

-변수를 1과 0으로 나눈다.

-모델이 변수의 의미를 정확하게 파악할 수 있으나 도메인이 많다면 희소 행렬의 특성상

 차원의 저주에 걸릴 수 있다.

 

2-2) Label Encoding

-특징마다 다른 ID를 부여해 하나의 칼럼으로 표현하는 것.

-메모리를 아낄 수 있으나, 모델이 숫자의 순서를 특징으로 인식할 수도 있다.

 

2-3) Frequency Encoding

-해당 변수의 값이 몇 번 나왔는지를 사용하는 방식

-값의 의미가 범주형 변수의 빈도수를 의미한다.

 

2-4) Target Encoding

-각 타겟변수의 평균으로 인코딩

-값의 의미가 타겟변수와 얼마나 연관되어 있는지를 의미한다.

-하지만 타겟인코딩은 타겟변수와 직접적으로 연관되어 오버피팅 될 수 있다.

 

2-5) Entity Embedding

-Word2Vec등을 활용하여 임베딩을 수행하여 인코딩

 

 

3) 결측치 처리

3-1) Pattern 파악

-결측치의 패턴을 파악하여, 어떠한 규칙을 기반으로 발생하는지 혹은 랜덤하게 발생하는지 파악한다.

-랜덤하게 발생하는 결측치 패턴에 대해서는 단변량, 다변량 기법을 활용해 결측치를 채워야 한다.

-규칙적으로 발생하는 결측치 패턴에 대해서는 다른 특징이 같거나 비슷한 다른 데이터의 값으로 채워줄 수 있다.

 

3-2) 랜덤 패턴 결측치 처리 : Univariate (단변량)

-제거, 평균값 삽입, 중의값 삽입, 상수값 삽입 등으로 처리할 수 있다.

-제거의 경우 데이터가 충분하지 않으면 좋지 않은 방법. 또한 테스트 데이터에 있을 경우 제거가 불가능

-만약 해당 특징의 대부분이 결측값이면, 그냥 그 특징 자체를 삭제해 버릴 수도 있다.

-삽입의 경우에는 결측치가 많으면 삽입한 값에 대한 분포가 많아질 수 있다.

 

3-3) 랜덤 패턴 결측치 처리 : Multivariate (다변량)

-머신러닝 모델을 활용하여, 주변 데이터를 통하거나 유사한 샘플을 활용해 결측치를 채우는 방법

-회귀분석, KNN nearest등의 방법을 사용할 수 있다.

-결측치가 많다면 시행이 어렵고, 데이터 크기가 크다면 시간이 많이 소모될 수 있다.

-또한 결측지의 값을 변수간의 의미를 파악하여 채울 수도 있다.

 ex) 행정구역인구의 경우 => 평균값 대체 / 강수량 => 0으로 대체 / 온도, 습도 => 지역의 해당 일의 평균으로 대체

 

 

4) 이상치 처리

-이상치란 일반적인 데이터와 크게 다른 데이터.

-그래프에 표현하면 모여있는 데이터들에 비해 멀리 떨어져있고, x, y의 상관관계에서 상관이 없다.

-이상치를 탐색하는 방법으로는 Z Score, IQR이 있다.

-이상치는 모델의 학습을 크게 방해하기에 반드시 처리해야 한다.

-이상치 처리는 정성적, 성능적으로 나뉜다.

-정성적 측면에서는 이상치가 발생한 이유와 의미를 파악한다. 그리고 이를 토대로 어떻게 처리할지 결정한다.

-성능적 측면에서는 TRAIN-TEST 분포에 이상치의 분포를 확인하는데, 목적에 따라 다르게 접근하여 처리한다.

-대표적으로 학습셋과 테스트셋을 한 그래프 안에 산점도로 표현한 후, 학습셋의 이상치 중 테스트셋과도 멀리

 떨어진 이상치들을 제거한다.

 

 

 

 

 

 

Underfitting & Overfitting

-fit이라는 표현은 데이터를 잘 설명할 수 있는 능력을 의미한다.

-Underfitting은 데이터를 잘 설명하지 못하는 현상을, Overfitting은 데이터를 과하게 설명하는 현상을 의미한다.

-모델 학습에 사용된 데이터셋은 전체의 일부분에 불과하다.

-만약 보유한 데이터셋이 전체 데이터를 너무 잘 표현한다면, 오히려 오버피팅 시키는 것이 좋을 수 있다.

-하지만 그런 경우는 거의 없으니, 오버피팅과 언더피팅에 유의해야 한다.

 

 

 

 

 

 

Regularization

-언더 피팅을 방지하는 방법에는 데이터 추가, 특징 추가, 더 좋은 모델 사용등이 있다.

-오버피팅을 방지하는 방법에는 조기종료, Parameter norm 패널티, 데이터 증강 등의 규제가 있다.

-정형 데이터에서는 조기종료, 파라미터 norm 패널티, 데이터 증강, 드롭아웃이 사용된다.

 

1) Early stopping

-과적합에 걸리지 않게 적당한 학습 단계에서 학습을 종료한다.

 

2) Parameter norm penalty

-L1 (Lasso), L2 (Ridge) 등을 사용하여 노이즈에 민감하지 않게 모델이 학습하도록 도와준다.

-패널티의 계수를 적절히 선택하여 모델을 학습하면 오버피팅 방지가 가능하다.

 

3) Data Augmentation

-데이터를 의도적으로 증강시켜 머신러닝 모델에게 다양한 경험을 제공하는 방법

-의미있는 데이터가 많을수록 분석이 용이하다.

 

4) SMOTE

-모든 데이터에 대해 Augmentation을 하는 것이 아니라, Imbalance한 데이터를 대상으로 Augmentation 수행

-하나의 Imbalance 데이터를 기준으로 설정한 후 근처에 있는 데이터를 검색한다. 그리고 그 사이에 데이터를

 생성한다.

 

5) Dropout

-정형 데이터에서의 Dropout은 모든 데이터가 아닌, 몇몇 데이터를 제외하고 학습을 수행하는 방법

-정형 데이터에서는 프루닝(가지치기)라고 표현하기도 한다.

 

 

 

 

 

 

Validation Strategy

-Valid 데이터셋은 Test 데이터셋과 비슷하면 당연히 좋겠지만, 테스트 데이터셋은 미래에 추가되는 것이기에

 현재를 기준으로 볼 수 없어 사실상 불가능하다.

-Valid 데이터셋은 현실 데이터를 잘 표현할 수 있도록 구성하는 것이 중요하다.

-Hold-out Validation은 애초에 Valid 데이터셋을 선정하여 이를 계속 활용한다.

-랜덤으로 선정할 수도 있고, Stratified Split을 활용해 데이터의 클래스간 분포를 일정하게 나눌 수도 있다.

-Cross Validation은 K-Fold라고도 불리며, K개의 valid 셋을 선정하여 각 데이터셋에 대해 K개의 모델을 학습시켜

 모델들을 합치는 방법이다.

-마찬가지로 Stratified를 사용하여 분포를 맞춰줄 수도 있고, Group K-Fold를 사용하여 아예 특정 클래스만

 검증 셋으로 만들어버릴 수도 있다.

 

 

 

 

 

 

Reproductibility (재현성)

-모델의 성능은 같은 모델이라도 환경에 따라 다를 수 있다. 데이터가 나누어지는 것도, 모델이 학습하는 것도

 전부 랜덤성을 가지고 있기 때문.

-그렇기에 그 환경을 동일하게 설정해주어야 하는데, 이를 위해 시드를 고정해야 한다.

*진짜 꼭 시드좀 고정하고 살자... 시드 고정 안해서 날린 모델이 몇개냐... ㅠㅠ

 

 

 

 

 

 

트리 모델의 발전 과정

1) 의사결정나무

-칼럼 값들을 기준으로 그룹으로 나누어 목적에 맞는 의사결정을 만드는 방법

-하나의 질문으로 yes or no로 결정을 내려가며 분류를 수행한다.

 

2) 배깅과 부스팅

-둘 다 여러 개의 의사결정 트리를 이용하여 모델을 생성하는 방법이다.

-배깅은 데이터셋을 샘플링하여 여러 개의 데이터셋으로 나누어 각 데이터 셋에 맞는 모델들을 만든 후

 하나로 취합한다. => 랜덤 포레스트의 구성 방식

-부스팅은 데이터로 학습을 시킨 후 검증을 통해 제대로 파악하지 못하는 데이터 유형에 대해 재학습을 실시하는

 방향으로 진행된다.

-배깅은 병렬 모델로 다양한 트리를 생성하고, 부스팅은 순차적 모델로 정밀한 트리를 생성한다.

 

3) LightGBM, XGBoost, CatBoost

-부스팅 모델들의 대표적인 모델들.

-XGBoost와 CatBoost는 균형적 구조, LightGBM은 한쪽 가지를 먼저 성장시키고 다음 가지를 성장시키는

 비균형적 구조로 학습된다.

-LightGBM과 CatBoost는 pandas의 category 데이터 타입만 사용이 가능하고,

 XGBoost는 오직 numeric 데이터 타입만 사용이 가능하기에 전처리가 필요하다.

 

 

 

 

 

Tree model의 하이퍼 파라미터

-learning rate : 수렴을 하기 위해 이동하는 거리

-depth와 leaves : 트리의 깊이와 잎사귀(마지막 노드) 수

-Column sampling ratio : 특징 중 일부만을 사용하여 트리를 만드는 것 => 특정 특징에 오버피팅 방지

-Row sampling ratio : 데이터 중 일부 데이터만 사용하여 트리 생성 => 특정 데이터에 오버피팅 방지

-lgb.plot_metric(model) : 트레이닝 로그 확인

-lgb.plot_tree(model, tree_index = 50, figsize = (100, 100) : tree의 구조 확인

 

 

 

 

 

Feature Engineering

-원본 데이터로부터 도메인 지식 등을 바탕으로 문제를 해결하는데 도움이 되는 특징을 생성, 변환하고

 머신 러닝 모델에 적합한 형식으로 변환하는 작업

-pandas의 gropby 함수와 agg 함수를 사용하면

 원본 데이터에서 주어진 특징을 바탕으로 새로운 특징 생성이 가능하다.

-이러한 방식은 특징-특징 간 관계를 잘 파악할 수 있게 해줌으로써 효율적인 EDA가 가능해진다.

-위의 방식은 customer_id, year_month, label을 기준으로 quantity, price를 agg한 것.

 

 

 

 

 

Cross Validation을 활용한 Out of fold 예측

-Cross Validation은 학습 셋에서 k개의 검증셋을 분할해 여러 모델에 학습을 시키고 통합하는 방식

-Out of fold 예측은 폴드마다 학습한 모델로 테스트 데이터를 예측하고, 이 결과를 평균을 내서 최종 예측을 하는 법.

-그냥 평범한 앙상블처럼 사용하면 된다.

 

 

 

 

 

 

LightGBM의 조기 종료 적용

-LightGBM은 몇 개의 트리를 만들지 n_estimators 하이퍼 파라미터를 적용하지만, 이것이 최적의 값이라고

 볼 수는 없다.

-Early Stopping은 Valid 데이터가 있을 경우 early_stopping_rounds를 적절한 값으로 설정하여 사용한다.

-트리를 추가할 때마다 validation 성능을 측정하고 이 성능이 early_stopping_rounds 값 이상 연속으로 성능이

 좋아지지 않으면 학습을 종료하고 가장 성능이 좋은 트리 개수를 최종 트리 개수로 사용한다.

 

 

 

 

 

 

피처 중요도

-타겟 변수를 예측하는 데 얼마나 유용한 지에 따라 특징에 점수를 할당하여 중요도를 측정하는 방법

-크게 Model-specific한 방법과 Model-agnostic한 방법이 있다.

-머신러닝 모델 자체에서 피처 중요도를 계산하면 Model-specific

-모델을 학습한 후 적용되는 피처 중요도 적용 방법은 Model-agnostic

 

 

 

 

 

LightGBM 피처 중요도

-학습된 모델 클래스에 feature_importance 함수를 사용하면 계산 가능

-파라미터로 importance_type값을 주는데 split (default), gain 값 가능

-split은 트리를 만드는 데 피처가 얼마나 사용되었는가?

-gain은 피처를 사용해 split하는 데 나온 gain 종합

 

 

 

 

 

 

WeightGBM 피처 중요도

-get_score 함수로 계산 가능

-파라미터는 디폴트는 weight

 

 

 

 

 

 

CatBoost 피처 중요도

-get_feature_importance 함수로 계산 가능

-디폴트는 FeatureImportance

 

 

 

 

 

Permutation 피처 중요도

의사코드와 실제코드

-특징의 값들을 랜덤하게 셔플링 한 후 모델의 에러를 측정해서 피처의 중요도를 측정하는 방법

-피처가 중요하면 랜덤 셔플링이 되면 에러가 커지고, 중요하지 않다면 커지지 않는다.

 

 

 

 

 

 

피처 선택

-머신러닝 모델에서 사용할 피처를 선택하는 과정

-머신러닝 모델이 타겟 변수를 예측하는 데 유용한 피처와 유용하지 않은 피처를 구분하여 유용한 피처를

 선택하는 과정

-피처 선택을 통해 모델의 복잡도를 낮춰 오버피팅 방지 및 모델의 속도 향상이 가능하다.

-피처 선택의 방법으로는 Filter Method, Wrapper Method, Embedded Method가 있다.

 

1) Filter Method

-통계적인 측정 방법을 사용해 특징 간 상관관계와 분산을 파악하는 방식

-그러나 특징간 상관관계가 반드시 모델에 적합한 것은 아니라 가장 좋은 방법은 아니지만,

 가장 간단하게 사용 가능한 방식

-계산 속도가 빠르고 상관계수를 알아낼 수 있어 Wrapper Method 사용 전 전처리에 사용하기 좋음.

-상관계수가 너무 높으면 사실상 같은 변수라 둘 중 하나 제거 가능.

-분산이 너무 높은 특징은 중요한 특징이 될 가능성이 낮으므로 제거 가능.

 

2) Wrapper Method

-예측 모델을 사용해 특징의 subset을 테스트하는 방식

-기존 데이터에서 성능을 측정할 수 있는 홀더 데이터셋을 따로 두어 성능을 측정하는 방법 필요

 

3) Embedded Method

-위의 두 메소드의 장점을 결합한 방식으로 학습 알고리즘 자체에서 수행

 

 

 

 

 

 

 

하이퍼 파라미터 튜닝

-하이퍼 파라미터란 학습 과정에서 제어 가능한 파라미터들

-반대로 파라미터란 모델이 학습하는 과정에서 계속해서 변화하는 값들

-즉, 하이퍼 파라미터는 모델이 학습하지 않고, 개발자가 미리 설정하는 값들이다.

-하이퍼 파라미터 튜닝이란 이러한 하이퍼 파라미터를 최적화하는 과정이다.

-방법으로는 Manual Search, Grid Search, Random Search, Bayesian optimization이 있다.

 

1) Manual Search

-자동화 툴을 사용하지 않고 개발자가 직접 테스트 셋을 정하고 일일이 테스트를 해보는 것

 

2) Grid Search

-테스트 가능한 하이퍼 파라미터를 전부 테스트해보며 성능을 비교하는 방식

-당연히 시간이 많이 걸려서 좋은 방법이라 볼 수는 없다.

-단 실험할 경우의 수가 적으면 좋은 방법일 수 있음.

 

3) Random Search

-탐색 가능한 하이퍼 파라미터의 영역에서 랜덤하게 하이퍼 파라미터를 정해서 성능을 비교

-Grid Search보다 좋은 하이퍼 파라미터를 찾아낼 수 있는 방식

 

4) Bayesian Optimization

-대부분의 프레임워크에서 기본적으로 사용하는 방식

-처음에는 랜덤하게 정하다가, 어느정도 기록이 쌓이면 그 기록을 토대로 성능이 잘 나오는 구간에서 테스트를 수행.

-오래하면 오래할수록 좋은 파라미터가 나올 수 있고, 너무 한 쪽으로 쏠리지 않도록 중간중간 계속 랜덤 파라미터

 선택 수행

 

 

 

 

 

 

Optuna

-오픈소스 하이퍼 파라미터 튜닝 프레임워크

-Storage API를 사용하면 하이퍼 파라미터 검색 결과를 저장할 수 있다.

-RDB, Redis와 같은 Persistent 저장소에 하이퍼 파라미터 탐색 결과를 저장함으로써 한 번 탐색하고, 다음에 다시

 이어서 탐색이 가능하다.

-주요 기능으로는

 1) Eager search spaces : 최적화된 하이퍼파라미터를 자동 검색 가능

 2) State of the art algorithms : 하이퍼파라미터 탐색의 최신 알고리즘 제공

 3) Easy Parallelization : 병렬화가 가능하여 대규모 하이퍼파라미터 탐색 가능.

 

 

 

 

 

앙상블

-여러 개의 결정 트리를 결합하여 하나의 결정 트리보다 더 좋은 성능을 내는 머신러닝 기법

-앙상블 학습의 핵심은 여러 개의 약 분류기를 결합하여 강 분류기를 만드는 것이다.

-여러 모델들의 평균치를 내거나, 투표를 통해 다수결에 의한 결정을 하는 등 여러 모델들의 집단 지성을 활용하거나

 더 나은 결과를 도출해내는 것이 목적임.

-기법으로는 배깅, 보팅, 부스팅, 스태킹이 있다.

 

1) Bagging (Bootstrap Aggregation)

-훈련 세트의 중복을 허용하여 샘플링하는 방식.

 

2) Pasting

-훈련 세트의 중복을 허용하지 않고 샘플링하는 방식.

 

3) Voting

-투표를 통해 결정하는 방식.

-보팅은 다른 알고리즘 모델을 조합하여 사용하는데, 배깅은 같은 알고리즘 내에서 다른 샘플을

 조합하여 사용한다.

-보팅은 서로 다른 알고리즘이 도출한 결과물에 대하여 최종 투표를 하는 방식

-Hard Vote : 다수결의 원칙과 비슷하며, 최종 결과물에 대한 보팅 진행

-Soft Vote : 레이블 값 결정 확률인 softmax 결과를 더한 후 평균을 내어 가장 높은 레이블 값을 선정.

 

4) Boosting

-여러 개의 분류기가 순차적으로 학습을 수행한다.

-이전 분류기가 틀린 예측에 대해 제대로 예측이 가능하도록 해당 데이터에 대해 학습 재개

-순차적으로 학습이 진행되기에 병렬 학습이 가능한 배깅보다 느리고, 오버피팅 발생 가능성이 높다.

 

5) Stacking

-여러 모델들로 각각의 예측 결과를 도출한 후 그 예측 결과를 결합해 최종 예측 결과를 만들어내는 것.

-총 두 가지 종류의 모델들이 필요한데, 베이스러너와 모델들의 예측값을 통해 출력을 결정하는 Meta모델이다.

-그러니까 여러 모델들을 만들고 이 모델들의 출력값을 Meta 모델이 활용하여 최종 출력값 결정

-성능은 좋으나 오버피팅이 일어날 수 있다.

 

 

 

 

 

Tree Algorithm

1) Decision Tree의 불순도

좌 엔트로피 / 우 지니

-노드에 섞여있는 불순도가 많을수록 복잡성이 높아진다.

-그래서 이 불순도를 측정해야 하는데, 측도로는 Entropy와 Gini가 있다.

-지니 계수는 데이터의 통계적 분산정도를 정량화하여 표현한다.

 

2) XGBoost

-Gradient Boosting에 Regularization term을 추가한 알고리즘.

-다양한 손실 함수를 지원해 task에 따른 유연한 튜닝이 가능하다.

-Level-wise growth라 트리의 깊이를 줄이고 균형있게 만들기 위해 root와 가까운 노드를 우선적으로

 순회하며 수평성장한다.

 

3) LightGBM

-Leaf-wise tree growth라서 LOSS 변화가 가장 큰 노드에서 분할하여 성장하는 수직 성장한다.

-Goss : 기울기가 큰 데이터 개체 정보 획득에 있어 더욱 큰 역할을 한다는 아이디어에 입각해 만들어진 테크닉으로,

 작은 기울기를 갖는 데이터 개체들을 일정 확률에 의해 랜덤하게 제거한다.

-EFB : 변수 개수를 줄이기 위해 상호배타적인 변수들을 묶는다.

 

4) CatBoost

-순서형 원칙을 제시 : Target Leakage를 피하는 표준 그래디언트 부스팅 알고리즘을 수정하고 범주형 특징을 처리하는

 새로운 알고리즘이다.

-Random Permutation으로 데이터를 셔플링하여 뽑아낸다.

-범주형 피처를 처리하는 방법으로는 Ordered Target Encoding, Categorical Feature Combinations, One-hot encoding

 이 있다.

 

 

 

 

 

 

TabNet

-정형 데이터를 위한 딥러닝 모델

-전처리 과정이 필요하지 않다.

-Feature selection, interpretability가 가능한 신경망 모델. 즉, 설명가능한 모델이다.

-특징 값을 예측하는 비지도 학습 단계를 적용하여 상당한 성능 향상을 보여준다.

-순차적인 어텐션을 사용하여 각 의사 결정 단계에서 추론할 특징을 선택하여 학습 능력이

 가장 두드러진 특성을 사용한다.

-기존의 모델과 달리 특징 선택과 모델 학습이 나누어지지 않고, 한 번에 가능하다.

-특징 선택이 이루어지기에 어떠한 특징이 중요한지 설명이 가능하다.

-비지도 사전 학습의 경우 특징 일부에 Mask를 두고 이를 맞추는 방향으로 학습한다.

-비지도 사전 학습으로 weight를 pre training 할 수 있고, 이를 토대로 지도 학습을 진행하면 좋은 성능이 나온다.

-단점으로는 조절해야할 파라미터의 수가 많아 시간이 조금 오래 걸리는 편에 속한다.

728x90
반응형

'BOOSTCAMP AI TECH > PStage' 카테고리의 다른 글

03-02. MRC (Machine Reading Comprehension, 기계독해)  (0) 2021.04.26
03-01. Object Detection / Segmentation  (0) 2021.04.26
02-01. KLUE  (0) 2021.04.24
01. Computer Vision  (0) 2021.04.24
00. 시각화  (0) 2021.04.24