Skip to content

ZIB-IOL/ApproximateVanishingIdeals.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ApproximateVanishingIdeals.jl

Build Status Dev Coverage

This package is a toolbox for polynomial feature extraction and transformation using the Oracle Approximate Vanishing Ideal Algorithm.

Overview

The Oracle Approximate Vanishing Ideal ($\texttt{OAVI}$) algorithm was designed to compute the vanishing ideal of a set of points. Instead of adopting the common approach of using singular value decomposition, $\texttt{OAVI}$ finds vanishing polynomials by solving a convex optimization problem of the form

$$\min_{x \in C} f(x),$$

where $f$ is a differentiable convex function and $C$ is a compact and convex set. Usually $f$ will be of the form:

$$f(x) = \frac{1}{m}\|Ax + b\|_2^2.$$

Installation

The most recent release is available via:

using Pkg
Pkg.add("ApproximateVanishingIdeals")

Or get the latest main branch with:

Pkg.add(url="https://github.com/ZIB-IOL/ApproximateVanishingIdeals.jl", rev="main")

Getting started

We provide built-in oracles that construct the objective function and feasible region and solve the optimization problem with a version of the Frank-Wolfe (conditional gradients) algorithm implemented in FrankWolfe.jl. Obtaining a basic feature transformation for some random data $X$ is as simple as:

using ApproximateVanishingIdeals
using Random

X = rand(10000, 5)
X_transformed, sets = fit_oavi(X);

X_transformed holds the transformed data and sets keeps track of important sets. It is recommended to adjust some keyword arguments for better results. See the examples section for more information.

Documentation and Examples

To explore the contents of the package and see examples with a more detailed look at the different keyword arguments, go to the documentation.