这是一个机器学习学习项目。
通过这个项目,获得以下实践经验:
- 数据预处理技能(处理缺失值、异常值、标准化)
- 监督学习分类任务的完整实现
- 多种机器学习算法的性能比较
- 模型结果的理解和解释
water-quality-prediction/
├── README.md # 项目说明文档
├── requirements.txt # 依赖包列表
├── step1_preprocessing.py # 步骤1:数据预处理
├── step2_classification.py # 步骤2:监督分类任务构建
├── step3_algorithm_comparison.py # 步骤3:算法性能比较
├── step4_model_interpretation.py # 步骤4:模型结果理解与解释
├── water_potability.csv # 数据文件(需要自行准备)
├── preprocessed_data/ # 预处理后的数据(自动生成)
├── trained_model/ # 训练好的模型(自动生成)
├── algorithm_comparison/ # 算法比较结果(自动生成)
└── water_quality_analysis_report.txt # 最终分析报告(自动生成)
# 克隆项目(如果从GitHub获取)
git clone https://github.com/111acge/WaterPotability.git
cd water-quality-prediction
# 安装依赖
pip install -r requirements.txt准备一个名为 water_quality.csv 的数据文件,包含以下列:
| 列名 | 描述 | 数据类型 |
|---|---|---|
| ph | pH值 | float |
| Hardness | 硬度 (mg/L) | float |
| Solids | 总固体 (ppm) | float |
| Chloramines | 氯胺 (ppm) | float |
| Sulfate | 硫酸盐 (mg/L) | float |
| Conductivity | 电导率 (μS/cm) | float |
| Organic_carbon | 有机碳 (ppm) | float |
| Trihalomethanes | 三卤甲烷 (mg/L) | float |
| Turbidity | 浊度 (NTU) | float |
| Potability | 饮用性 (1=可饮用, 0=不可饮用) | int |
按照顺序执行四个步骤:
# 步骤1:数据预处理
python step1_preprocessing.py
# 步骤2:构建监督分类任务
python step2_classification.py
# 步骤3:比较算法性能
python step3_algorithm_comparison.py
# 步骤4:理解和解释模型结果
python step4_model_interpretation.py输出文件:
preprocessed_data/X_tensor.pt- 预处理后的特征数据preprocessed_data/y_tensor.pt- 目标标签数据preprocessed_data/scaler.pkl- 标准化器
输出文件:
trained_model/model_state.pt- 模型参数trained_model/complete_model.pt- 完整模型trained_model/training_history.pt- 训练历史trained_model/evaluation_metrics.pt- 评估指标
输出文件:
algorithm_comparison/algorithm_comparison.csv- 性能比较表algorithm_comparison/all_results.pt- 所有模型结果algorithm_comparison/best_traditional_model.pkl- 最佳传统模型
输出文件:
water_quality_analysis_report.txt- 综合分析报告
- Python: 3.7+
- 操作系统: Windows/macOS/Linux
- 内存: 建议4GB以上
- 存储空间: 约500MB
如果遇到包版本冲突,建议使用虚拟环境:
# 创建虚拟环境
python -m venv water_quality_env
# 激活虚拟环境 (Windows)
water_quality_env\Scripts\activate
# 激活虚拟环境 (macOS/Linux)
source water_quality_env/bin/activate
# 安装依赖
pip install -r requirements.txt