Menu
CoddyTech

적합선 그리기

Coddy Machine Learning 여정의 머신러닝을 위한 통계 섹션에 포함된 레슨. 64개 중 37번째.

두 숫자는 적합도를 설명하지만, 데이터에 맞는지는 차트로만 확인할 수 있습니다. 한 주방에서 주전자 물을 끓이는 데 걸리는 시간을 여섯 번 측정했습니다. 산점도와 같은 ax에 선을 그리세요:

liters = np.array([0.5, 0.8, 1.0, 1.2, 1.5, 1.7])
minutes = np.array([1.6, 2.4, 2.7, 3.3, 3.9, 4.5])
slope, intercept = np.polyfit(liters, minutes, 1)
xs = np.linspace(liters.min(), liters.max(), 50)
fig, ax = plt.subplots()
ax.scatter(liters, minutes, label="Boils")
ax.plot(xs, slope * xs + intercept, color="C1", label="Fit")
ax.legend()
plt.show()

xs는 가장 작은 x부터 가장 큰 x까지 이어지므로, 선은 데이터가 시작하고 끝나는 지점에서 시작하고 끝납니다:

주전자에서 물을 끓인 여섯 번의 결과를 점으로 표시. 물의 양(리터)에 따른 끓는 시간(분)은 1.6분에서 4.5분까지 증가하며, 주황색 적합선이 0.5리터에서 1.7리터까지 점들을 통과합니다

모델의 데이터를 바탕으로 예측을 그려 보면 모델이 타당한 것을 학습했는지 가장 빠르게 확인할 수 있습니다. 점들을 빗나가는 선은 적합이 잘못되었음을 의미합니다.

challenge icon

챌린지

중급

건물 관리자가 엘리베이터를 12번 운행하며 이동한 floors와 걸린 seconds를 측정했습니다. 시작 코드에는 제목과 레이블이 있는 차트가 설정되어 있습니다.

  1. floors로부터 seconds를 예측하는 직선을 구하세요.
  2. 운행 데이터를 Rides라는 레이블이 붙은 산점도로, 직선을 Fit이라는 레이블로 표시하고, 층수가 가장 적은 지점부터 가장 많은 지점까지 그리세요.
  3. 범례를 추가하고 차트를 표시하세요.

아무것도 출력되지 않습니다. Coddy가 차트를 설명합니다. 다른 건물의 차트는 다음과 같습니다.

제목이 Elevator Rides인 차트: 2층에서 14초부터 20층에서 51초까지 올라가는 점 8개, 첫 번째 점의 층수부터 마지막 점의 층수까지 그은 추세선, Rides와 Fit이라고 표시된 범례

직접 해보기

import numpy as np
import matplotlib.pyplot as plt

floors = np.array([3, 7, 1, 12, 5, 9, 15, 2, 10, 6, 13, 8])
seconds = np.array([15.3, 27.0, 12.4, 36.0, 19.5, 28.8, 44.9, 12.7, 33.2, 19.4, 41.7, 27.0])
# 아래 줄은 변경하지 마세요
fig, ax = plt.subplots()
ax.set_title("Elevator Rides")
ax.set_xlabel("Floors")
ax.set_ylabel("Seconds")

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

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

머신러닝을 위한 통계의 모든 레슨

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