Skip to main content

Isolation Kernel Toolkit in Python.

Project description

Python PyPI codecov Build status Project Status: Active Maintenance Downloads Downloads License

About The Project

IKPyKit (Isolation Kernel Python toolKit) is an intuitive Python library designed for a variety of machine learning tasks including kernel similarity calculation, anomaly detection, clustering, and change detection—all powered by the innovative Isolation Kernel (IK) . Isolation Kernel is a data-dependent kernel that measures similarity by isolating data points using an isolation mechanism. It uniquely adapts to the data distribution, with the property that points in sparse regions are more similar than those in dense regions. Notably, it requires no learning or closed-form expression, making it efficient and scalable.


Why use Isolation Kernel?

  • Data-Dependent Similarity: Unlike traditional kernels (e.g., Gaussian, Laplacian), Isolation Kernel adapts to the structure of the data rather than assuming a fixed similarity function.
  • Handles Sparse and Dense Regions: Isolation Kernel effectively accounts for varying data densities, making it ideal for datasets with non-uniform distributions.
  • No Learning Required: It eliminates the need for training or parameter tuning, simplifying implementation while reducing computational cost.
  • Effective in High Dimensions: It uniquely addresses the curse of dimensionality, being the only known measure capable of finding exact nearest neighbors in high-dimensional spaces.
  • Versatile Applications: Isolation Kernel has been successfully applied to tasks like anomaly detection, clustering, and processing stream data, graph data, trajectory data, and more.

Learn more about its history and development on the IsolationKernel GitHub page.


Why use IKPyKit?

IKPyKit is specifically built to harness the power of Isolation Kernel, providing specialized algorithms for a wide range of data types and tasks. Its seamless integration with the scikit-learn API allows easy adoption and compatibility with scikit-learn tools.

  • Tailored for Isolation Kernel: IKPyKit directly leverages the unique properties of Isolation Kernel for efficient and effective machine learning solutions.
  • Efficient and User-Friendly: Designed for simplicity and performance, IKPyKit offers an intuitive interface built on the scikit-learn API.
  • Support for Diverse Data Types: It supports graph data, group data, stream data, time series, and trajectory data, making it versatile for various domains.
  • Comprehensive Resources: Users benefit from rich documentation and examples to quickly understand and apply the library’s features.
  • Ideal for Research and Industry: IKPyKit is suitable for both academic research and industrial applications, providing scalable and cutting-edge tools for modern machine learning challenges.

Installation & Dependencies

To install the basic version of ikpykit with core dependencies, run the following:

pip install ikpykit

For more installation options, including dependencies and additional features, check out our Installation Guide.


Example

# Anomaly Detection using inne.
import numpy as np
from ikpykit.anomaly import INNE
X = np.array([[-1.1, 0.2], [0.3, 0.5], [0.5, 1.1], [100, 90]])
clf = INNE(contamination=0.25).fit(X)
clf.predict([[0.1, 0.3], [0, 0.7], [90, 85]])

Implemented Algorithms

Summary

