Visveswaran /data
data/self-healing

Self-Healing Data Lab

A 1970s–80s car catalogue with realistic defects injected: duplicate records, missing values, kilograms typed into a pounds column, impossible cylinder counts, messy country codes. The engine profiles it, mines rules from the clean rows, repairs what it is sure about and sends the rest to a data steward.

Rule miningRobust z-scorekNN imputationFuzzy matching406 source rows · UCI Auto MPG
1Profile→ 2Detect→ 3Heal→ 4Verify
Data quality score
–/ 100
Mean of completeness, validity, consistency and uniqueness. Target line at 90.
Issues found
–
Auto-healed
0
Steward queue
0
Fix accuracy
–
vs. answer key

Quality dimensions

Share of records that pass each check, before and after healing

BeforeAfter

Issues by type

Detected defects, split by how each fix is routed

Auto ≥ 90%Steward 50–89%Quarantine < 50%Not yet healed

The dataset

Every cell the engine touches is highlighted. Hover a healed cell to see the method and confidence.

InvalidMissingDuplicate rowHealedAwaiting steward

Fix confidence

Every proposed fix, by confidence. The thresholds decide who acts: the engine or a person.

Steward inbox

Suggestions below 90% confidence wait for a human decision.

Run healing to fill the inbox.

Audit log

Who changed what, how, and how sure the engine was. Newest first.

RowFieldOldNewMethodConfidenceBy
No changes yet.

How the engine decides

Rules are mined from the rows that are already clean: brand to country of origin, cylinder counts by engine size, weight ranges per cylinder group. A fix proposed by a rule inherits that rule's confidence. Fixes at 90% or above run automatically, 50–89% go to a steward and anything lower is quarantined.

Techniques used

Unit errors are caught with a median-based z-score per cylinder group and a check that ×2.2046 lands back in range. Missing numbers are imputed from the five most similar cars. Brand typos are matched with edit distance against brands seen at least three times.

Proving it works

Because the defects were injected on purpose, an answer key exists. The accuracy tile compares each fix with the original value, counting numbers within 10% as correct. The engine also finds brand typos that are present in the original public dataset, such as "toyouta" and "chevroelt".

Source: Auto MPG dataset, UCI Machine Learning Repository (Quinlan, 1993), via vega-datasets. Defects are injected in your browser with a seeded generator; press "Inject new defects" for a fresh set.