Skip to content

Topology Training Pipeline

Topological ML becomes useful when topology enters a normal training workflow without forcing the whole project to become a topology project.

classDiagram
  class PHFeaturizer {
    +fit(clouds)
    +transform(clouds)
    +get_feature_names_out()
  }
  class TopologyAugmenter {
    +fit_transform(point_clouds, base_features)
  }
  class TopologyRandomForestClassifier {
    +fit(point_clouds, labels)
    +predict(point_clouds)
    +score(point_clouds, labels)
  }
  class TensorBundleSpec {
    +direct_sum(other)
    +union(other)
    +intersection(other)
  }
  PHFeaturizer --> TopologyAugmenter
  TopologyAugmenter --> TopologyRandomForestClassifier
  TensorBundleSpec --> TopologyAugmenter

Active API

augmenter = topoml.TopologyAugmenter(radii=[0.0, 0.25, 0.5], max_dim=1)
features = augmenter.fit_transform(point_clouds, base_features=tabular_features)
weights = topoml.topological_sample_weights(point_clouds, radii=[0.0, 0.25, 0.5])
model = topoml.TopologyRandomForestClassifier(radii=[0.0, 0.25, 0.5])
model.fit(point_clouds, labels, base_features=tabular_features, sample_weight=weights)
journey
  title Data Scientist Path
  section Inspect
    Build point clouds: 4: User
    Plot barcode and Betti curve: 5: User
  section Train
    Append topology features: 5: User
    Fit topology random forest: 4: User
  section Verify
    Compare against simple baselines: 5: User
    Publish claim boundary: 5: User

Claim Boundary

The current training surface is an executable baseline for tabular experiments. It is not a replacement for scikit-learn, PyTorch, TensorFlow, or XGBoost. Use it to prove that topology features add signal before moving the same ideas into larger training stacks.