Skip to main content

Spectral Bridges clustering algorithm

Project description

Spectral Bridges

Spectral Bridges is a Python package that implements a novel clustering algorithm combining k-means and spectral clustering techniques. It leverages efficient affinity matrix computation and merges clusters based on a connectivity measure inspired by SVM's margin concept. This package is designed to provide robust clustering solutions, particularly suited for large datasets.

Features

  • Spectral Bridges Algorithm: Integrates k-means and spectral clustering with efficient affinity matrix calculation for improved clustering results.
  • Scalability: Designed to handle large datasets by optimizing cluster formation through advanced affinity matrix computations.
  • Customizable: Parameters such as number of clusters, iterations, and random state allow flexibility in clustering configurations.
  • Model selection: Automatic model selection for number of nodes (m) according to a normalized eigengap metric.

Speed

Starting with version 1.0.0, Spectral Bridges not only utilizes FAISS's efficient k-means implementation but also uses a scikit-learn method clone for centroid initialization which is much faster (over 2x improvement).

Installation

You can install the package via pip:

pip install spectral-bridges

Usage

Example

from spectralbridges import SpectralBridges
import numpy as np

# Generate sample data
np.random.seed(0)
X = np.random.rand(100, 10)  # Replace with your dataset

# Initialize and fit Spectral Bridges (with a specified number of nodes if needed) and random seed
model = SpectralBridges(n_clusters=5, random_state=42)

# Define range of nodes to evaluate, should be an iterable of integers, or None if n_nodes is already set.
n_nodes_range = [10, 15, 20]

# Find the optimal number of nodes for a given value of clusters
# Modifies the instance attributes, returns a dict
# If n_nodes_range is None, then the model selects using self.n_nodes if not None
mean_ngaps = model.fit_select(X, n_nodes_range) 

print("Optimal number of nodes:", model.n_nodes)
print("Dict of mean normalized eigengaps:", mean_ngaps)

# Predict clusters for new data points
new_data = np.random.rand(20, 10)  # Replace with new data
predicted_clusters = model.predict(new_data)

print("Predicted clusters:", predicted_clusters)

# With a custom number of nodes
custom_model = SpectralBridges(n_clusters=5, n_nodes=12, p=1) # And a p-bridge affinity

# Fit the model
custom_model.fit(X)

# Predict the same way...
custom_predicted_clusters = custom_model.predict(new_data)

print("Predicted clusters:", custom_predicted_clusters)

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

spectral_bridges-1.3.0.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

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

spectral_bridges-1.3.0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file spectral_bridges-1.3.0.tar.gz.

File metadata

  • Download URL: spectral_bridges-1.3.0.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for spectral_bridges-1.3.0.tar.gz
Algorithm Hash digest
SHA256 c8d3b915b245a79f729c86b5fc7a05fd256588406734fc23ca448b6b9118b8e4
MD5 dd726c173c2fc57335d391e411a27fc2
BLAKE2b-256 99022d97423c4cb47620ec6a5607534452c73306f034bd15e8e6d11d871aafa0

See more details on using hashes here.

Provenance

The following attestation bundles were made for spectral_bridges-1.3.0.tar.gz:

Publisher: python-publish.yml on felixlaplante/spectral-bridges-pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spectral_bridges-1.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for spectral_bridges-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c02860c7784439abbfbb1d0513c663465dd24648253dfced19b521fd8dff8779
MD5 71dda6e2e45dc064aa74aac0863fd2f1
BLAKE2b-256 f1961b0414a102cb9da6abdceff432d60d6aac0334c2c2d69d18d519f896b0f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for spectral_bridges-1.3.0-py3-none-any.whl:

Publisher: python-publish.yml on felixlaplante/spectral-bridges-pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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