Machine Learning

Key Concepts


Machine learning is a field of study that combines statistics and computer science to build intelligent systems that predict outcomes. You can use machine learning techniques in your trading strategies.

Supported Libraries

LEAN supports several machine learning libraries. You can import these packages and use them in your algorithms.

NameVersionLanguageImport StatementExample
TensorFlow2.11.0Pythonimport tensorflow
SciKit Learn1.2.1Pythonimport sklearn
Py Torch1.13.1Pythonimport torch
Keras2.11.0Pythonimport keras
gplearn0.4.2Pythonimport gplearn
hmmlearn0.2.8Pythonimport hmmlearn
tsfresh0.20.0Pythonimport tsfresh
Stable-Baselines31.7.0Pythonfrom stable_baselines3 import *
fastai2.7.11Pythonimport fastai
Deap1.3.3Pythonimport deap
XGBoost1.7.4Pythonimport xgboost
mlfinlab1.6.0Pythonimport mlfinlab
Accord3.6.0C#using Accord.MachineLearning;

Add New Libraries

To request a new library, contact us. We will add the library to the queue for review and deployment. Since the libraries run on our servers, we need to ensure they are secure and won't cause harm. The process of adding new libraries takes 2-4 weeks to complete. View the list of libraries currently under review on the Issues list of the Lean GitHub repository.

Save Models

After you train a model, you can save it into the Object Store. In QuantConnect Cloud, we back up your Object Store data on QuantConnect servers. In local algorithms, your local machine saves the Object Store data. If you save models in live algorithms, save them at the end of the training method so you can access the trained model again if your algorithm stops executing. If you save models in backtests, save them during the OnEndOfAlgorithm event handler so that saving multiple times doesn't slow down your backtest.

To view examples of storing library-specific models, see Popular Libraries.

Load Models

You can load machine learning models from the Object Store or a custom data file like pickle. If you load models from the Object Store, before you load the model into your algorithm, in the Initialize method, check if the Object Store already contains the model. To avoid look-ahead bias in backtests, don't train your model on the same data you use to test the model.

You can also see our Videos. You can also get in touch with us via Discord.

Did you find this page helpful?

Contribute to the documentation: