# ucl-bikesharing **Repository Path**: ppshux/ucl-bikesharing ## Basic Information - **Project Name**: ucl-bikesharing - **Description**: 本项目基于 UCI Bike Sharing 数据集,完成对共享单车租赁需求的全流程数据挖掘分析,包括: 数据预处理与探索性数据分析(EDA) K-Means 聚类模型构建与最优 K 值选择 Apriori 关联规则挖掘 趋势分析、可视化与业务解释 项目结构清晰,包含 Notebook 源码、图表输出、报告文档以及运行指南,能够完整复现分析过程,可用于课程作业展示或数据挖掘入门参考。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-12-11 - **Last Updated**: 2026-03-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据挖掘项目:UCI 自行车共享数据分析 ## 📋 项目概述 本项目对 UCI 自行车共享数据集进行了全面的数据挖掘分析,包括: - **探索性数据分析(EDA)**:数据质量检查、描述性统计、相关性分析、趋势分析 - **K-Means 聚类分析**:识别需求模式,发现客户细分 - **Apriori 关联规则挖掘**:发现温度、湿度与需求之间的关联关系 ## 📁 项目结构 ``` data_mining_project/ ├── data/ # 数据集目录 │ ├── hour.csv # 小时级别数据(主要使用) │ └── day.csv # 日级别数据 │ ├── eda.ipynb # EDA 分析 notebook ├── clustering.ipynb # K-Means 聚类分析 notebook ├── association_rules.ipynb # Apriori 关联规则挖掘 notebook ├── 综合总结.ipynb # 整合所有分析的总结报告 │ ├── output/ # 最终版输出目录 │ ├── *.png # 所有图表文件(300 DPI) │ ├── *.csv # 数据结果文件 │ └── *.txt # 分析总结文档 │ ├── visualization/ # 可视化目录(中间文件) ├── report/ # 报告材料目录 │ ├── 数据分析大作业报告.md │ ├── PPT_文案_中文.md │ └── Python_vs_Weka_聚类对比分析.md │ └── README.md # 本文件 ``` ## 🚀 快速开始 ### 环境要求 - Python 3.7+ - Jupyter Notebook 或 JupyterLab - 必需的 Python 库: ```bash pip install pandas numpy matplotlib seaborn scikit-learn ``` ### 运行步骤 #### 1. 准备数据 确保数据文件已放置在 `data/` 目录下: - `data/hour.csv` (必需) - `data/day.csv` (可选) #### 2. 运行分析 Notebook **按顺序运行以下 notebook:** 1. **eda.ipynb** - 探索性数据分析 - 运行时间:约 2-3 分钟 - 生成内容: - EDA 图表(小时趋势图、周趋势图、月趋势图、相关性热力图、直方图等) - `output/EDA分析总结.txt` 2. **clustering.ipynb** - K-Means 聚类分析 - 运行时间:约 1-2 分钟 - 生成内容: - 聚类图表(SSE 曲线、轮廓系数曲线、散点图、簇中心对比图等) - `output/聚类分析总结.txt` 3. **association_rules.ipynb** - Apriori 关联规则挖掘 - 运行时间:约 1-2 分钟 - 生成内容: - 关联规则结果表格(PNG 和 CSV) - `output/关联规则分析总结.txt` 4. **综合总结.ipynb** - 生成完整项目报告 - 运行时间:< 1 分钟 - 生成内容: - `output/项目完整总结报告.txt` ### 3. 查看结果 所有输出文件保存在 `output/` 目录: - **图表文件**:15+ 张 PNG 图表(300 DPI,适合 PPT 和报告) - **数据文件**:CSV 格式的统计结果和规则表格 - **总结文档**:4 个文本文件,包含详细的分析总结 ## 📊 输出文件说明 ### 图表文件(PNG,300 DPI) **EDA 分析图表:** - `小时趋势图.png` - 按小时的需求趋势 - `周趋势图.png` - 按星期的需求趋势 - `月趋势图.png` - 按月份的需求趋势 - `相关性热力图.png` - 特征相关性矩阵 - `直方图_temp.png` - 温度分布 - `直方图_hum.png` - 湿度分布 - `直方图_cnt.png` - 租车量分布 - `直方图_hr.png` - 小时分布 **聚类分析图表:** - `SSE_肘部法曲线.png` - SSE 曲线(确定最优 k) - `轮廓系数曲线.png` - 轮廓系数曲线(确定最优 k) - `聚类散点图_温度vs租车量.png` - 温度与租车量聚类结果 - `聚类散点图_小时vs租车量.png` - 小时与租车量聚类结果 - `簇中心对比图.png` - 各簇中心特征对比 **关联规则分析:** - `Apriori规则结果表格.png` - 关联规则可视化表格 - `Apriori规则结果表格.csv` - 关联规则 CSV 数据 ### 总结文档(TXT) - `EDA分析总结.txt` - EDA 分析完整总结 - `聚类分析总结.txt` - 聚类分析完整总结 - `关联规则分析总结.txt` - 关联规则分析完整总结 - `项目完整总结报告.txt` - 整合所有模块的完整报告 ## 📝 代码说明 ### Notebook 结构 每个 notebook 都包含: - **Markdown 单元格**:说明分析步骤和目的 - **代码单元格**:包含详细的中文注释 - **输出单元格**:显示分析结果和图表 ### 关键功能 1. **自动字段映射**:兼容不同的字段命名(如 hr/hour, hum/humidity) 2. **自动最佳 k 选择**:使用 SSE 和轮廓系数双重评估 3. **智能簇解释**:自动生成中文业务解释 4. **统一输出**:所有图表保存到 `output/` 目录,文件名清晰 ## 📖 报告材料 ### 中文报告 - `report/数据分析大作业报告.md` - 完整的中文报告(约 5 页) - `report/PPT_文案_中文.md` - 中文 PPT 文案(26 个幻灯片) ### 英文材料 - `report/PPT_Script_English.md` - 英文 PPT 文案 ### 对比分析 - `report/Python_vs_Weka_聚类对比分析.md` - Python 与 Weka 工具对比 ## 🔧 常见问题 ### Q1: 运行 notebook 时出现中文显示问题 **解决方案:** - 确保系统已安装中文字体(SimHei 或 Microsoft YaHei) - 代码中已设置字体参数,如仍有问题,可修改 `plt.rcParams['font.sans-serif']` ### Q2: 找不到数据文件 **解决方案:** - 确保 `hour.csv` 和 `day.csv` 在 `data/` 目录下 - 代码会自动检测并使用 `hour.csv`(如果找不到 `bike.csv`) ### Q3: 图表没有生成 **解决方案:** - 确保 `output/` 目录存在(代码会自动创建) - 检查是否有写入权限 - 查看 notebook 输出中的错误信息 ### Q4: 如何修改分析参数 **EDA 分析:** - 修改 `eda.ipynb` 中的字段选择和分析范围 **聚类分析:** - 修改 `clustering.ipynb` 中的 `k_range` 来尝试不同的 k 值 - 修改 `min_support` 和 `min_confidence` 来调整规则筛选 **关联规则:** - 修改 `association_rules.ipynb` 中的 `min_support` 和 `min_confidence` ## 📚 技术栈 - **数据处理**:pandas, numpy - **可视化**:matplotlib, seaborn - **机器学习**:scikit-learn (KMeans, StandardScaler, silhouette_score) - **算法实现**:自实现 Apriori 算法 ## 👤 作者信息 - **角色**:分析与可视化负责人 - **任务**:EDA + 聚类 + 可视化 ## 📄 许可证 本项目为课程作业项目,仅供学习和研究使用。 ## 🙏 致谢 - 数据集来源:UCI Machine Learning Repository - Bike Sharing Dataset - 感谢课程提供的指导和支持 --- **最后更新**:2024年 **项目状态**:✅ 已完成,可直接运行