1,举例说明和建立模型:
(1)建立模型:
求得最佳的拟合函数yi和mean(y)的差的平方的最小值,即是.
条件:根据数据来拟合函数,拟合的斜率和截距计算如下;
从而得出拟合函数是:
( = )
(2)举例说明:
汽车卖家做电视广告数量与卖出的汽车数量:
计算b1和b0:
从而得到拟合函数为:
我们从而可以通过x的值和拟合函数来估计y的值了,比如我们输入广告数量6,我们可以得到汽车数量为5*6+10=40。
3,现在我们用spyder来实现看看,新建一个linenar_regulation.py:
import numpy as np
def fitSLR(x, y):
n = len(x)
dinominator = 0
numerator = 0
for i in range(0, n):
numerator += (x[i] - np.mean(x))*(y[i] - np.mean(y))
dinominator += (x[i] - np.mean(x))**2
b1 = numerator/float(dinominator)
b0 = np.mean(y)/float(np.mean(x))
return b0, b1
def predict(x, b0, b1):
return b0 + x*b1
x = [1, 3, 2, 1, 3]
y = [14, 24, 18, 17, 27]
b0, b1 = fitSLR(x, y)
print ("intercept:", b0, " slope:", b1)
x_test = 6
y_test = predict(6, b0, b1)
print ("y_test:", y_test)
代码运行结果如下: