시작하기무료로 시작하기

어떻게 최적인가요?

회귀 계수를 구할 때 사용한 np.polyfit() 함수는 기울기와 절편을 최적으로 찾아줘요. 이때 최적화하는 값은 잔차 제곱합, 즉 RSS(residual sum of squares)입니다. 이 연습에서는 최적화 대상인 RSS를 기울기 매개변수 a에 대해 플로팅해 보려고 해요. 이를 위해, 절편은 최적화에서 구한 값으로 고정하고, RSS를 기울기에 대해 그려 보세요. 최소값은 어디에서 나오나요?

이 연습은 강의의 일부입니다

Python으로 하는 통계적 사고 (2부)

강의 보기

연습 안내

  • RSS를 계산할 기울기 값을 지정하세요. 0에서 0.1 사이 구간에서 200개의 점을 얻기 위해 np.linspace()를 사용하세요. 예를 들어, 0에서 0.5 사이 구간에서 100개의 점을 얻으려면 다음과 같이 쓸 수 있어요: np.linspace(0, 0.5, 100).
  • 위에서 만든 배열과 np.empty_like()를 사용해 RSS를 담을 배열 rss를 초기화하세요. empty_like() 함수는 주어진 배열(여기서는 a_vals)과 같은 모양과 타입의 새 배열을 반환해요.
  • 기울기에 대한 RSS 합을 계산하는 for 루프를 작성하세요. 힌트: RSS는 np.sum((y_data - a * x_data - b)**2)로 주어집니다. 지난 연습에서 계산한 변수 b는 이미 네임스페이스에 있어요. 여기서 fertilityy_data, illiteracyx_data입니다.
  • RSS(rss)를 기울기(a_vals)에 대해 플로팅하세요.
  • "Submit Answer"를 눌러 플롯을 확인하세요!

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Specify slopes to consider: a_vals
a_vals = ____

# Initialize sum of square of residuals: rss
rss = ____

# Compute sum of square of residuals for each value of a_vals
for i, a in enumerate(a_vals):
    rss[i] = ____((____ - a*____ - b)**2)

# Plot the RSS
plt.plot(____, ____, '-')
plt.xlabel('slope (children per woman / percent illiterate)')
plt.ylabel('sum of square of residuals')

plt.show()
코드 편집 및 실행