HonestML — Your 98% Accuracy Is a Lie: A Leakage Audit That Counts Down From Your Reported Score to the Honest One Your Test Set Was Hiding
The proudest I ever felt about a machine learning model was also the most wrong I've ever been. Final year. My project was something I'd stayed up late working on for weeks. After spending hours on feature engineering, I submitted it, and the test accuracy came back at 97.4%. My guide nodded. My teammates celebrated. For about a week, I genuinely believed I'd learned something real. Then the model was tested on actual data, and its performance dropped to somewhere near 60%. Nothing about the model had changed. What changed was that nobody was grading me anymore. I spent the next few days going through the dataset line by line. Three problems had been hiding there from the beginning. The same samples appeared in both training and testing. Not exact copies, but near duplicates with slight formatting differences, rounding changes, or renamed fields. My model recognised rows it had effectively seen before and called that a prediction. The data wasn't independent. Records belonging to the same person, session, or visit appeared on both sides of the split. My model was being evaluated on data connected to examples it had already learned from. One feature was leaking the target. It looked like a brilliant predictor because it was effectively revealing the answer through another column. I didn't have a modelling problem. I had a dataset that was never telling me the truth. The worst part wasn't fixing it. It was realising that I could have taken that misleading accuracy score into a team, a meeting, or a customer presentation and only discovered the problem when it actually mattered. So I built the tool I wish I'd had in that lab: HonestML. Upload a CSV, choose your target and split columns, and HonestML audits your dataset in seconds. • A k-NN baseline scored twice: once using your original split and once using a cleaned split. • Per-row similarity checks to uncover near-duplicate records. • Group overlap detection across columns that matter to your dataset. • Feature-to-target checks to identify potential data leakage. The output isn't just another chart. It's the gap between your reported performance and your audited performance, along with a leakage risk score from 0 to 100. You also get a cleaned CSV with flagged leaky rows and columns removed, helping you retrain your model on more reliable data. I didn't build this because data leakage is an interesting research problem. I built it because a student got a 97% accuracy score that meant nothing, and everyone around him thought it was impressive. If you're about to publish a model's performance, audit it first. If the result holds up, you earned it. If it doesn't, that's one of the most valuable lessons you can learn.
Tech stack
- Base44
Links
Prompt
Build a web app called HonestML that audits a dataset for data leakage before a model's score is trusted.
Ingestion: CSV upload with a built-in sample dataset fallback. Parse client-side, infer numeric vs. categorical columns, and suggest a target column, a train/test split column, and a grouping column.
Audit engine (all client-side):
Split rows via the split column, or auto 80/20 if none chosen.
Near-duplicate detection — normalize features, cosine similarity of each test row against train rows, flag anything above ~0.95.
Group leakage — find group values present in both train and test, list affected test rows.
Target leakage — measure feature-to-target association (correlation for numeric, target-mean separation for categorical) and flag high-signal or near-identity columns.
Accuracy comparison — run a k-NN classifier twice: on the raw test set (reported) and on the cleaned test set (honest).
Roll findings into a 0–100 leakage risk score with Low / Moderate / High / Critical levels.
Emit a cleaned dataset: original rows minus leaky test rows and leaking columns.
Flow: upload → configure columns → analyzing progress → full-screen reveal that counts down from reported accuracy to honest accuracy with a red-to-emerald color shift and a "points of phantom accuracy" verdict → results.
Results page: risk score gauge, reported vs. honest comparison, charts for accuracy, leakage breakdown, feature-target correlation, per-row similarity, test-set impact, similarity distribution, categorized leak cards with example rows, highlighted test-data preview, cleaned CSV download, and a matching PDF report.
Design: dark and technical, monospace accents, oversized numbers, zero clutter. The landing page should state the premise bluntly: your 98% accuracy is a lie.
5 likes · 4 comments · 2 views
Comments (2)
these type of builds is exactly why I'm here.
well done bro
<p>Thanks brother, glad you liked it</p>
There are very few things in life that make me as excited as seeing a new Arqon post. One of the best builders Prompted has doing his thing once again. This is great for anyone in ML and using data sets. I really like this idea and the website looks clean and gets to the point. Once again, great post!
<div><div><div><p>Thanks a lot! Really appreciate it <br></p></div></div></div>