과적합(Overfitting)
- 모델이 훈련 데이터에만 지나치게 맞춰져서 새로운 데이터(테스트 데이터)에는 성능이 떨어지는 현상
- 즉, '외운 모델' — 공부할 때 기출문제만 달달 외우고 응용 문제는 못 푸는 경우랑 같음
- 의사결정 트리는 가지를 너무 많이 뻗으면 = 깊게 분할하면 이런 과적합이 잘 생김
- 그래서 여러 트리를 만들어 평균내는 랜덤 포레스트를 사용하면 편향은 유지하면서 분산을 줄여 과적합을 완화할 수 있음
과소적합(Underfitting)
- 반대로 모델이 너무 단순해서 데이터의 패턴을 제대로 학습하지 못한 상태
- (예) "목차만 보고 내용은 모르는 사람"처럼 전체 구조는 알지만 세부 내용 이해가 부족한 경우
- 즉, 훈련 데이터조차 제대로 설명하지 못하는 약한 모델을 의미함
앱 사용자 확보를 위한 앙상블 기법과 랜덤 포레스트
앱 마케팅의 핵심 목표 중 하나는 광고를 본 사용자가 실제로 앱을 설치하거나 가입하는지를 예측하고 이를 통해 예산을 효율적으로 분배하는 것이다. 이 과정에서 머신러닝 모델을 활용하면 노출수, CPC, CTR, 전환율, 예산 등의 데이터를 종합해 사용자 확보 가능성을 예측할 수 있다.
하지만 단일 모델(예: 의사결정 트리)은 노이즈에 민감하고 특정 데이터 구간에 과적합되는 경향이 있다.
이를 보완하기 위한 접근이 앙상블(Ensemble) 기법이며, 그 대표적인 방법이 랜덤 포레스트(Random Forest)이다.
1. 기본 개념
- 앙상블 : 여러 개의 예측 모델을 결합하여 더 나은 성능을 얻는 방법
- 단일 모델의 약점을 보완하고 데이터 변동에 대한 안정성 향상
| 기법 | 개념 | 특징 | 예시 |
| Bagging (배깅) | 여러 모델을 병렬로 학습 후 평균 | 분산(Variance) 감소 | Random Forest |
| Boosting (부스팅) | 이전 모델의 오차를 보완하며 순차적으로 학습 | 편향(Bias) 감소 | XGBoost, AdaBoost |
| Stacking (스태킹) | 여러 모델의 예측 결과를 다시 학습 | 메타모델 활용 | VotingClassifier, StackingRegressor |
- Bagging은 "안정성 강화", Boosting은 "정확도 개선", Stacking은 "결합형 통합 학습"을 목표로 함
2. 랜덤 포레스트(Random Forest) 원리
- 랜덤 포레스트 : 여러 개의 의사결정 트리(Decision Tree)를 결합한 배깅 기반 앙상블 모델
- 각 트리는 전체 데이터에서 무작위로 추출된 일부 샘플을 학습하며, 학습 시 사용하는 변수도 무작위로 선택됨
- 이렇게 만들어진 수많은 트리가 각각 예측을 수행하고 최종 결과는 '회귀'의 경우 '평균', '분류'의 경우 '다수결'로 결정
- 랜덤 포레스트의 장점
- 과적합에 강함
- 변수 중요도 자동 계산
- 비선형적 관계와 변수 간 상호작용을 잘 포착함
- 모델 해석이 직관적이며 시각화가 용이
3. 랜덤 포레스트 모델 구축 절차 (기본 파이프라인)
- 데이터 분할 : 전체 데이터의 70%를 학습, 30%를 검증 데이터로 분리 (*비율은 데이터마다 상이함, 표준 규격 없음)
- 모델 학습 : 랜덤 포레스트 회귀 모델 구성
- 예측 수행 : 테스트 데이터에 대해 신규 사용자 수 예측
- 모델 평가 : 모델의 성능은 평균절대오차(MAE)와 결정계수(R²)로 평가 진행
🔎 그리드 서치(Grid Search)
= 최적의 하이퍼파라미터를 찾는 도구
- 머신러닝 모델의 성능은 하이퍼파라미터(예: 트리 개수, 학습률, 깊이 등)에 따라 달라짐
- 그리드 서치는 여러 하이퍼파라미터 조합을 격자(grid) 형태로 만들어 가능한 모든 경우를 하나씩 시험해보며 가장 성능이 좋은 조합을 찾는 방법
- 즉, “모든 후보를 전부 테스트해서 최적의 설정을 고르는 완전 탐색 방식”
- 일반적으로 교차검증(Cross Validation)과 함께 사용해 모델의 일반화 성능이 가장 높은 파라미터 선택
4. 모델 성능 평가 지표
| 지표 | 의미 | 해석 기준 |
| MAE (Mean Absolute Error) | 예측값과 실제값의 절대 오차 평균 | 낮을수록 좋음 (오차가 작음) |
| R² (결정계수) | 예측값이 실제 데이터의 분산을 얼마나 설명하는가 | 1에 가까울수록 설명력이 높음 |
MAE = 12.5
R² = 0.93
→ 모델이 앱 사용자 확보 수의 변동을 약 93% 설명할 수 있음을 의미. 즉, 마케팅 효율을 매우 잘 예측하는 모델
5. 랜덤 포레스트의 시각적 해석
- 랜덤 포레스트는 개별 트리의 예측 결과를 평균화하기 때문에 예측 안정성이 높음
- 각 변수의 중요도를 계산하여 캠페인 성과에 어떤 요인이 크게 작용했는지를 직관적으로 표현
- 중요도에 따른 해석 예시
| 변수 | 중요도 | 의미 |
| CTR | 0.32 | 광고 클릭률이 높을수록 신규 사용자 증가에 가장 큰 영향 |
| ConversionRate | 0.29 | 전환율이 높을수록 사용자 확보 효율 상승 |
| CPC | 0.20 | 클릭당 비용은 효율을 제약하는 요소 |
| Budget | 0.14 | 예산이 일정 수준까지 증가하면 효율은 완만히 증가 |
| Impressions | 0.05 | 노출 수는 일정 수준 이상에서는 한계효과 존재 |
→ CTR과 ConversionRate가 높을수록 확보 효율이 커지고, CPC는 높은 효율을 방해하는 변수로 나타남
6. 단일 모델, 의사결정 트리와의 비교
단일 의사결정나무는 특정 구간의 데이터에 강하게 맞추는 경향이 있다. 예를 들어, 학습 데이터에 포함된 특정 캠페인 패턴을 과도하게 학습하면 테스트 데이터에서는 성능이 급격히 저하될 수 있다. 실험적으로 단일 트리의 R²가 0.78, 랜덤 포레스트의 R²가 0.93이라면 앙상블 구조를 통해 약 15%의 예측 정확도 개선이 이루어진 셈이다.
이는 랜덤 포레스트가 데이터의 불확실성과 변동성에 강한 모델임을 보여준다.
7. 비즈니스 해석과 전략 제안
| 구분 | 내용 |
| 분석 목표 | 캠페인별 신규 사용자 확보 수 예측 |
| 핵심 변수 | CTR, ConversionRate |
| 보조 변수 | CPC, Budget |
| 해석 요약 | CTR과 전환율이 높은 캠페인은 예산을 늘리면 효율 상승, CPC는 너무 높으면 비효율 발생 |
| 실무 전략 제안 | CTR 상위 광고세트에 예산 재배분, CPC 상한 조정, Conversion 높은 소재 우선 활용 |
→ 모델의 변수 중요도 분석을 통해 "예산을 어디에 더 써야 하는지"를 정량적으로 판단 가능
8. 앙상블 확장 방안
| 기법 | 목적 | 설명 |
| XGBoost | 성능 향상 | 오차를 단계적으로 보정하는 부스팅 기반 모델 |
| LightGBM | 학습 속도 개선 | 대규모 데이터에도 빠른 학습 |
| Stacking | 모델 결합 | 여러 알고리즘의 장점을 종합 |
| SHAP 분석 | 해석 강화 | 변수별 영향도를 정량화하여 시각적으로 표현 |
앱 사용자 확보를 위한 마케팅 모델에서 랜덤 포레스트는 정확도, 안정성, 해석력 측면에서 매우 유용한 방법이다.
이 모델을 통해 마케터는,
- CTR과 전환율의 중요성을 정량적으로 파악하고
- 예산 재분배 및 CPC 조정 전략을 수립하며
- 향후 캠페인 성과를 미리 예측하여 의사결정을 최적화할 수 있다.
결과적으로, 랜덤 포레스트는 데이터 기반의 마케팅 자동화와 예산 최적화 전략 수립에 핵심적인 분석도구로 활용될 수 있다.
광고 성과 최적화를 위한 그라디언트 부스팅(Gradient Boosting)
광고 캠페인의 성과는 수많은 요인(소재, 타겟, 노출시간, 예산)에 의해 복잡하게 결정된다. 따라서 단순한 선형모델이나 단일 트리만으로는 이러한 비선형적 관계를 충분히 설명하기 어렵다. 이때, 그라디언트 부스팅(Gradient Boosting)은 기존 모델의 오차를 점진적으로 보완하면서 학습하는 방식으로 예측 정확도를 극대화할 수 있는 강력한 머신러닝 기법이다.
마케팅에서는 주로 다음과 같은 목적으로 활용된다.
- 광고 전환율(Conversion Rate) 예측
- CPA(Cost per Acquisition) 최소화
- 예산 대비 ROAS(Return on Ad Spend) 극대화
- 캠페인별 효율 분류 및 자동입찰 최적화
1. 앙상블 기법에서의 위치
- 앙상블 기법 중에서도 부스팅(Boosting) 계열에 위치
- 즉, 여러 개의 약한 학습기를 순차적으로 학습시켜 점점 강한 학습기를 만드는 방식
| 구분 | 학습 방식 | 대표 알고리즘 | 특징 |
| Bagging | 병렬 학습 후 평균 | Random Forest | 분산(Variance) 감소 |
| Boosting | 순차 학습 후 오차 보정 | Gradient Boosting, XGBoost | 편향(Bias) 감소 |
| Stacking | 여러 모델 결합 | Stacking Regressor | 복합 예측 결합 |
2. 기본 파이프라인
= 잔차를 예측하는 모델을 점진적으로 쌓아가는 과정
- 초기 예측 모델 생성 : 가장 간단한 모델로 시작 (예) 전체 데이터의 평균 CPA를 첫 예측으로 설정
- 잔차 계산 : 실제값과 예측값의 차이 계산 → 이 잔차가 다음 단계 모델의 학습 대상이 됨
- 새로운 약한 모델 학습 : 잔차를 예측하도록 새로운 결정트리(Weak Learner) 학습
- 모델 결합 (가중합) : 새 모델을 이전 모델과 결합하되, 학습률(Learning Rate)을 곱하여 조정
- 최종 예측 = 이전 예측 + 학습률 × 새로운 예측
- 반복 수행 : 위 과정을 nnn번 반복하면서 점차 오차를 줄임
3. 그라디언트의 의미
= 기울기
그라디언트 부스팅은 잔차를 보정하는 것뿐 아니라 오차함수(Loss Function)의 기울기(gradient)를 계산하여 현재 예측이 얼마나 틀렸는지를 수학적으로 반영한다. 즉, 오차의 기울기를 따라 내려가며 점점 더 좋은 예측값을 만들어내는 방식이다.
| 용어 | 의미 | 역할 |
| Loss Function | 예측 오차를 수치화한 함수 | 오차의 방향을 계산 |
| Gradient | 오차 함수의 기울기 | 다음 보정 방향 결정 |
| Learning Rate | 보정 강도 조절값 | 학습 안정성 확보 |
🔎 손실 함수 (Loss Function)
- 모델이 얼마나 틀렸는지를 수치로 나타내는 함수
- 손실이 클수록 예측이 많이 틀렸다는 의미
| 문제 유형 | 예시 손실 함수 | 의미 |
| 회귀 문제 | MSE (평균제곱오차) = (예측값 − 실제값)² | 오차가 클수록 손실 급격히 증가 |
| 분류 문제 | Log Loss (로그 손실) | 잘못 분류할수록 손실 커짐 |
| 절댓값 기준 예측 | MAE (평균절대오차) | 오차 크기를 직관적으로 반영 |
그라디언트 부스팅에서 필요한 이유
- 그라디언트 부스팅 : 여러 약한 모델(트리)을 순차적으로 쌓아올리며 오차를 줄여가는 알고리즘
- "얼마나 틀렸는가"를 알아야 다음 트리에서 어디를 보완할지 확인 가능 → 이때 사용하는 기준이 "손실 함수"
- 손실 함수가 크면 → 모델이 많이 틀린 구간 → 다음 트리가 그 부분을 집중적으로 보완 (잔차를 학습)
4. 주요 하이퍼파라미터
그라디언트 부스팅의 성능은 하이퍼파라미터 설정에 크게 의존한다.
| 파라미터 | 의미 | 설명 |
| n_estimators | 트리 개수 | 반복할 약한 모델 수 |
| learning_rate | 학습률 | 각 단계에서 보정 강도 조절 (0.05~0.2 권장) |
| max_depth | 트리 깊이 | 개별 트리의 복잡도 제어 |
| subsample | 표본 비율 | 과적합 방지용 데이터 샘플링 비율 |
| loss | 손실 함수 | 회귀는 MSE, 분류는 Log Loss 사용 |
🔎 LR (Learning Rate)
= 학습률
- 모델이 얼마나 빠르게 배울지(가중치를 얼마나 크게 조정할지)를 정하는 속도 조절 장치
- 손실 함수를 줄이기 위해 기울기 방향으로 이동할 때, 한번에 얼마나 이동할지를 결정하는 값
- 학습률이 너무 크면 너무 큰 걸음으로 가서 최적값을 지나쳐버림 (불안정)
- 학습률이 너무 작으면 너무 작은 걸음으로 가서 학습 속도가 느림 (오랜 시간 소요)
5. 랜덤 포레스트 v. 그라디언트 부스팅 비교
| 구분 | 랜덤 포레스트 | 그라디언트 부스팅 |
| 학습 방식 | 병렬 학습 (독립 트리) | 순차 학습 (오차 보정) |
| 목표 | 분산(Variance) 감소 | 편향(Bias) 감소 |
| 속도 | 빠름 | 느림 (단계별 학습) |
| 튜닝 난이도 | 낮음 | 높음 |
| 해석력 | 높음 | 다소 복잡 |
| 성능 | 안정적, 보수적 | 높은 예측력 가능 |
| 대표 모델 | RandomForest, Bagging | GradientBoosting, XGBoost, LightGBM |
- 랜덤 포레스트는 안정적이고 빠른 모델
- 그라디언트 부스팅은 정밀하고 예측력이 높은 모델이다
광고 성과 예측에서는 대체로 랜덤 포레스트로 1차 예측 → 그라디언트 부스팅으로 정교화하는 접근이 많이 사용된다.
6. 마케팅 실무 활용 예시
- 전환 예측 모델링 (Conversion Prediction)
- 입력 : CTR, CPC, 노출수, 예산 등
- 출력 : 전환 확률(Conversion Probability)
- 활용 : 전환 확률이 높은 캠페인에 자동 입찰 강화
- CPA 예측 및 최적화
- 과거 캠페인 데이터를 기반으로 CPA를 예측
- 예측 CPA가 낮은 캠페인 중심으로 예산 재분배
- ROAS (광고수익률) 모델링
- 예측 모델로 캠페인별 예상 ROAS를 계산
- 예상 ROAS ≥ 목표 기준인 광고만 집행
- 자동 입찰 전략 (Bid Optimization)
- 모델이 예측한 전환확률 × 예상 클릭가치 = 동적 입찰가 산정
- 예산을 성과 중심으로 자동 분배
실습 1. 광고 클릭 예측
신규 광고 캠페인에서 어떤 이용자가 광고를 클릭할 가능성이 높은가를 예측하여 효율적인 타겟 마케팅 전략을 수립한다.
1. 모델 성능 평가 결과