Algorithms Kernel Similarity Anomaly Detection Clustering Change Detection
Point Data IsoKernel (AAAI'19, SIGKDD'18) IForest (ICDM'08, TKDD'12) IDKC (IS'23)
INNE (CIJ'18) PSKC (TKDE'23)
IDKD (TKDE'22) IKAHC (PRJ'23)
Graph Data IsoGraphKernel (AAAI'21) IKGOD (SIAM'23)
Group Data IsodisKernel (SIGKDD'22) IKGAD (SIGKDD'22)
Stream Data StreaKHC (SIGKDD'22) ICID (JAIR'24)
Time Series IKTOD (VLDB'22)
Trajectory Data IKAT (JAIR'24) TIDKC (ICDM'23)

(i) Isolation Kernel :

Abbr Algorithm Utilization Published
IsoKernel Isolation Kernel IK feature mapping and similarity calculating AAAI2019, SIGKDD2018
IsodisKernel Isolation Distribution Kernel Distribution similarity calculating SIGKDD2022

(ii) Point Anomaly detection :

Abbr Algorithm Utiliztion Published
IForest Isolation forest Anomaly Detection ICDM2008, TKDD2022
INNE Isolation-based anomaly detection using nearest-neighbor ensembles Anomaly Detection CIJ2018
IDKD Isolation Distributional Kernel for point anomaly detections Anomaly Detection TKDE2022

(iii) Point Clustering :

Abbr Algorithm Utiliztion Published
IDKC Kernel-based Clustering via Isolation Distributional Kernel. Point Clustering IS2023
PSKC Point-set Kernel Clustering Point Clustering TKDE2023
IKAHC Isolation Kernel for Agglomerative Hierarchical Clustering Hierarchical Clustering PR2023

(IV) Graph Data :

Abbr Algorithm Utiliztion Published
IKGOD Subgraph Centralization: A Necessary Step for Graph Anomaly Detection. Graph Anomaly Detection SIAM2023
IsoGraphKernel Isolation Graph Kernel Graph IK embedding and similarity calculating AAAI2021

(V) Group Data :

Abbr Algorithm Utiliztion Published
IKGAD Isolation Distributional Kernel for group anomaly detections Group Anomaly Detection TKDE2022

(VI) Stream Data :

Abbr Algorithm Utiliztion Published
StreaKHC Isolation Distribution Kernel for Trajectory Anomaly Detections Online Hierarchical Clustering SIGKDD2022
ICID Detecting change intervals with isolation distributional kernel Change Intervals Detection JAIR2024

(VII) Trajectory Data :

Abbr Algorithm Utiliztion Published
TIDKC Distribution-based Tajectory Clustering Trajectory Clustering ICDM2023
IKAT Isolation Distribution Kernel for Trajectory Anomaly Detections Trajectory Anomaly Detection JAIR2024

(VIII) Time Series

Abbr Algorithm Utiliztion Published
IKTOD Isolation distribution kernel for Time Series Anomaly Detection Anomaly detection VLDB2022

Features

ikpykit provides a set of key features designed to make time series forecasting with machine learning easy and efficient. For a detailed overview, see the User Guides.


Examples and tutorials

Explore our extensive list of examples and tutorials (English and Spanish) to get you started with ikpykit. You can find them here.


How to contribute

Primarily, ikpykit development consists of adding and creating new Forecasters, new validation strategies, or improving the performance of the current code. However, there are many other ways to contribute:

  • Submit a bug report or feature request on GitHub Issues.
  • Contribute a Jupyter notebook to our examples.
  • Write unit or integration tests for our project.
  • Answer questions on our issues, Stack Overflow, and elsewhere.
  • Translate our documentation into another language.
  • Write a blog post, tweet, or share our project with others.

For more information on how to contribute to ikpykit, see our Contribution Guide.

Visit our authors section to meet all the contributors to ikpykit.


Citation

If you use ikpykit for a scientific publication, we would appreciate citations to the published software.

BibTeX:

@software{IKPyKit,
author = {Xin Han, Yixiao Ma, Ye Zhu, and Kaiming Ting},
title = {IKPyKit:A Python Library for Isolation Kernel Toolkit},
version = {0.1.0},
month = {3},
year = {2025},
license = {BSD-3-Clause},
url = {https://github.com/IsolationKernel/ikpykit}
}

License

BSD-3-Clause License

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

ikpykit-0.1.dev156.tar.gz (22.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ikpykit-0.1.dev156-py3-none-any.whl (22.7 MB view details)

Uploaded Python 3

File details

Details for the file ikpykit-0.1.dev156.tar.gz.

File metadata

  • Download URL: ikpykit-0.1.dev156.tar.gz
  • Upload date:
  • Size: 22.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for ikpykit-0.1.dev156.tar.gz
Algorithm Hash digest
SHA256 8ea093543e7a3f7cf8b2f4f55048d416df83124ea0873b134f3f02bffdd0b7e9
MD5 1bf4506064794708323c4a5920704fe0
BLAKE2b-256 23c4c6f73eb28fed5d70aa8cbd5235b3cde3ade6dd418cdb5be3b37ff16ed5ed

See more details on using hashes here.

File details

Details for the file ikpykit-0.1.dev156-py3-none-any.whl.

File metadata

  • Download URL: ikpykit-0.1.dev156-py3-none-any.whl
  • Upload date:
  • Size: 22.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for ikpykit-0.1.dev156-py3-none-any.whl
Algorithm Hash digest
SHA256 59c6da104820c18186e6ba135865928a7e6f0c352a42f46e0e11c433e0ecc526
MD5 52d43db75fb4379013f8ad93ca37ef24
BLAKE2b-256 aa2b9ec8b82666bc21adbce559a2fdb0c7a964abbc42d882a359d519c73d6202

See more details on using hashes here.

Supported by

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