Bird
Raised Fist0
Prompt Engineering / GenAIml~15 mins

Output format control in Prompt Engineering / GenAI - ML Experiment: Train & Evaluate

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Experiment - Output format control
Problem:You have a machine learning model that predicts house prices. The model outputs raw predictions as floating-point numbers with many decimal places, which is hard to read and use in reports.
Current Metrics:Model predictions example: [234567.891234, 345678.912345, 456789.123456]
Issue:The output format is not user-friendly. Predictions have too many decimals and inconsistent formatting, making it difficult to interpret and present.
Your Task
Format the model's output predictions to show as currency with exactly two decimal places and commas as thousand separators.
Do not change the model or its predictions.
Only modify the output formatting code.
Hint 1
Hint 2
Hint 3
Solution
Prompt Engineering / GenAI
import numpy as np

# Simulated model predictions
predictions = np.array([234567.891234, 345678.912345, 456789.123456])

# Format predictions as currency strings with commas and 2 decimals
def format_predictions(preds):
    return [f"${pred:,.2f}" for pred in preds]

formatted_preds = format_predictions(predictions)
print(formatted_preds)
Added a function to format the raw float predictions into strings.
Used f-string formatting with :, to add commas and .2f to limit decimals to two.
Prefixed with $ to represent currency.
Results Interpretation

Before formatting: [234567.891234, 345678.912345, 456789.123456]

After formatting: ['$234,567.89', '$345,678.91', '$456,789.12']

Proper output formatting improves readability and usability of model predictions without changing the model itself.
Bonus Experiment
Try formatting the output predictions in European style with periods as thousand separators and commas as decimal separators, e.g., '234.567,89 €'.
💡 Hint
Use Python's locale module or custom string replacement to achieve this format.

Practice

(1/5)
1. What is the main reason to control the output format of a machine learning model?
easy
A. To change the model's architecture
B. To increase the model's accuracy
C. To reduce the training time
D. To make the results easier to read and understand

Solution

  1. Step 1: Understand output format control

    Output format control is about how results are shown, not about model internals.
  2. Step 2: Identify the purpose of formatting

    Formatting helps make results clear and easy to read for users or other systems.
  3. Final Answer:

    To make the results easier to read and understand -> Option D
  4. Quick Check:

    Output format = readability [OK]
Hint: Output format helps people read results clearly [OK]
Common Mistakes:
  • Confusing output format with model accuracy
  • Thinking output format changes training speed
  • Believing output format alters model design
2. Which of the following is the correct way to format model output as a JSON string in Python?
easy
A. json.load(output)
B. json.dumps(output)
C. json.parse(output)
D. json.write(output)

Solution

  1. Step 1: Recall JSON functions in Python

    json.dumps() converts Python objects to JSON strings.
  2. Step 2: Check other options

    json.load() reads JSON from a file, json.parse() and json.write() are invalid in Python's json module.
  3. Final Answer:

    json.dumps(output) -> Option B
  4. Quick Check:

    Convert to JSON string = json.dumps() [OK]
Hint: Use json.dumps() to get JSON string from Python data [OK]
Common Mistakes:
  • Using json.load() instead of dumps()
  • Trying json.parse() which doesn't exist in Python
  • Confusing reading JSON with writing JSON
3. Given the Python code:
predictions = [0.1, 0.9, 0.8]
formatted = ', '.join(str(p) for p in predictions)
print(formatted)

What will be the output?
medium
A. 0.1, 0.9, 0.8
B. [0.1, 0.9, 0.8]
C. 0.1 0.9 0.8
D. Error: join expects a string

Solution

  1. Step 1: Understand join with generator

    Each number is converted to string, then joined with ', ' separator.
  2. Step 2: Predict printed string

    Result is '0.1, 0.9, 0.8' as a single string.
  3. Final Answer:

    0.1, 0.9, 0.8 -> Option A
  4. Quick Check:

    Join list with ', ' = '0.1, 0.9, 0.8' [OK]
Hint: join() combines strings with separator [OK]
Common Mistakes:
  • Expecting list brackets in output
  • Thinking join adds spaces only
  • Confusing join with print of list
4. The code below tries to format model predictions as a table but throws an error:
predictions = [0.2, 0.5, 0.7]
print('Index | Prediction')
for i, p in predictions:
    print(f'{i} | {p}')

What is the error and how to fix it?
medium
A. Error: 'predictions' is not iterable as (index, value); fix by using enumerate(predictions)
B. Error: f-string syntax wrong; fix by removing curly braces
C. Error: print missing parentheses; fix by adding them
D. No error; code runs fine

Solution

  1. Step 1: Identify iteration error

    Loop expects pairs (i, p), but predictions is a list of floats, not tuples.
  2. Step 2: Fix by using enumerate

    Use for i, p in enumerate(predictions) to get index and value pairs.
  3. Final Answer:

    Error: 'predictions' is not iterable as (index, value); fix by using enumerate(predictions) -> Option A
  4. Quick Check:

    Use enumerate() to get index-value pairs [OK]
Hint: Use enumerate() to loop with index and value [OK]
Common Mistakes:
  • Trying to unpack single list items as tuples
  • Ignoring need for enumerate in loops
  • Misreading f-string syntax errors
5. You want to output model predictions as a JSON object with keys as sample IDs and values as predictions. Given:
sample_ids = ['s1', 's2', 's3']
predictions = [0.3, 0.6, 0.9]

Which code correctly creates this JSON string?
hard
A. json.dumps({predictions[i]: sample_ids[i] for i in range(len(predictions))})
B. json.dumps(dict(zip(predictions, sample_ids)))
C. json.dumps({sample_ids[i]: predictions[i] for i in range(len(sample_ids))})
D. json.dumps([sample_ids, predictions])

Solution

  1. Step 1: Match keys and values correctly

    Keys should be sample_ids, values should be predictions, so use dictionary comprehension with sample_ids as keys.
  2. Step 2: Check other options

    json.dumps({predictions[i]: sample_ids[i] for i in range(len(predictions))}) and json.dumps(dict(zip(predictions, sample_ids))) reverse keys/values, json.dumps([sample_ids, predictions]) creates a list not dict.
  3. Final Answer:

    json.dumps({sample_ids[i]: predictions[i] for i in range(len(sample_ids))}) -> Option C
  4. Quick Check:

    Keys = sample_ids, values = predictions [OK]
Hint: Use dict comprehension with keys and values zipped [OK]
Common Mistakes:
  • Swapping keys and values in dict
  • Using list instead of dict for JSON object
  • Forgetting to convert dict to JSON string