当前位置:   article > 正文

一元线性回归(简单线形回归)的python代码实现(基于sklearn以广告投入和产品销售预测为例)_线性回归方程python代码

线性回归方程python代码

一元线性回归适用于解决有如下数据特征的场景:

        1. 单个特征向量与结果向量之间的关系

        2. 特征向量与结果向量之间存在线形关系

下面是一个简单的两列数据集,第一列和第二列存在线形关系(广告投入量,产品销售量),通过训练此数据集,得到一元线性回归模型(y = 3.74x + (-36.36))。

 

给定第一列数据,从而用此模型可预测第二列数据。基于sklearn模块建立并训练一元线形回归模型,通过广告投入量和产品销售量作为数据集,从而实现给定任意广告投入量,可预测产品销售量,具体代码如下所示

  1. from matplotlib import pyplot as plt
  2. from sklearn.linear_model import LinearRegression
  3. import numpy as np
  4. # 第一步:数据获取
  5. data = np.array([
  6. [29, 77],
  7. [28, 62],
  8. [34, 93],
  9. [31, 84],
  10. [25, 59],
  11. [29, 64],
  12. [32, 80],
  13. [31, 75],
  14. [24, 58],
  15. [33, 91],
  16. [25, 51],
  17. [31, 73],
  18. [26, 65],
  19. [30, 84]])
  20. x = np.reshape(data[:, 0], (-1, 1)) # 第一列为广告投入量
  21. y = np.reshape(data[:, 1], (-1, 1)) # 第二列为产品销售量
  22. # 第二步:绘制散点图
  23. plt.scatter(x, y) # 通过散点图,很明显确定两列数据具备线形相关,满足一元线形回归的使用条件
  24. plt.xlabel("Advertising investment")
  25. plt.ylabel("Product sales volume")
  26. # 第三步 建立一元线性回归模型
  27. lr = LinearRegression()
  28. lr.fit(x, y) # 训练模型
  29. a = round(lr.coef_[0][0], 2) # 查看斜率
  30. b = round(lr.intercept_[0], 2) # 查看截距
  31. print("线性回归模型为:y = {}x + {}.".format(a, b))
  32. x_test = np.array([[20], [55]])
  33. y_test = lr.predict(x_test)
  34. plt.plot(x_test, y_test, color='r')
  35. # 第四步 对回归模型进行检验
  36. lr.score(x, y)
  37. # 第五步 利用回归模型进行预测
  38. x_pred = [[40], [45], [50]]
  39. y_pred = lr.predict(x_pred)
  40. plt.scatter(x_pred, y_pred, color='g', marker='*')
  41. plt.legend(['mode','train','pred'])
  42. plt.show()
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/683668
推荐阅读
相关标签
  

闽ICP备14008679号