Machine Learning
[회귀] 회귀 모델의 R2(결정계수)를 올리는 방법
ISLA!
2024. 2. 21. 15:39
결정계수가 낮은 원인을 세 가지 범주로 나누어 살펴본다
데이터의 특성과 분석의 목적에 따라 상황이 다를 수 있으므로
고려해야 할 범주를 기준으로 문제의 원인을 파악하고 적절한 조치를 취한다
1. 모델 문제
- 모델이 단순하거나 제한적일 경우 : 모델이 데이터의 복잡성을 충분히 반영하지 못할 경우
- (예를 들어) 모델이 선형성을 가정하지만, 실제 데이터가 비선형 관계를 가지고 있는 경우
- 적합하지 않은 모델 선택
- 종속변수와 독립변수 간의 관계를 잘 나타내지 못하는 모델을 선택했을 경우 결정계수가 낮아짐
▶︎ Solution
👉 다른 모델을 사용해 볼 것 : 선형 회귀, 릿지 회귀, 라쏘 회귀, 결정 트리, 랜덤 포레스트, 그라디언트 부스팅, 서포트 벡터 머신, 다항회귀
👉 다양한 모델을 시도하고, 교차 검증을 통해 최적의 모델을 선택 → 일반화 능력을 평가하고 과적합 방지
✨ 다음과 같은 예시 절차로 시도
- k-폴드 교차검증(k-fold cross-validation)을 사용하여 모델의 일반화 능력을 평가
- 데이터를 k개의 부분집합으로 나누고, 각 부분집합에 대해 하나를 검증 세트로,
나머지를 훈련 세트로 사용하여 모델을 훈련 및 검증
- 데이터를 k개의 부분집합으로 나누고, 각 부분집합에 대해 하나를 검증 세트로,
- 모델별 최적 하이퍼파라미터 찾기
- 그리드 서치(grid search), 랜덤 서치(random search), 베이지안 최적화 같은 방법을 사용
- 각 모델의 성능을 R2, 조정된 R2, MSE(평균 제곱 오차), RMSE(평균 제곱근 오차) 등의 지표를 사용하여 평가
- 모델 복잡성과 성능 간의 균형을 고려하여 최종 모델을 선택
- 과대적합을 피하면서도 좋은 성능을 보이는 모델을 찾는 것이 중요함!
2. 변수 문제
- 중요 변수가 모델에 누락되었을 경우 : 모델에 중요 변수가 빠지거나 / 부적절하게 변수가 선택된 경우
- 중요 변수가 누락되면 모델이 데이터의 변동성을 설명하지 못하게 되어 결정계수가 낮아짐
- 변수를 추가할 때, 다중공선성을 확인해야 함 → 독립변수들 간에 강한 상관관계가 있을 경우 모델이 불안정해짐
- 변수 간 관계를 선형 회귀 모델에 적합하게 변환이 필요한 경우
▶︎ Solution
👉 변수 변환 : 로그 변환, 제곱근 변환, 역수 변환 등을 적용하여 비선형관계를 선형화
👉 정규화 또는 표준화 : 변수의 스케일을 조정하여 모델 안정성을 높이고, 계수 추정치 정확도를 향상시키기
👉 변수를 추가하여 다중선형회귀 : adjusted R2 값을 확인 + 다중공선성 확인하여 변수 제거(vif, 분산팽창요인)
(예: 다른 마케팅 채널의 광고비, 계절성, 경제적 요인, 제품 특성, 광고 시간대, 광고에 사용된 매체 종류 등)
3. 데이터 자체의 품질 및 사이즈 문제
- 이상치가 많은 경우 (또는 수집 과정에서의 오류)
- 잡음 : 데이터에 무작위 또는 불규칙한 잡음이 있는 경우
- 모델이 실제 패턴을 더 잘 파악할 수 있도록 더 많은 데이터가 필요한 경우
▶︎ Solution
👉 이상치, 잡음을 제거
👉 데이터를 더 확보(양)
참고로 해당 포스팅 내용은 여러 국내외 자료를 종합하여 도출한 결과를 바탕으로 작성되었으나,
오류나 보완할 점이 있을 수 있습니다. 함께 검토해보면 좋겠습니다 :)
728x90