Skip to content

Commit

Permalink
change readme file
Browse files Browse the repository at this point in the history
  • Loading branch information
yzhao062 authored and yuezhao@cs.toronto.edu committed May 27, 2018
1 parent 244825b commit 025d4dc
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 76 deletions.
4 changes: 3 additions & 1 deletion CHANGES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ v<0.1.2>, <05/20/2018> -- Hot fixes for broken dependency.
v<0.1.3>, <05/21/2018> -- Function Signiture Improvement.
v<0.2.0>, <05/23/2018> -- Implement tests and improve stability.
v<0.2.1>, <05/23/2018> -- Remove data loading func due to broken dependency.
v<0.2.2>, <05/24/2018> -- Refactor models and add more testcases
v<0.2.2>, <05/24/2018> -- Refactor models and add more testcases
v<0.2.3>, <05/26/2018> -- Add more testcases
v<0.3.0>, <05/27/2018> -- Provided full documentation
86 changes: 20 additions & 66 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
# Python Outlier Detection (PyOD)
[![PyPI version](https://badge.fury.io/py/pyod.svg)](https://badge.fury.io/py/pyod) [![Build Status](https://travis-ci.org/yzhao062/Pyod.svg?branch=master)](https://travis-ci.org/yzhao062/Pyod) [![Coverage Status](https://coveralls.io/repos/github/yzhao062/Pyod/badge.svg?branch=master)](https://coveralls.io/github/yzhao062/Pyod?branch=master) [![Documentation Status](https://readthedocs.org/projects/pyod/badge/?version=latest)](https://pyod.readthedocs.io/en/latest/?badge=latest)

**Note: PyOD has been successfully used in various academic researches [8, 9] and under active development. However, full documentation and unit tests are temporarily unavailable yet planned for future release**. The purpose of the toolkit is for quick exploration. Using it as the final output should be cautious. Fine-tunning may be needed to generate meaningful results.
**Note: PyOD has been successfully used in various academic researches [8, 9] and under active development**. The purpose of the toolkit is for quick exploration. Using it as the final output should be cautious. Fine-tunning may be needed to generate meaningful results.

The authours can be reached out by yuezhao@cs.toronto.edu. Please feel free to drop an email if you have any questions. PR and issue are also welcome for feature requests and bugs. Apologies for incomplete ducomentation.
The authours can be reached out by yuezhao@cs.toronto.edu. Please feel free to drop an email if you have any questions. PR and issue are also welcome for feature requests and bugs.

- **[Current version on PyPI](https://pypi.org/project/pyod/)**.
- [![Documentation Status](https://readthedocs.org/projects/pyod/badge/?version=latest)](https://pyod.readthedocs.io/en/latest/?badge=latest) **[Documentation & API Reference](https://http://pyod.readthedocs.io)**

- [![PyPI version](https://badge.fury.io/py/pyod.svg)](https://badge.fury.io/py/pyod) **[Current version on PyPI](https://pypi.org/project/pyod/)**.

- **[Github repository with examples](https://github.com/yzhao062/Pyod)**.

Expand All @@ -14,13 +16,13 @@ The authours can be reached out by yuezhao@cs.toronto.edu. Please feel free to d
**Table of Contents**:
<!-- TOC -->

[Python Outlier Detection (PyOD)](#python-outlier-detection-pyod)
- [Quick Introduction](#quick-introduction)
- [Installation](#installation)
- [API Cheatsheet](#api-cheatsheet)
- [Quick Start for Outlier Detection](#quick-start-for-outlier-detection)
- [Quick Start for Combining Outlier Scores from Various Base Detectors](#quick-start-for-combining-outlier-scores-from-various-base-detectors)
- [Reference](#reference)
- [Python Outlier Detection (PyOD)](#python-outlier-detection-pyod)
- [Quick Introduction](#quick-introduction)
- [Installation](#installation)
- [API Cheatsheet & Reference](#api-cheatsheet-reference)
- [Quick Start for Outlier Detection](#quick-start-for-outlier-detection)
- [Quick Start for Combining Outlier Scores from Various Base Detectors](#quick-start-for-combining-outlier-scores-from-various-base-detectors)
- [Reference](#reference)

<!-- /TOC -->

Expand Down Expand Up @@ -73,8 +75,11 @@ Library Dependency (work only with **Python 3**):
- matplotlib>=2.0.2 **(optional but required for running examples)**

------------
### API Cheatsheet
For all algorithms implemented/wrapped in PyOD, the similar API is forced for consistency.
### API Cheatsheet & Reference

Full API Reference: (http://pyod.readthedocs.io/en/latest/api.html)

API cheatsheet:

- **fit()**: fit the model with the training data
- **fit_predict()**: fit and return the binary outlier lables (0 is normal and 1 is outliers)
Expand All @@ -97,54 +102,11 @@ Import utility functions:
from pyod.util.utility import precision_n_scores
...
````

Full package structure can be found below:
- http://pyod.readthedocs.io/en/latest/genindex.html
- http://pyod.readthedocs.io/en/latest/py-modindex.html

````
examples (excluded from installation, only available on Github)
├───abod_example.py: Example of using ABOD for outlier detection
│ comb_example.py: Example of combining multiple base outlier scores
│ hbos_example.py: Example of using HBOS for outlier detection
│ iforest_example.py: Example of using Isolation Forest for outlier detection
│ knn_example.py: Example of using kNN for outlier detection
│ lof_example.py: Example of using LOF for outlier detection
│ ocsvm_example.py: Example of using one-class SVM for outlier detection
pyod (main package)
├───models
│ abod.py:
│ class ABOD(), from pyod.models.abod import ABOD
│ combination.py
│ amo(), from pyod.models.combination import aom
│ moa(), from pyod.models.combination import moa
│ glosh.py: class Glosh(), from pyod.models.glosh import Glosh
│ hbos.py: class HBOS(), from pyod.models.hbos import HBOS
│ iforest: class IForest(), from pyod.models.iforest import IForest
│ knn.py: class KNN(), from pyod.models.knn import Knn
│ lof.py: class LOF(), from pyod.models.lof import LOF
│ ocsvm.py: class OCSVM(), from pyod.models.ocsvm import OCSVM
├───utils
│ stat_models.py
│ utility.py
│ standardizer(): z- normalization function
│ scores_to_lables(): turn raw outlier scores to binary labels (0 or 1)
│ precision_n_scores(): Utlity function to calculate precision@n
│ load_data.py
│ generate_data(): generate sample data
├───test (excluded from installation, only available on Github)
│ test_abod.py
| test_combination.py
│ test_hbos.py
│ test_knn.py
│ test_lof.py
│ test_iforest.py
│ test_ocsvm.py
│ test_utility.py
````
------------

### Quick Start for Outlier Detection
Expand Down Expand Up @@ -278,19 +240,11 @@ The walkthrough of the code example is provided:

### Reference
[1] Breunig, M.M., Kriegel, H.P., Ng, R.T. and Sander, J., 2000, May. LOF: identifying density-based local outliers. In *ACM SIGMOD Record*, pp. 93-104. ACM.

[2] Liu, F.T., Ting, K.M. and Zhou, Z.H., 2008, December. Isolation forest. In *ICDM '08*, pp. 413-422. IEEE.

[3] Ma, J. and Perkins, S., 2003, July. Time-series novelty detection using one-class support vector machines. In *IJCNN' 03*, pp. 1741-1745. IEEE.

[4] Campello, R.J., Moulavi, D., Zimek, A. and Sander, J., 2015. Hierarchical density estimates for data clustering, visualization, and outlier detection. *TKDD*, 10(1), pp.5.

[5] Goldstein, M. and Dengel, A., 2012. Histogram-based outlier score (hbos): A fast unsupervised anomaly detection algorithm. In *KI-2012: Poster and Demo Track*, pp.59-63.

[6] Aggarwal, C.C. and Sathe, S., 2015. Theoretical foundations and algorithms for outlier ensembles.*ACM SIGKDD Explorations Newsletter*, 17(1), pp.24-47.

[7] Kriegel, H.P. and Zimek, A., 2008, August. Angle-based outlier detection in high-dimensional data. In *KDD '08*, pp. 444-452. ACM.

[8] Y. Zhao and M.K. Hryniewicki, "XGBOD: Improving Supervised Outlier Detection with Unsupervised Representation Learning," *IEEE International Joint Conference on Neural Networks*, 2018.

[9] Y. Zhao and M.K. Hryniewicki, "DCSO: Dynamic Combination of Detector Scores for Outlier Ensembles," *ACM SIGKDD Workshop on Outlier Detection De-constructed*, 2018. Submitted, under review.
8 changes: 0 additions & 8 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -69,21 +69,13 @@ Reference
++++++++++++

[1] Breunig, M.M., Kriegel, H.P., Ng, R.T. and Sander, J., 2000, May. LOF: identifying density-based local outliers. In *ACM SIGMOD Record*, pp. 93-104. ACM.

[2] Liu, F.T., Ting, K.M. and Zhou, Z.H., 2008, December. Isolation forest. In *ICDM '08*, pp. 413-422. IEEE.

[3] Ma, J. and Perkins, S., 2003, July. Time-series novelty detection using one-class support vector machines. In *IJCNN' 03*, pp. 1741-1745. IEEE.

[4] Campello, R.J., Moulavi, D., Zimek, A. and Sander, J., 2015. Hierarchical density estimates for data clustering, visualization, and outlier detection. *TKDD*, 10(1), pp.5.

[5] Goldstein, M. and Dengel, A., 2012. Histogram-based outlier score (hbos): A fast unsupervised anomaly detection algorithm. In *KI-2012: Poster and Demo Track*, pp.59-63.

[6] Aggarwal, C.C. and Sathe, S., 2015. Theoretical foundations and algorithms for outlier ensembles.*ACM SIGKDD Explorations Newsletter*, 17(1), pp.24-47.

[7] Kriegel, H.P. and Zimek, A., 2008, August. Angle-based outlier detection in high-dimensional data. In *KDD '08*, pp. 444-452. ACM.

[8] Y. Zhao and M.K. Hryniewicki, "XGBOD: Improving Supervised Outlier Detection with Unsupervised Representation Learning," *IEEE International Joint Conference on Neural Networks*, 2018.

[9] Y. Zhao and M.K. Hryniewicki, "DCSO: Dynamic Combination of Detector Scores for Outlier Ensembles," *ACM SIGKDD Workshop on Outlier Detection De-constructed*, 2018. Submitted, under review.

==================
Expand Down
2 changes: 1 addition & 1 deletion pyod/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = '0.2.3'
__version__ = '0.3.0'

from . import models
from . import utils
Expand Down

0 comments on commit 025d4dc

Please sign in to comment.