교육자용 정답

학습자라면 각 편의 확인 문제를 먼저 풀어 본 뒤 확인하세요. 강사·튜터는 편마다 확인 문제의 정답과 채점 기준, Colab·실험 과제의 예시 답안을 참고해 수업에 맞게 조정해 쓰면 됩니다. 예시 결과의 숫자는 scikit-learn 1.8(CPU) 또는 각 실험실의 기본 데이터에서 실행한 값입니다.

1

분류 모델은 모두 하나의 함수다

1편 페이지의 교육자 안내로 돌아가기

확인 문제 정답과 채점 기준 (16문제, 문제당 2점)

규칙 기반 분류

문제 1 규칙 기반 분류기가 학습 데이터에서 새 패턴을 발견하면 어떻게 되나요?

  1. 임계값을 스스로 고친다
  2. 아무것도 바뀌지 않는다 ✔ 정답
  3. 가중치를 경사하강법으로 갱신한다

해설 규칙 기반 모델에는 학습 단계가 없습니다. 사람이 규칙을 고치기 전까지 판단은 그대로입니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

문제 2 규칙이 "x₁ > 0.5 그리고 x₂ > 0.4 → A, 그 외 B"일 때 x = (0.6, 0.2)의 답은?

  1. A
  2. B ✔ 정답

해설 x₁ > 0.5는 참이지만 x₂ > 0.4가 거짓이라, "그리고" 조건 전체가 거짓이 되어 기본값 B입니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

K-최근접 이웃

문제 3 k = 1이면 경계는 어떻게 되기 쉬운가요?

  1. 매끄러워진다
  2. 점 하나하나에 휘둘려 들쭉날쭉해진다 ✔ 정답
  3. 직선이 된다

해설 가장 가까운 한 점만 보므로 잡음 섞인 점 하나가 주변 판단을 통째로 바꿉니다. 과적합의 전형입니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

문제 4 키(cm)와 몸무게(kg)를 그대로 넣고 KNN을 쓰면 생기는 문제는?

  1. 단위가 큰 특성이 거리를 좌우한다 ✔ 정답
  2. 학습 시간이 길어진다
  3. 문제없다

해설 거리는 숫자 크기에 민감합니다. 표준화 같은 스케일링으로 특성의 범위를 맞춰야 합니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

의사결정나무

문제 5 의사결정나무의 결정 경계가 항상 축에 평행한 이유는?

  1. 질문이 "한 특성 ≤ 값" 형태라서 ✔ 정답
  2. 데이터가 원래 그렇게 생겨서
  3. 지니 불순도가 직선만 만들어서

해설 한 번에 한 특성만 보고 자르므로 경계선은 x₁ = t 또는 x₂ = t 꼴, 즉 축에 평행한 선입니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

문제 6 칸에 A 6개, B 4개가 있을 때 지니 불순도는?

  1. 0.24
  2. 0.48 ✔ 정답
  3. 0.52

해설 1 − (0.6² + 0.4²) = 1 − (0.36 + 0.16) = 0.48입니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

퍼셉트론

문제 7 퍼셉트론이 예측을 맞혔을 때 가중치는?

  1. 조금 커진다
  2. 조금 작아진다
  3. 바뀌지 않는다 ✔ 정답

해설 맞히면 y − ŷ = 0이므로 w ← w + 0 입니다. 틀린 예시에서만 배웁니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

문제 8 퍼셉트론 하나로 절대 풀 수 없는 문제는?

  1. 직선으로 나뉘는 두 무리
  2. XOR처럼 직선으로 나눌 수 없는 문제 ✔ 정답
  3. 클래스가 2개인 문제

해설 결정 경계가 직선 하나뿐이라 XOR처럼 대각선 방향으로 섞인 데이터는 나눌 수 없습니다. 층을 쌓아야 풀립니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

로지스틱 회귀

문제 9 z = 0일 때 σ(z)는?

  1. 0
  2. 0.5 ✔ 정답
  3. 1

해설 e⁰ = 1이므로 1/(1+1) = 0.5입니다. 그래서 z = 0인 곳이 결정 경계가 됩니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

