[머신러닝] 머신러닝모델-회귀(Regression) (김용담 강사님)
머신러닝 근-본
회귀를 근간으로 머신러닝이 발전하였음
회귀가 무엇인가
(오늘의 핵심)
회귀(Regression)
데이터의 경향성을 파악해봅시다
-
회귀의 (비교적) 엄밀한 정의 (Formal Definition)
“In statistical modeling, regression analysis is a set of statistical processes for estimating the relationships between a dependent variable(y) and one or more independent variables(X).”
우리가 하려는건 estimating the relationship
이게 뭐냐 → 회귀 (확률, 가격, 일치율 등 특정 값을 예측하는 것)
이거냐 저거냐 → 분류 (올라갈 것이다/내려갈 것이다)
-
회귀의 직관적인 의미
- 주어진 데이터(X)와 원하는 값(y) 사이의 관계를 찾는 방법
- 주어진 데이터(X=feature value)를 통해서 원하는 값(y=target value)을 예측하는 방법
Linear Regression은 굉장히 오래되었음에도 아직도 많이 쓰임
→ 해석하기 편함(설명력이 뛰어남)
1) Linear Regression
가장 직관적이고 많이 사용되는 선형 회귀 모델
$f$(model) : $x$들의 합으로 표현될 때 $x$들의 차수가 전부 1임(2차항 이상이 없다) → linear
결국 각 $x$들이 전부 직선임.
학습을 통해 찾을 수 없는 값 or
파라미터들의 파라미터 or
학습을 위해 사전에 세팅하는 값 (학습전략)
→ hyper parameter
MSE(Mean Squared Error) → Loss function
linear regression → 어떤 .. 이 얼마나 영향을 주는지 알 수 있음 (해석이 쉬움)
2) LightGBM Regressor
실제 데이터 분석 대회에서 가장 많이 사용하는 효과적인 회귀 모델
Decision Tree(CART) → Random Forest → Gradient Boosting Model (GBM) → XGBoost → LightGBM → CatBoost
- kaggle 같은 실전 데이터 분석 대회에서 가장 많이 사용하는 회귀 모델
- 여러 DecisionTree중에 target value를 잘 찾는 tree들만 찾아서 그 방향으로 트리를 확장해 나갑니다
- 대용량 데이터에 대해서 적은 메모리로도 빠르게 성능이 좋은 회귀 모델을 만들 수 있습니다
- hyper-parameter에 영향을 많이 받기 때문에 parameter tuning이 중요합니다
- 기존에 많이 쓰는 파라미터 세팅을 기억해두고, 필요에 따라 다양한 조합을 테스트해봅니다
- 우리는 오픈소스 라이브러리에게 맡깁니다 → e.g. optuna
- 이러한 방식을 “AutoML”이라고 합니다 → Pycaret
회귀 모델 평가
머신러닝의 평가 기준은 다양합니다
- 주어진 데이터롤 모델을 학습시키는 것은 지정한 성능 평가 지표를 향상시키는 과정입니다
- 성능 평가 지표의 값은 “예측 성능”을 기준으로 합니다
- 정량적 기준을 설정하고, 달성할 때까지 모델을 학습시키고 성능을 개선합니다
- 목표한 성능에 도달한 모델을 실제 서비스에 적용합니다
성능 평가
대표적인 회귀 모델 평가 지표
- MSE(Mean Squared Error)
- RMSLE(Root Mean Squared Log Error)
- yi, yi^의 scale 영향을 안받음
- outlier에 robust함(영향을 덜 받음)
- MAE(Mean Absolute Error)
- R2 Score(Coefficient of Determination)
댓글남기기