2. 피처 중요도 분석

(3. 모델 시각화)

4. 모델 로딩 및 추론

5. 주요 인사이트 및 향후 제언
- 인사이트
- 이용자의 광고 시청 시간과 나이는 광고 클릭 여부를 예측하는 중요한 지표
- '영상' 광고 타입이 다른 타입보다 클릭 가능성에 더 긍정적인 영향을 줄 수 있음
- 현재 데이터셋은 규모가 작아 모델의 일반화 성능에 한계가 있을 수 있음
- 향후 제언
- 모델의 일반화 성능을 높이기 위해 더 크고 다양한 광고 데이터셋을 확보하여 모델을 재학습하는 것이 필수적
- 시청 시간이 짧거나 특정 연령대의 이용자를 대상으로 한 광고 전략 개선을 고려할 수 있음
- 다양한 광고 타입의 효과를 지속적으로 분석하고 결과를 바탕으로 크리에이티브 전략을 최적화해야 함
- 예측된 클릭 가능성을 바탕으로 특정 이용자 그룹에게 맞춤형 광고를 타겟팅하는 전략을 수립할 수 있음
🔎 모델 성능 평가 지표 관련
의사결정트리(Decision Tree)와 랜덤포레스트(Random Forest)의 모델 성능 평가 지표
- 모델 구조나 학습 방식은 다르지만 성능 평가 지표 자체는 동일
- 두 모델 모두 회귀 트리(regression tree) 혹은 분류 트리(classification tree) 형태로 사용될 수 있음
- 예측 결과값의 형태에 따라 회귀용 지표 또는 분류용 지표를 선택함
| 구분 | 의사결정 트리 | 랜덤 포레스트 | 지표 구분 기준 |
| 회귀 문제 | 가능 (DecisionTreeRegressor) | 가능 (RandomForestRegressor) | MAE, MSE, RMSE, R² |
| 분류 문제 | 가능 (DecisionTreeClassifier) | 가능 (RandomForestClassifier) | Accuracy, Precision, Recall, F1, ROC-AUC |
결론 요약
- 성능 지표는 모델 종류가 아니라 문제 유형(회귀 vs 분류)에 따라 달라짐
- 두 모델 모두 같은 평가 지표를 사용하지만, 랜덤 포레스트는 내부적으로 OOB Error(Out-of-Bag Error) 같은 추가적인 평가 방식을 제공한다는 점에서 차이가 있음
실습 2. 고객 이탈 예측
온라인 구독 서비스에서 고객이 구독을 해지할 가능성을 예측하여 이탈 방지 캠페인을 사전에 실행한다.
1. 모델 성능 평가 결과

