적합선 그리기
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까지 이어지므로, 선은 데이터가 시작하고 끝나는 지점에서 시작하고 끝납니다:
모델의 데이터를 바탕으로 예측을 그려 보면 모델이 타당한 것을 학습했는지 가장 빠르게 확인할 수 있습니다. 점들을 빗나가는 선은 적합이 잘못되었음을 의미합니다.
챌린지
중급건물 관리자가 엘리베이터를 12번 운행하며 이동한 floors와 걸린 seconds를 측정했습니다. 시작 코드에는 제목과 레이블이 있는 차트가 설정되어 있습니다.
floors로부터seconds를 예측하는 직선을 구하세요.- 운행 데이터를
Rides라는 레이블이 붙은 산점도로, 직선을Fit이라는 레이블로 표시하고, 층수가 가장 적은 지점부터 가장 많은 지점까지 그리세요. - 범례를 추가하고 차트를 표시하세요.
아무것도 출력되지 않습니다. Coddy가 차트를 설명합니다. 다른 건물의 차트는 다음과 같습니다.
직접 해보기
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")
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
머신러닝을 위한 통계의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러