CoolFace
Datasetpublic

mjboothaus/titanic-databooth

Dataset Description Purpose: Demonstrate how data quality impacts analytics through the iconic Titanic dataset, featuring: Original datasets (with known age/class errors) Corrected versions (with reconciled passenger details) Data quality annotations (error flags, reconciliation sources) Homepage: Data Governance: Titanic Dataset and the Perils of Bad Data Repository: mjboothaus-titanic-databoothTasks: data-cleaning, error-detection, survival-prediction Dataset… See the full description on the dataset page: https://huggingface.co/datasets/mjboothaus/titanic-databooth.

sourceHugging Faceupdated 1y agoView on Hugging Face
1likes24downloads
Dataset Card

Dataset Description

Purpose: Demonstrate how data quality impacts analytics through the iconic Titanic dataset, featuring:

  • —Original datasets (with known age/class errors)
  • —Corrected versions (with reconciled passenger details)
  • —Data quality annotations (error flags, reconciliation sources)

Homepage: Data Governance: Titanic Dataset and the Perils of Bad Data Repository: mjboothaus-titanic-databooth Tasks: data-cleaning, error-detection, survival-prediction

Dataset Versions

VersionDescriptionKey Features
originalUnmodified datasetsContains age discrepancies (e.g., Algernon Barkworth recorded as 80)
corrected-v1Age-reconciled dataMatches Encyclopedia Titanica records
annotatedError-flagged versionContains is_age_discrepancy and data_source columns

Data Fields (Corrected Version)

ColumnTypeDescriptionCommon Errors
namestringPassenger name-
agefloatCorrected age at voyageOriginal had 143+ age errors >2 years
pclassintPassenger class (1-3)Class misassignments in original
survivedintSurvival status-
is_age_discrepancyboolTrue if original age error >2 years-
data_sourcestringReconciliation source (ET)-

Usage Example

from datasets import load_dataset

# Compare original vs corrected data
original = load_dataset("mjboothaus/titanic-databooth", name="original")
corrected = load_dataset("mjboothaus/titanic-databooth", name="corrected-v1")

# Find corrected records
discrepancies = corrected.filter(lambda x: x["is_age_discrepancy"])
print(f"Fixed {len(discrepancies)} age errors")

<!-- TODO: Also st.connnector class? And "plain" class too for DuckDB? -->

Key Data Quality Issues

  1. 1.Age Discrepancies
  2. 2.Original error: 80yo survivor (actual age 47)
  3. 3.143+ passengers with >2 year age differences
  4. 4.Systemic bias from death age vs voyage age confusion
  1. 1.Class Misassignments
  2. 2.Documented cabin class errors
  3. 3.Impacts fare/survival correlation analysis

Reconciliation Process

  1. 1.Source Alignment: Cross-referenced with:
  2. 2.Encyclopedia Titanica
  3. 3.Titanic Facts Network
  4. 4.Historical voyage manifests
  1. 1.Validation Methods:
  2. 2.Age distribution analysis
  3. 3.Survival rate by age cohort
  4. 4.Source conflict resolution protocols

Impact Analysis

MetricOriginal DataCorrected Data
Avg Age (Survivors)28.3427.46
Oldest Survivor80 (incorrect)64 (Mary Compton)
Class 1 Survival Rate62.96%63.01% (adjusted)

Suggested Use Cases

  • —Data Quality Workshops: Compare original/corrected versions
  • —Governance Training: Demonstrate error propagation
  • —ML Robustness Tests: Train models on both versions

Citation

@dataset{titanic-databooth,
  author = {Michael J. Booth},
  title = {Titanic Data Quality Benchmark},
  year = {2025},
  publisher = {Hugging Face},
  version = {1.0.0}
}

Acknowledgements

  • —Encyclopedia Titanica for reference data

Key Features to Highlight:

  • —Version Control: Clear lineage between original/corrected data
  • —Error Documentation: Specific examples with historical context
  • —Impact Metrics: Quantifiable differences between datasets
  • —Educational Focus: Designed for data governance training

<!-- TODO: Include a Jupyter / Marimo / Streamlit notebook -->

Code demonstrating:

  1. 1.Age distribution comparisons
  2. 2.Survival rate analysis by data version
  3. 3.Simple ML model performance differences

References:

Original "datacard" see https://huggingface.co/datasets/mjboothaus/titanic-databooth/resolve/main/titanic3info.txt

  • —[1] https://www.databooth.com.au/posts/data-quality-titanic/
  • —[2] https://mjboothaus.wordpress.com/2017/07/11/did-a-male-octogenarian-really-survive-the-sinking-of-the-rms-titanic-2/

license: apache-2.0 ---

Sponsored by: [DataBooth.com.au](https://www.databooth.com.au).