2. 피처 중요도 분석

(3. 모델 시각화)

4. 모델 로딩 및 추론

5. 주요 인사이트 및 향후 제언
- 인사이트
- 구독 기간, 나이, 사용 시간은 구독 서비스 이탈 여부를 예측하는 중요한 지표
- 구독 기간이 짧거나, 특정 연령대이거나, 사용 시간이 적은 이용자의 이탈 가능성이 높을 수 있음
- 현재 데이터셋은 규모가 작아 모델의 일반화 성능에 한계가 있을 수 있음
- 향후 제언
- 모델의 일반화 성능을 높이기 위해 더 크고 다양한 이용 데이터셋을 확보하여 모델을 재학습하는 것이 필수적
- 이탈 가능성이 높은 사용자 그룹을 대상으로 맞춤형 유지 전략을 수립하고 실행할 수 있음
- 'support_calls' 및 'plan_type'과 같은 다른 피처들이 이탈에 미치는 영향을 분석하여 추가적인 인사이트를 얻을 수 있음
- 예측된 이탈 가능성을 바탕으로 선제적인 고객 관리 시스템을 구축할 수 있음
📊 데이터 준비 시 핵심 포인트
- 모델 성능을 결정짓는 가장 중요한 요소는 입력으로 선택하는 컬럼(변수)
- 예측하고자 하는 결과값(y) 과 밀접하게 관련된 변수를 포함해야 함
- 단순히 컬럼 수를 늘리기보다 의미 있고 설명력 있는 변수를 선별하는 것이 중요함
- 불필요하거나 중복된 컬럼은 노이즈를 유발해 모델의 정확도를 떨어뜨릴 수 있음
- 컬럼 선택은 모델링 이전의 데이터 이해(EDA)와 인사이트 도출 과정에서 이뤄져야 함
- 결국, 좋은 모델은 많은 데이터보다 적절한 컬럼 선택에서 시작됨
📈 머신러닝 모델 생성을 위한 과정 복습
- 데이터 준비 : 모델 학습을 위한 피처와 타겟 데이터 분리, 필요한 경우 범주형 데이터 인코딩 포함.
- 데이터 분할 : 학습 데이터와 테스트 데이터로 데이터셋 분할
- 모델 학습 : 랜덤 포레스트 분류 모델 학습
- 모델 성능 평가 : 테스트 데이터에 대한 예측 수행 및 분류 보고서, 혼동 행렬 시각화
- 피처 중요도 분석 : 학습된 모델의 피처 중요도 계산 및 시각화
- 모델 시각화 (단일 트리 예시) : 랜덤 포레스트 모델 내 단일 의사결정 트리 구조 시각화 예시
- 모델 저장 : 학습된 랜덤 포레스트 모델 저장
- 모델 로딩 및 추론 : 저장된 모델 로딩 및 사용자 입력에 대한 예측 수행 (ipywidgets 활용)
- 결론 : 모델 개발 및 평가 결과 요약, 주요 인사이트 제시
🔎 이진 분류 시 사용 모델
0과 1처럼 두 가지 값으로 결과가 나오는 경우는 이진 분류(binary classification) 문제
이때 사용하는 모델은 보통 Classifier(분류 모델)이며, Regression(회귀 모델)은 적합하지 않음
- 예측 대상이 연속형 수치(가격, 점수 등)일 때 → Regression 사용
- 예측 대상이 범주형(0/1, 남/녀, 합격/불합격 등)일 때 → Classifier 사용
- 트리 기반 모델은 선형성보다 구분 능력에 강하므로 분류 문제에서 더 효과적임
| 비교 항목 | 회귀 모델 | 분류 모델 |
| 예측값 형태 | 연속형 (실수값, 예: 0.42, 1.15 등) | 0~1 확률 기반 + 클래스 예측 |
| 목적 | 실제 수치 예측 | 특정 범주에 속할 확률 계산 |
| 손실 함수 | MSE (평균제곱오차) | Log Loss / Cross Entropy |
| 결정 기준 | 임의로 0.5 기준을 정함 | 모델 내부에서 확률 기반으로 최적화 |
| 적합한 문제 | 가격 예측, 점수 예측 등 | 스팸 여부, 이탈 여부, 구매 여부 등 |
실습 3. 상품 구매 예측
이커머스 플랫폼에서 사용자의 상품 구매 가능성을 예측해 개인화된 추천 상품을 노출한다.
Classification Report:
precision recall f1-score support
0 1.00 1.00 1.00 3
1 1.00 1.00 1.00 1
accuracy 1.00 4
macro avg 1.00 1.00 1.00 4
weighted avg 1.00 1.00 1.00 4
Accuracy: 1.0000
Precision: 1.0000
Recall: 1.0000
F1 Score: 1.0000
실습 4. 캠페인 성과(ROAS) 분류
광고 캠페인 데이터를 기반으로 ROAS가 높은 캠페인을 분류해 효율적인 예산 배분 전략을 수립한다.
1. 모델 개발 과정 요약
- 데이터 준비 : 원본 데이터에서 'high_roas'를 타겟 변수(y)로 분리하고, 나머지 컬럼을 피처(X)로 사용함. 범주형 변수의 경우 원-핫 인코딩을 통해 수치형으로 변환
- 데이터 분할 : 모델 학습 및 평가를 위해 전체 데이터를 학습 세트(80%)와 테스트 세트(20%)로 분할
- 모델 학습 : 분할된 학습 데이터를 사용하여 랜덤 포레스트 분류 모델 학습
2. 모델 성능 평가 결과
Classification Report:
precision recall f1-score support
0 1.00 1.00 1.00 1
1 1.00 1.00 1.00 3
accuracy 1.00 4
macro avg 1.00 1.00 1.00 4
weighted avg 1.00 1.00 1.00 4
Accuracy: 1.0000
Precision: 1.0000
Recall: 1.0000
F1 Score: 1.0000
- 평가 결과, 모델은 테스트 데이터셋에서 완벽한 성능(정확도 1.00)을 나타냄
- 이는 데이터셋의 크기가 매우 작고 High ROAS 클래스(1)와 Low ROAS 클래스(0)의 데이터가 균등하게 분포(각 10개씩)되어 있으며 피처와 타겟 간의 관계가 비교적 명확하여 모델이 쉽게 패턴을 학습했기 때문일 수 있음
- 실제 운영 환경에서는 더 다양하고 대규모의 데이터를 사용하여 모델 검증 필요
3. 피처 중요도 분석

