POST 1 of 5 MorningAI/MLConcept
Models can't fix data you haven't looked at
I've seen it many times. A team trains a model. The model performs poorly. They blame the architecture, try a bigger model, retrain with different hyperparameters. The model still performs poorly. Eventually someone looks at the data and finds — surprise — the labels are noisy, half the features have systematic missing values, and the train/test split has a temporal leak. The truth was visible in the first hour of EDA, and the team spent three weeks ignoring it. Don't be that team. EDA isn't a step you skip when you're in a hurry. It's the step that prevents the slowness. My seven questions for every fresh dataset, asked in order: One — what's the row count and column count? Frames the rest of the analysis. 100 rows is a different problem from 100M. Two — what types are each column? df.info() in pandas. Strings as categories vs strings as IDs vs strings that should be parsed as dates. Three — where are the missing values? df.isna().sum().sort_values(ascending=False). Some columns missing 90% of values are essentially noise. Some missing 5% need imputation strategy. Four — what's the target distribution? Skewed? Imbalanced? For classification, value_counts() on the target. If 99% of rows are one class, accuracy is meaningless. Five — any obvious correlations? df.corr() and look at the top correlations with target. Anything above 0.95 is suspicious — likely a leaky feature. Six — any duplicated rows or near-duplicates? df.duplicated().sum() catches exact duplicates. Near-duplicates need fuzzy matching, but worth checking on critical fields. Seven — any leak? Features that 'know' the answer at training time but won't be available at inference. Date fields, customer IDs that map 1-1 to label, anything created downstream of the target. Answer these in 30 minutes. Then model.
#NumPy#Pandas#DataScience#Python#100DaysOfCode#EDA