CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-torchmetrics

PyTorch native metrics library providing 400+ rigorously tested metrics across classification, regression, audio, image, text, and other ML domains

Overview
Eval results
Files

clustering.mddocs/

Clustering Metrics

Unsupervised learning evaluation metrics including mutual information, Rand indices, and silhouette analysis for cluster quality assessment and validation of clustering algorithms.

Capabilities

Information-Based Metrics

Measures based on information theory for evaluating cluster quality.

class AdjustedMutualInfoScore(Metric):
    def __init__(
        self,
        average: str = "arithmetic",
        **kwargs
    ): ...

class MutualInfoScore(Metric):
    def __init__(
        self,
        **kwargs
    ): ...

class NormalizedMutualInfoScore(Metric):
    def __init__(
        self,
        average: str = "arithmetic",
        **kwargs
    ): ...

Rand-Based Metrics

Metrics based on the Rand index for measuring clustering similarity.

class AdjustedRandScore(Metric):
    def __init__(
        self,
        **kwargs
    ): ...

class RandScore(Metric):
    def __init__(
        self,
        **kwargs
    ): ...

Internal Validation Metrics

Metrics that evaluate clustering quality using the original data features.

class CalinskiHarabaszScore(Metric):
    def __init__(
        self,
        **kwargs
    ): ...

class DaviesBouldinScore(Metric):
    def __init__(
        self,
        **kwargs
    ): ...

class DunnIndex(Metric):
    def __init__(
        self,
        p: float = 2.0,
        **kwargs
    ): ...

Additional Clustering Metrics

class FowlkesMallowsIndex(Metric):
    def __init__(
        self,
        **kwargs
    ): ...

class ClusterAccuracy(Metric):
    def __init__(
        self,
        **kwargs
    ): ...

class HomogeneityScore(Metric):
    def __init__(
        self,
        **kwargs
    ): ...

class CompletenessScore(Metric):
    def __init__(
        self,
        **kwargs
    ): ...

class VMeasureScore(Metric):
    def __init__(
        self,
        beta: float = 1.0,
        **kwargs
    ): ...

Usage Examples

import torch
from torchmetrics.clustering import (
    AdjustedRandScore, NormalizedMutualInfoScore, 
    CalinskiHarabaszScore, DaviesBouldinScore
)

# Sample clustering results
pred_clusters = torch.randint(0, 3, (100,))
true_clusters = torch.randint(0, 3, (100,))
data = torch.randn(100, 10)  # Original features

# External validation (compares with ground truth)
ari = AdjustedRandScore()
nmi = NormalizedMutualInfoScore()

# Internal validation (uses original data)
ch_score = CalinskiHarabaszScore()
db_score = DaviesBouldinScore()

# Compute external metrics
ari_result = ari(pred_clusters, true_clusters)
nmi_result = nmi(pred_clusters, true_clusters)

# Compute internal metrics
ch_result = ch_score(data, pred_clusters)
db_result = db_score(data, pred_clusters)

print(f"ARI: {ari_result:.4f}")
print(f"NMI: {nmi_result:.4f}")
print(f"Calinski-Harabasz: {ch_result:.4f}")
print(f"Davies-Bouldin: {db_result:.4f}")

Types

ClusterLabels = Tensor  # Integer cluster assignments
FeatureData = Tensor   # Original data features
AverageMethod = Union["arithmetic", "geometric"]

Install with Tessl CLI

npx tessl i tessl/pypi-torchmetrics

docs

audio.md

classification.md

clustering.md

detection.md

functional.md

image.md

index.md

multimodal.md

nominal.md

regression.md

retrieval.md

segmentation.md

shape.md

text.md

utilities.md

video.md

tile.json