Git Product home page Git Product logo

pygod's Issues

PyGOD Issue #84

Using the package to detect edge level and sub-graph level anomalies.

To Do:

  • Adding an ipynb style example for edge level or (sub-)graph level outlier detection

PyGOD Issue #83

Issue of pygod-team#83

Describe the bug

The results on inj_cora (AUC: 0.7566±0.0332 (0.7751)) and inj_amazon (AUC: 0.7147±0.0006 (0.7152)) are significantly different from what you show in Table 3 from the BOND paper (https://arxiv.org/pdf/2206.10071.pdf), which are 82.7±5.6 (84.3) on inj_cora and 81.3±1.0 (82.2) for inj_amazon.

Inconsistency Result of BOND paper, Table 3 (on inj_cora and inj_amazon datasets)

To Reproduce
Steps to reproduce the behavior:
May be error found in pygod v1.0.0

Expected behavior
AUC result must be alike Table 3 of the BOND paper (https://arxiv.org/pdf/2206.10071.pdf)
By downgrading to the original version used by the benchmark v0.3.1 via pip install pygod=0.3.1, the expected results can be regenerated.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

To Do
According to @kayzliu, the following things need to do.

  • Have to update model initialization in utils.
  • Remove heuristic selection of weight.
  • Update the parameter name for detectors (DOMINANT, GAAN, and CONAD) from alpha to weight.

DOMINANT Model `init`+`training` using `LightningModule`

Have to implement the following methods:

  • def __init__(...): it initializes the model
  • def forward(...): it executes the model forward operation
  • def configure_optimizers(...): it configures optimizer
  • def training_step(...): it executes on every training steps + on each epoch
  • Must be equal or close to v1.0.0 DOMINANT + inj_cora result

PyGOD Issue #26

Title:
Wrapping with Pytorch Lightning

Description:
We would like to start improving the model scalability via Pytorch Lightning (https://www.pytorchlightning.ai/)

To Do:
by using Pytorch Lightning:

  • #4
  • #5
  • Do the above steps for other models
    • will be updated later

Data Preparation using `LightningDataModule`

Have to implement the following things by using torch.utils.data.Dataset:

  • def __init__(...): Setup data directory
  • def __len__(...): Return the length of sample
  • def __getitem__(...): Return the sample (x, y)

    Have to Implement the following things by using LightningDataModule, for the inj_cora dataset:
  • def __init__(...): setup data directory
  • def preapre_data(...): download data in local
  • def setup(...): load data from local
  • def train_dataloaders(...): setup training data for training
  • Must be equal or close to load_data() result for inj_cora dataset

    Dataset preparations depend on the following functions and variables:
  1. to_dense_adj(...)
  2. num_neigh + num_layers
  3. NeighborLoader(...)

    The above factors are dependent on models. So, have to do the following things:
  • Point out models with to_dense_adj(...) and/or num_neigh + num_layers and NeighborLoader(...)


Have to do the following things, based on the above implementations:

  • Comparing the output of the following datasets with the load_data() output:
    • inj_amazon
    • inj_flickr
    • weibo
    • reddit
    • disney
    • books
    • enron

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.