- 'ad_budget', 'clicks', 'impressions', 'sales'와 같은 수치형 변수들이 High ROAS 예측에 가장 중요한 영향을 미치는 것으로 나타남
- 'campaign_type'은 상대적으로 중요도가 낮았음. 이는 단순히 캠페인 유형보다는 캠페인에 투입된 예산, 이를 통한 노출 및 클릭 성과 그리고 최종 매출이 High ROAS 달성에 더 직접적인 영향을 미친다는 것을 시사
- 마케팅 전략 수립 시 예산 배분 최적화, 클릭률 및 노출수 증대 방안 마련 그리고 매출 증진 활동에 집중하는 것이 High ROAS 달성에 효과적일 수 있음
(4. 모델 시각화)

5. 모델 로딩 및 추론

6. 결론 및 제언
- 예산, 클릭수, 노출수, 매출과 같은 주요 성과 지표를 집중적으로 관리하고 개선하기 위한 전략 수립
- 캠페인 유형 자체보다는 각 유형 내에서의 예산 배분 및 성과 효율성에 더 초점을 맞춰 확인
- 구축된 예측 모델과 인터페이스를 활용하여 새로운 캠페인의 잠재적 ROAS를 예측하고, 예측 결과에 따라 전략을 조정하는 데이터 기반 의사결정 강화
- 모델의 일반화 성능을 높이기 위해 더 크고 다양한 데이터를 확보하고 모델을 지속적으로 업데이트하고 검증해야 함
실습 5. 고객 반응 예측 - 이메일 캠페인
이메일 마케팅에서 어떤 고객이 이메일을 열어보거나 클릭할 가능성이 높은가를 예측하여 개인화된 메일 타겟팅을 강화한다.
1. 모델 성능 평가 결과
Classification Report:
precision recall f1-score support
0 1.00 1.00 1.00 3
1 1.00 1.00 1.00 1
accuracy 1.00 4
macro avg 1.00 1.00 1.00 4
weighted avg 1.00 1.00 1.00 4
Accuracy: 1.0000
Precision: 1.0000
Recall: 1.0000
F1 Score: 1.0000
2. 피처 중요도 분석

