SoilGraph 结合因果发现(DAG / 邻接矩阵)与机器学习模型,自动筛选光谱特征中对土壤湿度有因果影响的父节点特征,支持 SHAP 可解释性分析与多模型对比。包含自动化数据预处理、特征筛选、交叉验证评估与可视化结果保存,适用于光谱数据分析与水文建模研究。
-
因果发现:基于神经网络(DAGLearner)学习因果结构,筛选指向
soil_moisture的因果父节点 -
多模型对比
:支持 7 种回归模型预测土壤湿度,包括:
- 线性回归 / 岭回归
- 随机森林 / LightGBM / XGBoost
- 多层感知机(MLP)
- K 近邻回归
- ……..
-
可解释分析:提供 SHAP 特征贡献分析(
SHAP.py)与详细可视化(SHAP_detail.py) -
自动化流程:从数据预处理、特征工程到结果保存全自动完成
SoilGraph/
├── feature_dag/ # DAG模型结果
│ └── {n}h/ # 按小时分组的邻接矩阵
├── feature_mlp/ # MLP基准模型结果
├── SoilGraph/ # 输出目录
│ └── result/ # 评估结果与可视化
│ ├── shap/ # SHAP分析结果
│ └── *.xlsx # 汇总表格
├── MLP.py # MLP基准模型训练
├── prediction.py # 多模型预测评估
├── SHAP.py # 简版SHAP分析
├── SHAP_detail.py # 详细SHAP可视化
├── SpectralDAG.py # 核心DAG模型
└── soilmoisture_dataset.csv # 原始数据-
Python 3.8+
-
核心依赖
numpy, pandas, scikit-learn, torch, matplotlib, seaborn -
可选依赖
(SHAP 分析、LightGBM/XGBoost 需安装):
lightgbm, xgboost, shap -
安装命令
pip install -r requirements.txt
-
数据预处理与 DAG 学习:
python SpectralDAG.py
-
运行多模型预测:
python prediction.py
-
SHAP 可解释性分析:
# 简版分析 python SHAP.py # 详细可视化 python SHAP_detail.py
输出文件包含以下核心内容:
allDAG.xlsx:每个小时组合的详细预测结果resultDAG.xlsx:按时间分组的模型平均指标shap/目录:特征贡献度分析结果(含 CSV 数据文件与 PNG 可视化图)
-
SHAP 安装失败:通过跳过依赖检查安装
pip install shap --no-deps
-
LightGBM/XGBoost 安装问题(Windows 用户建议):
# Windows用户使用预编译版本 pip install lightgbm xgboost -f https://pip.volta.club -
CUDA 加速支持(需匹配 PyTorch 版本):
conda install pytorch cudatoolkit=11.3 -c pytorch