← 모델 목록
수업 실습 2026-08-27 · tabular-regression
선형 모델 계열 (L2 규제 선형 회귀)

Ridge (scikit-learn)

Ridge 유튜브 7일 조회수 예측 (회귀 모델 과제)
모델
선형 회귀에 가중치 크기 제곱(L2) 벌점을 더해 계수가 과하게 커지지 않게 하는 규제 회귀 모델
사용 목적
유튜브 조회수 회귀 과제에서 규제가 다중공선성이 있는 피처의 선형 회귀를 개선하는지 비교하려고 사용
코드
mnmms/mldl
가중치
없음
r285.6%
mae13022
rmse28069
학습 시간없음
추론 CPU / GPU측정 안 함

데이터

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

학습

  • GridSearchCV 5-fold · alpha 6개 후보
  • best alpha 100 (후보 최댓값)
  • CPU · 학습 시간 [미확인]

결과

  • R² 0.856 · MAE 13,022 · RMSE 28,069
  • 선형 회귀와 거의 같음 (R² +0.0001)

배운 점

  • ill-conditioned matrix 경고 = 다중공선성 신호
  • 규제를 최대로 해도 거의 변화 없음
개요용도 의도한 용도: 규제 회귀를 일반 선형 회귀·트리 모델과 비교하는 과제 대상 사용자: 해당 없음 (학습용) 의도하지 않은 …

용도

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

모델 정보

항목 값
베이스 모델 직접 구현 (처음부터 학습)
크기 · 변형 Ridge(alpha=100) (GridSearchCV로 선택)
리비전 scikit-learn 1.9.0 (uv.lock 기준)
아키텍처 입력 21열의 선형 결합 + L2 벌점
학습 방식 처음부터 학습
프롬프트 · 에이전트 구성 해당 없음
데이터선형 회귀 카드 와 같은 데이터·분할·전처리입니다. 확보 방식 공개 데이터셋 그대로 (수업 제공) 출처 수업 자료 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 원-핫. 스케일링 없음
개인정보·민감정보 처리 해당 없음 (가상 데이터)
학습하이퍼파라미터 alpha 후보 [0.001, 0.01, 0.1, 1, 10, 100] 중 GridSearchCV(cv=5) 로…
항목 값
하이퍼파라미터 alpha 후보 [0.001, 0.01, 0.1, 1, 10, 100] 중 GridSearchCV(cv=5)로 100 선택 (기본 점수 R²)
에폭 / 스텝 해당 없음
학습 시간 [미확인] (노트북에 시간 측정이 없음)
하드웨어 CPU (scikit-learn). 장비 이름 [미확인]
프레임워크 scikit-learn 1.9.0, pandas 3.0.5
시드 · 재현 방법 train_test_split(test_size=0.2, random_state=42). 교차검증 fold는 셔플 없음 (기본값)
결과test 300개 기준, 노트북 출력입니다. R² 0.8564 test 300 0.8563 MAE 13,022 test 300…

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

지표 값 테스트셋 비교 대상 (선형 회귀)
R² 0.8564 test 300 0.8563
MAE 13,022 test 300 13,424
RMSE 28,069 test 300 28,081
  • 학습 중 LinAlgWarning: An ill-conditioned matrix detected 경고가 반복해서 남 (노트북 출력)
  • 노트북 해석: best alpha 100은 거의 최대 규제 강도이고, 경고는 피처 사이 다중공선성 신호 (First24h_Views, First24h_Likes, First24h_Comments)

추론 성능 (CPU / GPU)

측정 안 함.

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

한계

  • 알려진 실패 유형: 선형 회귀와 같이 큰 조회수 영상에서 오차가 큼
  • 편향 / 공정성 이슈: 해당 없음 (가상 데이터)
  • 성능이 떨어지는 입력 조건: [미확인]
  • [🚩AI 설명] best alpha가 후보 범위의 끝(100)이라 더 큰 값을 탐색하지 않았음. 또 스케일링 없이 규제를 걸어 단위가 큰 피처(구독자 수 등)와 작은 피처에 벌점이 고르게 걸리지 않음

배운 점

  • 규제를 최대로 줘도 R²가 0.0001만 올라, 이 데이터에서는 선형 회귀와 사실상 같음 (노트북 비교표)
  • [🚩AI 설명] 다음에 해 볼 것: StandardScaler 후 Ridge, alpha 범위 넓히기, 상관이 높은 피처 하나만 남기기
사용 방법코드 셀 1개
In [1]GridSearchCV로 alpha 고르고 평가하기
from sklearn.linear_model import Ridge
from sklearn.model_selection import GridSearchCV

r_model = Ridge()
param_grid = {'alpha': [0.001, 0.01, 0.1, 1, 10, 100]}

r_grid = GridSearchCV(r_model, param_grid, cv=5)
r_grid.fit(X_train, y_train)

print("best alpha:", r_grid.best_params_)

r_pred = r_grid.best_estimator_.predict(X_test)
print(f"mae: {mean_absolute_error(y_test, r_pred)}")
print(f"rmse: {root_mean_squared_error(y_test, r_pred)}")
print(f"r2score: {r2_score(y_test, r_pred)}")
Out[1] 출력 보기
best alpha: {'alpha': 100}
mae: 13022.236954337488
rmse: 28069.13123294435
r2score: 0.8564378755104337

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

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