(3. 모델 시각화)

4. 모델 로딩 및 추론

연습문제 풀이
Q1. 랜덤 포레스트 모델이 광고 클릭 예측에 적합한 이유를 설명하시오.
A1. 광고 클릭 여부는 이진 분류 문제로, 랜덤 포레스트는 분류에 강점을 가지고 있는 모델이다. 광고 클릭에 영향을 미치는 다양한 변수 간의 복잡한 비선형 관계를 효과적으로 학습하며 개별 트리의 예측 결과를 다수결 방식으로 종합해서 나타내므로 과적합 위험이 적고 예측 정확도가 높다.
Q2. 랜덤 포레스트를 이용한 고객 이탈 예측에서 단일 결정트리보다 성능이 향상되는 이유는 무엇인가?
A2. 단일 트리는 데이터 분할에 민감하여 과적합 위험이 큰 반면에 랜덤 포레스트는 여러 트리를 무작위로 학습시켜 다양한 트리의 예측을 앙상블하므로 예측 결과의 안정성이 높고 일반화 성능이 향상된다. 고객 이탈 예측의 경우 데이터의 특성이 다양하므로 랜덤포레스트의 여러 샘플과 변수를 무작위로 조합하고 학습하는 방식이 더욱 효과적이다.
Q3. 랜덤 포레스트를 활용한 상품 구매 예측에서 변수 중요도는 어떤 의미를 가지는가?
A3. 변수 중요도는 모델이 예측을 수행할 때 각 변수가 기여한 정도를 수치화한 값이다. 값이 높을수록 해당 변수가 모델의 분류 성능에 더욱 큰 영향을 미쳤음을 의미하며, 상품 구매 예측의 경우 변수 중요도 분석을 통해 구매 여부를 결정하는 핵심 요인을 파악하는 데 활용할 수 있다.
Q4. 랜덤포레스트를 이용한 캠페인 성과(ROAS) 분류에서 예산(ad_budget)과 클릭수(clicks)가 결과에 미치는 영향을 어떻게 해석할 수 있는가?
A4. 예산과 클릭수 같은 수치형 변수들이 High Roas 예측에 가장 중요한 영향을 미치는 것을 확인할 수 있다. 이는, 예산이 높을수록 노출과 도달이 늘어나 ROAS가 향상될 가능성이 높다는 것을 의미하며 클릭수가 많을수록 전환으로 이어질 확률이 높아 성과가 좋을 가능성이 크다는 점을 보여준다.

