hdim

A toolkit for working with high-dimensional data.


License
MIT
Install
pip install hdim==0.1.4

Documentation

HDIM

HDIM is a toolkit for working with high-dimensional data that emphasizes speed and statistical guarantees. Specifically, it provides tools for working with the LASSO objective function.

HDIM provides traditional iterative solvers for the LASSO objective function including ISTA, FISTA and Coordinate Descent. HDIM also provides FOS, the Fast and Optimal Selection algorithm, a novel new method for performing high-dimensional linear regression.

HDIM is a product of the research conducted by Lederer and Hauser HDIM Group in affiliation with the University of Washington.

Supported Languages

The HDIM package is written in C++, and can be used in native form or via the supplied Python or R language wrappers.

Supported Platforms

HDIM currently supports the following operating systems and languages.

Operating System Supported Languages
Windows C++, R
OS X C++, Python
Linux C++, R, Python

Installation

Native C++

HDIM's native code base is cross-platform and header-only. There is no installation step -- just clone the git repository and #include the appropriate source files in your C++ projects. Just be sure to link against the appropriate dependencies, as outlined in the Dependencies section below.

Dependencies

HDIM's native code base depends on the following libraries.

These libraries will need to be installed in order to use the native C++ or any of the wrappers.

Wrappers

Using the Python or R wrapper requires additional dependencies and build steps compared to using the native code base. Currently both wrappers require building from source -- in the future we hope to provide users with more convenient installation options.

Linux

Python

Dependencies
  • SWIG The Simplified Wrapper and Interface Generator
  • Python Development Headers
  • Numpy, including Development Headers
  • Eigen 3 A C++ template library for linear algebra
Building
  • Clone the HDIM package into a convenient location.
  • Navigate to $PKG_DIR/Python_Wrapper, where PKG_DIR is the root directory of the cloned repository.
  • Find the file nix_build.sh and mark it as executable ( chmod +x ./nix_build.sh ).
  • This will run SWIG and build the Python wrapper.
  • The Python package path will not be updated.

R

Dependencies
Building
  • Clone the HDIM package into a convenient location.
  • Navigate to $PKG_DIR/R_Wrapper, where PKG_DIR is the root directory of the cloned repository.
  • Find the file nix_build.sh and mark it as executable ( chmod +x ./nix_build.sh ).
  • This will run a preprocessing step using Rcpp then build and install the R Wrapper.

OS X

Python

Dependencies
  • SWIG The Simplified Wrapper and Interface Generator
  • Python Development Headers
  • Numpy, including Development Headers
  • Eigen 3 A C++ template library for linear algebra
  • gcc -- installation will not work with the default C++ complier, clang
Building
  • Clone the HDIM package into a convenient location.
  • Navigate to $PKG_DIR/Python_Wrapper, where PKG_DIR is the root directory of the cloned repository.
  • Find the file os_x_build.sh and mark it as executable ( chmod +x ./os_x_build.sh ).
  • This will run SWIG and build the Python wrapper.
  • The Python package path will not be updated.

Windows

Installation under Windows requires that the root directory of the Eigen3 library be located in the same directory as the root of the HDIM package.

R

Dependencies
Building
  • Clone the HDIM package into the directory where the Eigen3 library is located.
  • Navigate to $PKG_DIR/R_Wrapper, where PKG_DIR is the root directory of the cloned repository.
  • Find the file win_build.ps1 and run it using PowerShell.
  • This will run a preprocessing step using Rcpp then build and install the R Wrapper.

Licensing

The HDIM package is licensed under the MIT license with one notable exception -- the R language wrapper on all platforms is licensed under the GPL version 3. To view the MIT license please consult LICENSE.txt and for the the GPLv3 see /R_Wrapper/HDIM/LICENSE.

Authors

  • Benjamin J Phillips - Work on native C++, R wrapper, and Python wrapper
  • Saba Noorassa - Work on adding Mac OS compatibility

References

FOS