Metadata-Version: 2.1
Name: datarobot-predict
Version: 1.0.0
Summary: DataRobot Prediction Library
Author: DataRobot
Author-email: support@datarobot.com
Requires-Python: >=3.7,<3.12
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: click (>=8,<9)
Requires-Dist: jpype1 (>=1,<2)
Requires-Dist: pandas (>=0.15)
Description-Content-Type: text/markdown

# About
DataRobot Prediction Library is a Python library for making predictions using various prediction methods supported by DataRobot.
The intention is to provide a common interface for making predictions, making it easy to swap out the underlying implementation.

For more info, see the [DataRobot Documentation](https://docs.datarobot.com/).

# Setup
## Prerequisites
* Python 3.7 or greater
* Scoring Code requires Java Runtime Environment 8 or higher
* Scoring Code models generated on DataRobot 7.3 and later are supported

## Installation
`$ pip install datarobot-predict`

# Usage
## Scoring Code
To get started, instantiate a `ScoringCodeModel` with a path to a jar file 
```
from datarobot_predict.scoring_code import ScoringCodeModel

model = ScoringCodeModel("model.jar")
```

To get predictions from the model, pass a pandas `DataFrame` to the predict method
```
result_df = model.predict(df)
```

The Scoring Code jar file can be downloaded using the [DataRobot Python Client](https://pypi.org/project/datarobot/). 
This example shows how to fetch Scoring Code from a deployment and use it to make predictions
```
# pip install datarobot

import datarobot as dr
from datarobot_predict.scoring_code import ScoringCodeModel

dr.Client(endpoint="https://app.datarobot.com/api/v2", token="<API_TOKEN>")

deployment = dr.Deployment.get(deployment_id="<DEPLOYMENT_ID>")
deployment.download_scoring_code("model.jar")

model = ScoringCodeModel("model.jar")
result_df = model.predict(df)
```

### Prediction Explanations
To compute Prediction Explanations, it is required that the Scoring Code model has Prediction Explanations enabled. 
For more info, see the DataRobot docs page about [Scoring Code download](https://docs.datarobot.com/en/docs/predictions/port-pred/scoring-code/sc-download-leaderboard.html#leaderboard-download).

To compute explanations, set `max_explanations` to a positive value
```
df_with_explanations = model.predict(df, max_explanations=3)
```

### Time Series
Forecast point predictions are returned by default if no other arguments are provided for a Time Series Model.
The forecast point can be specified using the `forecast_point` parameter or auto-detected.
```
result_df = model.predict(df, forecast_point=datetime.datetime(1958, 6, 1))
```

To do historical predictions, set `time_series_type` accordingly
```
from datarobot_predict.scoring_code import TimeSeriesType

result_df = model.predict(
    df,
    time_series_type=TimeSeriesType.HISTORICAL,
    predictions_start_date=datetime.datetime(2020, 1, 1),
    predictions_end_date=datetime.datetime(2022, 6, 1),
)
```

The date column in the input is expected to be a string in the same date format used
when the model was trained.

### Prediction Intervals
To compute Prediction Intervals, it is required that the Scoring Code model has Prediction Intervals enabled. 
For more info, see the DataRobot docs page about [Scoring Code download](https://docs.datarobot.com/en/docs/predictions/port-pred/scoring-code/sc-download-leaderboard.html#leaderboard-download).

Prediction intervals are computed when `prediction_intervals_length` is set to a positive value
```
result_df = model.predict(df, prediction_intervals_length=3)
```
