Skip to content

Commit 39304e4

Browse files
committed
readme
1 parent 12fc9c6 commit 39304e4

File tree

2 files changed

+57
-44
lines changed

2 files changed

+57
-44
lines changed

README.md

Lines changed: 51 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
<!-- <div style="clear: both;"></div> -->
99

10+
1011
## About The Project
1112

1213
**PyIKT** (Python for Isolation Kernel 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.
@@ -45,8 +46,19 @@ To install the basic version of `pyikt` with core dependencies, run the followin
4546
pip install pyikt
4647
```
4748

48-
For more installation options, including dependencies and additional features, check out our [Installation Guide](./quick-start/how-to-install.html).
49+
For more installation options, including dependencies and additional features, check out our [Installation Guide](https://isolationkernel.github.io/pyikt/quick-start/how-to-install.html).
50+
51+
---
52+
53+
## Anomaly Detection Example
4954

55+
```py
56+
import numpy as np
57+
from pyikt.anomaly import INNE
58+
X = np.array([[-1.1, 0.2], [0.3, 0.5], [0.5, 1.1], [100, 90]])
59+
clf = INNE(contamination=0.25).fit(X)
60+
clf.predict([[0.1, 0.3], [0, 0.7], [90, 85]])
61+
```
5062
---
5163

5264
## Implemented Algorithms
@@ -66,88 +78,88 @@ For more installation options, including dependencies and additional features, c
6678

6779
**(i) Isolation Kernel** :
6880

69-
| Abbr | Algorithm | Utilization | Published |
70-
| ------------------------------------------------------ | ----------------------------- | --------------------------------------------- | -------------------- |
71-
| [IsoKernel](./api/kernel/isolation_kernel.html) | Isolation Kernel | IK feature mapping and similarity calculating | AAAI2019, SIGKDD2018 |
72-
| [IsodisKernel](./api/kernel/isolation_dis_kernel.html) | Isolation Distribution Kernel | Distribution similarity calculating | SIGKDD2022 |
81+
| Abbr | Algorithm | Utilization | Published |
82+
| -------------------------------------------------------------------------------------------- | ----------------------------- | --------------------------------------------- | -------------------- |
83+
| [IsoKernel](https://isolationkernel.github.io/pyikt/api/kernel/isolation_kernel.html) | Isolation Kernel | IK feature mapping and similarity calculating | AAAI2019, SIGKDD2018 |
84+
| [IsodisKernel](https://isolationkernel.github.io/pyikt/api/kernel/isolation_dis_kernel.html) | Isolation Distribution Kernel | Distribution similarity calculating | SIGKDD2022 |
7385

7486
**(ii) Point Anomaly detection** :
7587

76-
| Abbr | Algorithm | Utiliztion | Published |
77-
| ------------------------------------- | ------------------------------------------------------------------ | ----------------- | ------------------ |
78-
| [IForest](./api/anomaly/iforest.html) | Isolation forest | Anomaly Detection | ICDM2008, TKDD2022 |
79-
| [INNE](./api/anomaly/inne.html) | Isolation-based anomaly detection using nearest-neighbor ensembles | Anomaly Detection | CIJ2018 |
80-
| [IDKD](./api/anomaly/idkd.html) | Isolation Distributional Kernel for point anomaly detections | Anomaly Detection | TKDE2022 |
88+
| Abbr | Algorithm | Utiliztion | Published |
89+
| --------------------------------------------------------------------------- | ------------------------------------------------------------------ | ----------------- | ------------------ |
90+
| [IForest](https://isolationkernel.github.io/pyikt/api/anomaly/iforest.html) | Isolation forest | Anomaly Detection | ICDM2008, TKDD2022 |
91+
| [INNE](https://isolationkernel.github.io/pyikt/api/anomaly/inne.html) | Isolation-based anomaly detection using nearest-neighbor ensembles | Anomaly Detection | CIJ2018 |
92+
| [IDKD](https://isolationkernel.github.io/pyikt/api/anomaly/idkd.html) | Isolation Distributional Kernel for point anomaly detections | Anomaly Detection | TKDE2022 |
8193

8294
**(iii) Point Clustering** :
8395

84-
| Abbr | Algorithm | Utiliztion | Published |
85-
| --------------------------------- | ------------------------------------------------------------ | ----------------------- | --------- |
86-
| [IDKC](./api/cluster/idkc.html) | Kernel-based Clustering via Isolation Distributional Kernel. | Point Clustering | IS2023 |
87-
| [PSKC](./api/cluster/pskc.html) | Point-set Kernel Clustering | Point Clustering | TKDE2023 |
88-
| [IKAHC](./api/cluster/ikahc.html) | Isolation Kernel for Agglomerative Hierarchical Clustering | Hierarchical Clustering | PR2023 |
96+
| Abbr | Algorithm | Utiliztion | Published |
97+
| ----------------------------------------------------------------------- | ------------------------------------------------------------ | ----------------------- | --------- |
98+
| [IDKC](https://isolationkernel.github.io/pyikt/api/cluster/idkc.html) | Kernel-based Clustering via Isolation Distributional Kernel. | Point Clustering | IS2023 |
99+
| [PSKC](https://isolationkernel.github.io/pyikt/api/cluster/pskc.html) | Point-set Kernel Clustering | Point Clustering | TKDE2023 |
100+
| [IKAHC](https://isolationkernel.github.io/pyikt/api/cluster/ikahc.html) | Isolation Kernel for Agglomerative Hierarchical Clustering | Hierarchical Clustering | PR2023 |
89101

90102
**(IV) Graph Data** :
91103

92-
| Abbr | Algorithm | Utiliztion | Published |
93-
| ------------------------------------------------- | ---------------------------------------------------------------------- | --------------------------------------------- | --------- |
94-
| [IKGOD](./api/graph/ikgod.html) | Subgraph Centralization: A Necessary Step for Graph Anomaly Detection. | Graph Anomaly Detection | SIAM2023 |
95-
| [IsoGraphKernel](./api/graph/IsoGraphKernel.html) | Isolation Graph Kernel | Graph IK embedding and similarity calculating | AAAI2021 |
104+
| Abbr | Algorithm | Utiliztion | Published |
105+
| --------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | --------------------------------------------- | --------- |
106+
| [IKGOD](https://isolationkernel.github.io/pyikt/api/graph/ikgod.html) | Subgraph Centralization: A Necessary Step for Graph Anomaly Detection. | Graph Anomaly Detection | SIAM2023 |
107+
| [IsoGraphKernel](https://isolationkernel.github.io/pyikt/api/graph/IsoGraphKernel.html) | Isolation Graph Kernel | Graph IK embedding and similarity calculating | AAAI2021 |
96108

97109
**(V) Group Data** :
98110

99-
| Abbr | Algorithm | Utiliztion | Published |
100-
| ------------------------------- | ------------------------------------------------------------ | ----------------------- | --------- |
101-
| [IKGAD](./api/group/ikgad.html) | Isolation Distributional Kernel for group anomaly detections | Group Anomaly Detection | TKDE2022 |
111+
| Abbr | Algorithm | Utiliztion | Published |
112+
| --------------------------------------------------------------------- | ------------------------------------------------------------ | ----------------------- | --------- |
113+
| [IKGAD](https://isolationkernel.github.io/pyikt/api/group/ikgad.html) | Isolation Distributional Kernel for group anomaly detections | Group Anomaly Detection | TKDE2022 |
102114

103115
**(VI) Stream Data** :
104116

105-
| Abbr | Algorithm | Utiliztion | Published |
106-
| -------------------------------------- | --------------------------------------------------------------- | ------------------------------ | ---------- |
107-
| [StreaKHC](./api/stream/streakhc.html) | Isolation Distribution Kernel for Trajectory Anomaly Detections | Online Hierarchical Clustering | SIGKDD2022 |
108-
| [ICID](./api/stream/icid.html) | Detecting change intervals with isolation distributional kernel | Change Intervals Detection | JAIR2024 |
117+
| Abbr | Algorithm | Utiliztion | Published |
118+
| ---------------------------------------------------------------------------- | --------------------------------------------------------------- | ------------------------------ | ---------- |
119+
| [StreaKHC](https://isolationkernel.github.io/pyikt/api/stream/streakhc.html) | Isolation Distribution Kernel for Trajectory Anomaly Detections | Online Hierarchical Clustering | SIGKDD2022 |
120+
| [ICID](https://isolationkernel.github.io/pyikt/api/stream/icid.html) | Detecting change intervals with isolation distributional kernel | Change Intervals Detection | JAIR2024 |
109121

110122
**(VII) Trajectory Data** :
111123

112-
| Abbr | Algorithm | Utiliztion | Published |
113-
| ------------------------------------ | --------------------------------------------------------------- | ---------------------------- | --------- |
114-
| [TIDKC](./api/trajectory/tidkc.html) | Distribution-based Tajectory Clustering | Trajectory Clustering | ICDM2023 |
115-
| [IKAT](./api/trajectory/ikat.html) | Isolation Distribution Kernel for Trajectory Anomaly Detections | Trajectory Anomaly Detection | JAIR2024 |
124+
| Abbr | Algorithm | Utiliztion | Published |
125+
| -------------------------------------------------------------------------- | --------------------------------------------------------------- | ---------------------------- | --------- |
126+
| [TIDKC](https://isolationkernel.github.io/pyikt/api/trajectory/tidkc.html) | Distribution-based Tajectory Clustering | Trajectory Clustering | ICDM2023 |
127+
| [IKAT](https://isolationkernel.github.io/pyikt/api/trajectory/ikat.html) | Isolation Distribution Kernel for Trajectory Anomaly Detections | Trajectory Anomaly Detection | JAIR2024 |
116128

117129
**(VIII) Time Series**
118130

119-
| Abbr | Algorithm | Utiliztion | Published |
120-
| ------------------------------------- | --------------------------------------------------------------- | ----------------- | --------- |
121-
| [IKTOD](./api/time_series/iktod.html) | Isolation distribution kernel for Time Series Anomaly Detection | Anomaly detection | VLDB2022 |
131+
| Abbr | Algorithm | Utiliztion | Published |
132+
| --------------------------------------------------------------------------- | --------------------------------------------------------------- | ----------------- | --------- |
133+
| [IKTOD](https://isolationkernel.github.io/pyikt/api/time_series/iktod.html) | Isolation distribution kernel for Time Series Anomaly Detection | Anomaly detection | VLDB2022 |
122134

123135
---
124136

125137
## Features
126138

127-
pyikt 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](./user_guides/table-of-contents.html).
139+
pyikt 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](https://isolationkernel.github.io/pyikt/user_guides/table-of-contents.html).
128140

129141
---
130142

131143
## Examples and tutorials
132144

133-
Explore our extensive list of examples and tutorials (English and Spanish) to get you started with PyIKT. You can find them [here](./examples/examples_english.html).
145+
Explore our extensive list of examples and tutorials (English and Spanish) to get you started with PyIKT. You can find them [here](https://isolationkernel.github.io/pyikt/examples/examples_english.html).
134146

135147
---
136148

137149
## How to contribute
138150

139151
Primarily, PyIKT 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:
140152

141-
- Submit a bug report or feature request on [GitHub Issues](https://github.com/pyikt/pyikt/issues).
142-
- Contribute a Jupyter notebook to our [examples](./examples/examples_english.html).
153+
- Submit a bug report or feature request on [GitHub Issues](https://github.com/IsolationKernel/pyikt/issues).
154+
- Contribute a Jupyter notebook to our [examples](https://isolationkernel.github.io/pyikt/examples/examples_english.html).
143155
- Write [unit or integration tests](https://docs.pytest.org/en/latest/) for our project.
144156
- Answer questions on our issues, Stack Overflow, and elsewhere.
145157
- Translate our documentation into another language.
146158
- Write a blog post, tweet, or share our project with others.
147159

148-
For more information on how to contribute to pyikt, see our [Contribution Guide](./contributing/contribution.html).
160+
For more information on how to contribute to pyikt, see our [Contribution Guide](https://isolationkernel.github.io/pyikt/contributing/contribution.html).
149161

150-
Visit our [authors section](./authors/authors.html) to meet all the contributors to pyikt.
162+
Visit our [authors section](https://isolationkernel.github.io/pyikt/authors/authors.html) to meet all the contributors to pyikt.
151163

152164
---
153165

pyproject.toml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,13 @@ keywords = [
3737
]
3838

3939
dependencies = [
40-
"numpy<=1.22",
41-
"pandas>=1.5",
42-
"scikit-learn>=1.2",
43-
"numba>=0.54",
44-
"tqdm >=4.62.3",
40+
"scikit-learn >= 1.2",
41+
"pandas >= 1.5",
42+
"numpy <= 1.22",
43+
"numba >= 0.54",
44+
"tqdm >= 4.62.3",
4545
]
46+
4647
requires-python = ">=3.9"
4748

4849
[project.urls]

0 commit comments

Comments
 (0)