단원 홈

Ⅳ. 데이터 과학 프로젝트7차시

약점을 알았으니
무엇을 짓나

비교에서 설계로

지난 차시에 두 방법을 겨루게 해 약점 두 가지를 알아냈습니다. 그러면 '가장 적절한 모델'은 둘 중 나은 쪽을 고르는 것일까요, 아니면 약점을 메워 새로 짓는 것일까요? 그리고 지은 것이 정말 좋은지는 무엇으로 압니까.

  • [12데과04-03]
  • 50분네 정거장
  • 새 도구잔차 나무 — 회귀와 나무를 잇는다
  • 자료power_weather_daily.csv · 2,922일(2018~2025)

학습 목표

  1. 개념에서

    비교가 드러낸 약점을 전처리를 바꾸는 길과 방법을 잇는 길로 메우는 설계를 말할 수 있다.

  2. 손으로

    훈련·검증·시험 세 조각으로 나눠 검증 해로 설계를 고르고, 시험은 한 번만 열 수 있다.

  3. 확인에서

    고른 설계와 까닭 · 시험 결과 · 버린 설계를 설계 결정 기록 한 장에 적을 수 있다.

1
여는 장면 · 4분

비교표를 앞에 두고 교실이 셋으로 갈렸다

지난 차시에 우리는 회귀와 결정나무를 같은 조건에서 겨루게 했습니다. 이긴 쪽을 고르려고 한 일이었는데, 정작 손에 남은 것은 승패가 아니라 약점 목록이었어요. 비교표에서 두 줄을 옮겨 옵니다.

표 1Ⅳ-6 비교표가 남긴 약점 두 줄미래 시험 2024~2025 · 하루 평균 수요(MW)
드러난 약점어디서 보였나숫자
회귀 — 난방과 냉방 사이의 쉬는 구간을 18℃ 한 점으로 눌렀다 Ⅳ-5 에서 기준 온도를 흔들자 '1℃ 의 답'이 크게 흔들렸다 기준 17℃ +1,285 → 20℃ +1,839MW
회귀 — 연도 칸이 그은 직선이 끊긴 추세에 넘친다 미래 시험의 치우침(실제 − 예측) 회귀 −1,197 · 나무 −358MW
나무 — 계단의 천장. 본 적 없는 높이를 모른다 깊이 6 나무가 낼 수 있는 가장 큰 값 79,514 < 실제 최댓값 83,203MW

둘 다 틀린 자리가 어디인지까지 말해 줍니다. 그러면 다음에 할 일은 둘 중 하나를 고르는 것이 아니라, 그 자리를 메운 설계를 짓는 것일지 모릅니다. 자료: Ⅳ-5 · Ⅳ-6 실측(한국전력거래소 시간별 전국 전력수요량 + 기상청 ASOS 다섯 지점, 2018~2025 · Pyodide 0.26.4)

표를 본 교실이 셋으로 갈렸습니다.

가 모둠 — "둘 중 나은 회귀를 쓰자. 어차피 우리가 답할 물음은 '1℃ 당 몇 MW'인데, 나무는 그 문장을 못 준다."

나 모둠 — "둘을 이어 붙이자. 회귀가 큰 모양과 추세를 맡고, 회귀가 놓친 몫만 나무가 배우면 되지 않나?"

그리고 한 학생이 화면을 가리키며 물었습니다. 그 학생은 2024~2025 시험 성적을 띄워 놓고 설계를 조금씩 고쳐 가며 성적이 가장 좋은 판을 찾고 있었어요.

먼저 예측

아직 아무것도 돌리지 않았습니다. 약점마다 고칠 설계를 한 줄씩 먼저 제안해 보세요 — "쉬는 구간을 눌렀다면 … 하겠다", "직선이 넘쳤다면 … 하겠다"처럼요. 여기 적은 두 줄은 오늘 마지막에 쓰는 설계 결정 기록의 첫 칸이 됩니다.

체크포인트 1

약점 두 줄을 옮겨 적고, 그것을 메울 설계를 한 줄씩 제안했다. 아직 어느 것도 돌려 보지 않았다.

다음 정거장 · 개념 6분 →
2
개념 · 6분

설계는 약점을 겨눈 선택이고, 고르는 자리는 따로 있다

2-1약점을 메우는 두 가지 길

설계란 비교가 알려 준 약점을 겨누어 무엇을 바꿀지 정하는 일입니다. 길은 크게 둘입니다.

① 전처리를 바꾼다. 회귀가 쉬는 구간을 한 점으로 눌렀다면, 기준 온도를 둘로 나눕니다 — 난방 기준 h 아래에서만 난방도일이 쌓이고, 냉방 기준 c 위에서만 냉방도일이 쌓이며, 그 사이는 쉬는 구간(둘 다 0)입니다. 방법은 그대로 회귀인데 재료를 다시 빚은 것이지요.

② 방법을 잇는다. 회귀가 추세와 큰 모양을 맡고, 회귀가 놓친 몫만 나무가 배우게 합니다. 여기서 '회귀가 놓친 몫'은 잔차(실제 − 회귀 예측)입니다. 나무의 과녁을 수요에서 잔차로 바꾸면, 나무는 수요 전체가 아니라 회귀가 틀린 자리만 공부합니다. 이 생각을 여러 걸음 쌓은 것이 부스팅이고, 오늘 짓는 설계 D 는 그 첫 걸음 하나입니다.

