1. 모델식
목적변수 : y
설명번수 : x
가중치 : w
k번째 데이터에 대한 모델식
2. 오차제곱 합
실제 데이터값과 함수의 결괏값 사이의 거리를 모두 더한 값이 최소가 되는 가중치 w를 구한다.
y값과 x값은 데이터에서 상수값으로 제공된다, 식을 풀면 각 가중치 w의 2차방정식이 만들어진다.
각각의 w의 최솟값을 구하기 위해 편미분을 했을때 0이되는 1계미분을 한다.
이렇게 나온 1 + l개의 연립 1차방정식을 풀면 각각의 가중치 w의 값을 구할 수 있다.
3. 배달거리에 따른 소요시간 예측모델
>>> import numpy as np
>>> import sympy as sp
# 배달거리, 소요시간
>>> _data = [(100, 20),
(150, 24),
(300, 36),
(400, 47),
(130, 22),
(240, 32),
(350, 47),
(200, 42),
(100, 21),
(110, 21),
(190, 30),
(120, 25),
(130, 18),
(270, 38),
(255, 28)]
>>>
>>> D, w0, w1 = sp.symbols('D, w0, w1')
>>> D = 0
>>>
>>> for i in _data:
D += (i[1] - (w0 + i[0]*w1))**2
>>> r0 = sp.diff(D, w0) # w0로 편미분
>>> r0
30*w0 + 6090*w1 - 902
>>> r1 = sp.diff(D, w1) # w1로 편미분
>>> r1
6090*w0 + 1493850*w1 - 206880
>>>
>>> result = sp.solve((r0, r1)) # 연립방정식 계산
>>> print(result)
{w0: 291845/25758, w1: 11887/128790}
>>> 291845/25758
11.330266325025235
>>> 11887/128790
0.09229753862877553
거리 d에따른 소요시간 예측 모델
f(x) = 11.33 + 0.092d