ECPR

Install the app

Install this application on your home screen for quick and easy access when you’re on the go.

Just tap Share then “Add to Home Screen”

Applied Machine Learning in Python

Level

Level: Intermediate

Software

  • Python
  • Jupyter
New

Member rate £572.50
Non-Member rate £1,145.00

Early bird discount available until 14 December 2026.

Save £45.00 Loyalty discount applied automatically*
Save 5% on each additional course booked

* If you attended a qualifying previous Methods School in 2026, you qualify for £45.00 off your course fee.

Course Dates and Times

Date: Monday 15 – Friday 19 February 2027
Time: 09:30 – 12:30 CET

Igor Tkalec

i.tkalec@ucl.ac.uk

University College London

This interactive course uses advanced pedagogical tools and is designed for master's-level students and above. It runs as three-hour live sessions on Zoom over five days, with course materials and pre-course readings available on our Learning Management System at least two weeks before the start. Office hours are also available for one-to-one consultations on your own project.

The course is limited to 18 participants, ensuring that the teaching team can address the individual needs of each participant.

Purpose of the course

Applied Machine Learning in Python focuses on reasoning about, and an intuitive understanding of, machine learning modelling. The course introduces the conceptual fundamentals of machine learning and intuitively explains how selected algorithms learn from data.

You will learn how to build both supervised machine learning models used for prediction; and unsupervised models used for pattern discovery in data. You will also learn how to interpret the outputs of machine learning models and how to use such findings to build arguments in social science research. Each machine learning technique covered in the course will be applied and demonstrated in the Python software environment. The course assumes little or no familiarity with Python.

ECTS Credits

3 ECTS credits awarded for engaging fully in class activities.
1 additional ECTS credit awarded for completing a post-course assignment.


Instructor Bio

Igor Tkalec is Associate Professor (Teaching) in Social Data Science at UCL's Social Data Institute (SODA) with a background in political economy.

Prior to joining UCL, Igor was a research fellow at the European University Institute (EUI) working on the GlobalStat project. Pedagogy-wise, he focuses on data communication/storytelling and applied machine learning. At UCL, he leads the Data Storytelling for Digital Research Infrastructure project funded by UKRI-ESRC. Research-wise, Igor primarily studies EU economic governance with a specific focus on social/pension policy. He is currently writing a monograph on The Wicked Problem of Pensions in the EU and the Role of Pension Funds with Edinburgh University Press. 

Key topics covered

Building on the increased use and demonstrated utility of machine learning across the social sciences, Applied Machine Learning in Python focuses on developing an intuitive understanding of machine learning modelling. After introducing the main machine learning concepts, it explains and demonstrates three supervised (decision tree, random forest, support vector machines) and three unsupervised (hierarchical clustering, K-means clustering, principal component analysis) machine learning techniques.

Learning objectives:

  • Introduce the conceptual building blocks of machine learning
  • Develop practical skills in building supervised and unsupervised machine learning models
  • Introduce tools and practices for interpreting and evaluating machine learning models
  • Familiarise participants with the Python software environment, including the scikit-learn library

By the end of the course, you will be able to:

  • Intuitively explain selected machine learning techniques
  • Build machine learning models in Python (scikit-learn library)
  • Interpret machine learning modelling outputs
  • Apply machine learning techniques in social science research

The course is divided in five daily live sessions (three hours each). Each session consists of lecture in which the topic is presented and explained in an intuitive way, and a lab where the topic is demonstrated and applied in Python and where participants will have the opportunity to explore Python code, study examples and engage with exercises. The course covers the following (daily) topics:

Day 1: Machine learning concepts and overview of the Python software environment
Day 2: Supervised learning: tree-based models – decision tree and random forest
Day 3: Supervised learning: support vector machines (SVMs)
Day 4: Unsupervised learning: hierarchical and K-means clustering
Day 5: Unsupervised learning: principal component analysis (PCA)

There will be dedicated time for one-to-one consultations with the lecturer on Days 1, 3 and 5 (or more if needed) immediately after class. The logistics of this will be arranged 'on the go' depending on demand and the number of participants.

Day 1

Lecture: Machine learning concepts (two hours)
Recommended reading: Mitchell, T. (1997) Machine learning. New York: McGraw-Hill. [Chapter 1]
Optional reading: Tan, P.-N. et al. (2019a) Introduction to data mining. Second edition. New York: Pearson Education. [Chapter 2]

Lab: Brief overview of the Python software environment (one hour)

Day 2

Lecture: Supervised learning: tree-based models – decision tree and random forest (1.5 hours)
Recommended reading: Mitchell, T. (1997) Machine learning. New York: McGraw-Hill. [Chapter 3]
Optional reading (application of the technique): Zhao, J. and Li, W. (2023). A study on predicting students’ grades for ideological and political courses with decision tree generation rules. Journal of Computational Methods in Sciences and Engineering, 23(6), 3219–3228. https://doi.org/10.3233/JCM-226953