규칙복잡하게 만드는 것과 약점을 겨누는 것은 다르다. 무엇을 메우려는 설계인지 한 줄로 못 적으면 그 설계는 아직 없다.

표 2오늘 겨루는 설계 넷같은 자료 · 같은 물음 · 다른 설계
설계무엇인가겨눈 약점
A회귀 — 기준 온도 18℃ 한 점(Ⅳ-5 그대로)없음 — 견주는 기준선
B회귀 — 난방 기준 h · 냉방 기준 c 따로, 사이는 쉬는 구간쉬는 구간을 한 점으로 누른 것 (전처리를 바꾼다)
C결정나무 — 깊이 6(Ⅳ-6 그대로)없음 — 견주는 기준선
D회귀 A + 잔차 나무 — 회귀가 놓친 몫만 나무가 배운다회귀가 못 잡는 굽은 자리 (방법을 잇는다)

잔차 나무에게는 연도를 주지 않습니다 — 해마다 느는 몫(추세)은 회귀가 직선으로 맡기로 했으니까요. 설계란 이렇게 방법마다 잘하는 일을 나눠 맡기는 것입니다.

2-2검증과 시험을 나눈다 — 시험은 맨 끝에 한 번

설계 넷을 지었으면 하나를 골라야 합니다. 그런데 무엇을 보고 고를까요. 시험 성적을 보고 고르면, 그 시험은 더 이상 시험이 아닙니다 — 고르는 데 쓰인 자료는 검증이 됩니다. 여는 장면의 학생이 한 일이 바로 그것이었어요.

그래서 자료를 세 조각으로 나눕니다. 미래를 맞히는 물음이니 나누는 자도 시간입니다.

그림 1여덟 해를 세 조각으로 — 훈련 · 검증 · 시험왼쪽부터 시간 순서 · 칸 너비가 곧 날 수
여덟 해 2,922일을 시간 순서로 세 조각섞지 않는다 — 미래를 맞히는 물음이라 나누는 자도 시간이다.훈련 · 2018~20221,826일 · 여기서 맞춘다검증 · 2023365일 · 여기서 고른다시험 · 2024~2025731일 · 맨 끝에 한 번만칸 너비가 곧 날 수다 — 훈련이 가장 길고 검증은 한 해뿐이다.세 걸음 — 고르는 자리는 하나뿐이다1훈련 다섯 해로 설계 넷을 맞춘다2검증 한 해로 하나를 고른다 — 여기까지가 고르는 자리다3고른 설계를 2018~2023 으로 다시 맞추고 시험을 한 번연다시험을 보면서 고치면 시험이 검증이 된다 — 그 성적은 더 이상성적이 아니다. 여덟 해 2,922일을 시간 순서로 세 조각섞지 않는다 — 미래를 맞히는 물음이라 나누는 자도 시간이다.훈련 · 2018~20221,826일 · 여기서 맞춘다검증 · 2023365일 · 여기서 고른다시험 · 2024~2025731일 · 맨 끝에 한 번만칸 너비가 곧 날 수다 — 훈련이 가장 길고 검증은 한 해뿐이다.세 걸음 — 고르는 자리는 하나뿐이다1훈련 다섯 해로 설계 넷을 맞춘다2검증 한 해로 하나를 고른다 — 여기까지가고르는 자리다3고른 설계를 2018~2023 으로 다시 맞추고시험을 한 번 연다시험을 보면서 고치면 시험이 검증이 된다 — 그성적은 더 이상 성적이 아니다.

훈련으로 맞추고, 검증으로 고르고, 시험은 고른 뒤에 한 번만 엽니다. 연 뒤에는 그 결과를 보고 설계를 바꾸지 않습니다 — 바꾸고 싶으면 새로 남겨 둔 자료로 다시 시험해야 해요. 자료: power_weather_daily.csv 2,922일 — 코드 ① 이 찍는 1,826일 · 365일과 같은 나누기

Ⅲ-12 에서 가져옴시간이 있는 자료를 섞어서 나누면 미래를 맞히는 척만 하게 됩니다. 이웃한 날이 훈련과 시험에 갈려 들어가 서로를 알려 주기 때문이에요. 오늘도 자르는 자는 시간입니다.

2-3고른 것을 믿기 전에 — 네 방향

설계를 고른 뒤 차례로 보는 네 방향

  1. 골짜기가장 좋은 칸 하나만 믿지 않는다 — 그 언저리가 평평하면 결론을 폭으로 쓴다
  2. 치우침오차가 작아도 한쪽으로 쏠렸다면 남은 약점이 있다(평균 오차와 치우침은 다른 숫자다)
  3. 답 모양같은 물음에 설계마다 어떻게 답하나 — 평균이 같아도 날마다의 모양이 다를 수 있다
  4. 한 번시험은 한 번만 열었나 — 열고 나서 고쳤다면 그 성적은 성적이 아니다

그래서 '검증 오차가 가장 작다'는 고르는 근거이지 좋다는 증명이 아닙니다. 오늘 넷을 겨루고 나면 이 네 방향이 모두 한 번씩 쓰입니다.

체크포인트 2

약점을 메우는 두 길(전처리를 바꾼다 · 방법을 잇는다)과, 고르는 자리는 검증이고 시험은 한 번이라는 규칙을 손에 넣었다.

다음 정거장 · 손으로 30분 →
3
손으로 · 30분

넷을 지어 겨루게 하고, 시험지를 딱 한 번 연다

오늘의 장비

잔차 나무 — 회귀가 놓친 몫만 배우는 두 번째 모델