문제 10 로지스틱 회귀의 결정 경계 모양은?

  1. 직선 ✔ 정답
  2. 원
  3. 자유 곡선

해설 확률이 0.5가 되는 곳은 w·x + b = 0이고, 이는 직선(고차원에서는 초평면)입니다. 확률 출력이 있을 뿐 경계는 퍼셉트론과 같은 모양입니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

선형 서포트 벡터 머신

문제 11 SVM의 경계를 결정하는 점은?

  1. 모든 학습 점
  2. 도로 가장자리에 닿거나 안으로 들어온 서포트 벡터 ✔ 정답
  3. 가장 멀리 있는 점

해설 목적 함수에 영향을 주는 것은 마진에 닿거나 침범한 점뿐입니다. 멀리 있는 점은 지워도 경계가 같습니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

문제 12 C를 크게 하면?

  1. 도로가 넓어지고 침범을 많이 허용한다
  2. 도로가 좁아지더라도 침범을 줄이려 한다 ✔ 정답
  3. 변화 없다

해설 C는 벌점의 무게입니다. 크면 틀리는 것을 싫어해 도로를 좁히고, 작으면 넓은 도로를 위해 침범을 허용합니다. 아래 C 조절 그림에서 확인할 수 있습니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

커널 서포트 벡터 분류기

문제 13 커널 트릭의 핵심은?

  1. φ(x)를 직접 계산해 저장한다
  2. φ를 계산하지 않고 두 점의 유사도 K만 계산한다 ✔ 정답
  3. 데이터 차원을 줄인다

해설 고차원 좌표 대신 K(xᵢ, x)만 계산해도 고차원에서의 내적과 같은 결과를 얻습니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

문제 14 RBF 커널에서 γ를 아주 크게 하면?

  1. 경계가 부드러운 직선에 가까워진다
  2. 점마다 좁은 언덕이 생겨 경계가 학습 점에 딱 붙는다(과적합) ✔ 정답
  3. 아무 변화 없다

해설 언덕이 좁고 뾰족해져 각 점 주변만 따로 칠하게 됩니다. 위 그림에서 γ를 60으로 올려 확인해 보세요.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

딥러닝: 다층 퍼셉트론

문제 15 은닉층에서 활성화 함수 g를 모두 빼면?

  1. 표현력이 더 좋아진다
  2. 층을 아무리 쌓아도 일차식 하나(직선 경계)와 같아진다 ✔ 정답
  3. 학습이 빨라질 뿐 결과는 같다

해설 W₃(W₂(W₁x)) = (W₃W₂W₁)x이므로 하나의 선형 변환으로 합쳐집니다. 꺾는 함수가 있어야 곡선 경계가 생깁니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

문제 16 딥러닝의 출력층(소프트맥스)은 어떤 모델과 수식이 같나요?

  1. KNN
  2. 로지스틱(소프트맥스) 회귀 ✔ 정답
  3. 의사결정나무

해설 마지막 층은 입력이 h(x)라는 점만 다를 뿐 소프트맥스 회귀와 같은 식입니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

Colab·실험 과제 예시 답안

기본 과제 · KNN의 k 바꾸기

1편 10장 "물고기 7종으로 모델 비교하기" 코드에서 KNN의 k를 1, 5, 15로 바꿔 5겹 교차검증 정확도를 비교하라.

for k in [1, 5, 15]:
    knn = make_pipeline(StandardScaler(), KNeighborsClassifier(n_neighbors=k))
    s = cross_val_score(knn, X, y, cv=cv, groups=groups)   # 같은 원본 묶음은 한쪽에만
    print(f"k={k:<3} {s.mean():.3f} ± {s.std():.3f}")

예시 결과 (scikit-learn 1.8, CPU): k = 1 → 0.920 ± 0.019, k = 5 → 0.900 ± 0.033, k = 15 → 0.871 ± 0.035.

예시 해석 이 데이터에서는 k가 작을수록 점수가 높았다. 종 사이 경계가 촘촘해 가까운 이웃 하나가 가장 믿을 만하기 때문이다. 다만 k = 1과 k = 5의 차이(0.02)는 표준편차와 비슷해 "확실히 낫다"고 말하기는 어렵다.

