
189
5
장
선형 회귀
는
m
과
b
변수만 남습니다.
14
예제
5-11
심파이를 사용해 선형 회귀 풀기
import
pandas
as
pd
from
sympy
import
*
# CSV에서 데이터를 로드합니다.
points
=
list(pd.read_csv("https://bit.ly/2KF29Bd").itertuples())
m,
b,
i,
n
=
symbols('m b i n')
x,
y
=
symbols('x y',
cls=Function)
sum_of_squares = Sum((m*x(i) + b - y(i)) ** 2, (i, 0, n))
d_m = diff(sum_of_squares, m) \
.subs(n, len(points) - 1).doit() \
.replace(x, lambda i: points[i].x) \
.replace(y, lambda i: points[i].y)
d_b = diff(sum_of_squares, b) \
.subs(n, len(points) - 1).doit() \
.replace(x, lambda i: points[i].x) \
.replace(y,
lambda
i:
points[i].y)
# 계산 속도를 높이기 위해 lambdify로 컴파일합니다.
d_m
=
lambdify([m,
b],
d_m)
d_b
=
lambdify ...