본문 바로가기

Study/ML16

지니계수 지니계수 계산법 2023. 5. 28.
7. 앙상블(Ensemble) - 부스팅(Boosting) Index 1. Boosting 앙상블 개요 이번 포스팅에 다룰 내용은 "부스팅(Boosting)" 앙상블이다. 부스팅은 이전에 정리한 Voting, Bagging 앙상블과는 다르게 순서를 가진다. 부스팅 모델은 여러개의 약한모델(weak learner)을 순차적으로 학습하면서, 잘못 예측한 데이터에 가중치를 부여해 오류를 개선해나가는 모델이다. 부스팅 모델에 가장 대표적인 방식이 ADA Boost (Adaptive Boosting), GBM (Gradient Boosting Method)인데 이번 포스팅에는 GBM 부류의 모델들에 대해 정리하겠다. (ADA 는 틀린 데이터셋에 대해 가중치를 줘가며 오답을 줄이려는 방향이고, GBM 은 모델의 전체 손실함수를 최소화 하는 방향으로 GBM 이 좀더 유연하다.. 2023. 5. 28.
6. 앙상블(Ensemble) - 보팅(Voting),배깅(Bagging) Index앙상블(Ensemble)은 여러 개의 개별 머신러닝 모델을 조합하여 더 강력하고 정확한 예측 모델을 만드는 기법이다. 분류(Classification) 뿐 아니라 회귀(Regression) 문제에서도 매우 유용하게 쓰인다.개별모델을 '결합'하는 방법에 따라 크게 보팅(Voting), 배깅(Bagging), 부스팅(Boosting), 스태킹(Stacking) 4가지 정도로 나눠볼 수 있다.이번 포스팅에서는 앙상블 중에서도 보팅과 배깅에 대해서 정리하며, 분류문제를 기준으로 한다. (회귀에서의 앙상블은 사용하는 클래스와 개별 예측모델의 객체만 다르고 전체적인 개념은 같다)  1. 보팅(Voting)보팅은, 같은 데이터셋에 대해서 여러 다른 종류의 모델로 학습하고 예측한 결과를 통해 최종 투표하는 방.. 2023. 5. 28.
5. 분류(Classification) - Decision Tree Index분류(Classification)모델은 이산형(Discrete), 범주형(Categorical)한 변수를 예측하는 분야로 KNN, SVM 과 같이 고전적인 방법, Logistic Regression, 딥러닝 분야의 Neural Network, 여러가지 ML모델을 결합한 Ensemble등 다양한 모델이 있다. 그중에서 이번 포스팅에서는 '데이터의 균일도' 를 기반으로 분류하는 모델인 Decision Tree 모델에 대해 정리한다. 일반적으로 음성/텍스트(NLP)/이미지 등의 데이터셋에는 신경망 구조의 딥러닝 모델이 강력하고, Tabular 형식의 정형 데이터의 분류에는 앙상블(Ensemble) 모델이 높은 성능으로 자주 사용되고 있다.  1. Decision Tree 개요스무고개와 같이 Rule .. 2023. 5. 27.
4. 성능 평가 (Evaluation) - Classification 평가방법 Index기계학습 알고리즘의 성능 평가는 기본적으로 Estimator 의 종류가 회귀인지, 분류인지에 따라 어려종류로 나뉜다. 회귀의 경우 오차를 기반으로 MSE, MAE, RMSE, R^ 등으로 간단히 계산 할 수 있다. 반면, 분류의 경우 정확도(Accuracy) 외에도 여러가지 지표로 판단이 필요하고, target 의 class 가 Binary or Multi 인지에 따라서도 사용하는 지표가 달라지게된다. 본 포스팅에서는 분류(Classification)문제에서의 평가방법에 대해서 다룬다.  1. 정확도 (Accuracy) 가장 기본적인 분류문제의 평가지표. "얼마나 정답을 맞췄는지" 로 직관적이지만, 불균형한 분포의 데이터셋에서는 결과가 외곡될 수 있다. 예를들어 100만개 중에 3개정도 불량이 .. 2023. 5. 27.
3. 데이터의 전처리 (Pre-processing) Index활용하고자 하는 데이터를 EDA 등의 과정을 통해 탐색하고 이해했다면, 이 데이터를 기계학습 모델에 사용하기 적합하도록 데이터의 질을 높여주는 과정이 전처리(Pre-processing) 이다.기본적인 전처리 과정에는 Noise 혹은 Null 값처리, 인코딩(Encoding), 스케일링(Scaling) 및 정규화(Normalization) 과정 등이 있다. PCA 등의 차원축소 기법, Feature Selection 및 Extraction 등에 대해서는 후속 포스팅에서 정리하겠다.  1. 데이터 인코딩 (Encoding) 데이터 인코딩은 기계학습에서 활용할 알고리즘에 적합한 형태로 데이터를 변환하는 것을 의미하며, 대게는 문자형/범주형 데이터를 숫자형으로 변환하는 과정을 말한다.   1-1.  레.. 2023. 5. 27.
2. 교차검증 (Cross-Validation) Index 교차검증은 과적합(Overfitting : 학습데이터에만 과도하게 최적화되어 다른 데이터 셋에는 정합성이 안맞는 현상)을 방지하기 위하여, '테스트 이전에' 여러 세트로 구성된 학습-검증 데이터 세트를 교차로 학습-검증하여  모델을 최적화 하는 과정이다 . 예측 모델의 유연성을 확보하는 과정이라고 할 수 있다.  학습 → 테스트 로 바로 가지 않고, 학습 → 검증 →테스트로 거쳐서 간다. 검증결과를 가지고 실제 테스트(예측) 이전에 하이퍼 파라미터 튜닝을 진행한다. (최적화) ● K-Fold 교차검증데이터셋을 k 개로 분리하여, 한개씩 검증 세트로 번갈아가면서 쓰면서 k번 평가한 뒤, k개의 평가값 평균을 최종 평가값으로 계산하여 모델을 검증하는 방식. 구현 코드는 아래와 같다. (물론 아래 .. 2023. 5. 26.
1. 머신러닝 개요 Index개요머신러닝은 크게 지도학습(Supervised) 과 비지도학습(Unspervised) 으로 구분된다. 지도학습은 Label(=Target) 즉, 정답이 있는 데이터를 학습하는 과정이고, 비지도 학습은 반대로 Label 이 없는 데이터로 학습/예측을 진행하는 과정지도학습은 Target 데이터의 형식에 따라, Categorical 데이터를 학습할때는 Classification(분류) / Continuous 데이터를 학습할때는 Regression(회귀) 문제로 구분한다. (분류이든, 회귀이든 학습모델을 Estimator 라고 부른다)  머신러닝의 구현은 주로 Python 의 Scikit Learn (sklearn) 라이브러리를 활용한다. 머신러닝에 사용되는 데이터는 크게 두가지 ①예측대상(Targe.. 2023. 5. 26.