- class pygod.detector.DONE(hid_dim=64, num_layers=4, dropout=0.0, weight_decay=0.0, act=<function relu>, backbone=None, w1=0.2, w2=0.2, w3=0.2, w4=0.2, w5=0.2, contamination=0.1, lr=0.004, epoch=100, gpu=-1, batch_size=0, num_neigh=-1, verbose=0, save_emb=False, compile_model=False, **kwargs)#
Deep Outlier Aware Attributed Network Embedding
DONE consists of an attribute autoencoder and a structure autoencoder. It estimates five losses to optimize the model, including an attribute proximity loss, an attribute homophily loss, a structure proximity loss, a structure homophily loss, and a combination loss. It calculates three outlier scores, and averages them as an overall scores.
This detector is transductive only. Using
predictwith unseen data will train the detector from scratch.
See [BVM20] for details.
hid_dim (int, optional) – Hidden dimension of model. Default:
num_layers (int, optional) – Total number of layers in model. A half (floor) of the layers are for the encoder, the other half (ceil) of the layers are for decoders. Default:
dropout (float, optional) – Dropout rate. Default:
weight_decay (float, optional) – Weight decay (L2 penalty). Default:
backbone (torch.nn.Module) – The backbone of DONE is fixed to be MLP. Changing of this parameter will not affect the model. Default:
w1 (float, optional) – Weight of structure proximity loss. Default:
w2 (float, optional) – Weight of structure homophily loss. Default:
w3 (float, optional) – Weight of attribute proximity loss. Default:
w4 (float, optional) – Weight of attribute homophily loss. Default:
w5 (float, optional) – Weight of combination loss. Default:
contamination (float, optional) – The amount of contamination of the dataset in (0., 0.5], i.e., the proportion of outliers in the dataset. Used when fitting to define the threshold on the decision function. Default:
lr (float, optional) – Learning rate. Default:
epoch (int, optional) – Maximum number of training epoch. Default:
gpu (int) – GPU Index, -1 for using CPU. Default:
batch_size (int, optional) – Minibatch size, 0 for full batch training. Default:
num_neigh (int, optional) – Number of neighbors in sampling, -1 for all neighbors. Default:
verbose (int, optional) – Verbosity mode. Range in [0, 3]. Larger value for printing out more log information. Default:
save_emb (bool, optional) – Whether to save the embedding. Default:
compile_model (bool, optional) – Whether to compile the model with
**kwargs – Other parameters for the backbone model.
The outlier scores of the training data. Outliers tend to have higher scores. This value is available once the detector is fitted.
The threshold is based on
contamination. It is the \(N`*``contamination`\) most abnormal samples in
decision_score_. The threshold is calculated for generating binary outlier labels.
The binary labels of the training data. 0 stands for inliers and 1 for outliers. It is generated by applying
The learned node hidden embeddings of shape \(N \times\)
hid_dim. Only available when
True. When the detector has not been fitted,
None. When the detector has multiple embeddings,
embis a tuple of torch.Tensor.
- fit(data, label=None)#
Fit detector with training data.
self – Fitted detector.
- Return type:
- predict(data=None, label=None, return_pred=True, return_score=False, return_prob=False, prob_method='linear', return_conf=False, return_emb=False)#
Prediction for testing data using the fitted detector. Return predicted labels by default.
data (torch_geometric.data.Data, optional) – The testing graph. If
None, the training data is used. Default:
label (torch.Tensor, optional) – The optional outlier ground truth labels used for testing. Default:
return_pred (bool, optional) – Whether to return the predicted binary labels. The labels are determined by the outlier contamination on the raw outlier scores. Default:
return_score (bool, optional) – Whether to return the raw outlier scores. Default:
return_prob (bool, optional) – Whether to return the outlier probabilities. Default:
prob_method (str, optional) –
The method to convert the outlier scores to probabilities. Two approaches are possible:
'linear': simply use min-max conversion to linearly transform the outlier scores into the range of [0,1]. The model must be fitted first.
'unify': use unifying scores, see [KKSZ11].
return_conf (boolean, optional) – Whether to return the model’s confidence in making the same prediction under slightly different training sets. See [PVD20]. Default:
return_emb (bool, optional) – Whether to return the learned node representations. Default:
pred (torch.Tensor) – The predicted binary outlier labels of shape \(N\). 0 stands for inliers and 1 for outliers. Only available when
score (torch.Tensor) – The raw outlier scores of shape \(N\). Only available when
prob (torch.Tensor) – The outlier probabilities of shape \(N\). Only available when
conf (torch.Tensor) – The prediction confidence of shape \(N\). Only available when