Python代码揭秘:商品销售量与广告投入的线性回归关系及预测
```python import numpy as np import matplotlib.pyplot as plt # 数据 x = np.array([5.50, 6.75, 7.25, 7.00, 6.50, 5.25, 6.00, 4.50, 8.25, 9.50]) y = np.array([11.50, 13.70, 14.83, 14.15, 13.06, 11.71, 12.16, 9.96, 15.88, 18.33]) # 1) 线性回归模型:y = w * x + b # 2) 目标函数 l(均方误差) def loss_function(w, b, x, y): y_pred = w * x + b return np.mean((y_pred - y) 2) # 3) 闭式解 x = x.reshape(-1, 1) X = np.hstack([x, np.ones((x.shape[0], 1))]) w = np.linalg.inv(X.T @ X) @ X.T @ y print("闭式解得到的斜率 w:", w[0]) print("闭式解得到的截距 b:", w[1]) # 4) 梯度下降法 def gradient_descent(x, y, learning_rate, num_iterations): w = 0 b = 0 for _ in range(num_iterations): y_pred = w * x + b dw = np.mean((y_pred - y) * x) db = np.mean(y_pred - y) w -= learning_rate * dw b -= learning_rate * db return w, b learning_rate = 0.01 num_iterations = 1000 w_gd, b_gd = gradient_descent(x, y, learning_rate, num_iterations) print("梯度下降法得到的斜率 w:", w_gd) print("梯度下降法得到的截距 b:", b_gd) # 5) 预测广告投入为 1 千万元时的销售量 x_pred = 10 # 1 千万元 = 10 百万元 y_pred_closed = w[0] * x_pred + w[1] y_pred_gd = w_gd * x_pred + b_gd print("闭式解预测广告投入为 1 千万元时的销售量:", y_pred_closed) print("梯度下降法预测广告投入为 1 千万元时的销售量:", y_pred_gd) # 绘图 plt.scatter(x, y) plt.plot(x, w[0] * x + w[1], color='red', label='闭式解') plt.plot(x, w_gd * x + b_gd, color='green', label='梯度下降法') plt.xlabel('广告投入(百万元)') plt.ylabel('销售量(百万件)') plt.title('线性回归') plt.legend() plt.show() ``` ######[AI写代码神器 | 712点数解答 | 2024-11-18 20:44:33]
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)458
- 工程师语境中的“回归”:分析、测试与退步含义全解析(百度文心 | 213点数解答 | 2023-11-09 18:23:11)229
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)414
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)405
- Python代码揭秘:商品销售量与广告投入的线性回归关系及预测(字节豆包 | 712点数解答 | 2024-11-18 20:44:33)303
- Python 实现线性回归:探究商品销售量与广告投入关系及销量预测(GPT | 443点数解答 | 2024-11-18 20:47:31)302
- 修复代码错误:解决 Python 格式化字符串引发的 ValueError 问题(字节豆包 | 187点数解答 | 2024-10-16 15:53:08)356
- 代码修复:解决“invalid format specifier”实现商品信息正确输出(字节豆包 | 204点数解答 | 2024-10-16 15:53:41)305
- 双11前小明巧用数据:计算机械键盘与游戏鼠标最近购买均价!(字节豆包 | 32点数解答 | 2024-10-17 20:43:03)208
- Java调用Python接口中文乱码?设置UTF - 8编码一招解决!(讯飞星火 | 263点数解答 | 2024-06-06 17:07:59)389
- 解决Java调用Python接口中文乱码问题:设置UTF - 8编码全攻略(讯飞星火 | 160点数解答 | 2024-06-06 17:18:39)414
- Java调用Python接口中文乱码问题:字符编码统一解决方案(讯飞星火 | 344点数解答 | 2024-06-06 17:19:55)525