PyTorch native metrics library providing 400+ rigorously tested metrics across classification, regression, audio, image, text, and other ML domains
Unsupervised learning evaluation metrics including mutual information, Rand indices, and silhouette analysis for cluster quality assessment and validation of clustering algorithms.
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
): ...Metrics based on the Rand index for measuring clustering similarity.
class AdjustedRandScore(Metric):
def __init__(
self,
**kwargs
): ...
class RandScore(Metric):
def __init__(
self,
**kwargs
): ...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
): ...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
): ...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}")ClusterLabels = Tensor # Integer cluster assignments
FeatureData = Tensor # Original data features
AverageMethod = Union["arithmetic", "geometric"]Install with Tessl CLI
npx tessl i tessl/pypi-torchmetrics