Skip to content
This repository has been archived by the owner on Apr 8, 2022. It is now read-only.
/ neonrvm Public archive

An open source machine learning library for performing regression tasks using RVM technique.

License

Notifications You must be signed in to change notification settings

siavashserver/neonrvm

Repository files navigation

neonrvm_logo

GitHub GitHub release (latest SemVer including pre-releases) GitHub stars PyPI - Status

Introduction

neonrvm is an open source machine learning library for performing regression tasks using RVM technique. It is written in C programming language and comes with bindings for the Python programming language.

neonrvm was born during my master's thesis to help reduce training times and required system resources. neonrvm did that by getting rid of multiple middleware layers and optimizing memory usage.

Under the hood neonrvm uses expectation maximization fitting method, and allows basis functions to be fed incrementally to the model. This helps to keep training times and memory requirements significantly lower for large data sets.

neonrvm is not trying to be a full featured machine learning framework, and only provides core training and prediction facilities. You might want to use it in conjunction with higher level scientific programming languages and machine learning tool kits instead.

RVM technique is very sensitive to input data representation and kernel selection. You might consider something else if you are looking for a less challenging solution.


Documentation

Please visit the dedicated users guide page: https://siavashserver.github.io/neonrvm/


License


Future work

  • Investigate methods to make learning process numerically more stable
  • Implement classification
  • Create higher level wrappers and programming language bindings
  • Improve documentation

Reference

  • Tipping, M. E. (2001). Sparse Bayesian learning and the relevance vector machine. Journal of machine learning research, 1(Jun), 211-244.
  • Ben-Shimon, D., & Shmilovici, A. (2006). Accelerating the relevance vector machine via data partitioning. Foundations of Computing and Decision Sciences, 31(1), 27-42.