Linear Regression
์ ํ ํ๊ท (linear regression)
์ต์ ์ ๊ณฑ๋ฒ (method of least squares)
์ต์ ์ ๊ณฑ๋ฒ์ ์ด์ฉํ ์ ํ ํ๊ท
import numpy as np
# x ๊ฐ๊ณผ y๊ฐ
x=[2, 4, 6, 8]
y=[81, 93, 91, 97]
# x์ y์ ํ๊ท ๊ฐ
# mean () : ๋ชจ๋ ์์์ ํ๊ท ์ ๊ตฌํ๋ ๋ํ์ด ํจ์
mx = np.mean(x)
my = np.mean(y)
print("x์ ํ๊ท ๊ฐ:", mx)
print("y์ ํ๊ท ๊ฐ:", my)
# ๊ธฐ์ธ๊ธฐ ๊ณต์์ ๋ถ๋ชจ
divisor = sum([(mx - i)**2 for i in x])
# sum()์ ์๊ทธ๋ง์ ํด๋นํ๋ ํจ์ ์ด๋ค
# **2 ๋ ์ ๊ณฑ์ ๊ตฌํ๋ผ๋ ์๋ฏธ
# for i in x๋ x์ ๊ฐ ์์๋ฅผ ํ๋ฒ์ฉ i ์๋ฆฌ์ ๋์
ํ๋ผ๋ ์๋ฏธ
# ๊ธฐ์ธ๊ธฐ ๊ณต์์ ๋ถ์ : (x - xํ๊ท )*(y - yํ๊ท )์ ํฉ
def top(x, mx, y, my):
d = 0
for i in range(len(x)):
d += (x[i] - mx) * (y[i] - my)
return d
dividend = top(x, mx, y, my)
print("๋ถ๋ชจ:", divisor)
print("๋ถ์:", dividend)
# ๊ธฐ์ธ๊ธฐ์ y ์ ํธ ๊ตฌํ๊ธฐ
a = dividend / divisor
b = my - (mx*a)
# ์ถ๋ ฅ์ผ๋ก ํ์ธ
print("๊ธฐ์ธ๊ธฐ a =", a)
print("y ์ ํธ b =", b)ํ๊ท ์ ๊ณฑ ์ค์ฐจ (mean square error: MSE)

ํ๊ท ์ ๊ณฑ ์ค์ฐจ๋ฅผ ์ด์ฉํ ์ ํ ํ๊ท
Last updated
