
179
5
장
선형 회귀
sum_of_squares
+=
residual_squared
print("제곱 합= {}".format(sum_of_squares))
# 제곱 합 = 28.096969704500005
다음 질문으로 넘어가보죠. 사이킷런과 같은 라이브러리를 사용하지 않고 제곱 합의 최솟값을
만드는
m
과
b
를 어떻게 찾을 수 있을까요? 다음 절에서 살펴보겠습니다.
5.3
최적의 직선 찾기
이제 데이터 포인트에 대한 직선의 품질을 측정하는 방법인 제곱 합을 알았습니다. 이 수치가
낮을수록 더 잘 맞는 직선입니다. 그럼 최소 제곱 합을 만드는
m
과
b
값은 어떻게 찾을까요?
주어진 문제를 푸는 값을 찾는 데 사용할 수 있는 몇 가지 검색 알고리즘이 있습니다. 한 가지
방법은 무차별 대입
brute
-
force
방식을 사용해
m
과
b
값을 무작위로 수백만 개 생성한 후, 최소 제
곱 합을 만들 수 있습니다. 하지만 이 방법은 적절한 근삿값을 찾는 데 아주 많은 시간이 걸리
기 때문에 실용적이지 않습니다. 조금 더 친절한 방법이 필요합니다. 이번 절에서는 다섯 가지
기법인 닫힌 형식 방정식, 역행렬, 행렬 분해, 경사 하강법, 확률적 경사 하강법을 소개합니다.
부록
A
.
7
절에서 소개하는 언덕 오르기
hill
climbing
와 같은 다른 검색 알고리즘도 있지만 여기서는 ...