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

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

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

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

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

 

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

from matplotlib import pyplot as plt
from sklearn.linear_model import LinearRegression
import numpy as np

# 第一步:数据获取
data = np.array([
    [29, 77],
    [28, 62],
    [34, 93],
    [31, 84],
    [25, 59],
    [29, 64],
    [32, 80],
    [31, 75],
    [24, 58],
    [33, 91],
    [25, 51],
    [31, 73],
    [26, 65],
    [30, 84]])
x = np.reshape(data[:, 0], (-1, 1))  # 第一列为广告投入量
y = np.reshape(data[:, 1], (-1, 1))  # 第二列为产品销售量

# 第二步:绘制散点图
plt.scatter(x, y)  # 通过散点图,很明显确定两列数据具备线形相关,满足一元线形回归的使用条件
plt.xlabel("Advertising investment")
plt.ylabel("Product sales volume")

# 第三步 建立一元线性回归模型
lr = LinearRegression()
lr.fit(x, y)  # 训练模型
a = round(lr.coef_[0][0], 2)  # 查看斜率
b = round(lr.intercept_[0], 2)  # 查看截距
print("线性回归模型为:y = {}x + {}.".format(a, b))

x_test = np.array([[20], [55]])
y_test = lr.predict(x_test)
plt.plot(x_test, y_test, color='r')

# 第四步 对回归模型进行检验
lr.score(x, y)

# 第五步 利用回归模型进行预测
x_pred = [[40], [45], [50]]
y_pred = lr.predict(x_pred)

plt.scatter(x_pred, y_pred, color='g', marker='*')
plt.legend(['mode','train','pred'])
plt.show()
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值