Q5. 랜덤포레스트를 활용한 이메일 캠페인 반응 예측에서 범주형 변수(email_type, gender)를 처리하는 방법을 설명하시오.
A5. 랜덤포레스트는 수치형 입력만 처리할 수 있으므로, 범주형 변수의 경우 원-핫 인코딩을 통해 수치형으로 변환한다.
랜덤 포레스트 실제 응용 사례
1. 디지털 마케팅 - 광고 클릭 및 전환율 예측
구글, 메타(페이스북) 등 광고 플랫폼에서는 사용자의 클릭 가능성(CTR)과 구매 전환율(CVR) 예측에 랜덤 포레스트 활용
- 활용 방식
- 광고 노출 시 사용자 나이, 성별, 기기, 시간대, 플랫폼 등의 데이터를 입력
- 랜덤포레스트가 과거 클릭 데이터를 학습하여 클릭 확률을 예측
- 예측값이 높은 사용자에게만 광고 노출 → 광고비 절감 및 ROAS 상승
- 효과
- 10~20% 광고 효율 개선
- CPA(Cost per Action) 및 CPC(Cost per Click) 감소
2. 금융 – 대출 연체 및 신용위험 예측
카카오뱅크, 신한은행, 토스뱅크 등은 고객 신용평가 모델에 랜덤 포레스트 적용
- 활용 방식
- 고객의 소득, 직업, 거래이력, 부채비율, 신용점수 등을 입력
- 랜덤포레스트로 연체 확률(기본값 예측)을 산출
- 위험도가 높은 고객을 사전에 식별해 대출 조건 조정
- 효과
- 신용 리스크 예측 정확도 향상
- 부실률(Bad Loan Ratio) 감소
3. 유통·이커머스 – 고객 이탈 및 구매 예측
쿠팡, 무신사, 네이버쇼핑 등은 회원 이탈(Churn) 예측과 구매 확률 예측에 활용
- 활용 방식
- 방문 횟수, 장바구니 행동, 클릭 이력, 구매 주기 등을 학습
- 이탈 가능성이 높은 고객을 식별해 쿠폰/포인트 제공
- 구매 확률이 높은 상품을 추천
- 효과
- 고객 유지율(고객 잔존율) 15% 이상 향상
- 추천 상품 클릭률 상승
4. 의료 – 질병 진단 및 예후 예측
서울아산병원, 메이요클리닉(Mayo Clinic) 등은 질병 예측 및 진단 보조 시스템에 활용
- 활용 방식
- 환자의 혈액 수치, 영상 판독 결과, 병력 데이터 입력
- 랜덤 포레스트로 질병 발생 확률(예: 당뇨, 심혈관질환 등) 산출
- 의사 판단 보조 시스템으로 활용
- 효과
- 조기 진단 정확도 향상
- 진료 효율 및 환자 생존율 개선
5. 제조·물류 – 품질 이상 탐지 및 장비 고장 예측
삼성전자, 현대자동차, LG디스플레이 등은 생산 공정 데이터 분석에 랜덤 포레스트 적용
- 활용 방식
- 센서 데이터(온도, 압력, 진동 등)를 실시간 수집
- 랜덤포레스트가 정상/이상 패턴 분류
- 예측 결과로 설비 점검 시기 조정 및 불량률 감소
- 효과
- 예기치 않은 장비 고장률 30% 이상 감소
- 품질 불량 조기 탐지
6. 공공 데이터 분석 – 교통사고 위험 지역 예측
국토교통부·서울시 빅데이터 캠퍼스 프로젝트
- 활용 방식
- 지역별 교통량, 제한속도, 기상, 시간대, 사고이력 데이터를 활용
- 랜덤포레스트로 사고 확률이 높은 구간을 분류
- 도로 개선 및 단속 자원 효율적 배치
- 효과
- 교통사고 사망자 수 감소
- 안전 인프라 구축 근거 데이터 확보
실습 6. 교통사고 위험 지역 예측
도로별 교통량, 날씨, 시간대, 속도제한 정보를 바탕으로 교통사고 발생 가능성이 높은 지역을 사전에 예측하여 단속 인력과 예산을 효율적으로 배치한다.
1. 모델 성능 평가 결과
Classification Report:
precision recall f1-score support
0 1.00 1.00 1.00 3
1 1.00 1.00 1.00 1
accuracy 1.00 4
macro avg 1.00 1.00 1.00 4
weighted avg 1.00 1.00 1.00 4
Accuracy: 1.0000
Precision: 1.0000
Recall: 1.0000
F1 Score: 1.0000
2. 피처 중요도 분석

