Skip to content

yuan7981/SoilGraph

Repository files navigation

SoilGraph 项目说明

项目简介

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

使用流程

  1. 数据预处理与 DAG 学习

    python SpectralDAG.py
  2. 运行多模型预测

    python prediction.py
  3. SHAP 可解释性分析

    # 简版分析
    python SHAP.py
    
    # 详细可视化
    python SHAP_detail.py

结果解读

输出文件包含以下核心内容:

  • allDAG.xlsx:每个小时组合的详细预测结果
  • resultDAG.xlsx:按时间分组的模型平均指标
  • shap/ 目录:特征贡献度分析结果(含 CSV 数据文件与 PNG 可视化图)

常见问题

  1. SHAP 安装失败:通过跳过依赖检查安装

    pip install shap --no-deps
  2. LightGBM/XGBoost 安装问题(Windows 用户建议):

    # Windows用户使用预编译版本
    pip install lightgbm xgboost -f https://pip.volta.club
  3. CUDA 加速支持(需匹配 PyTorch 版本):

    conda install pytorch cudatoolkit=11.3 -c pytorch

About

SoilGraph结合因果发现(DAG / 邻接矩阵)与机器学习模型,自动筛选光谱特征中对土壤湿度有因果影响的父节点特征,支持SHAP可解释性分析与多模型对比。包含自动化数据筛选、特征筛选、交叉验证评估与可视化结果保存,适用于光谱数据分析与水文建模研究。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages