当前位置:   article > 正文

机器学习:线性回归模型(python)_python线性回归模型

python线性回归模型

目录

符号

一、线性回归模型(Linear regression model)

(1)什么是线性回归模型

(2)线性回归模型的数学形式

        理论

        实践

 二、成本函数(Cost function)

(1)什么是成本函数

(2)成本函数的数学形式

        理论

        实践


符号

以下是本文所需要用到的符号

符号                                                             描述                                               python(如果适用)


x                                                                 特征值                                            x_train

y                                                                 目标值                                            y_train

x_{}^{(i)},y_{}^{(i)}                                                     示例                                                x_i

m                                                                示例数量                                         y_i

w                                                                参数:权重                                      m        

b                                                                 参数:偏移                                      n

f_{w,b}(x_{}^{(i)})                                                      模型预估值                                      f_wb   

一、线性回归模型(Linear regression model)

(1)什么是线性回归模型

        线性回归模型是一种用于建立输入和连续输出之间关系的模型。它假设输入和输出之间存在线性关系。该模型可以用于预测连续变量的值,例如房价、销售额、股票价格等。

(2)线性回归模型的数学形式

        理论

        线性回归的模型函数(这是一个从映射到的函数)表示为xy

f_{w,b}(x_{}^{(i)})=wx_{}^{(i)}+b

        python中可表示为:

f_wb = w * x[i] + b

        实践

  1. # 导入numpy、matplotlib模块
  2. import numpy as np
  3. from matplotlib import pyplot as plt
  4. # 设定特征值
  5. x = np.array([1, 2, 3, 4, 5])
  6. # 设定权重、偏移
  7. w=1
  8. b=0
  9. # 设定线性回归函数
  10. f_wb = w*x+b
  11. # 绘制数据点
  12. plt.scatter(x, f_wb)
  13. # 绘制回归线
  14. plt.plot(x, f_wb, color='red')
  15. # 添加标题和标签
  16. plt.title('Linear Regression')
  17. plt.xlabel('x')
  18. plt.ylabel('f_wb')
  19. # 显示图形
  20. plt.show()

 二、成本函数(Cost function)

(1)什么是成本函数

        在线性回归模型中,成本函数(Cost function)通常采用最小二乘法(Least Square Method)来定义。

(2)成本函数的数学形式

        理论

        成本函数就是所有训练样本的预测值与实际值之间的误差平方和。

$J(w,b) = \frac{1}{2m}\sum\limits_{i=0}^{m-1}(f_{w,b}(x^{(i)})-y^{(i)})^2$

         (f_{w,b}(x^{(i)})-y^{(i)})^2:目标值和预测之间的平方差。

        \sum\limits_{i=0}^{m-1}(f_{w,b}(x^{(i)})-y^{(i)})^2:每个目标值和预测之间平方差的和

        $J(w,b) = \frac{1}{2m}\sum\limits_{i=0}^{m-1}(f_{w,b}(x^{(i)})-y^{(i)})^2$:总的平均方差

请注意,求和范围通常从1到m,而代码将从0到m-1。

        实践

 由上图可以清晰看到随着w的变化,总的平均方差也在改变,因此可以通过梯度下降的方法最小化成本来改变w和b就可以得到一条与数据完美拟合的线

  1. # 导入numpy、matplotlib模块
  2. import numpy as np
  3. from matplotlib import pyplot as plt
  4. # 设定特征值
  5. x_train = np.array([1, 2 , 3])
  6. y_train = np.array([1, 2 , 3])
  7. x = np.array([1, 2, 3])
  8. # 设定权重
  9. w=[]
  10. for n in range(-1,6,1):
  11. w.append(n/2)
  12. # 设定偏移
  13. b=0
  14. # 获取x(特征值)数量
  15. m = len(x)
  16. # 定义变量
  17. cost_sum = 0
  18. J_wb=[]
  19. # 计算成本函数
  20. for j in range(len(w)):
  21. for i in range(m):
  22. f_wb = w[j] * x[i] + b
  23. cost = (f_wb - y_train[i]) ** 2
  24. cost_sum = cost_sum + cost
  25. j_wb = (1 / (2 * (m+1))) * cost_sum
  26. cost_sum = 0
  27. J_wb.append(j_wb)
  28. # 绘制成本函数点
  29. plt.scatter(w, J_wb)
  30. # 绘制成本函数线
  31. plt.plot(w, J_wb, color='red')
  32. # 添加标题和标签
  33. plt.title('Cost function')
  34. plt.xlabel('w')
  35. plt.ylabel('J_wb')
  36. # 显示图形
  37. plt.show()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/173359
推荐阅读
相关标签
  

闽ICP备14008679号