채점 포인트 ① groups=groups를 유지했는가 ② 평균과 표준편차를 함께 보고했는가 ③ 차이가 표준편차 안이면 단정하지 않았는가.

도전 과제 · 비율 특성 더하기

체형 비율(높이 ÷ 몸길이)과 꼬리 비율((length3 − length2) ÷ length2)을 만들어 로지스틱 회귀와 랜덤 포레스트를 다시 비교하라.

df["height_ratio"] = df["height_cm"] / df["length2_cm"]
df["tail_ratio"] = (df["length3_cm"] - df["length2_cm"]) / df["length2_cm"]
cols = FEATS + ["height_ratio", "tail_ratio"]

예시 결과 특성 6개일 때 로지스틱 회귀 0.899 ± 0.036, 랜덤 포레스트 0.909 ± 0.034 → 특성 8개일 때 0.980 ± 0.014, 0.984 ± 0.014.

채점 포인트 ① 비율을 행 단위로 계산했는가 ② 같은 교차검증 설정으로 비교했는가 ③ "모델 교체보다 특성 추가의 효과가 컸다"는 결론을 수치로 뒷받침했는가.

2

모델을 바꾸기 전에, 성능을 올리는 네 가지 방법

2편 페이지의 교육자 안내로 돌아가기

확인 문제 정답과 채점 기준 (8문제, 문제당 2점)

데이터 분할의 오류 바로잡기

문제 1 소수 클래스가 5%인 데이터에서 "모두 다수 클래스"라고 답하는 모델의 정확도는?

  1. 약 50%
  2. 0%
  3. 약 95% ✔ 정답

해설 100개 중 95개를 맞히니 정확도 95%입니다. 하지만 소수 클래스는 하나도 못 찾았으므로 재현율은 0입니다. 불균형 데이터에서는 정확도만 보면 안 됩니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

문제 2 StandardScaler를 전체 데이터에 먼저 적용한 뒤 train_test_split을 하면?

  1. 시험 데이터의 평균·분산 정보가 학습에 섞이는 누수가 생긴다 ✔ 정답
  2. 아무 문제 없다
  3. 학습이 느려진다

해설 스케일러가 시험 데이터까지 보고 평균을 계산했기 때문입니다. 스케일러를 Pipeline에 넣어 교차검증의 각 학습 조각에서만 fit하게 해야 합니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

학습 과정 조정하기

문제 3 학습률을 너무 크게 잡으면 흔히 생기는 일은?

  1. 손실이 아주 천천히 줄어든다
  2. 골짜기를 건너뛰며 손실이 튀거나 발산한다 ✔ 정답
  3. 과소적합이 사라진다

해설 보폭이 너무 크면 바닥을 지나 반대편 벽으로 갑니다. 실제 결과에서도 η = 20은 손실이 폭발하며 정확도 0.500에 머물렀습니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

문제 4 데이터 1,000개, 배치 크기 50으로 3 에포크를 학습하면 가중치 갱신은 몇 번?

  1. 3번
  2. 20번
  3. 60번 ✔ 정답

해설 한 에포크에 1000 / 50 = 20번 갱신하고, 3 에포크이므로 60번입니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

변수 생성과 그 부작용 다스리기

문제 5 학습 정확도 1.00, 시험 정확도 0.86인 모델에 먼저 해 볼 조치는?

  1. 규제를 걸거나 특성을 줄인다 ✔ 정답
  2. 특성을 더 늘린다
  3. 학습률을 크게 한다

해설 학습과 시험의 차이가 큰 것은 과적합의 신호입니다. 규제(λ를 키움 = C를 줄임)나 특성 수 줄이기가 먼저입니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

문제 6 L1 규제가 L2와 달리 "특성 선택" 효과를 내는 이유는?

  1. 계산이 빨라서
  2. 계수를 모두 키우기 때문
  3. 일부 계수를 정확히 0으로 만들기 때문 ✔ 정답

해설 L1 벌점의 마름모 모양 때문에 최솟값이 축 위(한 계수가 0)에 걸리기 쉽습니다. 0이 된 계수의 특성은 사실상 쓰이지 않습니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