새 라이브러리는 없습니다. 지난 두 차시에서 쓰던 LinearRegression 과 DecisionTreeRegressor 를 이어 붙이는 손놀림이 오늘의 장비예요. 처음 실행은 scikit-learn 준비로 2초쯤 멈춥니다 — 고장이 아닙니다(쪽마다 한 번).

부르는 모양 — 두 줄이면 된다

선 = LinearRegression().fit(X, y)
잔차 = y - 선.predict(X)          # 놓친 몫
나무 = DecisionTreeRegressor(...).fit(재료, 잔차)
예측 = 선.predict(X) + 나무.predict(재료)

오늘 쓰는 함수 넷

fit(재료, 과녁)
과녁을 수요에서 잔차로 바꾸는 것이 전부다
predict
두 모델의 예측을 더한다
mean_absolute_error
평균 절대 오차 — 오늘의 잣대
min(사전, key=사전.get)
값이 가장 작은 열쇠를 돌려준다(오차가 아니라 설계 이름)

Ⅳ-6 의 나무와 다른 셋

  1. 과녁이 다르다수요(약 6만 MW)가 아니라 잔차(0 언저리)를 배운다
  2. 재료가 다르다연도를 주지 않는다 — 추세는 회귀가 맡는다
  3. 혼자 서지 않는다회귀 예측에 더해야 비로소 하나의 예측이 된다

도구가 대신해 주는 것 — GradientBoostingRegressor 는 이 두 줄을 수백 걸음 자동으로 되풀이합니다. 대가는 걸음 수와 보폭이 숨는다는 것이고, 오늘 우리는 그 첫 걸음을 손으로 지어 무엇이 숨는지 봅니다.

1

두 기준의 골짜기 — 격자 25칸을 검증 해로 잰다

3분

설계 B 는 난방 기준 h 와 냉방 기준 c 를 따로 둡니다. 그 둘을 우리가 정해야 해요. h 는 14~18℃ · c 는 19~23℃ 다섯씩, 곧 25칸을 모두 돌려 검증 해(2023) 오차를 재 봅니다. 가장 작은 칸은 어디쯤일까요 — 난방은 몇 ℃ 아래부터, 냉방은 몇 ℃ 위부터일지 먼저 짐작해 보세요.

기본 코드 ①은 채워져 있습니다. 그대로 ▶ 실행해 격자 25칸의 검증 오차를 보고, 가장 작은 칸과 그보다 25MW 안쪽인 칸이 몇 개인지 적어 두세요.

도전 < 25 를 < 50 으로 바꿔 보세요. '골짜기'로 세는 칸이 늘어납니다 — 얼마나 안쪽까지를 '같다'고 볼 것인가도 우리가 정하는 것입니다.

탐구 격자를 range(14, 19) · range(19, 24) 로 잡은 것은 누가 정했을까요? 더 넓게 잡으면 무엇이 좋고 무엇이 나빠지는지, 시간과 믿음 두 가지로 적어 보세요.

가장 작은 칸 하나를 진실로 믿지 않는다. 25MW 안쪽 칸이 개나 되므로, 결론은 "난방 기준은 · 냉방 기준은 부근"처럼 쓴다.

확인 문제 3에 적어 제출 →

여기서 고른 두 기준을 사람이 손으로 코드 ②의 HB, CB 에 옮겨 적습니다 — 그 옮겨 적는 일이 곧 설계 결정입니다.

2

설계 넷을 검증으로 겨루고, 시험지를 한 번 연다

9분

이제 A · B · C · D 를 훈련 다섯 해로 맞추고 검증 해(2023)로 겨룹니다. 그리고 고른 하나를 2018~2023 으로 다시 맞춰 시험 두 해를 한 번 엽니다. 검증으로 고른 설계가 시험에서도 1등일까요? 그리고 나머지 셋의 순서는 그대로일까요?

기본 빈칸 셋을 채우고 ▶ 실행합니다. 빈칸 ①은 회귀가 놓친 몫(잔차), 빈칸 ②는 두 몫을 합치는 자리, 빈칸 ③은 무엇을 보고 고르는가입니다. 15번째 줄 HB, CB 에는 미션 ①에서 고른 두 기준이 들어 있습니다.

출력이 두 덩이입니다. 먼저 [2]만 읽고 어느 설계를 고를지 정한 뒤에 [3]을 읽으세요 — 그것이 실제로 일이 일어나는 차례입니다.

도전 잔차 나무에게도 연도를 줘 보세요 — 잔차재료 줄 끝에 , "연도" 를 더합니다. 검증에서 D 가 2,376(치우침 −755)으로 나빠져 고르는 것이 B 로 바뀌고, 시험에서도 D 는 2,651(치우침 −1,431)이 됩니다. 추세를 둘이 함께 맡으면 서로를 방해합니다.

틀린 길 고른것 = min(검증점수, …) 아래에 이 네 줄을 붙여 보세요 — 여는 장면의 학생이 한 일입니다.

검증점수 = {}  # 틀린 길: 시험을 보고 고른다
for k in "ABCD":
    검증점수[k] = mean_absolute_error(y[시험], 설계(k, 훈련검증)(표[시험]))
고른것 = min(검증점수, key=검증점수.get)

★ 는 그대로 D 에 붙습니다(이 자료에서는 1등이 같아서예요). 대신 검증 순위 줄이 시험 순위와 똑같아집니다 — 부풀려진 것은 순위가 아니라 숫자라는 것이 여기서 보입니다.

