Skip to main content

Geometry-aware ML toolkit for toroidal manifolds

Project description

axiom-t2

Geometry-aware ML toolkit for toroidal manifolds

Standard spatial machine learning algorithms (like KDE, DBSCAN, and LOF) assume a flat Euclidean metric. When applied to cyclic dimensions like Earth's surface (longitude/latitude), standard tools suffer from boundary artefacts (e.g., Dateline tearing) and phase-compression distortions.

axiom-t2 replaces standard Euclidean metrics with exact continuous Toroidal geodesics incorporating continuous Gaussian curvature penalisation.

Installation

pip install axiom-t2

Quick Start

import numpy as np
from axiom.manifold.torus import TorusManifold
from axiom.geodbscan.dbscan import GeoDBSCAN

# Initialise dataset (u: longitude radians, v: latitude radians)
X = np.array([
    [3.14, 0.5], 
    [-3.14, 0.5], # Across the dateline!
    [1.57, -0.2]
])

# Standard DBSCAN splits the first two points.
# GeoDBSCAN connects them across the periodic boundary seamlessly.
model = GeoDBSCAN(eps=0.25, min_pts=2)
model.fit(X)

print(model.labels_)
# Output: [0, 0, -1]

Tools & Algorithms

Tool Euclidean Artefact Fixed Key Result (Validation on Tectonic Earthquakes)
GeoKDE Dateline splits & Polar volume compression Solves density underestimation near the dateline and $K=0$ bands. Log-likelihood significantly improved over Euclidean KDE.
GeoDBSCAN Geographic cluster fracturing Accurately spans Pacific tectonic plates across longitude $\pm 180^\circ$ without splitting.
GeoKNN Nearest-neighbour distortions Provides highly accurate true geographic neighbours across periodic boundaries.
GeoScanner Coordinate volume artefacts Implements MLE surface-area boundary detection over the poloidal dimensions.

(Note: GeoLOF was theoretically evaluated, but experiments showed LOF's inherent density-ratio mathematics are inherently resistant to Cartesian slice artefacts, yielding equivalent performance to Flat LOF).

Domain Presets

The toolkit includes presets tailored for specific topological applications:

# Earth Geography (Standard R=3, r=1 proportion)
manifold = TorusManifold.geographic()

# Financial Market Cycles (R=10, r=1)
manifold = TorusManifold.financial()

# Protein Folding Topology (R=1, r=0.5)
manifold = TorusManifold.protein()

License

This project is licensed under the Apache License Version 2.0.

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

axiom_t2-0.1.1.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

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

axiom_t2-0.1.1-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file axiom_t2-0.1.1.tar.gz.

File metadata

  • Download URL: axiom_t2-0.1.1.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for axiom_t2-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4499fcba7944719328bf5f9f34240009a022b6c99f2d859438949f7045914e6d
MD5 07da958757e4e12d66dd22929d5cd31c
BLAKE2b-256 7b7b97057d28dacf979e242c3663d615854f977baa20e4c405b0f65b49d58e19

See more details on using hashes here.

File details

Details for the file axiom_t2-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: axiom_t2-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for axiom_t2-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8e80e218ca0ad5a1a5d0a8a4f76d37a8c5237245c36a616987466f2a27d87145
MD5 c8f2c0806b207ea9d1cfea0ff83f8bbc
BLAKE2b-256 6e2be52268576c51549107199a083b1b4b6fb6b00f65651e2cebd34617dac4b0

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