Skip to main content
Version: Next

Predictions download formats: Text span prediction

Overview

When you download predictions in H2O Hydrogen Torch, which comes in a zip file, the format and content of the file first depends on the problem type of the predictions, and then it depends on how you generate them. On the point of "how you generate them," there are two scenarios.

  • Scenario 1: Predictions from a completed experiment

    Predictions downloaded from a completed experiment on the View experiments card are packaged in a zip file. This zip file contains the following files:

    1. validation_predictions.csv: This is a structured dataframe in CSV format, presenting the final predictions for the provided validation dataframe.

    2. validation_raw_predictions.pkl: This is a Pickle file, which is essentially a pickled Python dictionary. It contains raw predictions for the provided validation dataframe.

      If the experiment included a test dataframe, H2O Hydrogen Torch also includes two additional files in the same zip file:

    3. test_predictions.csv: This is another structured dataframe in CSV format, displaying the final predictions for the provided test dataframe.

    4. test_raw_predictions.pkl: Similar to the validation set, this is a Pickle file with raw predictions for the provided test dataframe.

  • Scenario 2: Predictions generated by scoring on new data

    Predictions generated by scoring on new data through the H2O Hydrogen Torch UI (on the Predict data card) are downloaded in a zip file. This zip file includes the following files:

    1. test_predictions.csv: This is a structured dataframe in CSV format, showing the final predictions for the provided test dataframe.
    2. test_raw_predictions.pkl: This is a Pickle file, a pickled Python dictionary containing raw predictions for the provided test dataframe.

Formats

The Pickle file, contains the following keys:

  • [question_column]
    • A 1-dimensional NumPy array that contains the input question text. The name of the key is [question_column] where question_column refers to the name of the question text column in the train dataframe.
      Note

      You can define the [question_column] under the Dataset settings section when building a Text Span Predictions experiment.

  • [context_column]
    • A 1-dimensional NumPy array that contains the input context text. The name of the key is [context_column] where context_column refers to the name of the context text column in the train dataframe.
      Note

      You can define the [context_column] under the Dataset settings section when building a text span predictions experiment.

  • predictions
    • A 1-dimensional NumPy array that contains predictions in a string format for every input question. The predicted string is a substring of the corresponding context text.
  • predicted_[answer_column_name]_top_k
    • A 1-dimensional NumPy array that contains top-K predictions (in a string form) for the answer column, where k represents the number of predictions the model generated for the answer column.
  • predicted_answers_score
    • A 2-dimensional NumPy array that contains (unnormalized) scores for each predicted answer. Higher scores indicate higher confidence in the prediction.
  • predicted_answers_null_score
    • A 2-dimensional NumPy array that contains the (unnormalized) score that the model assigns to the question having no answer. The difference between the answer and the null scores can be seen as a measure of confidence in the answer.
      Note

      The null score for each answer to a given question may differ. This difference can happen if the model splits the context into multiple spans and predicts each span individually. The null score corresponds to the span where the predicted answer is found.

Note

Open CSV and Pickle files with Python

Using Python, a csv or Pickle file containing predictions can be open as follows:

import pickle
import pandas as pd

df = pd.read_csv('text_classification/validation_predictions.csv')

with open('text_classification/validation_raw_predictions.pkl', 'rb') as f:
out = pickle.load(f)
print(out.keys())
dict_keys(['predictions', 'comment_text', 'labels'])
print(df.head(1))
idcomment_textlabel_toxiclabel_severe_toxiclabel_obscenelabel_threatlabel_insultlabel_identity_hatefoldpred_label_toxicpred_label_severe_toxicpred_label_obscenepred_label_threatpred_label_insultpred_label_identity_hate
000103f0d9cfb60fD'aww! He matches this background colour I'm s...00000000.000410.0001680.0003280.0001420.0002470.000155

Feedback