Predict job
- datarobot.models.predict_job.wait_for_async_predictions(project_id, predict_job_id, max_wait=600)
Given a Project id and PredictJob id poll for status of process responsible for predictions generation until it’s finished
- Parameters:
project_id (
str
) – The identifier of the projectpredict_job_id (
str
) – The identifier of the PredictJobmax_wait (
Optional[int]
) – Time in seconds after which predictions creation is considered unsuccessful
- Returns:
predictions – Generated predictions.
- Return type:
pandas.DataFrame
- Raises:
AsyncPredictionsGenerationError – Raised if status of fetched PredictJob object is
error
AsyncTimeoutError – Predictions weren’t generated in time, specified by
max_wait
parameter
- class datarobot.models.PredictJob
Tracks asynchronous work being done within a project
- Variables:
id (
int
) – the id of the jobproject_id (
str
) – the id of the project the job belongs tostatus (
str
) – the status of the job - will be one ofdatarobot.enums.QUEUE_STATUS
job_type (
str
) – what kind of work the job is doing - will be ‘predict’ for predict jobsis_blocked (
bool
) – if true, the job is blocked (cannot be executed) until its dependencies are resolvedmessage (
str
) – a message about the state of the job, typically explaining why an error occurred
- classmethod from_job(job)
Transforms a generic Job into a PredictJob
- Parameters:
job (
Job
) – A generic job representing a PredictJob- Returns:
predict_job – A fully populated PredictJob with all the details of the job
- Return type:
- Raises:
ValueError: – If the generic Job was not a predict job, e.g. job_type != JOB_TYPE.PREDICT
- classmethod get(project_id, predict_job_id)
Fetches one PredictJob. If the job finished, raises PendingJobFinished exception.
- Parameters:
project_id (
str
) – The identifier of the project the model on which prediction was started belongs topredict_job_id (
str
) – The identifier of the predict_job
- Returns:
predict_job – The pending PredictJob
- Return type:
- Raises:
PendingJobFinished – If the job being queried already finished, and the server is re-routing to the finished predictions.
AsyncFailureError – Querying this resource gave a status code other than 200 or 303
- classmethod get_predictions(project_id, predict_job_id, class_prefix='class_')
Fetches finished predictions from the job used to generate them.
Note
The prediction API for classifications now returns an additional prediction_values dictionary that is converted into a series of class_prefixed columns in the final dataframe. For example, <label> = 1.0 is converted to ‘class_1.0’. If you are on an older version of the client (prior to v2.8), you must update to v2.8 to correctly pivot this data.
- Parameters:
project_id (
str
) – The identifier of the project to which belongs the model used for predictions generationpredict_job_id (
str
) – The identifier of the predict_jobclass_prefix (
str
) – The prefix to append to labels in the final dataframe (e.g., apple -> class_apple)
- Returns:
predictions – Generated predictions
- Return type:
pandas.DataFrame
- Raises:
JobNotFinished – If the job has not finished yet
AsyncFailureError – Querying the predict_job in question gave a status code other than 200 or 303
- cancel()
Cancel this job. If this job has not finished running, it will be removed and canceled.
- get_result(params=None)
- Parameters:
params (
dict
orNone
) – Query parameters to be added to request to get results.
Notes
For featureEffects, source param is required to define source, otherwise the default is training.
- Returns:
result –
- Return type depends on the job type
for model jobs, a Model is returned
for predict jobs, a pandas.DataFrame (with predictions) is returned
for featureImpact jobs, a list of dicts by default (see
with_metadata
parameter of theFeatureImpactJob
class and itsget()
method).for primeRulesets jobs, a list of Rulesets
for primeModel jobs, a PrimeModel
for primeDownloadValidation jobs, a PrimeFile
for predictionExplanationInitialization jobs, a PredictionExplanationsInitialization
for predictionExplanations jobs, a PredictionExplanations
for featureEffects, a FeatureEffects.
- Return type:
object
- Raises:
JobNotFinished – If the job is not finished, the result is not available.
AsyncProcessUnsuccessfulError – If the job errored or was aborted
- get_result_when_complete(max_wait=600, params=None)
- Parameters:
max_wait (
Optional[int]
) – How long to wait for the job to finish.params (
dict
, optional) – Query parameters to be added to request.
- Returns:
result – Return type is the same as would be returned by Job.get_result.
- Return type:
object
- Raises:
AsyncTimeoutError – If the job does not finish in time
AsyncProcessUnsuccessfulError – If the job errored or was aborted
- refresh()
Update this object with the latest job data from the server.
- wait_for_completion(max_wait=600)
Waits for job to complete.
- Parameters:
max_wait (
Optional[int]
) – How long to wait for the job to finish.- Return type:
None