← 모델 목록
수업 실습 2026-08-27 · tabular-regression
트리 앙상블 계열 (랜덤 포레스트, 배깅)

RandomForestRegressor (scikit-learn)

랜덤 포레스트 유튜브 7일 조회수 예측 (회귀 모델 과제)
모델
부트스트랩 샘플로 만든 회귀 트리 여러 개의 예측을 평균하는 배깅 앙상블. 여기서는 트리 300개
사용 목적
유튜브 조회수 회귀 과제에서 배깅 트리 모델이 선형 모델보다 나은지 비교하려고 사용
코드
mnmms/mldl
가중치
없음
r278.8%
mae10490
rmse34131
학습 시간없음
추론 CPU / GPU측정 안 함

데이터

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

학습

  • 트리 300개 · 그 외 기본값
  • CPU · scikit-learn 1.9.0
  • 학습 시간 [미확인]

결과

  • R² 0.788 · MAE 10,490 · RMSE 34,131
  • MAE는 선형보다 좋고 RMSE·R²는 나쁨

배운 점

  • 평소엔 더 잘 맞히지만 큰 영상에서 더 크게 틀림
  • 트리는 학습 범위 밖 값을 예측하지 못함
개요용도 의도한 용도: 배깅 트리 회귀를 선형 모델·부스팅과 비교하는 과제 대상 사용자: 해당 없음 (학습용) 의도하지 않은 용도…

용도

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

모델 정보

항목 값
베이스 모델 직접 구현 (처음부터 학습)
크기 · 변형 RandomForestRegressor(n_estimators=300, random_state=42)
리비전 scikit-learn 1.9.0 (uv.lock 기준)
아키텍처 깊이 제한 없는 회귀 트리 300개의 평균
학습 방식 처음부터 학습
프롬프트 · 에이전트 구성 해당 없음
데이터선형 회귀 카드 와 같은 데이터·분할·전처리입니다. 확보 방식 공개 데이터셋 그대로 (수업 제공) 출처 수업 자료 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=300 , 그 외 기본값 에폭 / 스텝 해당 없음 학습 시간 [미확인] (노트북에 시간 …
항목 값
하이퍼파라미터 n_estimators=300, 그 외 기본값
에폭 / 스텝 해당 없음
학습 시간 [미확인] (노트북에 시간 측정이 없음)
하드웨어 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.788 test 300 0.856 MAE 10,490 test 300 1…

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

지표 값 테스트셋 비교 대상 (선형 회귀)
R² 0.788 test 300 0.856
MAE 10,490 test 300 13,424
RMSE 34,131 test 300 28,081
  • 노트북 해석: 트리 모델은 MAE가 더 낮은데(평소엔 더 잘 맞춤) RMSE는 더 높고 R²는 더 낮음. 일반적인 영상은 잘 맞히지만 조회수가 아주 큰 소수 영상에서 크게 틀린 것으로 해석

추론 성능 (CPU / GPU)

측정 안 함.

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

한계

  • 알려진 실패 유형: 조회수가 아주 큰 영상 (RMSE가 선형 모델보다 큼)
  • 편향 / 공정성 이슈: 해당 없음 (가상 데이터)
  • 성능이 떨어지는 입력 조건: [🚩AI 설명] 학습 데이터 최댓값보다 큰 조회수. 트리는 학습에서 본 값의 평균만 내므로 범위 밖으로 외삽하지 못함

배운 점

  • MAE와 RMSE가 서로 다른 순위를 줄 수 있고, 무엇을 기준으로 할지는 큰 오차를 얼마나 중요하게 볼지에 달림 (노트북 해석)
  • [🚩AI 설명] 다음에 해 볼 것: 하이퍼파라미터(max_depth, min_samples_leaf) 조정, 큰 영상만 따로 오차 보기
사용 방법코드 셀 1개
In [1]학습·평가하기
from sklearn.ensemble import RandomForestRegressor

rf_model = RandomForestRegressor(n_estimators=300, random_state=42)
rf_model.fit(X_train, y_train)

rf_pred = rf_model.predict(X_test)
print(f"mae: {mean_absolute_error(y_test, rf_pred)}")
print(f"rmse: {root_mean_squared_error(y_test, rf_pred)}")
print(f"r2score: {r2_score(y_test, rf_pred)}")
Out[1] 출력 보기
mae: 10490.408566666667
rmse: 34131.04093053302
r2score: 0.787733723465766

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

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