제2유형 (작업형2)40점2호선 10역 실전난이도 상

[Lv.5] 제2유형 (40점)세탁소 접수 건수 · 날짜 파생 + RMSLE 음수 clip

제공 데이터
  • data/laundry_train.csv
  • data/laundry_test.csv

어느 세탁소 체인 4개 지점의 하루 세탁물 접수 건수 기록(2024-01 ~ 2025-06)이다. 날짜·지점·기온·강수량 등으로 그날 그 지점의 접수 건수(orders)를 예측하는 회귀 문제이다. 행은 날짜 순서가 아니라 무작위로 섞여 있다. 학습용 데이터 laundry_train.csv로 모델을 학습하고, 평가용 데이터 laundry_test.csv의 각 기록(행)에 대한 접수 건수를 예측하여 result.csv 파일을 생성하는 코드를 작성하여 제출하시오.

  • 평가지표: RMSLE (Root Mean Squared Log Error — 값이 낮을수록 좋음, 구간별 5점 단위 배점)
  • date는 문자열이다. 그대로는 모델에 넣을 수 없으니 날짜에서 학습에 쓸 숫자를 꺼내 활용하시오.
  • 접수 건수는 0 이상의 정수이다.

[제출 형식]

  1. CSV 파일명: result.csv (별도 디렉토리 지정 금지)
  2. 예측 결과 컬럼명: pred (예측한 접수 건수, 0 이상의 실수)
  3. 제출 컬럼 개수: pred 1개 (자동 생성되는 index 컬럼 제거)
  4. 평가용 데이터(test) 행 수와 예측 결과 행 수가 일치해야 함

[변수 설명]

컬럼명설명값
date날짜YYYY-MM-DD 문자열
branch지점본점, 역앞점, 대학가점, 주택가점
temp평균 기온(℃)실수
rain_mm강수량(mm)실수
promo할인 행사 여부1: 진행, 0: 없음
orders하루 접수 건수 (train에만 존재, 예측 대상)0 이상 정수

💡 이렇게 해 보세요

  • pd.to_datetime()으로 바꾼 뒤 .dt.month, .dt.dayofweek로 월·요일 컬럼을 만들고, 원래 date 컬럼은 지웁니다. train·test 모두 똑같이.
  • 실제 시험 채점은 음수 예측이 하나라도 있으면 0점이에요. LightGBM 같은 모델은 0 근처에서 음수를 낼 수 있으니 제출 전 반드시 clip(0)으로 0 아래를 잘라 냅니다.
  • 검증 RMSLE는 mean_squared_log_error(실제값, 예측값) ** 0.5 입니다(MSLE에 루트). 함수 이름이 기억나지 않으면 import sklearn.metrics 후 print(dir(sklearn.metrics)).
  • .dt 뒤에 쓸 수 있는 것은 print(dir(train['date'].dt)) 로 볼 수 있어요(month, dayofweek …).
CSV 파일 형식 및 확인 방법

■ CSV 파일명: result.csv · 예측 칼럼명: pred (칼럼 1개)

■ 제출 CSV 파일 형식 예시

pred
8790.6061
14.7487
215.6055
……

■ CSV 파일 확인 방법: 생성된 파일을 아래처럼 출력해 확인

import pandas as pd
result = pd.read_csv("result.csv")
print(result.head())
result.csv를 생성하는 코드를 작성하고 '제출'을 누르세요.
에디터 로딩 중…

파이썬 실행환경 불러오는 중 · 보통 3초