Lab: Application of tree-based models in Python (1.5 hours)

Day 3

Lecture: Supervised learning: support vector machines (SVMs) (1.5 hours)
Recommended reading: Geron, A. (2023a) Hands-on machine learning with Scikit-Learn, Keras and TensorFlow: concepts, tools, and techniques to build intelligent systems. Third edition. Sebastopol, CA: O’Reilly Media, Inc. [Chapter 5]
Optional reading (application of the technique): D’Orazio, V., Landis, S. T., Palmer, G. and Schrodt, P. (2014). Separating the wheat from the chaff: Applications of automated document classification using support vector machines. Political Analysis, 22(2), 224–242. https://doi.org/10.1093/pan/mpt030

Lab: Application of support vector machines (SVMs) in Python (1.5 hours)

Day 4

Lecture: Unsupervised learning: hierarchical and K-means clustering (1.5 hours)
Recommended reading: Kettenring, J.R. (2006) ‘The Practice of Cluster Analysis’, Journal of Classification, 23(1), pp. 3–30. Available at: https://doi.org/10.1007/s00357-006-0002-6
Optional reading (application of the technique): Abu Sharkh, M. and Gough, I. (2010). Global welfare regimes: A cluster analysis. Global Social Policy, 10(1), 27–58. https://doi.org/10.1177/1468018109355035

Lab: Application of clustering in Python (1.5 hours)

Day 5

Lecture: Unsupervised learning: principal component analysis (PCA) (1.5 hours)
Recommended reading: Geron, A. (2023a) Hands-on machine learning with Scikit-Learn, Keras and TensorFlow: concepts, tools, and techniques to build intelligent systems. Third edition. Sebastopol, CA: O’Reilly Media, Inc. [Chapter 8 section on PCA]
Optional reading (application of the technique): Doyle, D. and Elgie, R. (2016). Maximizing the reliability of cross-national measures of presidential power. British Journal of Political Science, 46(4), 731–741. https://doi.org/10.1017/S0007123414000465

Lab: Application of principal component analysis (PCA) in Python

Post-course assignment

A data science-machine learning project report (max. 2200 words, excluding reference list and any appendices.

Participants are expected to identify a social science research question (on a topic of their choice – topics do not need approval by the lecturer) and provide a data-based answer to it, primarily by applying machine learning technique(s).

The report should comprise:

  • an introduction (context around the question)
  • a literature discussion
  • a methodology section (with the emphasis on suitability of applying selected machine learning technique(s) to the question)
  • an interpretation of the modelling results
  • a discussion (implications, placement of findings within broader literature, limitations, etc.)
  • a conclusion (summary of the argument, suggestions for model improvements, further research)

In addition to the report, participants should submit Python code (a Jupyter notebook [.ipynb] or .py script file) and a clean (post-wrangling) data file. Clearly indicate where machine learning modelling code begins, as any data wrangling code is not of primary interest.

Prerequisite knowledge

It would be helpful if you are familiar with, or have some experience of:

  1. basic statistical concepts (eg variable types, descriptive analysis, correlation, etc.)
  2. basic bivariate and multiple linear regression analysis
  3. coding in any software environment (eg R, Python, Stata)

The above are not strict prerequisites, but will help participants get the most out of the one-week course.

Python (Jupyter Notebook) – open-source software – will be used throughout the course. You should ideally install and set up Python on your computer ahead of the course. Step-by-step installation instructions will be provided a week in advance. If you have any problems during installation or setup, you're welcome to email the instructor. If this happens, please copy and paste the exact error/issue into your email and add a screenshot.

Before the course

Approximately three hours in total:

  1. Reading: Breiman, L. (2001). Statistical Modeling: The Two Cultures (with comments and a rejoinder by the author). Statistical Science, 16(3), 199-231.
  2. Installation and setup of Python – detailed step-by-step instructions will be provided one week ahead of the course (on 8 February 2027)
  3. If you are unfamiliar with Python, any open access (up to one hour) tutorial on Python would be helpful. Options include Codecademy, DataCamp (note that you may need to register to access tutorials) and YouTube.

Learning commitment

The course includes three hours of live teaching each day for five days, alongside readings and other learning activities.

Once you have registered and paid, you will receive access to our Learning Management System (LMS) approximately two weeks before the course start date. Course materials, including pre-course readings, will be available here. Allow approximately 20 hours per week before the course to review the materials and complete readings and any pre-course tasks.

During the course week, you should allow approximately two to three hours per day for preparation and assignments, in addition to the live teaching sessions.

The course offers the opportunity to earn three ECTS credits. To earn a fourth credit, you will need to complete a post-course assignment involving approximately 25 hours of work.

Disclaimer

This course description may be subject to subsequent adaptations (e.g. taking into account new developments in the field, participant demands, group size, etc.). Registered participants will be informed at the time of change.

By registering for this course, you confirm that you possess the knowledge required to follow it. The instructor will not teach prerequisite items. If in doubt, please contact us before registering.