yzhao062 / pyod

A Python Library for Outlier and Anomaly Detection, Integrating Classical and Deep Learning Techniques
http://pyod.readthedocs.io
BSD 2-Clause "Simplified" License
8.45k stars 1.36k forks source link

SO_GAAL and MO_GAAL decision_function mistake #119

Open WangXuhongCN opened 5 years ago

WangXuhongCN commented 5 years ago

In the original paper "Generative adversarial active learning for unsupervised outlier detection", the outlier score is defined as OS(x)=1-D(x) (Page 7 Algorithm 1). However, in pyod's implementation, the outlier score is defined as D(x), so I hope this mistake can be revised。

WangXuhongCN commented 5 years ago

Moreover, most algorithms use contamination proportions to determine the threshold, but I don't think GAAL is suitable for it. Since the Discriminator is a two-class classifier, the threshold should always be set as 0.5. I hope the author can reconsider that.

yzhao062 commented 5 years ago

Thanks for the note. These two models are implemented by another contributor--I need some time to understand the underlying logic. I think that we asked for permission from the authors of the paper and have their check as well. Even though, some bugs may be there.

If you are sure these problems are legit, feel free to submit a fix or we could do something then. Thanks