부스팅 모델 중에서 가장 흔히 쓰이는 세 가지가 XGBoost, CatBoost, 그리고 LightGBM일 것이다.(최근에는 다른 여러 부스팅 모델이 나온 것으로 알고 있다.) XGBoost와 CatBoost에 대해선 이미 포스팅 했고, 이번엔 LigthGBM에 대해서 리뷰해보려고 한다. 간단하게 설명해보면, 이름 그대로 light 가볍다라는 뜻이다. 이름만큼 규모가 큰 데이터에서 빠른 학습 속도로 유리함을 가지고 있다. Microsoft에서 개발한 그레디언트 부스팅 프레임워크로 쉽게 사용할 수 있다. 단, 규모가 비교적 작은 데이터에서는 과적합이 생길 수 있으므로 유의해서 사용하자. 📌 1. Introduction 기존에 GBDT(Gradient Boosting Decision Trees)는 모든 ..
CatBoost 2. 트리 구축은 저번 [1. 알고리즘 설명에 이어집니다.] 📌 1. 트리 구축하기 CatBoost의 특징적인 부분인데, 트리를 구축할 때 기본 예측기는 oblivious 결정 트리라고 하는 결정 테이블을 사용한다.[Python만 확인해보았는데 oblivious 말고도 파라미터 지정을 통해 일반적인 트리를 사용할 수 있다.] Oblivious??쉽게 설명하면 트리의 같은 깊이에 해당하는 노드들은 동일한 분할 기준이 사용되는 결정트리이다. 예를 들어, 일반적인 트리는 아래와 같이 만들어질 수 있다. [ Color == 'Red' ]| |[ Age >= 20 ] [..
📌 CatBoost? CatBoost는 부스팅 모델의 하나로, 이름의 Cat은 Categorical의 줄임말이다. 이름에서 볼 수 있듯이 범주형 변수를 대상으로 자주 사용되며 예측 성능도 우수한 편이다. 그럼 CatBoost를 소개하는 본 논문 CatBoost : unbiased boosting with categorical features를 리류해보자. 📌 1. Introduction 일반적인 GBM(Gradient Boosting Model)은 실제 많이 사용되었었다(본 논문이 published된 2019년 기준). 부스팅 모델의 특성처럼 약한 모델들을 가법적으로 결합하여 함수 공간에서 그레디언트 하강법을 수행하는 모델이다. 본 논문에서는 기존 GBM 구현이 아래와 같은 통계적 문제에 직면한다고 ..
https://brilliant.org/wiki/gaussian-mixture-model/https://towardsdatascience.com/gaussian-mixture-models-explained-6986aaf5a95 📌 가우시안 혼합 모델 가우시안 혼합 모델은 전체 모수 내에서 정규 분포를 따르는 하위 집단들을 나타내기 위한 확률 모델입니다.일종의 비지도 학습의 한 형태로 모델이 자동으로 하위 집단을 분류해내도록 하는 알고리즘입니다. 예를 들어, 사람의 키 데이터를 모델링 할 때, 남성은 평균 키가 약 175, 여성은 평균 키가 약 165라고 가정해봅시다. 만약 우리에게 데이터가 있고, 해당 데이터가 성별 할당 없이 단지 키 데이터만 주어졌다면? 이 모든 키의 분포는 남성과 여성의 두 정규..
부스팅 알고리즘에 대해 공부하시는 분들이라면 CATBoost를 들어보셨을 것 같습니다. CATBoost를 Yandex라는 러시아 검색 엔진 인터넷 기업에서 개발한 그래디언트 부스팅 라이브러리입니다. 범주형 데이터를 다루는데 최적화 되어 있으며, XGBoost와 함께 여러 분야에서 사용하는 모델입니다. 📌 기존 부스팅과의 차이점(Ordered Boosting) 먼저, CATBoost는 Ordered Boosting(순서 부스팅)이라는 기법을 사용하여 데이터의 순서에 따라 모델을 학습시킵니다. 기존의 부스팅 모델들을 모든 훈련 데이터를 대상으로 잔차를 계산하여 트리를 적합해 나간다. CATBoost의 경우 학습 데이터의 일부만을 사용하여 잔차를 계산한 뒤, 해당 결과를 통해 모델을 만들어나간다. 이때 ord..
우리가 예측을 할 때, 예측력이 높은 것도 중요하지만 주제와 목적에 따라 모델의 내부 메커니즘을 이해하는 것도 중요할 수 있습니다. 모델이 어떻게 특정 변수에 의존하는지, 즉 특정 input과 output간의 관계가 어떻게 이루어져 있는지 이해하는 것이 모델을 해석하는 데 중요할 수 있가다는 것입니다. 이러한 맥락에서 부분 의존성 플롯(PD)와 개별 조건부 평균 플롯(ICE)은 중요한 역할을 할 수 있습니다. 부분 의존성 플롯(PD)는 데이터 세트 내의 하나 또는 두 개의 특성과 예측 결과 사이의 관계를 시각화 합니다. 특정 특성의 다양한 값들이 예측 결과에 어떻게 영향을 미치는지 보여줌으로써, 모델이 특성을 어떻게 해석하는지에 대한 통찰력을 제공합니다. 반면, 개별 조건부 평균 플롯(ICE)는 각 관측..
자주 보이는 성능 지표는 아니지만 분류 목적에 있어서 가끔 사용되는 plot중 하나로 calibration plot이 있다. Calibration plot(캘리브레이션 플롯)은 머신러닝 모델의 예측 정확도와 신뢰도를 시각적으로 평가하는데 사용되는 도구이다. 모델이 예측한 확률과 실제 결과 간의 일치 정도를 평가함으로써, 모델의 성능을 직관적으로 이해할 수 있게 해준다. 특히, 분류 문제에서 모델의 예측 확률이 실제 발생 확률과 얼마나 잘 맞는지를 검증함으로써, 모델의 신뢰성을 검증 할 수 있다. 📌 Calibration plot 우선 우리가 적합한 모델이 있다고 가정합시다. 그렇다면 이 모델로 인하여 나온 데스트 세트의 각 샘플에 대한 예측 확률이 계산되었을 것이다.(분류니까 각 클래스에 속할 확률이라고..
앞서 불균형 데이터 처리의 중요성과 간단한 방법들에 대해 알아보았습니다. 임계값(threshold)를 조정하는 법, 그리고 랜덤 오버샘플링(Random Oversampling), 랜덤 언더샘플링(Random Undersampling)을 보았습니다. 링크 : 임계값 조정법, ROS/RUS 이번엔 또 다른 접근법으로 소수 클래스의 샘플을 증가시키는 SMOTE(Synthetic Minority Over sampling Technique), ADASYN(Adaptive Synthetic Sampling)에 대해 알아보겠습니다. 간단하게, SMOTE는 소수 클래스의 샘플을 인위적으로 생성하여 데이터 세트의 균형을 개선하는 방법으로, 랜덤 오버샘플링과 같이 분포안에서 랜덤하게 추가 데이터를 생성하는게 아닌 샘플 간..
저번 포스팅에서 불균형 데이터에 대한 접근법으로 임계값 조정을 확인하였습니다. 불균형 데이터 접근법 : 임계값 조정 불균형 데이터(Imbalanced Data) 접근법 : 임계값(threshold) 조정 불균형 데이터(Imbalaned Data)는 데이터 마이닝 세계에서 생각보다 흔히 마주치는 도전 과제이다. 예를 들면, 자살 예측 혹은 질병 예측과 같은 부분에서 흔하다. 자살 시도 혹은 자살 생각을 하는 datanovice.tistory.com 임계값 조정법은 모델을 적합한 이후에 성능을 확인 한 후 적용하는 방법이었습니다. 이번엔 오버 샘플링과 언더 샘플링입니다. 매우 간단한 방법으로, 오버 샘플링(over sampling)은 소수 클래스의 데이터를 다수 클래스만큼 가상 데이터를 만드는 접근법이며, ..
불균형 데이터(Imbalaned Data)는 데이터 마이닝 세계에서 생각보다 흔히 마주치는 도전 과제이다. 예를 들면, 자살 예측 혹은 질병 예측과 같은 부분에서 흔하다. 자살 시도 혹은 자살 생각을 하는 이들을 비교적 많지 않기에 자살 생각이 있다는 Y = 1인 사람이 30명 없다는 Y = 0인 사람이 300명이 있는 경우이다. 이 경우, 모델을 적합할 때 자살 생각이 없다는 300명의 데이터의 패턴을 더 많이 학습하기 때문에 자살 생각을 예측하기 쉽지 않다. 이렇게 예측 모델링에서 클래스 간 불균형은 모델의 학습 능력에 큰 영향을 미칠 수 있으며, 이를 해결하기 위한 전략이 필요하다. 본 글에서는 가장 간단한 방법으로 임계값(Threshold)를 조정하는 방법을 소개하려고 한다. 아마 머신러닝에 관심..