여러 알고리즘 혼합하기

문제 7 랜덤 포레스트와 가장 가까운 관계는?

  1. 보팅의 한 종류
  2. 배깅에 특성 무작위 선택을 더한 것 ✔ 정답
  3. 부스팅의 한 종류

해설 부트스트랩 표본으로 나무를 여러 그루 키우는 배깅에, 갈림길마다 특성을 일부만 보게 해서 나무끼리 덜 닮게 만든 것입니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

문제 8 부스팅이 다음 모델을 학습할 때 하는 일은?

  1. 앞 모델이 틀린 점의 가중치를 키운다 ✔ 정답
  2. 모든 점을 같은 무게로 다시 본다
  3. 앞 모델을 지운다

해설 앞 모델이 틀린 점에 더 큰 가중치를 줘서 다음 모델이 그 점을 맞히도록 보완합니다. 위 그림에서 점이 커지는 것이 그 가중치입니다.

배점 2점 · 정답을 고르고 이유를 한 문장으로 말하면 2점, 정답만 고르면 1점, 오답이어도 해설의 핵심 이유(괄호 안 낱말 수준)를 말하면 1점.

Colab·실험 과제 예시 답안

기본 과제 · 행 단위 vs 물고기 단위 분할

1장 "물고기로 보면" 코드를 실행해 세 모델의 행 단위·물고기 단위 교차검증 점수를 표로 정리하고, 차이가 가장 큰 모델과 그 이유를 쓰라.

예시 결과 KNN(k = 1) 0.959 → 0.920, 로지스틱 회귀 0.909 → 0.899, 의사결정나무 0.884 → 0.872 (원본 158마리만 쓰면 0.810, 0.804, 0.735).

예시 해석 KNN(k = 1)의 차이가 가장 크다. 시험 물고기와 거의 같은 "쌍둥이"가 학습 세트에 있으면 가장 가까운 한 마리를 베끼는 KNN이 그대로 정답을 맞히기 때문이다. 원본만 쓴 점수가 낮은 것은 누수 때문이 아니라 학습 데이터가 적어서다.

채점 포인트 ① 세 열을 모두 채웠는가 ② KNN을 꼽고 "쌍둥이·가장 가까운 이웃" 논리를 썼는가 ③ 원본만의 점수를 누수와 혼동하지 않았는가.

도전 과제 · L1 규제 강도와 특성 선택

3장 코드에서 L1 규제의 C를 10, 1, 0.1로 바꿔 남은 특성 수와 교차검증 점수를 비교하고, length2·length3 계수의 부호를 해석하라.

예시 결과 C = 10 → 남은 특성 6/9, 1.000 · C = 1 → 6/9, 0.997 · C = 0.1 → 3/9, 0.877. C가 10과 1일 때 length2와 length3에 크기는 비슷하고 부호가 반대인 큰 계수(약 −73과 +73, −32와 +33)가 붙는다.

예시 해석 두 계수의 합은 "length3 − length2", 즉 꼬리 길이다. 모델이 꼬리 길이라는 새 특성을 스스로 만들어 쓴 것이다. 규제를 너무 세게 하면(C = 0.1) 이 신호까지 지워져 점수가 떨어진다.

채점 포인트 ① C와 λ의 관계(C = 1/λ)를 바르게 썼는가 ② 반대 부호 계수를 꼬리 길이로 해석했는가 ③ 과한 규제의 손해를 수치로 보였는가.

3

물고기 분류 실험실 ① 모델 바꿔 보기

3편 페이지의 교육자 안내로 돌아가기

확인 문제

이 편은 확인 문제 대신 실험 과제로 평가한다.

Colab·실험 과제 예시 답안

실험실 숫자는 처음 열었을 때의 기본 데이터(다른 물고기로 다시 뽑기를 누르지 않은 상태, 측정 잡음 0.5%) 기준이다. 데이터를 바꾸면 숫자는 달라지지만 경향은 같아야 한다.

기본 과제 · 쉬운 짝과 어려운 짝