탐구 설계 D 는 회귀 A 에 잔차 나무를 붙인 것입니다. 회귀 B 에 붙이면 어떻게 될까요? 어느 쪽이 더 나을지 먼저 예측한 뒤 t, h, c = 표[행], 18, 18 줄을 고쳐 확인해 보세요.

검증 1등과 시험 1등이 같았다. 그렇다고 고는 말할 수 없다 — 같은 표의 위가 통째로 뒤집혔고, 그 까닭은 칸에 있다.

확인 문제 2에 적어 제출 →

"순위가 다르니 바꿔도 되나?" — 그 물음에는 다음 미션의 실험실을 거친 뒤에 답합니다.

3

시험지 위에서 한 번 더 다듬으면 — 다시 오는 빨강

8분

이제 여는 장면의 학생이 되어 봅니다. 검증으로 고른 설계 D 의 2024년 시험 성적을 띄워 놓고, 주마다 틀린 만큼을 그 자리에서 보정하는 것이지요. 이 보정을 오늘은 반창고라고 부릅니다 — 반창고 = 그 주 잔차(실제 − 예측)의 중앙값을 그 주 모든 날의 예측에 더하는 일입니다.

2024 오차는 당연히 줄겠지요. 그런데 2025 에도 그 반창고가 붙어 있을까요? 대부분은 "떨어진다"에 겁니다 — 그해 날씨와 달력을 외운 것일 테니까요. 실험실에서 직접 확인합니다.

아래 실험실에서 빨간 주를 톡 해 반창고를 붙이고, 바늘로 2025 오차를 걸고, 딱 한 번 이듬해를 엽니다. 도전 셋을 풀면 카드가 스스로 닫힙니다.

시뮬레이터

다시 오는 빨강

시험지에 붙인 반창고는 이듬해에도 붙어 있을까

  1. 1주황 칸(모자란 주)을 톡 해 반창고를 붙인다 — 계기판이 바로 다시 잰다
  2. 2바늘로 '반창고 그대로 2025 오차'를 걸고, 다시 올 주에 동그라미를 친 뒤 잠근다
  3. 3[2025 열기]는 한 번뿐 — 연 뒤에 무엇을 고칠 수 있는지 본다
설계 — 어느 판의 시험지인가
손에 쥔 것
한꺼번에 붙이기
내 예측 — 잠그면 채점이 시작된다
처방 카드 — 검증 2023 오차로만 고른다
설계 D · 2024 시험지빨간 주를 톡 해 반창고를 붙인다

모자란 주(주황) = 실제가 예측보다 적었다 — 판 이름의 ‘빨강’이 이 칸이다 · 넘친 주(청록) = 실제가 예측보다 많았다 · 반창고 = 그 주 잔차(실제 − 예측)의 중앙값을 그 주 모든 날의 예측에 더하는 일

다시 옴(▲) = 2024 반창고와 2025 그 주 잔차의 중앙값이 같은 쪽(둘 다 + 이거나 둘 다 −) · 안 옴(—) = 다른 쪽 · 판정 — 이듬해에도 다시 오면 그것은 흠집이 아니라 설계의 약점이고, 고치는 자리는 시험지가 아니라 검증 해의 설계다

2024 오차2,359MW
붙인 반창고0/52
2025 오차—
같은 쪽인 주—
내 바늘 오차—
2025 에 남은 몫—
도전 1

바늘 — 52장을 다 붙인 뒤 '반창고 그대로 2025 오차'를 ±150MW 안으로 맞혀 잠그고 이듬해를 열어라.

도전 2

동그라미 — '다시 올 주'에 다섯 칸 이상 동그라미를 치고 잠가라. 그 가운데 8할 이상이 실제로 다시 왔는가?

도전 3

처방 — 검증 해 띠를 내린 뒤 처방 카드 셋을 모두 열어 보고, 검증 2023 오차만으로 하나를 골라라.

자료: 설계 A · B · D 를 코드 ②와 똑같이 맞춰(검증 띠는 2018~2023, 시험 두 해는 2018~2023) 날마다 낸 예측의 잔차 — 2023 · 2024 · 2025 세 해 1,096일을 쪽 안에 실었다(Pyodide 0.26.4, power_weather_daily.csv). 주는 1월 1일부터 7일씩 끊고 남는 하루 이틀은 52주에 넣는다 — 코드 ③의 주 와 같은 규칙이다. 처방 카드 셋의 검증 오차도 같은 방식으로 잰 값이다 — 셋 다 회귀의 재료를 칸 하나 더하거나 빼고 검증 해(2023)로만 다시 잰 것이다.

기본 실험실이 낸 숫자를 파이썬으로 다시 냅니다. 코드 ③은 채워져 있어요 — 그대로 ▶ 실행해 계기판의 네 숫자와 같은지 맞대어 보세요.

도전 median 을 mean 으로 바꿔 보세요. 반창고를 그 주의 평균으로 뜨는 것입니다 — 평균 절대 오차를 줄이는 데는 중앙값이 더 알맞다는 것을 숫자로 확인할 수 있어요.

탐구 주(7일) 대신 달로 반창고를 떠 보세요(표["주"] → 표["월"]). 조각이 굵어지면 2024 오차는 덜 줄어듭니다. 대신 이듬해에 남는 몫은 어떻게 될까요?

반창고는 이듬해에도 . 그러니 그 빨강은 2024 만의 흠집이 아니라 이다. 그래도 을 성적으로 보고할 수는 없다 — 이기 때문이다. 고칠 곳은 시험지가 아니라 이다.

