┐( ̄▽ ̄)ゞ Where Was I

prVis: a Novel Method for Visual Dimension Reduction

(Updated: )

prVis is a nonlinear dimension-reduction and visualization tool, an alternative to t-SNE and UMAP. Principal component analysis (PCA) is a linear method and cannot see nonlinear relationships among variables; prVis fixes this by expanding the data with polynomial and interaction terms first, then applying ordinary PCA — turning curved structure into linear structure that PCA can capture.

Your browser does not support inline PDFs. Click here to view or download the PDF.

Me @ August 24, 2026

Norm Matloff, the author of prVis, passed away on June 12, 2026 due to cancer. His dedication to education and research stayed with him to the end: his last GitHub commit was on May 11, 2026, on an R package, and he was working with his daughter on a linear algebra textbook. In retrospect, I was greatly influenced by him and by my involvement in this project in the following ways:

  • I was inspired by his passion for writing books, tutorials, and blogs that beginners can understand. For this project I contributed documentation and gathered examples.

  • I neither worked on the algorithm/math side nor, as I recall, took much interest in it — its backend, polyreg, argues that neural nets are essentially polynomial regression models. I was more interested in performance optimization (adding bigmemory support to make polynomial expansion feasible on large datasets).

  • I spent a lot of time developing and optimizing user interactions to color code the resulting visualization:

    • using a categorical column
    • using a numerical column
    • combining filter and coloring using a custom user-specified arithmetic and logic expression:
      Grammar:
      <expression>    ::= <subexpression> [(+|*) <subexpression>]
      <subexpression> ::= columnName relationalOperator value
      
      where * is logical AND (set intersection), + is logical OR (union), and relational operators are: ==, !=, >=, <=, >, <
  • It is mind-blowing to see that a project from 6 years ago has such overlap with FLIM Playground (specifically, the performance optimization, the numerical and categorical filters, the categorical visual channels). As of now, I can still take inspiration from the design I wrote before (e.g. combining filters with coloring for visualization).

Comments