Skip to main content

An implementation of the Isolation Forest anomaly detection algorithm.

Project description

C++ Rust Python 2.7|3.7 MIT license

LibIsolationForest

Description

This project contains Rust, C++, and python implementations of the Isolation Forest algorithm. Isolation Forest is an anomaly detection algorithm based around a collection of randomly generated decision trees. For a full description of the algorithm, consult the original paper by the algorithm's creators:

https://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/icdm08b.pdf

Python Example

The python implementation can be installed via pip:

pip install IsolationForest

Here's a short code snipet that shows how to use the Python version of the library. You can also read the file test.py for a complete example. As the library matures, I'll add more test examples to this file.

from isolationforest import IsolationForest

forest = IsolationForest.Forest(num_trees, sub_sampling_size)

sample = IsolationForest.Sample("Training Sample 1")
features = []
features.append({"feature 1": feature_1_value})
# Add more features to the sample...
features.append({"feature N": feature_N_value})
sample.add_features(features)
# Add the features to the sample.
forest.add_sample(sample)
# Add more samples to the forest...

# Create the forest.
forest.create()

sample = IsolationForest.Sample("Test Sample 1")
features = []
features.append({"feature 1": feature_1_value})
# Add more features to the sample...
features.append({"feature N": feature_N_value})
# Add the features to the sample.
sample.add_features(features)

# Score the sample.
score = forest.score(sample)
normalized_score = forest.normalized_score(sample)

Rust Example

An example of how to use the Rust version of the library can be found in main.rs. As the library matures, I'll add more test examples to this file.

C++ Example

An example of how to use the C++ version of the library can be found in main.cpp. As the library matures, I'll add more test examples to this file.

Version History

1.0

  • Initial version.

1.1

  • Added normalized scores.
  • Updated random number generation in rust, because it changed again.

License

This library is released under the MIT license, see LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

IsolationForest-1.1.0.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

IsolationForest-1.1.0-py2-none-any.whl (5.1 kB view details)

Uploaded Python 2

File details

Details for the file IsolationForest-1.1.0.tar.gz.

File metadata

  • Download URL: IsolationForest-1.1.0.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/2.7.15

File hashes

Hashes for IsolationForest-1.1.0.tar.gz
Algorithm Hash digest
SHA256 37aec4a4ce9f1ee7c5f2c26561351475f069a9246f63b174c00f0b21620e3a29
MD5 c43b59569d38ab239f68263099fd9a5f
BLAKE2b-256 5c95767b538c9ce90d00d550e29477f6ebdef6c431e7734c404991c051847513

See more details on using hashes here.

File details

Details for the file IsolationForest-1.1.0-py2-none-any.whl.

File metadata

  • Download URL: IsolationForest-1.1.0-py2-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/2.7.15

File hashes

Hashes for IsolationForest-1.1.0-py2-none-any.whl
Algorithm Hash digest
SHA256 30a66f6bfe059e6b39031406d640c17000cb0730b9685cec96070710804a222f
MD5 0dac0ddc72c109fc8bec31aef3b33025
BLAKE2b-256 52e20d1b75969595e37564db1c6a21998ec3d73f7a704f23e2d4a4c9aba12423

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page