(3. 모델 시각화)

4. 모델 로딩 및 추론

5. 결론 및 제언
- 모델의 예측 성능 향상 및 일반화 능력을 높이기 위해 더 크고 다양하며 상세한 교통 및 환경 데이터(예: 강수량, 가시거리, 요일, 시간대별 상세 데이터, 과거 사고 발생 이력 등) 확보 필요
- 확보된 추가 데이터를 활용하여 모델을 재학습하거나, 불균형 데이터 처리를 위한 기법(예: 오버샘플링, 언더샘플링)을 적용하여 모델 성능 개선
- 피처 중요도 분석 결과를 바탕으로 특정 날씨, 시간대, 도로 조건에서의 사고 위험을 예측하고 이를 바탕으로 교통 정보 제공 시스템이나 내비게이션 앱을 통해 운전자에게 실시간 주의/경고 정보를 제공할 수 있음
- 구축된 예측 인터페이스를 활용하여 위험 지역 및 시간을 사전에 파악하고, 해당 지역에 대한 교통 관리 및 순찰을 강화하는 등 예방적 조치를 취할 수 있음
실습 7. 대출 연체 예측
은행 고객의 소득, 직업, 신용등급, 대출금액 정보를 기반으로 대출 연체 가능성을 예측하여 리스크 관리 및 신용정책을 최적화한다.
1. 모델 성능 평가 결과 (낮은 성능으로 인해 하이퍼파라미터 튜닝 진행)
최적 모델 성능 평가 결과:
Classification Report:
precision recall f1-score support
0 0.67 0.67 0.67 3
1 0.00 0.00 0.00 1
accuracy 0.50 4
macro avg 0.33 0.33 0.33 4
weighted avg 0.50 0.50 0.50 4
Accuracy: 0.5000
Precision: 0.0000
Recall: 0.0000
F1 Score: 0.0000
...?
🔎 모델 성능 개선 관련
교차 검증 결과와 테스트 성능 간의 차이점 설명
- 데이터셋의 크기 : 전체 데이터셋(20개 샘플) 및 테스트 세트(4개 샘플)의 크기가 매우 작아 모델이 학습 데이터의 특정 패턴에 과적합(Overfitting)되었을 가능성이 높음
- 클래스 불균형 : 테스트 세트에서 연체(Overdue) 클래스 샘플이 1개, 비연체(No Overdue) 클래스 샘플이 3개로 클래스 간 불균형이 심하여 모델이 소수 클래스를 제대로 학습하거나 예측하지 못했을 수 있음
- 데이터의 단순성 : 데이터 포인트 간의 관계가 매우 명확하거나 독립적이어서 작은 데이터셋에서도 우연히 완벽한 분리가 가능했을 수 있음
모델 성능 개선을 위한 향후 단계
- 더 많은 데이터 확보
- 불균형 데이터 처리 기법 적용 : 실제 데이터에 클래스 불균형이 존재한다면, 학습 단계에서 오버샘플링(Oversampling) 또는 언더샘플링(Undersampling)과 같은 기법을 적용하여 모델이 소수 클래스를 더 잘 학습하도록 해야 함
- 다른 모델 시도 : 랜덤 포레스트 외에 로지스틱 회귀, 서포트 벡터 머신, 신경망 등 다른 분류 모델을 시도하고 성능을 비교하여 문제에 더 적합한 모델을 찾을 수 있음
- 피처 엔지니어링 및 선택
- 교차 검증 및 평가 지표 재검토 : 데이터가 매우 작거나 불균형한 경우, 단순 정확도 외에 정밀도, 재현율, F1-점수, ROC-AUC 등 다양한 평가 지표를 함께 고려하여 모델 성능을 종합적으로 판단해야 함
실습 8. 질병 진단 예측
환자의 건강검진 데이터를 바탕으로 당뇨병 위험 여부를 예측하여 조기 진단 및 예방 치료에 활용한다.
1. 모델 성능 평가 결과
Classification Report:
precision recall f1-score support
0 1.00 1.00 1.00 3
1 1.00 1.00 1.00 1
accuracy 1.00 4
macro avg 1.00 1.00 1.00 4
weighted avg 1.00 1.00 1.00 4
Accuracy: 1.0000
Precision: 1.0000
Recall: 1.0000
F1 Score: 1.0000
2. 피처 중요도 분석

(3. 모델 시각화)

4. 모델 로딩 및 추론

실습 9. 상품 수요 예측 - 회귀
소매점의 판매 데이터를 활용하여 다음 주 상품별 판매량(수요)을 예측하고, 재고 부족이나 과잉 생산을 방지한다.
시각화 방식 요청사항.
회귀 모델 시각화와 분류 모델 시각화를 구분하여 각 모델 타입에 적합한 방식으로 진행하겠습니다. 예를 들어, 회귀 모델의 경우 실제값 vs 예측값 산점도와 같은 시각화를, 분류 모델의 경우 혼동 행렬이나 ROC 곡선과 같은 시각화를 활용하여 분석 결과를 효과적으로 보여드리겠습니다.
1. 모델 성능 평가 결과
모델 성능 평가 결과:
RMSE: 36.5595
MAE: 27.3500
R2 Score: 0.9246

2. 피처 중요도 분석

(3. 모델 시각화)

