Fundamentals of Data Science
MPhil in Economics and Data Science · Faculty of Economics · University of Cambridge
Michaelmas Term 2024
Lecturers
- Dr. Adrian Ochs (acro2@cam.ac.uk)
- Dr. Christian Rörig (cmr61@cam.ac.uk)
Format
- 9 lectures (2 hours each)
- 5 classes (2 hours each)
TA: Dr. Niklas Schmitz
Description
This course introduces students to the fundamental concepts, techniques, and tools in data science. With a focus on end-to-end data science projects, the course is designed to equip students with the skills necessary for successful interviews and careers in the field. Students will learn to tackle real-world data problems, covering the entire spectrum from data acquisition and preprocessing to analysis, visualisation, statistical modelling, and considerations for moving models to production. As part of this course, students will also be equipped with valuable software engineering skills.
Course Outline
-
1. Lifecycle of a data science project
- • Introduction to typical stages of a data science project
-
2. Project setup phase
- • Initial project scoping and trade-offs
- • Setting up a data science repository
- • Setup of pre-commit hooks, environment.yaml, .gitignore, etc.
-
3. Data wrangling and exploration
- • Hands-on data exploration sessions using Python's pandas and polars libraries
- • Coping with messy real-world data (e.g. missing values, outliers)
-
4. Data retrieval and storage
- • Data types and formats
- • Loading data files (e.g., CSV, Parquet)
- • Working with SQL databases
-
5. Data visualisation
- • Best practices for effective visualisations
- • Utilising libraries such as matplotlib, seaborn, plotly, and altair
-
6. Feature engineering
- • Feature engineering for numeric and categorical features
- • Dimension reduction techniques
- • FE pipelines using scikit-learn
-
7. Statistical modelling
- • Modeling strategy
- • Cross-Validation
- • Feature selection
- • Hyperparameter tuning
- • Advanced modeling techniques (e.g. model composition, custom loss function)
-
8. Model evaluation and interpretability
- • Evaluation metrics
- • Interpreting models using model-agnostic methods
-
9. Model tracking and reproducibility
- • Using MLflow for experiment tracking
- • Model conversion to ONNX format
Course Aims
- • Be prepared for most data science internships/jobs, including completing end-to-end coding challenges.
- • Start your own coding projects and write your own package, developing a portfolio on GitHub.
- • Implement and review good coding practices.
- • Become familiar with core data science Python libraries (pandas, scikit-learn, etc.).
- • Learn to collaborate on a common code base using Git and GitHub.
Computing Environment
Assessment
The course culminates in a final data science project, evaluating:
- • Project structure and organization
- • Code quality
- • Data analysis methodology and approach
- • A concise project report including visualization and presentation of results