About
This section provides the API documentation for the kxi.ml Python library provided by KX for use by customers of kdb Insights, both for interactions with the Microservices/Enterprise, and independent use.
Presently this library provides users with the ability to interact with the ML Registry for persistence, retrieval and removal of Machine Learning models written in q or Python within the following libraries:
- q functions generated using PyKX.
- Scikit-learn
- Keras
- Theano
- PyTorch
Installation
Note
Python packages should typically be installed in a virtual environment. This can be done with the venv package from the standard library.
kxi.ml is only intended for use on Linux based systems; it is not supported presently on Windows or MacOS
Ensure you have a recent version of pip:
pip install --upgrade pip
Then to install kxi.ml using the KX PyPI server run the following command:
pip install --extra-index-url=https://$KX_PYPI_USER:$KX_PYPI_PASS@nexus.dl.kx.com/repository/kxi/simple/ kxi.ml
Where the environment variables KX_PYPI_USER and KX_PYPI_PASS have been set as appropriate. Please contact kxpy@kx.com for information on getting access to the KX PyPI server.
Python Dependencies
kxi.ml depends on the following Python packages:
- kxi==1.0.2
- scipy==1.7.3
- scikit-learn==1.0.2
- statsmodels==0.13.1
- pandas==1.4.1
- joblib==1.1.0
These are installed automatically by pip when kxi.ml is installed. The following are optional dependencies which can be installed by a user to provided additional functionality:
| Library | Version | Usage | 
|---|---|---|
| keras | 2.7.0 | Save Kerasmodels to the ML Registry | 
| torch | 1.7.1 | Save PyTorchmodels to the ML Registry | 
| theano | 1.0.5 | Save Theanomodels to the ML Registry | 
Use cases
There are many ways users can make use of the machine learning functionality provided here:
- Train models on historical data and deploy these to real-time systems- Anomaly detection within manufacturing.
- Trade surveillance.
 
- Machine Learning Operations development cycle- Storage of frequently updated models for future deployment (trading models/recommendation engines).
- Deployment of stored models to production settings.
- Use of versioning to maintain control over model accountability.