# 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": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"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/74/18/ff49baaecad5914ce5b2003c10899bbc6a67a70de8d34e954547d86c0bf7/graphomaly-0.3.1.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": "",
"summary": "Anomaly detection in graphs modeling financial transactions and computer networks.",
"version": "0.3.1",
"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": "",
"digests": {
"blake2b_256": "d16dca01369aee6166fa247c3d8d0c3b3654f26028b7448a9376efc92f28e319",
"md5": "d17ebe0400ef7b20317934ea9991e021",
"sha256": "3601a5aa024947953137ff448135be397074775f170d02a9c506e4507dede039"
},
"downloads": -1,
"filename": "graphomaly-0.3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d17ebe0400ef7b20317934ea9991e021",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 88913,
"upload_time": "2023-05-12T09:46:18",
"upload_time_iso_8601": "2023-05-12T09:46:18.390962Z",
"url": "https://files.pythonhosted.org/packages/d1/6d/ca01369aee6166fa247c3d8d0c3b3654f26028b7448a9376efc92f28e319/graphomaly-0.3.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7418ff49baaecad5914ce5b2003c10899bbc6a67a70de8d34e954547d86c0bf7",
"md5": "5794b4bf5e357a0c813660a86c0148b7",
"sha256": "d9e541ff6420b17e2f0bca26faabe768e1b7724e956948d6cdf678d0259f56cb"
},
"downloads": -1,
"filename": "graphomaly-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "5794b4bf5e357a0c813660a86c0148b7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 71053,
"upload_time": "2023-05-12T09:46:20",
"upload_time_iso_8601": "2023-05-12T09:46:20.676991Z",
"url": "https://files.pythonhosted.org/packages/74/18/ff49baaecad5914ce5b2003c10899bbc6a67a70de8d34e954547d86c0bf7/graphomaly-0.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-05-12 09:46:20",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "unibuc",
"gitlab_project": "graphomaly",
"lcname": "graphomaly"
}