# Graphomaly
Automatic tool for Anti-Money Laundering (AML) and detecting abnormal behavior in computer networks. Find abnormal data in graph and network structures.
Official package documentation [here](https://unibuc.gitlab.io/graphomaly/graphomaly/).
This work was initially supported by the [Graphomaly Research Grant](http://graphomaly.upb.ro/) and later partially supported by the [Netalert Research Grant](https://cs.unibuc.ro/~pirofti/netalert.html).
## Installation and setup
Install via pip from the [PyPi repository](https://pypi.org/project/graphomaly/):
```
pip install graphomaly
```
or for the latest changes not yet in the official release:
```
pip install git+https://gitlab.com/unibuc/graphomaly/graphomaly
```
Install via docker from the [DockerHub repository](https://hub.docker.com/r/pirofti/graphomaly)
```
docker pull pirofti/graphomaly
```
For using the GPU pull the dedicated image:
```
docker pull pirofti/graphomaly:latest_gpu
```
## Usage
The package follows the [sklearn](https://scikit-learn.org/) API and can be included in your projects via
```
from graphomaly.estimator import GraphomalyEstimator
```
which will provide you with a standard scikit-learn estimator that you can use in your pipeline.
For configuration and tweaks please consult the YAML file for now until documentation matures.
## Development and testing
First clone the repository and change directory to the root of your fresh checkout.
#### 0. Install Prerequisites
Install PyPA’s [build](https://packaging.python.org/en/latest/key_projects/#build):
```
python3 -m pip install --upgrade build
```
#### 1. Build
Inside the Graphomaly directory
```
python -m build
```
#### 2. Virtual Environment
Create a virtual environment with Python:
```
python -m venv venv
```
Activate the environment:
```
source venv/bin/activate
```
For Windows execute instead:
```
venv\Scripts\activate
```
#### 3. Install
Inside the virtual environment execute:
```
pip install dist/graphomaly-*.whl
```
## Running unit tests
First create the results directory:
```
mkdir -p tests/results/synthetic
```
Run the initial test on synthetic data to make sure things installed ok:
```
cd tests && python test_synthetic
```
Then run the other unit tests by hand as above or via `pytest`:
```
pytest # add -v for verbose, add -s to print(...) to console from tests
```
Raw data
{
"_id": null,
"home_page": "https://gitlab.com/unibuc/graphomaly/graphomaly",
"name": "graphomaly",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "anomaly detection, graphs, financial transactions, computer networks, abnormal behavior, machine learning, security",
"author": "Paul Irofti, \u0218tefania Budulan, Bogdan Dumitrescu, Andra B\u0103ltoiu, Nicolae Cleju, Andrei Iulian H\u00eeji",
"author_email": "graphomaly@fmi.unibuc.ro",
"download_url": "https://files.pythonhosted.org/packages/e7/61/97da753bd2fb3d531cf7b3c9f58889178f25b55b79e2c2679a374d73a55e/graphomaly-0.3.2.tar.gz",
"platform": null,
"description": "# Graphomaly\n\nAutomatic tool for Anti-Money Laundering (AML) and detecting abnormal behavior in computer networks. Find abnormal data in graph and network structures.\n\nOfficial package documentation [here](https://unibuc.gitlab.io/graphomaly/graphomaly/).\n\nThis work was initially supported by the [Graphomaly Research Grant](http://graphomaly.upb.ro/) and later partially supported by the [Netalert Research Grant](https://cs.unibuc.ro/~pirofti/netalert.html).\n\n## Installation and setup\nInstall via pip from the [PyPi repository](https://pypi.org/project/graphomaly/):\n```\npip install graphomaly\n```\n\nor for the latest changes not yet in the official release:\n```\npip install git+https://gitlab.com/unibuc/graphomaly/graphomaly\n```\n\nInstall via docker from the [DockerHub repository](https://hub.docker.com/r/pirofti/graphomaly)\n```\ndocker pull pirofti/graphomaly\n```\nFor using the GPU pull the dedicated image:\n```\ndocker pull pirofti/graphomaly:latest_gpu\n```\n\n## Usage\n\nThe package follows the [sklearn](https://scikit-learn.org/) API and can be included in your projects via\n```\nfrom graphomaly.estimator import GraphomalyEstimator\n```\nwhich will provide you with a standard scikit-learn estimator that you can use in your pipeline.\n\nFor configuration and tweaks please consult the YAML file for now until documentation matures.\n\n## Development and testing\n\nFirst clone the repository and change directory to the root of your fresh checkout.\n\n#### 0. Install Prerequisites\nInstall PyPA\u2019s [build](https://packaging.python.org/en/latest/key_projects/#build):\n```\npython3 -m pip install --upgrade build\n```\n\n#### 1. Build\nInside the Graphomaly directory\n```\npython -m build\n```\n\n#### 2. Virtual Environment\n\nCreate a virtual environment with Python:\n```\npython -m venv venv\n```\n\nActivate the environment:\n```\nsource venv/bin/activate\n```\n\nFor Windows execute instead:\n```\nvenv\\Scripts\\activate\n```\n\n#### 3. Install\nInside the virtual environment execute:\n```\npip install dist/graphomaly-*.whl\n```\n\n## Running unit tests\n\nFirst create the results directory:\n```\nmkdir -p tests/results/synthetic\n```\n\nRun the initial test on synthetic data to make sure things installed ok:\n```\ncd tests && python test_synthetic\n```\n\nThen run the other unit tests by hand as above or via `pytest`:\n\n```\npytest # add -v for verbose, add -s to print(...) to console from tests\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "Anomaly detection in graphs modeling financial transactions and computer networks.",
"version": "0.3.2",
"project_urls": {
"Bug Tracker": "https://gitlab.com/unibuc/graphomaly/graphomaly/-/issues",
"Homepage": "https://gitlab.com/unibuc/graphomaly/graphomaly"
},
"split_keywords": [
"anomaly detection",
" graphs",
" financial transactions",
" computer networks",
" abnormal behavior",
" machine learning",
" security"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c770546e7700e329442de40f242e29a521e7c37367ea5b6faf4a58efb37f28f1",
"md5": "363e575987102082a0c9710a8636c79f",
"sha256": "1e4e8be2112b7b02d2158103ad17799696ed19857c7a58d54bfbb897d3b2dab7"
},
"downloads": -1,
"filename": "graphomaly-0.3.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "363e575987102082a0c9710a8636c79f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 89016,
"upload_time": "2025-07-13T23:34:55",
"upload_time_iso_8601": "2025-07-13T23:34:55.289214Z",
"url": "https://files.pythonhosted.org/packages/c7/70/546e7700e329442de40f242e29a521e7c37367ea5b6faf4a58efb37f28f1/graphomaly-0.3.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e76197da753bd2fb3d531cf7b3c9f58889178f25b55b79e2c2679a374d73a55e",
"md5": "a2d3bc915de9b4b83920e68d15d32f77",
"sha256": "7cdf8b64eb8e9d7c110d47a53b12c5d3483275b7743c95708f1be3ddf4d2f30a"
},
"downloads": -1,
"filename": "graphomaly-0.3.2.tar.gz",
"has_sig": false,
"md5_digest": "a2d3bc915de9b4b83920e68d15d32f77",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 71450,
"upload_time": "2025-07-13T23:34:56",
"upload_time_iso_8601": "2025-07-13T23:34:56.903641Z",
"url": "https://files.pythonhosted.org/packages/e7/61/97da753bd2fb3d531cf7b3c9f58889178f25b55b79e2c2679a374d73a55e/graphomaly-0.3.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-13 23:34:56",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "unibuc",
"gitlab_project": "graphomaly",
"lcname": "graphomaly"
}