1. EDA
Deadline and Submission
08.oct (thursday) 2026
Commits until 23:59
Team of up to 3 people
20% of the Project grade
Project: Exploratory Data Analysis (EDA)
First deliverable of the classification or regression project. The team explores the dataset it will use until the end of the semester, finds out what is hard about it and ends with a preprocessing pipeline ready for modeling. No model is trained in this deliverable.
Rules
- Python with
pandas,numpy,matplotlib/seaborn,scikit-learnandumap-learn, fixed seed (random_state=42); - In stages 2 and 3, at most 3 figures per item β choosing what deserves a figure is already part of the analysis;
- Numbered figures, with title, labeled axes and legend. Every number asked for appears in the text, not only in the output;
- The same dataset carries over to the Classification or Regression deliverable.
Starting point: an example EDA
The From EDA to dimensionality reduction lab walks through stages 1 to 4 on Palmer Penguins: inspection and statistics, correlations, a stratified split, a ColumnTransformer fitted on training data only, PCA with loadings, and the comparison between t-SNE and UMAP.
Use it as a reference for rigor, not as a template: every number in it comes with the check that confirms it. Palmer Penguins has only 344 rows, so it cannot be the dataset you submit. The report still follows the structure of this page.
| Stage | What comes out of it | Points |
|---|---|---|
| 0. Proposal | approved dataset | prerequisite |
| 1. Initial inspection | data dictionary, quality, target and train/test split | 2.0 |
| 2. Univariate analysis | distributions of numerical and categorical features | 1.5 |
| 3. Bivariate analysis | correlations and relations to the target | 2.0 |
| 4. Preprocessing | strategies, PCA Β· t-SNE Β· UMAP and pipeline | 3.5 |
| 5. Synthesis | findings, risks and results summary | 1.0 |
0. Proposal
The team picks the task and submits through the form up to 3 datasets, in order of preference, each with: URL, size (rows Γ columns), target, number of numerical and categorical features, a 2β3 sentence motivation and the first risk it sees. The instructor approves one β an EDA on a dataset that was not approved is not graded.
Dataset requirements
Tabular and public Β· at least 1,000 instances and 5 features, numerical and categorical Β· target present in the file itself Β· no classical datasets or datasets already used in the course (Titanic, Spaceship Titanic, Iris, Wine, MNIST, Boston/California Housing, β¦).
Examples with the expected profile
- Classification: Stroke Prediction, Adult Income
- Regression: New York City Airbnb, Vehicle Dataset from CarDekho
1. Initial inspection
- A. Data dictionary β where the dataset comes from, what each row is and a table with the meaning, type and unit of each feature.
- B. Quality β missing values per column (count and %), duplicates, impossible or inconsistent values and columns to drop: identifiers, constants and those that leak the target.
- C. Target β classification: frequency of each class and imbalance; regression: statistics, histogram and skewness.
- D. Train and test β split with a fixed seed, stratified (or temporal) when appropriate. From here on, every preprocessing statistic is computed on the training set only.
Feature types Β· Quality Β· Leakage Β· Imbalance Β· Splitting
2. Univariate analysis
- A. Numerical β descriptive table for all of them (mean, median, deviation, quartiles) and figures interpreting the shape of each distribution: skewness, modes, outliers.
- B. Categorical β frequencies and cardinality for all of them and bar charts, pointing out rare and high-cardinality categories.
3. Bivariate and multivariate analysis
- A. Numerical Γ numerical β correlation matrix (Pearson or Spearman, justified) and scatter plots, pointing out redundant pairs.
- B. Categorical Γ target β class proportions per category (classification) or target distribution per category (regression).
- C. Numerical Γ categorical β grouped boxplots: do the groups differ in location, in spread, or in both?
Every figure ends with one explicit conclusion.
4. Preprocessing
Every choice points to the finding that motivates it: "we standardized because the features range from 0β1 to 0β10β΅ (Table 3)", not just "we standardized".
- A. Strategies β missing values, outliers, categorical encoding (including a category that is new in the test set) and scaling, keeping in mind the destination is a neural network.
- B. Dimensionality reduction β three 2D projections of the scaled training features, colored by the target:
- PCA: cumulative explained variance and a reading of the loadings;
- t-SNE and UMAP: at least 2 values of
perplexity/n_neighborseach; on large datasets, use a sample; - compare: what do the nonlinear projections reveal that PCA does not? In t-SNE and UMAP, cluster sizes and the distances between clusters have no direct reading.
- C. Pipeline β
Pipeline+ColumnTransformerfitted on train only, in an importable file undercode/, reporting that noNaNis left, the finalshapeand the feature names.
Preprocessing Β· Distributions (PCA, t-SNE)
Pipeline skeleton
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
preprocess = ColumnTransformer([
("num", Pipeline([...]), numeric_features),
("cat", Pipeline([...]), categorical_features),
])
X_train_t = preprocess.fit_transform(X_train) # fit on train only
X_test_t = preprocess.transform(X_test) # test is only transformed
5. Synthesis
A short section, written for whoever will build the model: the main findings, each with the figure or table that supports it, and the risks for modeling with a handling plan. Close with the table below filled in β it is the index of the numbers the report has already computed.
| # | Results summary | Value |
|---|---|---|
| 1 | Dataset, task and target | |
| 2 | Instances Γ features (numerical / categorical) | |
| 3 | Column with the most missing values and its percentage | |
| 4 | Dropped columns and the reason | |
| 5 | Minority class (%) Β· or mean and median of the target | |
| 6 | Size of the training and test sets | |
| 7 | Most correlated numerical pair and its value | |
| 8 | Rows affected by the outlier strategy | |
| 9 | Variance explained by PC1 + PC2 | |
| 10 | shape of train and test after the pipeline |
Submission
- Report at
docs/projects/eda/index.md, in one team repository (given in the proposal), with headings in the order of this page β see Submission Format; - The deadline is not extended Β· plagiarism zeroes the deliverable Β· AI is allowed, but every member explains each number and each decision β oral exams may happen and the Project Evaluation caps the grade.
Report front matter
Rubric
Each item is scored in full, by half or zero: in full when it is complete and justified; half when the justification or the number supporting the analysis is missing; zero when missing or wrong. An approved proposal is a prerequisite β without it, the EDA is not graded.
| Item | Points | Full marks when |
|---|---|---|
| 1A. Data dictionary | 0.5 | Source, what each row is and meaning, type and unit of each feature. |
| 1B. Quality | 0.75 | Missing values as count and %, inconsistencies quantified, leakage columns investigated. |
| 1C. Target | 0.25 | Target distribution analyzed: imbalance or skewness. |
| 1D. Train and test | 0.5 | Fixed seed, stratified (or temporal) when appropriate, done before any preprocessing decision. |
| 2A. Numerical | 0.75 | Statistics for all numerical features and figures chosen with a justification and interpreted. |
| 2B. Categorical | 0.75 | Frequencies and cardinality for all, rare and high-cardinality categories pointed out. |
| 3A. Numerical Γ numerical | 0.75 | Correlation with a justified method and redundant pairs pointed out. |
| 3B. Categorical Γ target | 0.75 | Relation to the target shown and each figure with an explicit conclusion. |
| 3C. Numerical Γ categorical | 0.5 | Grouped boxplots interpreted in location and spread. |
| 4A. Strategies | 1.5 | All four strategies chosen, each tied to the finding that motivates it and fitted on train. |
| 4B. Dimensionality reduction | 1.0 | PCA with variance and loadings; t-SNE and UMAP with 2 parameter values each; comparison of the three. |
| 4C. Pipeline | 1.0 | Fitted on train only, importable, no NaN, shape and feature names reported. |
| 5. Synthesis | 1.0 | Findings backed by figures, risks with a plan, code that runs from a clean clone and a complete summary. |
| 10 |