We are excited to announce the final pre-alpha release, PyGOD v0.4, which marks a major milestone in our development. Following bug fixes and minor improvements, we plan to release v1.0. Your feedback and suggestions are appreciated. ⚠️ Please note that this version is NOT forward compatible and some APIs have changed. Here are the major changes in this release:
Enhanced Base Class
Detector
: base class for all detectors.DeepDetector
: base class for all deep learning based detectors.
Simplied APIs
- Removed
predict_proba
andpredict_confidence
. - Use
predict(return_prob=True, return_conf=True)
instead.
Modularized Detectors
We now introduce multiple modules to improve the code reusability and extendibility.
nn
: all base models inherittorch.nn.Module
nn.encoder
:nn.decoder
:nn.functional
: loss function, etc.
Also, we changed the name of several modules to improve the clarity.models
→detector
metrics
→metric
More Utility Functions
to_edge_score
: edge outlier score converterto_graph_score
: graph outlier score converterinit_detector
: detector initializerinit_nn
: neural network initializer
Updated Requirements
- PyGOD now requires Python 3.8+
- PyTorch 2.0 and PyG 2.3.0 support
- Enabled model compile via
detector(compile_model=True)
(beta)
And Many More
- More comprehensive test coverage (almost 100%)
- Reorganized documentation for better readability
- Merge
MLPAE
andGCNAE
toGAE
- Most of the deep detectors support specifying various backbone from PyG
- Retrieve learned embedding from fitted deep detectors with
save_emb=True
bydetector.emb