An implementation of the Isolation Forest anomaly detection algorithm.
Project description
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37aec4a4ce9f1ee7c5f2c26561351475f069a9246f63b174c00f0b21620e3a29 |
|
MD5 | c43b59569d38ab239f68263099fd9a5f |
|
BLAKE2b-256 | 5c95767b538c9ce90d00d550e29477f6ebdef6c431e7734c404991c051847513 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30a66f6bfe059e6b39031406d640c17000cb0730b9685cec96070710804a222f |
|
MD5 | 0dac0ddc72c109fc8bec31aef3b33025 |
|
BLAKE2b-256 | 52e20d1b75969595e37564db1c6a21998ec3d73f7a704f23e2d4a4c9aba12423 |