① "쉬운 짝"에서 규칙 기반을 뺀 일곱 모델을 차례로 눌러 시험 정확도를 기록하라. ② "어려운 짝"에서 로지스틱 회귀를 몸길이·높이로 학습한 뒤, 꼬리 비율을 켜고 다시 기록하라.

예시 결과 ① 일곱 모델 모두 1.000. ② 몸길이·높이: 학습 0.650, 시험 0.657 (기준선 0.651 근처) → 꼬리 비율 추가: 학습 0.978, 시험 1.000.

예시 해석 모델의 차이는 데이터가 어려울 때만 드러난다. 어려운 짝에서는 모델보다 특성이 결정적이다.

채점 포인트 ① 기준선과 비교했는가 ② 특성을 바꾼 것과 모델을 바꾼 것을 구분해 썼는가.

도전 과제 · 과적합 찾기

"어시장 4종"(몸길이·높이)에서 KNN의 k를 1과 5로, 의사결정나무의 깊이를 10과 4로 바꿔 학습·시험 정확도를 표로 만들고 과적합을 설명하라.

예시 결과 KNN k = 1: 학습 1.000 / 시험 0.824 · k = 5: 0.914 / 0.784 · 나무 깊이 10: 0.959 / 0.804 · 깊이 4: 0.893 / 0.804.

예시 해석 k = 1과 깊이 10은 학습 정확도가 시험보다 크게 높아 학습 데이터를 외운 상태다. 이 데이터에서는 시험 점수가 오히려 k = 1이 높게 나왔으므로 "복잡하면 늘 시험 점수가 떨어진다"고 단정하면 안 된다. 학습·시험 차이와 시험 점수를 함께 봐야 한다.

채점 포인트 ① 학습과 시험의 차이를 계산했는가 ② 예상과 다른 결과(k = 1의 높은 시험 점수)를 그대로 보고했는가.

4

물고기 분류 실험실 ② 방법 바꿔 보기

4편 페이지의 교육자 안내로 돌아가기

확인 문제

이 편은 확인 문제 대신 실험 과제로 평가한다.

Colab·실험 과제 예시 답안

실험실 숫자는 처음 열었을 때의 기본 데이터(다른 물고기로 다시 뽑기를 누르지 않은 상태, 측정 잡음 0.5%) 기준이다. 데이터를 바꾸면 숫자는 달라지지만 경향은 같아야 한다.

기본 과제 · 누수 실험

"① 누수: 행 단위 vs 물고기 단위" 빠른 비교를 로지스틱 회귀와 KNN을 각각 고정한 상태에서 실행하고 실험 기록표를 해석하라(복제본 3개씩, 5겹 교차검증).

예시 결과 로지스틱 회귀: 행 단위 0.703 ± 0.038, 물고기 단위 0.698 ± 0.024 · KNN(k = 5): 행 단위 0.805 ± 0.006, 물고기 단위 0.738 ± 0.091.

예시 해석 누수의 피해는 모델마다 다르다. 직선 하나로 판단하는 로지스틱 회귀는 거의 영향이 없지만, 가까운 이웃을 보는 KNN은 쌍둥이 덕분에 점수가 크게 부풀려졌다.

채점 포인트 ① 두 모델의 차이를 비교했는가 ② 표준편차를 함께 읽었는가.

도전 과제 · 무엇이 진짜 효과였나

로지스틱 회귀를 고정하고 "학습률 0.001 · 0.1 · 3", "꼬리 비율 추가", "배깅 없음 vs 15개"를 실행한 뒤, 효과가 큰 순서로 정리하라.

예시 결과 학습률 0.001 → 0.584, 0.1 → 0.698, 3 → 0.688 · 꼬리 비율 추가 0.698 → 0.879 · 배깅 0.698 → 0.699.

예시 해석 효과 순서: 꼬리 비율(+0.18) > 학습률을 너무 작게 두지 않기(+0.11) > 배깅(거의 0). 흔들림이 적은 로지스틱 회귀에는 배깅이 거의 도움이 되지 않는다.

채점 포인트 ① 한 번에 하나만 바꿨는가 ② 효과를 같은 기준(교차검증 평균)으로 비교했는가 ③ 배깅이 효과 없던 이유를 모델의 성질로 설명했는가.