← 모델 목록
수업 실습 2026-08-27 · tabular-regression
그래디언트 부스팅 계열 (scikit-learn GBM)

GradientBoostingRegressor (scikit-learn)

그래디언트 부스팅 유튜브 7일 조회수 예측 (회귀 모델 과제)
모델
얕은 회귀 트리를 하나씩 더하면서 직전까지의 오차(잔차)를 줄여 가는 부스팅 모델
사용 목적
유튜브 조회수 회귀 과제에서 부스팅 트리 모델이 선형 모델·배깅보다 나은지 비교하려고 사용
코드
mnmms/mldl
가중치
없음
r280.7%
mae9802
rmse32555
학습 시간없음
추론 CPU / GPU측정 안 함

데이터

  • 수업 제공 1,500개 영상 · 21개 입력
  • train 1,200 · test 300 (seed 42)

학습

  • 트리 200개 · lr 0.04 · max_depth 3
  • CPU · scikit-learn 1.9.0
  • 학습 시간 [미확인]

결과

  • R² 0.807 · MAE 9,802 (4종 중 최저) · RMSE 32,555
  • 랜덤 포레스트보다 세 지표 모두 좋음

배운 점

  • MAE 1위지만 R² 기준으로는 선형 모델이 앞섬
  • 큰 영상 오차가 RMSE를 끌어올림
개요용도 의도한 용도: 부스팅 트리 회귀를 선형 모델·배깅과 비교하는 과제 대상 사용자: 해당 없음 (학습용) 의도하지 않은 용도…

용도

  • 의도한 용도: 부스팅 트리 회귀를 선형 모델·배깅과 비교하는 과제
  • 대상 사용자: 해당 없음 (학습용)
  • 의도하지 않은 용도: 실제 유튜브 조회수 예측

모델 정보

항목 값
베이스 모델 직접 구현 (처음부터 학습)
크기 · 변형 GradientBoostingRegressor(n_estimators=200, learning_rate=0.04, max_depth=3, random_state=42)
리비전 scikit-learn 1.9.0 (uv.lock 기준)
아키텍처 깊이 3 회귀 트리 200개를 순서대로 더함 (손실: 제곱 오차, 기본값)
학습 방식 처음부터 학습
프롬프트 · 에이전트 구성 해당 없음
데이터선형 회귀 카드 와 같은 데이터·분할·전처리입니다. 확보 방식 공개 데이터셋 그대로 (수업 제공) 출처 수업 자료 data/y…

선형 회귀 카드와 같은 데이터·분할·전처리입니다.

항목 값
확보 방식 공개 데이터셋 그대로 (수업 제공)
출처 수업 자료 data/youtube_7day_views_regression_practice.csv
직접 수집 내용 해당 없음
이용 조건 확인 해당 없음 (수업 자료)
규모 1,500개 영상
분할 train 1,200 / test 300 (8:2, 시드 42)
레이블·클래스 분포 7일 조회수 486 ~ 1,848,414 (왜도 7.74)
전처리 결측 중앙값 대체, 1~99% 클리핑, Category 원-핫
개인정보·민감정보 처리 해당 없음 (가상 데이터)
학습하이퍼파라미터 n_estimators=200 , learning_rate=0.04 , max_depth=3 에폭 / 스텝 부스…
항목 값
하이퍼파라미터 n_estimators=200, learning_rate=0.04, max_depth=3
에폭 / 스텝 부스팅 200회
학습 시간 [미확인] (노트북에 시간 측정이 없음)
하드웨어 CPU (scikit-learn). 장비 이름 [미확인]
프레임워크 scikit-learn 1.9.0, pandas 3.0.5
시드 · 재현 방법 train_test_split(test_size=0.2, random_state=42), 모델 random_state=42
결과test 300개 기준, 노트북 출력입니다. R² 0.807 test 300 0.856 / 0.788 MAE 9,802 tes…

test 300개 기준, 노트북 출력입니다.

지표 값 테스트셋 비교 대상 (선형 회귀 / 랜덤 포레스트)
R² 0.807 test 300 0.856 / 0.788
MAE 9,802 test 300 13,424 / 10,490
RMSE 32,555 test 300 28,081 / 34,131

추론 성능 (CPU / GPU)

측정 안 함.

장비 장비 이름 배치 크기 지연 시간 (샘플당, p50 / p95) 처리량 (샘플/초) 메모리 사용
CPU [미확인] - 측정 안 함 측정 안 함 측정 안 함
GPU 해당 없음 (scikit-learn은 CPU 전용) - - - -
한계 · 배운 점한계 알려진 실패 유형: 조회수가 아주 큰 영상 (RMSE가 선형 모델보다 큼) 편향 / 공정성 이슈: 해당 없음 (가상 데이…

한계

  • 알려진 실패 유형: 조회수가 아주 큰 영상 (RMSE가 선형 모델보다 큼)
  • 편향 / 공정성 이슈: 해당 없음 (가상 데이터)
  • 성능이 떨어지는 입력 조건: [🚩AI 설명] 학습 범위를 넘는 큰 조회수 (트리 기반이라 외삽하지 못함)

배운 점

  • 4종 중 MAE는 가장 낮지만, 노트북 결론은 R² 기준으로 선형 모델(Ridge 또는 LinearRegression)이 가장 안정적
  • 같은 트리 계열에서는 부스팅이 배깅보다 세 지표 모두 좋음 (노트북 비교표)
사용 방법코드 셀 1개
In [1]학습·평가하기
from sklearn.ensemble import GradientBoostingRegressor

gb_model = GradientBoostingRegressor(n_estimators=200, learning_rate=0.04, max_depth=3, random_state=42)
gb_model.fit(X_train, y_train)

gb_pred = gb_model.predict(X_test)
print(f"mae: {mean_absolute_error(y_test, gb_pred)}")
print(f"rmse: {root_mean_squared_error(y_test, gb_pred)}")
print(f"r2score: {r2_score(y_test, gb_pred)}")
Out[1] 출력 보기
mae: 9801.771527224508
rmse: 32554.568013668282
r2score: 0.8068895356385997

같은 과제·데이터셋 비교 tabular-regression · 수업 자료: youtube_7day_views_regression_practice.csv · 4개

굵은 이름이 이 모델입니다. 주황 테두리가 그룹 안 최고값입니다.