Skip to content
Function preserving projection (FPP), a linear projection technique for capturing interpretable patterns of high-dimensional functions
Jupyter Notebook Python
Branch: master
Clone or download
Latest commit b11d894 Oct 11, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
data init Sep 24, 2019
LICENSE init Sep 24, 2019
NOTICE init Sep 24, 2019
README.md Update README.md Oct 11, 2019
fpp.py init Sep 24, 2019
fpp_examples.ipynb init Sep 24, 2019

README.md

Function Preserving Projection (FPP)

A linear projection technique for finding a 2D view that capture interpretable pattern of the given function in a high-dimensional domain. The function can be univariate or multivariate, continuous (regression) or discrete (classification). The details of the method can be found in the corresponding paper: https://arxiv.org/pdf/1909.11804.pdf

Dependency:

tensorflow, numpy

File Description:

fpp.py - function preserving projection class

fpp_example.ipynb - fpp usage examples

Test Dataset Description:

Circle_in_5D_cube.npy - synthetic dataset where a 2D circle pattern of the function exists in a 5D space.

Circle_in_30D.npy - synthetic dataset where a 2D circle pattern of the function exists in a 30D space.

Fpp Class Usage:

# X - function domain
# f - function range
# epoches - training epoches
# batchSize - traiing batch size
# proj_mat - projection matrix
# embedding - the 2D embedding coordinate
# loss - the loss on the entire training dataset

###### regression task #####
model = fpp()
model.setup(X, f)
model.train()
proj_mat, embedding, loss, _ = model.eval()

###### classification task #####
model = fpp()
model.setupMultiClass(X, f) #f should be a one-hot encoding of the class
model.train(epoches, batchSize)
proj_mat, embedding, loss, _ = model.eval()

Reviewed and released under LLNL-CODE-791217

Author(s): Shusen Liu (liu42@llnl.gov), Rushil Anirudh (anirudh1@llnl.gov)

You can’t perform that action at this time.