← Back to all sparks
S

seriation

ANALYTICS
Velocity0.0

Infrastructure for Ordering Objects Using Seriation

seriation stopped shipping algorithms and started shipping a way to pick between them.

seriationmatrix-reorderingoptimizationclusteringr-package
Current state
seriation finds meaningful orderings for matrices, distance objects and dendrograms, and carries a large registry of methods from classic combinatorial criteria to t-SNE and UMAP embeddings. The 1.5.0 release added a layer above that registry — seriate_best(), seriate_rep() and seriate_improve() — which run randomized methods repeatedly, in parallel, and keep the best result. Recent work is definitional and numeric rather than additive: 1.5.8 corrects the linear seriation criterion to match Hubert and Schultz's original 1976 definition.
Where it's heading
The package has shifted from breadth to judgment. Through 1.3.x the additions were new methods; from 1.5.0 the registry started carrying metadata about the methods — whether they are randomized, what criterion they optimize — so the package could choose and evaluate on the user's behalf. The 1.5.6 replacement of FORTRAN with C for BEA and ME points the same way, reducing the legacy surface underneath that machinery.
Prediction
Further criterion audits are the likeliest next move, since 1.5.8 shows a published definition being reconciled against the implementation and the registry now records what each method optimizes. Expect corrections rather than new seriation algorithms.

Recent moves

  1. 0y ago

    seriation 1.5.8 realigns linear criterion with Hubert and Schultz

    The linear seriation criterion now follows the original 1976 definition and is treated as a merit measure rather than a loss. Users comparing methods on this criterion will see the optimization direction flip, so it is more consequential than the one-line note suggests. The accompanying partial argument match fix is the same CRAN sweep that hit arulesViz the next day.

    View source ↗
  2. 1y ago

    seriation 1.5.7 adds BK_unconstrained, handles tiny inputs

    A contributed seriation method joins the registry, and all methods now degrade gracefully when given too few objects instead of failing. Routine registry growth on top of the 1.5.0 infrastructure.

    View source ↗
  3. 1y ago

    seriation 1.5.6 replaces FORTRAN BEA with C, modernizes allocation

    Internal modernization: BEA's FORTRAN implementation is swapped for code from TSP, ME moves to C, and the optimal and stress routines adopt R's memory allocation. Users see the same results from a smaller legacy surface.

    View source ↗
  4. 2y ago

    seriation 1.5.5 digest: AOE method, rep parameter, MDS_angle fix

    A rolled-up entry covering 1.5.3 through 1.5.5. The substance sits in 1.5.3 — an AOE method for correlation matrices, dendrogram permutation accepting seriation methods, and a rep parameter on every method — plus a fix for MDS_angle ordering varying across BLAS implementations.

    View source ↗
  5. 3y ago

    seriation 1.5.1 refines pimage, permute and hmap

    Convenience and correctness work a day after 1.5.0: order = TRUE triggers default seriation in pimage and permute, hmap gains distance-matrix palettes, and zlim is applied correctly. The cleanup pass that follows a large release.

    View source ↗
  6. 3y ago

    seriation 1.5.0 adds seriate_best and parallel repeated search

    ⚡ SPARK

    The release that changed what the package does for you. Rather than running one algorithm and accepting its ordering, seriate_best(), seriate_rep() and seriate_improve() exploit the fact that many methods are randomized, running them repeatedly in parallel and keeping the best result by the registered criterion.

    View source ↗