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.16.1Pythonimport tensorflow
SciKit Learn1.4.2Pythonimport sklearn
Py Torch2.2.1Pythonimport torch
Keras3.3.3Pythonimport keras
gplearn0.4.2Pythonimport gplearn
hmmlearn0.3.2Pythonimport hmmlearn
tsfresh0.20.2Pythonimport tsfresh
Stable-Baselines32.3.2Pythonfrom stable_baselines3 import *
fastai2.7.14Pythonimport fastai
Deap1.4.1Pythonimport deap
XGBoost2.0.3Pythonimport 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 OnEndOfAlgorithmon_end_of_algorithm 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 Initializeinitialize 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: