μ ν νκ·(linear regression) : κ°μ₯ νΌλ₯ν μμΈ‘μ κΈκΈ°
λ 립 λ³μ(λ 립μ μΌλ‘ λ³ν μ μλ κ°)λ₯Ό μ¬μ©ν΄ μ’ μ λ³μ(λ 립 λ³μμ λ°λΌ λ³νλ κ°)μ μμ§μμ μμΈ‘νκ³ μ€λͺ νλ μΌ.
λ¨μ μ ν νκ· (simple linear regression) : νλμ λ 립 λ³μ λ§μΌλ‘ μ’ μ λ³μ κ° μ€λͺ \
λ€μ€ μ ν νκ· ( multiple linear regression) : μ¬λ¬κ° λ 립 λ³μ νμ
ex) 곡λΆλμ λ°λ₯Έ μ±μ μμΈ‘ : 곡λΆνμκ°(x) μ λ°λ₯Έ μ±μ (y)
x={2,4,6,8}
y={81,93,91,97}
y= ax+b
x: λ 립λ³μ y: μ’ μλ³μ
μ ννκ² κ²μ°νλ €λ©΄ μμ a,bκ°μ μμμΌ νλ€.
μ νν a,bκ°μ λ°λΌ μμ§μ΄λ μ§μ μ xκ°μ λμ νλ©΄ μ±μ μμΈ‘μ΄ κ°λ₯μ ν νκ·λ κ²°κ΅ μ΅μ μ a,bκ°μ μ°Ύμλ΄λ μμ
μ΅μ μ κ³±λ² (method of least squares) : μ£Όμ΄μ§ x κ°μ΄ νλμΌ λ μ μ©
xκ°: μ λ ₯κ° (곡λΆν μκ°)
yκ°: μΆλ ₯κ° (μ±μ )
xνκ· = (2+4+6+8) ÷ 4 =5
yνκ· = (81+93+91+97) ÷ 4=90.5
κΈ°μΈκΈ° a = 2.3
b = yμ νκ· - (xμ νκ· X κΈ°μΈκΈ° a) |
yμ νΈ = 79
y = 2.3x+79
곡λΆν μκ° x | 2 | 4 | 6 | 8 |
μ±μ y | 81 | 93 | 91 | 97 |
μμΈ‘ κ° (xλμ μ λμ€λ yκ°) |
83.6 | 88.2 | 92.8 | 97.4 |
μ½λ©μΌλ‘ ꡬννκΈ°
import numpy as np
x = [2,4,6,8]
y = [81,93,91,97]
μ΅μμ κ³±κ·Ό 곡μμΌλ‘ κΈ°μΈκΈ° aμ yμ νΈ b ꡬνκΈ°
mean() : xμ λͺ¨λ μμμ νκ· κ΅¬νλ Numpy ν¨μ
mx : xμμλ€μ νκ· κ°
my : yμμλ€μ νκ· κ°
#λΆλͺ¨
divisor : λΆλͺ¨κ° (xμ κ°μμμ xνκ· κ°μ μ°¨λ₯Ό μ κ³±)
**2 : μ κ³±
mx = np.mean(x)
my = np.mean(y)
divisor = sum([ (i-mx)**2 for i in x])
#λΆμκ° (xμ yμ νΈμ°¨ κ³±ν΄μ ν©ν κ°)
dividendμ μ μ₯
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)
#κΈ°μΈκΈ° a μ yμ νΈ b ꡬνκΈ°
a = dividend / divisor\
b = my- (mx*a)
print("κΈ°μΈκΈ° a=",a)
print("yμ νΈ b=",b)
μ€νκ²°κ³Ό
λΆλͺ¨: 20.0
λΆμ: 46.0
κΈ°μΈκΈ° a= 2.3
yμ νΈ b= 79.0
'λ₯λ¬λ > Today I learned :' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ₯λ¬λ] λ‘μ§μ€ν± νκ·(logistic regression) (0) | 2021.03.17 |
---|---|
[λ₯λ¬λ] λ€μ€ μ ν νκ· (Multiple linear regression) (0) | 2021.03.16 |
[λ₯λ¬λ] κ²½μ¬νκ°λ²(Gradient Descent) (0) | 2021.03.15 |
[λ₯λ¬λ] μ€μ°¨ νκ°λ² : νκ· μ κ³±μ€μ°¨ Mean Squared Error (0) | 2021.03.15 |
λ₯λ¬λ μ€ν μ€λΉ (μμ νκ²½ λ§λ€κΈ°) (0) | 2021.03.10 |