규칙 카드 두 줄을 확인 문제 6의 '시험 결과' 칸 옆에 옮겨 적기 →
4

같은 물음에 네 답 — 그리고 설계 결정 기록

10분

우리가 처음부터 답하려던 물음은 "한여름 평일, 기온이 1℃ 오르면 수요는 몇 MW 늘어나나"였습니다. 설계 넷에게 똑같이 물어봅니다. 평균은 비슷할까요? 그리고 나무(C)에게 물으면 날마다 같은 답이 나올까요?

기본 코드 ④는 채워져 있습니다. 하루마다 기온을 ±1℃ 흔들어 예측 차이를 반으로 나눈 값이 그날의 '1℃ 의 답'이에요. 네 설계의 평균 · 가장 작은 날 · 가장 큰 날 · 답이 0인 날을 견주세요.

기본 코드 ⑤는 회귀 A 가 놓친 몫(잔차)과 잔차 나무가 더해 준 보정을 기온에 대고 함께 그립니다. 표의 여섯 구간에서 어디가 가장 큰지 찾고, 그림에서 계단이 그 자리를 어떻게 메우는지 보세요.

도전 코드 ⑤의 구간 경계 [-15, 0, 8, 15, 19, 26, 40] 에서 가운데 두 값은 미션 ①이 고른 두 기준입니다. 이 둘을 18, 18 로 바꾸면 쉬는 구간이 사라져 가장 큰 잔차가 어느 칸으로 옮겨 가는지 보세요.

탐구 잔차 그림은 "무엇을 고칠지"를 가리키는 그림입니다. 오늘 그림이 가리킨 자리를 설계 B 와 설계 D 는 각각 어떻게 메웠나요? 한 줄씩 적어 보세요.

'가장 적절한 모델링'은 오차 하나로 고르지 않는다. 설계 넷의 평균은 은데 가 서로 달랐고, 그래서 보고서의 결론 문장도 달라진다.

확인 문제 6 · 설계 결정 기록을 채워 제출 →

기록의 여섯 칸 가운데 둘은 이미 있습니다 — 첫 칸은 여는 장면에 적어 둔 두 줄을 옮기고, '고르는 규칙' 칸은 교과서가 인쇄해 두었어요. 여러분이 새로 쓰는 것은 넷입니다.

체크포인트 3

설계 넷을 지어 검증으로 고르고, 시험을 한 번 열고, 시험지 위에서 다듬는 일을 직접 저질러 보고, 고칠 자리를 검증 해의 설계에서 찾았다.

다음 정거장 · 정리·확인 10분 →
4
정리·확인 · 10분

오늘의 탐험 일지

  1. 찾은 것

    '가장 적절한 모델'은 둘 중 하나를 고르는 것이 아니라 약점을 겨눈 설계를 짓는 것이었다 — 전처리를 바꾸거나(B), 방법을 잇거나(D).

  2. 도구의 한계

    검증 오차는 고르는 근거일 뿐 좋다는 증명이 아니다. 검증 1등이 시험 1등이어도 2~4위는 통째로 뒤집혔다. 한 해로 매긴 순위는 다음 두 해에서 그대로 서지 않는다.

  3. 보고의 규칙

    시험은 맨 끝에 한 번. 연 뒤에 고친 것은 새 자료로만 판정한다. 그리고 해마다 다시 오는 잔차만 약점이며, 고치는 자리는 시험지가 아니라 검증 해의 설계다.

4-1오늘 어긋난 네 쌍

같을 것 같았던 두 숫자가 어긋난 자리마다 오늘의 교훈이 하나씩 들어 있습니다.

같은 설계 D · 검증 해와 시험 두 해
2,158검증 2023(MW)
→
2,490시험 2024~2025(MW)
2,158검증 20232,490시험 24~25

고를 때 본 숫자가 그대로 성적이 되지 않는다 — 검증 오차는 고르는 근거일 뿐이다.

결정나무 C · 검증 등수와 시험 등수
4검증 2023 등수
vs
2시험 등수
D1위B2위A3위C4위D1위C2위B3위A4위검증 2023시험 24~25

1등만 같았다 — 2~4위는 통째로 뒤집혔다. 계단은 추세를 잇지 않아 덜 넘쳤다.

한여름 1℃ 당 · 가장 크게 답한 날
+1,372설계 A(MW)
vs
+3,667설계 C(MW)
+1,372설계 A+3,667설계 C

평균은 +1,372 와 +1,361 로 거의 같다. 날마다의 모양이 다를 뿐이다.

시험지에 붙인 반창고 · 그해와 이듬해
8902024 에서 번 몫(MW)
→
4662025 에 남은 몫(MW)
2,3592024 전1,4692024 후2,6222025 전2,1562025 후

반이나 남았다 — 다시 오는 빨강은 흠집이 아니라 설계의 약점이다.

자료: 네 쌍의 숫자는 모두 코드 ② · ③ · ④ 가 찍는 값이다(Pyodide 0.26.4 실측). 2024 에서 번 몫 890 = 2,359 − 1,469 · 2025 에 남은 몫 466 = 2,622 − 2,156.

✍️ 문제마다 답을 쓰고 제출하기를 누르세요. 제출하면 모범 답안이 열리고, 제출한 답은 선생님께 전달됩니다.

