liveBook · Manning

Recall

As explained in Financial AI in Practice

The proportion of all fraudulent cases found within a selected group of model-ranked cases, such as the top n percent.

A fraud team cannot investigate every transaction. Recall, also called sensitivity, measures how much actual fraud its detector catches: actual frauds flagged ÷ all actual frauds. Higher recall means fewer missed frauds and less direct financial loss. Unlike accuracy, it remains informative when almost every transaction is legitimate; approving everything can produce 99% accuracy while catching no fraud. section 8.1.1

For a capacity-limited review queue, Fraud Capture Rate@TopN% is recall within the top N% of transactions ranked by predicted fraud probability. Sort labeled test transactions by score, select the highest-risk N%, count the actual frauds selected, and divide by all actual frauds in the test set. Compare several review sizes rather than assuming one cutoff is best. section 8.3.4

Choosing a review queue

Reviewing the top 0.1% flags 85 transactions and finds 70 frauds: 82.35% precision, but 47.30% recall. Expanding to the top 0.2% flags 171 and finds 115 frauds, raising recall to 77.70% while lowering precision to 67.25%. At the top 5%, recall reaches 89.86%, but precision falls to 3.11% across 4,272 alerts. More coverage therefore requires substantially more reviews, many of them false positives. section 8.3.4

Listing 8.6 Preparing data for top-N% analysis
# Create a DataFrame with true labels and predicted fraud probabilities for the test set
pred_df_eval_test = pd.DataFrame({'true_label': y_test, 'predicted_proba': y_pred_proba_test})
# Sort transactions by predicted fraud probability in descending order (highest probability first)
pred_df_sorted_eval_test = pred_df_eval_test.sort_values(by='predicted_proba', ascending=False)    #1

# Define the percentage thresholds for our analysis
percentage_thresholds = [0.001, 0.002, 0.005, 0.01, 0.05] # Top 0.1%, 0.2%, 0.5%, 1%, 5%
total_test_samples = len(pred_df_sorted_eval_test)
total_actual_frauds_in_test = pred_df_sorted_eval_test['true_label'].sum()   #2

print(f"Data prepared for Top-N% analysis. Total test samples: {total_test_samples}, Total actual frauds: {total_actual_frauds_in_test}")

The preparation code pairs test labels with predicted probabilities, sorts by risk, and records the total fraud count needed as recall’s denominator. section 8.3.4

Use recall alongside precision, not in isolation. The operating threshold must reflect investigation capacity, false-positive customer friction, missed-fraud losses, and risk appetite. F1 combines precision and recall when their error costs are roughly equal; AUC-PR assesses performance across decision thresholds on imbalanced data. section 8.1.1 section 8.5

How Financial AI in Practice covers it

How deep it goes
Defines sensitivity and walks through ranked test-set thresholds and capture rates, without developing a mathematical proof.
Examples
Compares fraud caught, precision, and alert volumes at the top 0.1%, 0.2%, and 5% of ranked transactions.
What it assumes
Assumes labeled fraud outcomes and predicted fraud probabilities; defines recall in plain language before the threshold analysis.
What you can do after
Apply it via ranked test-set analysis to choose alert thresholds against fraud coverage and review capacity.
How it connects
Relates recall to precision, false negatives, F1 score, AUC-PR, class imbalance, and alert thresholds.

Also explained in

Compare how 24 books explain recall →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Financial AI in Practice. The section links point to the parts of the book it draws on.