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
Hashes for IsolationForest-1.1.0-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30a66f6bfe059e6b39031406d640c17000cb0730b9685cec96070710804a222f |
|
MD5 | 0dac0ddc72c109fc8bec31aef3b33025 |
|
BLAKE2b-256 | 52e20d1b75969595e37564db1c6a21998ec3d73f7a704f23e2d4a4c9aba12423 |