# Welcome to HyperLearn!

HyperLearn aims to make Machine Learning algorithms run in at least 50% of their original time. Algorithms from Linear Regression to Principal Component Analysis are optimized by using LAPACK, BLAS, and parallelized through Numba.

Some key current achievements of HyperLearn:

1. 70% less time to fit Least Squares / Linear Regression than sklearn + 50% less memory usage
2. 50% less time to fit Non Negative Matrix Factorization than sklearn due to new parallelized algo
3. 40% faster full Euclidean / Cosine distance algorithms
4. 50% less time LSMR iterative least squares
5. New Reconstruction SVD - use SVD to impute missing data! Has .fit AND .transform. Approx 30% better than mean imputation
6. 50% faster Sparse Matrix operations - parallelized
7. RandomizedSVD is now 20 - 30% faster

## Example code

Singular Value Decomposition

    import hyperlearn as hl
    U, S, VT = hl.linalg.svd(X)

Pseudoinverse of a matrix using Cholesky Decomposition

    from hyperlearn.linalg import pinvc
    inv = pinvc(X)

    # check if pinv(X) * X = identity
    check = inv.dot(X)

QR Decomposition wanting only Q matrix

    from hyperlearn import linalg
    Q = linalg.qr(X, Q_only = True)

    # check if Q == Q from full QR
    q, r = linalg.qr(X)

- hyperlearn
  - hyperlearn package
    - Submodules
    - hyperlearn.base module
    - hyperlearn.linalg module
    - hyperlearn.utils module
    - hyperlearn.random module
    - hyperlearn.exceptions module
    - hyperlearn.multiprocessing module
    - hyperlearn.numba module
    - hyperlearn.solvers module
    - hyperlearn.stats module
    - hyperlearn.big_data.base module
    - hyperlearn.big_data.incremental module
    - hyperlearn.big_data.lsmr module
    - hyperlearn.big_data.randomized module
    - hyperlearn.big_data.truncated module
    - hyperlearn.decomposition.base module
    - hyperlearn.decomposition.NMF module
    - hyperlearn.decomposition.PCA module
    - hyperlearn.decomposition.PCA module
    - hyperlearn.discriminant_analysis.base module
    - hyperlearn.discriminant_analysis.QDA module
    - hyperlearn.impute.SVDImpute module
    - hyperlearn.metrics.cosine module
    - hyperlearn.metrics.euclidean module
    - hyperlearn.metrics.pairwise module
    - hyperlearn.sparse.base module
    - hyperlearn.sparse.csr module
    - hyperlearn.sparse.tcsr module
    - Module contents
- hyperlearn.base
  - Example code:
- hyperlearn.linalg
  - Matrix Decompositions
  - Eigenvalue Problems
  - Matrix Inversion
- License
  - Preamble
  - TERMS AND CONDITIONS
- Contact

# Directory

- Index
- Module Index
- Search Page