引入披萨问题
案例分析:构建线性回归模型,计算披萨价格
假设你想计算匹萨的价格。虽然看看菜单就知道了,不过也可以用机器学习方法建一个线性回归模型,通过分析匹萨的直径与价格的数据的线性关系,来预测任意直径匹萨的价格。
1.将这两组数据散点图可视化,观察它们之间的关系
① 导入绘图工具
# 导入绘图工具
import matplotlib.pyplot as plt
② 绘制散点图
# 导入数据
X = [[6],[8],[10],[14],[18]]
y = [[7],[9],[13],[17.5],[18]]
# 绘制散点图
plt.scatter(X,y)
# 绘制网格
plt.grid()
# 展示图形
plt.show()
完整代码为:
# 导入绘图工具
import matplotlib.pyplot as plt
# 导入数据
X = [[6],[8],[10],[14],[18]]
y = [[7],[9],[13],[17.5],[18]]
# 绘制散点图
plt.scatter(X,y)
# 绘制网格
plt.grid()
# 展示图形
plt.show()
③运行结果为:
2.通过观测散点图,可知该组数据基本呈现线性关系,开始我们的模型构建已经模型预测
① 导入线性回归模型的库
# 导入需要的库
from sklearn import linear_model
② 四步走:构建模型 + 训练模型 + 模型系数 + 模型预测
# 1.构建模型
model = linear_model.LinearRegression()
# 2.训练模型
model.fit(X,y)
# 3.模型系数
print("截距:",model.coef_)
print("系数:",model.intercept_)
y_pred = model.predict(X)
plt.plot(X,y_pred,'r--') # 拟合方程
# 展现图形
plt.show()
# 4.模型预测
result = model.predict([[12]])
print("直径为12的披萨预测的价格为:",result)
细节解析: r–表示拟合方程以红色虚线呈现
综合①②完整代码为:
import matplotlib.pyplot as plt
from sklearn import linear_model
X = [[6],[8],[10],[14],[18]]
y = [[7],[9],[13],[17.5],[18]]
# 绘制散点图
plt.scatter(X,y)
# 展现网格
plt.grid()
# 1.构建模型
model = linear_model.LinearRegression()
# 2.训练模型
model.fit(X,y)
# 3.模型系数
print("截距:",model.coef_)
print("系数:",model.intercept_)
y_pred = model.predict(X)
plt.plot(X,y_pred,'r--') # 拟合方程
# 展现图形
plt.show()
# 4.模型预测
result = model.predict([[12]])
print("直径为12的披萨预测的价格为:",result)
# 运行结果为:
# 截距: [[0.9762931]]
# 系数: [1.96551724]
# 直径为12的披萨预测的价格为: [[13.68103448]]
③ 运行结果为:
3.总结:
① 绘制散点图观测
② 导入线性回归模型库
③ 构建模型 + 训练模型 + 模型系数 + 预测模型
另:补充使用 excel 来做线性回归模型预测: