240814 TIL
머신러닝 심화
의사결정나무 (Decision Tree, DT)
의사결정 규칙을 나무 구조로 나타내어 전체 자료를 몇 개의 소집단으로 분류하거나 예측을 수행하는 분석 방법
장점
해석이 용이
다중분류와 회귀 모두 적용 가능
이상치에 견고
데이터 스케일링 불필요
단점
나무의 성장이 과하면 과대 적합의 오류에 빠짐
훈련 데이터에 민감하게 반응해 작은 변화에도 나무의 구조가 크게 달라짐 (불안정성)
# 의사결정나무 Python 라이브러리
sklearn.tree.DecisionTreeClassifier
sklearn.tree.DecisionTreeRegressor
랜덤 포레스트
배깅 (Bagging) = Bootstrapping + Aggregating
Bootstrapping : 데이터를 복원 추출해서 유사하지만 다른 데이터 집단을 생성하는 것
Aggregating : 데이터의 예측, 분류 결과를 합치는 것
Ensemble (앙상블) : 여러 개의 모델을 만들어 결과를 합치는 것
Tree를 Forest로
장점
Bagging을 통해 과적합을 피함
이상치에 견고, 데이터 스케일링 불필요
변수 중요도를 추출해 모델 해석에 중요한 특징 파악
단점
컴퓨터 리소스 비용이 큼
앙상블 적용으로 해석이 어려움
# 랜덤 포레스트 Python 라이브러리
sklearn.ensemble.RandomForestClassifer
sklearn.ensemble.RandomForestRegressor
최근접 이웃 (KNN; K-Nearest Neighbor)
확인할 주변 데이터 K개를 선정 후, 거리 기준으로 가장 많은 것으로 예측하는 것
파라미터 (Parameter)
머신러닝 모델이 학습 과정에서 추정하는 내부 변수, 자동으로 결정되는 값
하이퍼 파라미터 (Hyper paramerter)
데이터 과학자가 기계 학습 모델 훈련을 관리하는데 사용하는 외부 구성 변수, 모델 학습 과정이나 구조에 영향을 미침
장점
이해가 쉽고 직관적
모집단의 가정이나 형태를 고려하지 않음
회귀, 분류 모두 가능
단점
차원 수가 많을수록 계산량 많아짐
거리 기반 알고리즘이라 피처의 표준화 필요
# KNN Python 라이브러리
sklearn.neighbors.KNeighborsClassifier
sklearn.neighbors.KNeighborsRegressor
부스팅 알고리즘
여러 개의 약한 학습기를 순차적으로 학습하면서 잘못 예측한 데이터에 가중치를 부여해 오류를 개선해나가는 학습 방법
Gradient Boosting Model
가중치 업데이트를 경사하강법 방법을 통해 진행
XGBoost
트리기반 앙상블 기법
병렬학습이 가능해 속도가 빠름
LightGBM
XGBoost보다 학습시간이 짧고 메모리 사용량이 적음
작은 데이터(10,000건 이하)의 경우 과적합 발생
# 부스팅 알고리즘 라이브러리
# Gradient Boosting Model
sklearn.ensemble.GradientBoostingClassifier
sklearn.ensemble.GradientBoostingRegressor
# XGBoost
xgboost.XGBRegressor
xgboost.XGBRegressor
# LightGBM
lightgbm.LGBMClassifier
lightgbm.LGBMRegressor