该存储库提供了ExGeo框架的原始PyTorch实现。
1.更新日志(23.10.19):补充了main.py中打印mask_matrix的代码,该代码可以通过改变epoch的数量来显示矩阵的变化。
2.更新日志(23.10.27):修改了Aib的先验概率参数p=0.1。如果想重现可解释性实验,使用较小的概率参数会更明显。值得注意的是,不同的权重'beta'最终将使学习到的Q(Aib/A)收敛到先验分布P(A)。然而,通过我们对收敛过程的仔细观察,我们可以看到,在相同的性能(mse,median,rmse)下,更大的权重'beta'将保留更少的节点,这与我们的实验结果相一致。
一、基础用法
1、需求 Requirements
代码使用python 3.8.13、PyTorch 1.12.1、cudatoolkit 11.6.0和cudnn 7.6.5进行了测试。通过Anaconda安装依赖:
# create virtual environment
conda create --name ExGeo python=3.8.13# activate environment
conda activate ExGeo# install pytorch & cudatoolkit
conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge
# install other requirements
conda install numpy pandas
pip install scikit-learn
2、运行代码
# Open the "ExGeo" folder
cd ExGeo# data preprocess (executing IP clustering).
python generateidx.py --dataset "New_York"
python generateidx.py --dataset "Los_Angeles"
python generateidx.py --dataset "Shanghai"
python preprocess.py --dataset "New_York"
python preprocess.py --dataset "Los_Angeles"
python preprocess.py --dataset "Shanghai"# run the model ExGeo<