1. 설계 D 에서 잔차를 배우는 나무에게 '연도'를 주지 않은 까닭을 쓰시오. (도전에서 연도를 줘 봤다면 그때 숫자가 어떻게 달라졌는지도 함께 적으시오.)
📖 모범 답안

해마다 느는 몫(추세)은 회귀가 직선으로 맡기로 했기 때문이다. 설계는 방법마다 잘하는 일을 나눠 맡기는 것이고, 잔차 나무의 몫은 '회귀가 굽은 자리에서 놓친 몫'이지 추세가 아니다.

나무에게 연도를 주면 훈련 기간 밖의 해를 훈련 마지막 해처럼 다루게 된다. Ⅳ-6 에서 본 나무의 성질(계단은 본 적 없는 값을 모른다)이 되살아나, 추세를 회귀와 나무가 함께 잡으려다 서로를 방해한다.

도전으로 확인하면 검증 오차가 D 2,158 → 2,376(치우침 +232 → −755)으로 나빠져 고르는 설계가 B 로 바뀌고, 시험에서도 D 는 2,490 → 2,651(치우침 −1,217 → −1,431)이 된다.

2. 검증으로 고른 D 가 시험에서도 1등이었다(2,490MW). 그러면 "검증이 시험을 맞혔으니 앞으로는 시험지를 먼저 열어 봐도 되겠다"고 할 수 있는가? 같은 표의 다른 숫자로 답하시오.
📖 모범 답안

안 된다. 1등이 같았던 것은 이번 결과이지 규칙이 아니다. 같은 표에서 2~4위는 통째로 뒤집혔다 — 검증 순위는 D > B > A > C 인데 시험 순위는 D > C > B > A 다. 검증에서 꼴찌였던 C(결정나무, 2,536)가 시험에서는 2등(2,635)이다. 한 해(2023)로 매긴 순위는 다음 두 해에서 그대로 서지 않는다.

까닭은 치우침 칸에 있다. 연도 칸을 가진 회귀 셋(A · B · D)이 2024~2025 를 −1,183 ~ −1,217MW 만큼 높게 보는 동안, 계단은 추세를 잇지 않아 −358 에 그쳤다. 검증 해 한 해만으로는 이 차이가 드러나지 않았다.

그리고 더 근본적으로, 시험 결과를 보고 고르면 시험이 검증이 된다. 그 성적은 부풀려진 값이라 바깥에 보고할 수 없다(틀린 길로 확인하면 검증 순위 줄이 시험 순위와 똑같아진다). 고치고 싶으면 새로 남겨 둔 자료로 다시 시험한다.

3. (h, c) 격자에서 가장 작은 칸이 h = 15 · c = 19 였다. "우리 자료에서 냉방은 19℃ 부터 시작된다"고 써도 되는가? 무엇을 함께 적어야 하는가?
📖 모범 답안

그대로 쓰면 안 된다. 가장 작은 칸(2,343MW)보다 25MW 안쪽인 칸이 다섯이고(h 14~16 × c 19~20), 그 다섯이 골짜기를 이룬다. 그러니 한 칸이 아니라 "난방 기준은 14~16℃ · 냉방 기준은 19~20℃ 부근"처럼 폭으로 쓴다.

다만 평평한 것은 골짜기 안쪽뿐이다. 격자에서 가장 큰 칸(h 18 · c 23)은 2,809MW 로 골짜기와 460MW 넘게 차이 난다 — "어느 값이나 비슷하다"는 뜻이 아니다.

그리고 이 값은 전국 다섯 지점 평균 기온 기준의 전국 수요에서 나온 것이지, 한 건물·한 사람이 냉방을 켜는 온도가 아니다. 보고할 때는 그 범위도 함께 적는다.

4. 같은 물음 '한여름 1℃ 당'에 설계 A 는 어느 날이나 +1,372MW 인데 B 는 +934 ~ +1,335MW 로 날마다 다르다. 평균은 비슷한데(A +1,372 · B +1,333) 왜 B 만 날마다 달라지는지 도일 기준과 이어 설명하시오.
📖 모범 답안

A 는 기준이 18℃ 한 점이라 그 위는 모두 하나의 냉방도일 직선 위에 있다. 한여름 평일은 거의 모두 18℃ 위이므로, 기온을 ±1℃ 흔들어도 같은 직선의 같은 기울기가 나온다 — 그래서 어느 날이나 +1,372 다.

B 는 난방 기준 15℃ · 냉방 기준 19℃ 로 사이에 쉬는 구간이 있다. 기온이 19℃ 언저리인 날은 ±1℃ 가 그 꺾인 자리를 넘는다 — 한쪽은 냉방도일이 쌓이고 다른 쪽은 0 이라, 차이를 2 로 나누면 기울기의 절반쯤만 나온다(가장 작은 날 +934).

곧 결론 숫자만이 아니라 '날마다 같은 답인가'도 전처리 선택에서 온다. 보고서에 평균만 적으면 이 차이가 사라진다.

5. 결정나무(C)의 '1℃ 당' 답은 평균 +1,361MW 인데 답이 0인 날이 33%, 가장 큰 날은 +3,667MW 다. 이런 모양이 생기는 까닭과, 보고서에 나무의 답을 쓸 때 덧붙일 말을 쓰시오.
📖 모범 답안

나무는 기온을 몇 곳에서만 잘라 계단을 만든다. ±1℃ 가 자르는 곳을 넘지 않으면 두 예측이 같은 계단 위에 있어 차이가 0 이고, 넘으면 계단 높이 전체가 한꺼번에 더해져 아주 큰 값이 된다. 그래서 답이 0인 날과 +3,667 인 날이 함께 생긴다.

