Assignment: Preparing AI-Ready Data for The Final Project¶
Objective¶
This assignment focuses on organizing, cleaning, and preparing data in a form suitable for machine learning. By the end of this task, you should have an organized repository that contains the raw data, cleaned data, annotated attributes, and exploratory analysis that prepares the data for use in machine learning models.
Structure of the Assignment¶
Project Repository Setup and Documentation
- Task: Create a public GitHub repository for the group project.
- Requirements:
- A clear and concise
README.mdfile that explains:- The data source(s).
- Project objectives. There, we should describe the rational of the project.
- Instructions for setting up the environment (dependencies, packages).
- High-level description of each script/notebook.
- Structure your repository using the MLGEO guidelines .
- A clear and concise
Data Download and Raw Data Organization
- Task: Download the raw geoscientific dataset relevant to your project and discuss the basic modalities.
- Requirements:
- Include a script or notebook (
scripts/download_data.pyornotebooks/Download_Data.ipynb) that downloads and verifies the dataset. - Ensure that the raw data is stored in a dedicated folder (
data/raw/). - If applicable, document any API keys or access credentials required to obtain the data in the
README.md. - Describe the data modalities, data formats
- If applicable, describe large data archives that can be used for model inference, their size.
- Include a script or notebook (
Basic Data Cleaning and Manipulation
- Task: Clean the raw data to handle missing values, outliers, or inconsistencies.
- Requirements:
- Write a script/notebook (
scripts/clean_data.pyornotebooks/Data_Cleaning.ipynb) that:- Handles missing values (e.g., imputation, removal).
- Corrects or removes outliers.
- Ensures data consistency (e.g., uniform date formatting, unit conversions).
- Saves cleaned data in a new folder (
data/clean/).
- Write a script/notebook (
Organizing Data into AI-Ready Format
- Task: Prepare the cleaned data for machine learning, ensuring it is properly annotated and structured. This milestone is graded against the checklist in lesson 2.13.
- Requirements:
- Convert your data into a format suitable for ML (e.g., pandas DataFrame, NumPy arrays, Xarray).
- Be very specific and state what is 1) data sample/instances, 2) what is input data (raw data or its feature), and 3) what is the target data. By identifying this early, it will set clear goals for the analysis. Note that choosing a “target data” probably means that the problem (e.g., regression, classification, etc) is already posed.
- Write a data card (
data/ai_ready/data_card.yml), following the template in lesson 2.13: name, version, description, provenance (including any synthetic or augmented data, disclosed), license, citation, sampling, variables with units and dtypes, missing-data policy, class/event inventory, and split definitions. - Ship benchmark splits with the data: store train/validation/test membership as a column or an index file in
data/ai_ready/, and justify the split design against the correlation structure of your data (time, space, or event grouping — random splits of autocorrelated data will be marked down; see lesson 2.13, section 7). - Ensure the data is well-documented with attributes, labels, and metadata.
- Include a notebook (
notebooks/Prepare_AI_Ready_Data.ipynb) that clearly describes:- The final shape of the data (number of samples, features, and target labels).
- A description of each feature/attribute per data sample, what its physical meaning is, and write out the original dimensionality of the data based on the number of features.
- A demonstration that preprocessing statistics (scalers, imputers, PCA bases) are fit on the training split only.
- Save the final AI-ready data in a dedicated folder (
data/ai_ready/).
Exploratory Data Analysis (EDA)
- Task: Perform a basic exploration of the cleaned data to understand its structure and key characteristics.
- Requirements:
- Create a notebook (
notebooks/EDA.ipynb) that includes:- Basic summary statistics of the dataset (mean, variance, min, max, etc.).
- Visualization of feature distributions (histograms, box plots, etc.).
- Correlation analysis between different features and target variables (correlation matrix, heatmaps).
- Brief discussion on any patterns or insights observed during the analysis.
- Create a notebook (
Dimensionality Discussion and Reduction
- Task: Analyze the dimensionality of your dataset and propose methods to reduce it.
- Requirements:
- In a notebook (
notebooks/Dimensionality_Reduction.ipynb):- Discuss the current dimensions of the dataset and any challenges they present (e.g., high dimensionality, sparse data).
- Propose and implement at least two dimensionality reduction techniques:
- Feature extraction techniques like PCA (Principal Component Analysis).
- A non-linear method: t-SNE (t-Distributed Stochastic Neighbor Embedding), as taught in lesson 2.12. UMAP is optional — it is not installed in the course environment, so if you use it, add it to your project’s own environment and document it.
- Visualize the results of dimensionality reduction (scatter plots, explained variance charts).
- Discuss the implications of dimensionality reduction on your dataset.
- In a notebook (
Deliverables¶
- A GitHub repository with the following structure:
- data/ - raw/ - clean/ - ai_ready/ - scripts/ - download_data.py - clean_data.py - notebooks/ - Download_Data.ipynb - Data_Cleaning.ipynb - Prepare_AI_Ready_Data.ipynb - EDA.ipynb - Dimensionality_Reduction.ipynb - README.md - Ensure all the scripts and notebooks are well-documented, with comments explaining the code.
- The
data/ai_ready/folder must contain the data card (data_card.yml) and the stored benchmark splits (lesson 2.13 checklist). - Include an AI-use disclosure in the
README.md: which AI tools were used, for what (code, text, review), and what was verified by a human. - Submit a link to your GitHub repository as your final assignment and mark the version of the repository at the time of submission.
Grading Criteria¶
- Repository Organization (10%): Clean structure with appropriate directories, well-documented
README.md, AI-use disclosure present. - Data Download and Cleaning (15%): Script functionality, handling missing/outlier data, clean data format.
- AI-Ready Data Preparation (25%): The lesson 2.13 checklist — data card completeness (provenance, license, units, missing-data policy, class/event inventory), benchmark splits shipped with the data and justified against the data’s correlation structure, leakage controls, format suitability for ML.
- Exploratory Data Analysis (20%): Quality of statistical analysis, insights, and visualizations.
- Dimensionality Reduction (20%): Quality of analysis, use of techniques, and discussion on dimensionality challenges.
- Documentation and Code Clarity (10%): Clear explanations and code readability.
Required Self Evaluation: Agentic AI Review, Plus Your Critique of It¶
Do not paste your repository URL into a chatbot and call it a review. Instead:
Run an agentic AI review of the repository. Use an agent that can actually read the files (e.g., Claude Code, GitHub Copilot Workspace, or a similar tool run inside a clone of your repository). Instruct it to grade the repository against the full grading rubric above, section by section, citing specific files and lines as evidence, and to check the lesson 2.13 checklist items explicitly (data card fields, stored splits, leakage controls). Save the agent’s full report.
Write a half-page critique of the AI’s assessment. Identify at least one concrete error, omission, or unjustified claim in the AI’s report — a file it misread, a checklist item it marked satisfied that is not, a split-design problem it missed, or credit it gave for something that does not exist. If you believe the report is entirely correct, you have not read it carefully enough; agentic reviews of real repositories reliably contain at least one mistake.
Submit both to Canvas: the AI’s report and your critique. The critique is the graded part — it shows you can supervise an AI reviewer rather than defer to it.