I am looking for packages (either in python, R, or a standalone package) to perform online learning to predict stock data.

I have found and read about Vowpal Wabbit (https://github.com/JohnLangford/vowpal_wabbit/wiki), which seems to be quite promising but I am wondering if there are any other packages out there.

Thanks in advance.


3 Answers 3


If you are willing to try Julia (or pyjulia for calling Julia from Python), there is OnlineStats.jl. The StatLearn type for statistical learning may be of use to you.


Late answer, but...

Liblinear (standalone)

The authors recently released a new, faster version. A multi-threaded implementation is also available. LIBLINEAR is a linear classifier for data with millions of instances and features. It supports :

  • L2-regularized classifiers
  • L2-loss linear SVM, L1-loss linear SVM, and logistic regression (LR)
  • L1-regularized classifiers
  • L2-loss linear SVM and logistic regression (LR)
  • L2-regularized support vector regression
  • L2-loss linear SVR and L1-loss linear SVR.

Sofia (R, standalone)

Google released Sofia, which is also callable from R through RSofia. It performs regressions, classification and ranking through:

  • Pegasos SVM
  • Stochastic Gradient Descent (SGD)
  • SVM Passive-Aggressive
  • Perceptron Perceptron with Margins
  • Logistic Regression (with Pegasos Projection)

There is an implementation of online kmeans, which is available in the source code, but not in the R package.

Online random forests (Python, standalone)

Some implementation of online random forests are available on git. To mention a few : here is a C standalone implementation and here is a python implementation. Note that the theory is at its early stages, new implementations may come latter.

  • $\begingroup$ I doubt that LIBLINEAR can perform in online learning setting, as most of the tools in Sofia toolbox. $\endgroup$ Feb 12, 2016 at 19:48

The Weka library (implemented in Java) has support for online learning as well. The term Weka uses is "updateable classifier", that is, an algorithm that can learn from a single training instance, and it doesn't need the entire dataset to be available in memory.

Here's the list of classifiers supported, that are capable of online learning.


Not the answer you're looking for? Browse other questions tagged or ask your own question.