Menu
CoddyTech

잔차 플롯

Coddy Machine Learning 여정의 지도 학습 섹션에 포함된 레슨. 58개 중 14번째.

좋은 점수가 잘못된 형태를 감출 수 있습니다. 증가하는 곡선형 데이터에서 이 직선은 R 제곱 값이 0.82이지만, 오차는 활 모양을 이룹니다:

왼쪽: 시간에 따른 반죽 높이. 빠르게 상승한 뒤 느려지며, 직선으로 적합한 선이 그려져 있고 R 제곱 값은 0.82입니다. 오른쪽: 예측값에 대한 잔차는 점선으로 표시된 0선을 중심으로 활 모양을 그리며 -1.3에서 +0.7까지 올라갔다가 -0.7까지 내려갑니다

오른쪽 차트는 잔차 그래프입니다. 각 잔차(실제값에서 예측값을 뺀 값)를 예측값에 대해 표시하고, 0에 선을 그은 그래프입니다.

residuals = y_test - pred
fig, ax = plt.subplots()
ax.scatter(pred, residuals)
ax.axhline(0, color="gray", linestyle="--")
plt.show()

정상적인 잔차는 0을 중심으로 잡음처럼 흩어집니다. 패턴이 있다는 것은 모델이 무언가를 놓치고 있다는 뜻입니다. 여기서는 상승 속도가 느려지는 현상입니다.

여러 특성이 있다면 각 특성에 대해서도 잔차를 그래프로 그려 보세요. 곡선 모양으로 휘어지는 특성은 곡선 관계를 숨기고 있습니다.

challenge icon

챌린지

중급

운전 학원에서 제동 테스트 80건에 대해 직선을 적합했습니다: speed_kmh와 braking_m. 시작 코드에는 테스트 예측값이 pred에 저장되어 있으며 차트에 레이블이 지정되어 있습니다.

  1. 잔차를 계산하세요.
  2. 예측값을 x축으로, 잔차를 y축으로 하여 산점도를 그리고, 0에 회색 점선을 표시한 다음 차트를 보여 주세요.

직선이 곡선을 제대로 따라가지 못하나요? 왼쪽에서는 제동 거리가 음수라고 예측하기도 합니다.

다른 데이터에서 얻은 적절한 직선의 그래프는 다음과 같습니다.

적절한 직선이라는 제목의 잔차 그래프: 0의 점선 위아래에 아무런 패턴 없이 흩어져 있는 점 20개

Coddy가 여러분의 차트를 설명합니다.

직접 해보기

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

brakes = pd.read_csv("braking.csv")
X_train, X_test, y_train, y_test = train_test_split(brakes[["speed_kmh"]], brakes["braking_m"], test_size=0.25, random_state=0)
model = LinearRegression()
model.fit(X_train, y_train)
pred = model.predict(X_test)

fig, ax = plt.subplots()
ax.set_title("Braking Line Check")
ax.set_xlabel("Predicted braking distance (m)")
ax.set_ylabel("Residual (m)")

# 아래에 코드를 작성하세요
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

지도 학습의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러