---
title: "Machine Learning"
slug: "machine-learning"
abstract: ""
---
# Machine Learning

The Sitecore Cortex™ Processing Engine (Processing Engine) provides an integration point for your machine learning platform of choice.

## Microsoft Machine Learning Server integration

The Microsoft Machine Learning Server integration allows you to send your machine learning script and the location of projected data to a Machine Learning Server web endpoint. Integrating with Machine Learning Server includes the follow high-level tasks:

- Implement a custom [model wrapper](https://doc.sitecore.com/xp/en/developers/91/sitecore-experience-platform/model-wrappers.html "Model wrappers"):
    - Inject `IScriptSessionFactory` into the model.
    - In the context of the `TrainAsync()` and `EvaluateAsync()` methods, use `IScriptSessionFactory`  to send your R script and the location of your training data to a Machine Learning Server endpoint.
- To use the training logic within your custom model, schedule a [training worker](https://doc.sitecore.com/xp/en/developers/91/sitecore-experience-platform/training-worker.html "Training worker") task that references your model. The training worker executes the `TrainAsync()` method.

## Machine learning and Experience Optimization

The Experience Optimization feature does not use the Microsoft Machine Learning Server integration. Machine learning in the context of Experience Optimization includes:

- A custom `PersonalizationInteractionModel` (implements `IModel` ) that projects interaction data. The `TrainAsync()` and `EvaluateAsync()` methods are not implemented.
- A custom `BuildPersonalizationRulesWorker` that fits a decision tree to projected data and deploys the results to the xDB Reporting server. Decision tree logic is contained within an injected class.