hashir500/smart-shopping-price-predictor
GitHub: hashir500/smart-shopping-price-predictor
一个基于正则化随机森林的机器学习项目,用于预测亚马逊印度产品的折扣百分比,帮助购物者识别最佳购买时机。
Stars: 0 | Forks: 0
# 智能购物价格预测器
一个机器学习项目,用于预测亚马逊印度产品的折扣百分比——帮助购物者识别哪些产品类别和价格区间提供最划算的交易。
## 问题陈述
每个网购者都曾想过——“我应该现在购买,还是等待促销?”
大多数人只是猜测。这个项目使用机器学习来分析真实亚马逊产品数据中的模式,从而回答这个问题——找出哪些类别折扣最大、评分如何与定价相关,并预测产品可能获得的折扣。
## 数据集
- **来源:** 亚马逊印度销售数据集(Kaggle)
- **规模:** 9个类别共1,465个产品
- **关键字段:** `actual_price`、`discounted_price`、`discount_percentage`、`rating`、`rating_count`、`category`
## 项目结构
```
Smart-Shopping-Price-Predictor/
│
├── Smart_Shopping_Price_Predictor.ipynb # Main notebook
├── amazon.csv # Dataset
└── README.md
```
## 工作流程
### 1. 数据清洗
- 移除价格列中的 `₹` 符号和逗号
- 去除折扣百分比中的 `%`
- 处理 `rating_count` 中的缺失值和格式错误
- 将所有相关列从文本类型转换为数值类型
### 2. 特征工程
- `discount_amount` —— 实际价格与折扣价的差额
- `main_category` —— 从嵌套的类别字符串中提取顶级类别
- `category_encoded` —— 用于随机森林的标签编码类别
- `product_name_len` —— 产品名称长度作为数值信号
### 3. 探索性数据分析
- **HomeImprovement** 提供最高的平均折扣(约60%)
- **Toys & Games** 提供最低的折扣(约0%)
- 评分较低的产品往往获得更高折扣——很可能是清仓定价
- 高价产品相比平价产品折扣幅度更不稳定
### 4. 模型训练
| 模型 | MAE | 说明 |
|---|---|---|
| 线性回归 | 15.6% | 基线模型——未使用类别特征 |
| 未正则化的随机森林 | 训练集:4.5% / 测试集:10.7% | 检测到过拟合 |
| 已正则化的随机森林 ✓ | 训练集:10.8% / 测试集:11.8% | 过拟合已解决 |
### 5. 正则化
初始随机森林在训练数据上过拟合(训练与测试 MAE 差距约6%)。通过以下调优解决:
- `max_depth=10` —— 限制每棵树的规则复杂度
- `min_samples_leaf=5` —— 每条规则至少应用于5个产品
- `max_features='sqrt'` —— 强制树之间具有多样性
### 6. 预测
最终模型在四个产品价格区间(从经济型到豪华型)预测折扣百分比,显示实际价格如何影响预期的折扣水平。
## 关键发现
- 产品类别是折扣百分比的最强预测因子
- 正则化后,训练与测试 MAE 的差距从约6%缩小到约1%
- 经济型产品比豪华型产品获得更深且更稳定的折扣
- 评分本身是一个弱预测因子——高评分产品并不一定折扣更少
## 技术栈
| 工具 | 用途 |
|---|---|
| Python | 核心语言 |
| Pandas | 数据加载与清洗 |
| Seaborn / Matplotlib | 可视化 |
| Scikit-learn | 模型训练与评估 |
## 如何运行
1. 克隆仓库
```
git clone https://github.com/yourusername/smart-shopping-price-predictor.git
```
2. 安装依赖
```
pip install pandas scikit-learn seaborn matplotlib
```
3. 打开笔记本
```
jupyter notebook Smart_Shopping_Price_Predictor.ipynb
```
4. 将第3单元格中的数据集路径更新为本地 `amazon.csv`
## 简历项目
**消费者行为分析与价格优化**
- 构建了一个正则化随机森林回归模型,用于预测1,465个亚马逊印度产品的折扣百分比,测试 MAE 约为11.8%
- 从产品类别、评分和定价数据中提取特征,识别出提供最深折扣的产品区间与类别,从而实现更明智的购买时机决策
标签:Amazon India, Apex, EDA, Kaggle, MAE, Mutation, NumPy, Python, Scikit-learn, 价格预测, 促销分析, 可视化, 折扣预测, 数据清洗, 数据预处理, 无后门, 最佳购买时机, 机器学习, 模型评估, 正则化, 特征工程, 电商, 类别编码, 购物建议, 过拟合修复, 过拟合检测, 逆向工具, 随机森林