보고서에는 이렇게 덧붙인다 — "평균으로는 약 1,360MW 이지만 날에 따라 0 ~ 3,700MW 로 들쭉날쭉하다. 계단 모델의 성질이다."

덧붙여, '1℃ 당 몇 MW'라는 한 문장을 원하는 물음이라면 계단 모델은 애초에 그 문장을 주기 어렵다는 것까지 적으면 좋다. 물음이 방법을 고르는 잣대에 들어간다.

6. 설계 결정 기록 — 오늘 지은 것을 한 장으로 남깁니다. 아래 표에서 첫 칸은 여는 장면에 적어 둔 두 줄을 옮기고, '고르는 규칙' 칸은 교과서가 인쇄해 두었습니다. 여러분이 새로 쓰는 것은 넷입니다. 표를 채운 뒤, 아래 답 칸에는 우리 팀 프로젝트에서 검증 자료와 시험 자료를 어떻게 나눌지(시간 순서가 없는 설문 자료라면 어떻게 할지도 함께) 쓰시오.
칸적을 것
① 후보 설계와
메우려는 약점
② 고르는 규칙
교과서가 인쇄해 둔 칸
검증 해(2023)의 평균 절대 오차가 가장 작은 설계를 고른다. 비슷하면 쓴 숫자가 적은 쪽을 고른다. 고른 뒤에는 시험 결과를 보고 바꾸지 않는다.
③ 고른 설계와 까닭
검증 숫자로
④ 시험 결과
한 번 · 규칙 카드 두 줄과 함께
⑤ 그 설계로 쓴
결론 문장
⑥ 버린 설계와
버린 까닭
📖 모범 답안

표(예) — ① "회귀가 쉬는 구간을 18℃ 한 점으로 눌렀다 → 난방 기준과 냉방 기준을 따로 둔다(B)" · "회귀의 직선이 끊긴 추세에 넘쳤다 / 나무는 본 적 없는 높이를 모른다 → 추세는 회귀가, 굽은 자리는 나무가 맡게 잇는다(D)".

③ "설계 D — 검증 2023 오차 2,158MW 로 넷 가운데 가장 작았다(B 2,343 · A 2,387 · C 2,536). 치우침도 +232 로 가장 작다."

④ "시험 2024~2025 오차 2,490MW · 치우침 −1,217MW. 한 번만 열었다. 규칙 카드 — '연 뒤에 고친 것은 새 자료로만 판정한다' · '해마다 다시 오는 잔차만 약점이다 — 고치는 곳은 검증 해의 설계'. 실험실에서 2024 시험지에 주마다 반창고를 붙이면 2,359 → 1,469 로 떨어지고 2025 에서도 2,622 → 2,156 으로 남지만(같은 쪽인 주 79%), 시험지를 보고 고친 값이므로 성적으로 보고하지 않는다."

⑤ "한여름 평일 기온 1℃ 당 수요는 약 1,363MW 늘어난다(설계 D · 260일 평균). 다만 날에 따라 +527 ~ +1,372MW 로 다르다. 난방 기준은 14~16℃ · 냉방 기준은 19~20℃ 부근이다."

⑥ "A — 쉬는 구간을 한 점으로 눌러 검증 2,387 로 뒤졌다. B — 전처리는 고쳤지만 굽은 자리가 남아 2,343. C — 검증 2,536 으로 꼴찌였고 '1℃ 당'에 날마다 다른 답(0인 날 33%)을 주어 우리 물음에 맞지 않는다. 다만 C 는 시험에서 2등이었다 — 버린 까닭이 '나쁜 모델이어서'가 아니라 '이 물음과 이 잣대에서 졌기 때문'임을 적어 둔다."

우리 팀의 나누기 — 시간이 있는 자료면 마지막 기간을 시험, 그 앞 기간을 검증으로 한다. 설문처럼 시간이 없으면 무작위로 나누되 같은 반·같은 사람이 두 쪽에 갈리지 않게 묶어서 나눈다. 어느 경우든 시험은 맨 끝에 한 번 연다. 한 해뿐인 자료라면 달마다 1~20일 훈련 · 21~25일 검증 · 26일~말일 시험처럼 시간으로 세 조각을 내되, 이웃한 날이 조각 사이에 붙어 있어 미래 시험보다 후하다는 것을 기록에 적는다.

+
더 알아보기

설계 밖의 이야기 셋

① 실제 점과 첫 모델② 첫 모델이 놓친 몫 — 잔차③ 잔차를 배운 계단④ 둘의 합 — 첫 모델 + 계단걸음을 쌓을수록 훈련 점에 붙는다 — 어디서 멈출지가 이 방법의 물음이다.
방법 더 깊이

잔차에 배운다 — 부스팅

오늘 설계 D 가 한 일을 한 문장으로 줄이면 "앞 모델이 틀린 몫을 다음 모델이 배운다"입니다. 그런데 잔차 나무를 붙이고 나면 또 잔차가 남습니다. 그 남은 잔차를 세 번째 모델이 배우고, 그 합이 또 남긴 잔차를 네 번째가 배우고… 이렇게 걸음을 쌓는 방식을 부스팅이라고 부릅니다. 처음에는 분류 문제에서 에이다부스트라는 이름으로 나왔고, 뒤에 회귀까지 아우르는 그레이디언트 부스팅으로 정리됐습니다. 오늘 우리가 손으로 지은 것은 그 첫 걸음 하나예요.