4. 모델 로딩 및 추론

실습 10. 공장 설비 고장 예측
공장의 주요 생산 설비에서 수집된 센서 데이터를 바탕으로 고장 발생 가능성을 조기에 예측하여 유지보수 비용을 절감한다.
모델 성능 평가 결과.
Classification Report:
precision recall f1-score support
0 1.00 1.00 1.00 1
1 1.00 1.00 1.00 3
accuracy 1.00 4
macro avg 1.00 1.00 1.00 4
weighted avg 1.00 1.00 1.00 4
Accuracy: 1.0000
Precision: 1.0000
Recall: 1.0000
F1 Score: 1.0000
모델 로딩 및 추론.

연습문제 풀이
Q1. 랜덤포레스트를 이용한 교통사고 위험 지역 예측에서 weather(날씨)와 time(시간대) 변수가 사고 발생 확률에 미치는 영향을 분석할 때, 모델의 변수 중요도(feature importance) 결과를 어떻게 해석할 수 있는가?
A1. 변수 중요도는 사고 발생 예측에 각 변수가 기여한 정도를 의미하므로, 만약 두 변수가 모두 높게 나타났다면 날씨와 시간대 조건이 결합된 패턴이 사고 위험 예측의 핵심 요인인 것으로 해석할 수 있다.
Q2. 대출 연체 예측 문제에서 랜덤포레스트 모델이 credit_score(신용등급) 변수를 높은 중요도로 평가했다면, 이는 어떤 마케팅 또는 리스크 관리 전략 수립에 활용될 수 있는가?
A2. 신용등급이 연체 발생 확률을 구분하는 핵심 변수임을 의미하므로,
1) 마케팅 전략 측면에서는 고신용 고객에게 우대 금리나 프리미엄 상품을 제공하고, 저신용 고객에게는 맞춤형 한도 조정이나 신용관리 컨설팅 프로그램을 제안한다.
2) 리스크 관리 측면에서는 신용 등급이 낮아 신용 위험이 높은 고객군을 미리 식별하여 사전 심사를 강화한다.
Q3. 질병 진단 예측에서 랜덤포레스트 모델이 bmi(체질량지수)와 blood_sugar(혈당) 변수를 가장 중요한 특징으로 식별했다면, 의료 현장에서 어떤 의사결정 지원에 활용될 수 있는가?
A3. 체질량지수+혈당이 질병의 발병 여부에 결정적 영향을 미쳤음을 의미하므로, 의료 현장에서는 이 두 지표를 활용해 고위험 환자를 조기에 식별할 수 있음을 뜻한다. 이를 통해 정밀 검진 대상을 선정하거나 진료의 우선순위를 결정하는 등의 의사결정을 본 데이터를 기반으로 지원할 수 있다. ( → 최근 건강관리 앱의 높아진 인기)
Q4. 상품 수요 예측 문제에서 promo(프로모션 여부)와 temp(°C)(기온) 변수가 수요에 큰 영향을 준다고 분석되었다면, 기업은 어떤 판매 전략을 수립할 수 있는가?
A4. 프로모션 여부가 수요에 직접적 영향을 주고 있고 기온 변화에 따라 상품 수요가 민감하게 변동한다는 것을 의미하므로, 계절 혹은 기상 기반의 쿠폰 제공, 캠페인 진행 등 프로모션 전략을 수립한다. 예를 들어, 더운 날에는 아이스크림이나 음료 등의 수요가 증가할 것이므로 해당 상품에 대한 할인 쿠폰을 미리 제공하여 날씨 변화에 맞게 즉각적인 구매 행동으로 연결되도록 유도할 수 있다. ( → 안전재고 관리에 유용)
Q5. 4개의 예시(교통사고, 대출, 질병, 수요 예측) 모두 랜덤포레스트를 사용하고 있다. 이들 문제의 공통점과, 랜덤포레스트가 이러한 문제들에 특히 적합한 이유를 설명하시오.
A5. 4개의 예시 모두 복잡한 변수 간 관계와 비선형 패턴을 가지고 있는 문제이다. 앞선 3개 예시의 경우 분류 문제, 수요 예측의 경우 회귀 문제로 구분할 수 있다. 랜덤포레스트는 여러 결정 트리를 앙상블하여 비선형 관계와 변수 간 작용을 자동 학습하고 변수 중요도를 통해 쉽게 해석이 가능한 인사이트를 제공하는 모델이므로 본 사례에 적용해 문제를 해결하는 데 적합하다고 설명할 수 있다. ( → 여러 변수들이 서로 영향을 주고받거나, 특정 변수의 효과가 다른 변수의 값에 따라 달라지는 경우 = 비선형적 관계)
최종 실습. 그로스 마케팅 랜덤 포레스트 대시보드
dashboard/
├─ app.py
├─ templates/
│ └─ index.html
├─ static/
│ └─ style.css
└─ uploads/


✏️ 개인 회고
이번 주 여러 번의 실습을 하고나니 아주 조금 .. 머신러닝의 과정과 모델 생성 이유에 대한 감이 잡히는 중
무지한 상태에서 책 n회독 하는 기분이었는데 결국 또 느낌이 오는 걸 보니 반복의 힘이 정말 크다는 걸 새삼 느낀다
오늘 연습 문제 풀이하면서 고민했던 것처럼 마케팅 실무와 연결할 수 있도록 끊임없이 연습할 것
지금 공부 자체를 하는 것도 중요하지만 매주, 매일, 매 순간의 트렌드를 읽는 것도 그만큼 중요하다
기술과 소비자의 변화 속도가 너무나도 빠르기 때문에 오늘 배운 지식이 내일의 현장에서는 금세 또 달라질 수 있음을 명심하자