걸음을 많이 쌓을수록 훈련 자료에는 잘 붙습니다. 그래서 이 방법의 진짜 물음은 "몇 걸음에서 멈출 것인가"가 됩니다. 보통은 걸음마다 잔차를 조금씩만 반영하도록 보폭을 줄이고, 걸음 수와 보폭을 검증 자료로 고릅니다 — 오늘 우리가 검증 해로 설계를 고른 것과 똑같은 자리지요. GradientBoostingRegressor 같은 도구는 이 되풀이를 자동으로 해 주지만, 몇 걸음을 어떤 보폭으로 갔는지는 우리가 정해 주고 기록해야 하는 값입니다.

도해: 부스팅의 네 걸음을 보이는 모식도다(실제 측정값이 아니라 원리를 보이는 그림). 오늘 자료로 그린 실제 그림은 코드 ⑤의 잔차 그림이다.

건물 한 채의 달마다 에너지 — 기온에 따라 세 토막난방 기준점냉방 기준점왼팔 — 추울수록 는다평평한 바닥 — 쉬는 구간오른팔 — 더울수록 는다0102030바깥 기온(℃)에너지기준점 둘을 찾는 일이 곧 설계 B 가 격자로 한 일이다.
현장

난방과 냉방 사이 — 건물 에너지의 변화점 모형

오늘 설계 B 가 한 일 — 난방 기준과 냉방 기준을 따로 두고 사이를 쉬게 하는 것 — 은 우리가 처음 지어낸 것이 아닙니다. 건물 에너지를 다루는 현장에서는 기온과 에너지의 관계를 '왼팔 · 평평한 바닥 · 오른팔' 세 토막으로 맞추는 방법을 오래 써 왔고, 이를 변화점 모형이라고 부릅니다. 꺾이는 두 자리가 곧 난방 기준점과 냉방 기준점이에요.

왜 평평한 바닥이 생길까요. 건물은 사람과 조명과 기계가 늘 열을 내므로, 바깥이 적당히 서늘하면 난방도 냉방도 켜지 않는 구간이 생깁니다. 이 구간의 에너지는 기온이 아니라 그 건물이 늘 쓰는 기본량이지요. 그래서 바닥의 높이는 '기본 부하', 두 팔의 기울기는 '기온에 대한 민감도'로 읽습니다.

기준점을 정하는 방법도 오늘과 같습니다 — 여러 후보를 다 넣어 보고 가장 잘 맞는 자리를 고르되, 골짜기가 평평하면 한 점이 아니라 범위로 보고합니다. 우리가 격자 25칸을 돌려 "난방 14~16℃ · 냉방 19~20℃ 부근"이라고 쓴 것과 같은 손놀림이에요. 다만 우리는 전국 수요를 다뤘고 현장은 건물 한 채를 다루므로, 기준점의 값 자체를 서로 옮겨 쓸 수는 없습니다.

도해: 건물 한 채의 기온–에너지 관계를 보이는 모식도다(실제 건물의 측정값이 아니다). 오늘 자료의 실제 골짜기는 코드 ①의 격자 표에서 볼 수 있다.

공사 뒤의 절감량은 '재는' 것이 아니라 '지어서 빼는' 것이다공사 전 자료로 만든 모델을 공사 뒤로 이어 그린다 — 그 틈이 절감량이다.공사 전 — 실제로 쓴 양모델이 말하는'공사를 안 했다면'실제로 쓴 양절감량−2해−1해공사+1해모델을 어떻게 설계했느냐가 곧 정산 금액이 된다 —그래서 이 분야는 설계를 계약서에 적는다.
진로

'없었을 사용량'을 재는 사람들

건물이나 공장의 에너지를 아껴 주는 회사가 있습니다. 창문을 바꾸고 설비를 갈고 제어를 손보는 공사를 한 뒤, 얼마나 아꼈는지에 따라 돈을 받지요. 그런데 여기서 이상한 일이 생깁니다 — '아낀 양'은 잴 수가 없습니다. 공사를 안 했을 때의 사용량은 이 세상에 없으니까요.

그래서 이 사람들이 하는 일이 바로 오늘 우리가 한 일입니다. 공사 전의 기온·요일·가동 시간과 에너지로 모델을 만들고, 그 모델을 공사 뒤로 이어 그려 "공사를 안 했다면 이만큼 썼을 것"을 계산합니다. 그 선과 실제 사용량 사이의 틈이 절감량이고, 그 틈이 곧 정산 금액이 됩니다. 에너지 절약 사업자 · 에너지 진단사 · 건물 에너지 관리 담당자가 이 일을 합니다.

그러니 이 분야에서는 모델 설계가 곧 계약 조건입니다. 어떤 자료로 몇 달을 학습할지, 어떤 변수를 넣을지, 얼마나 맞아야 그 모델을 쓸 수 있다고 볼지를 공사 전에 미리 문서로 정해 둡니다. 오늘 우리가 "검증으로 고르고 시험은 한 번, 고른 뒤에는 바꾸지 않는다"를 미리 적어 둔 것과 같은 까닭이에요 — 결과를 본 뒤에 설계를 고칠 수 있다면, 그 숫자는 계산이 아니라 협상이 되어 버립니다.

도해: 공사 전 모델선을 공사 뒤로 이어 그리고 실제선과의 틈을 칠한 모식도다(실제 사업의 측정값이 아니다).