What is the course about?
In this course, you will choose one out of three projects. The projects are as follows:
1. Natural language processing and time series:
This project will use historical data and natural language processing for news articles to predict stock prices. You will learn basic web scraping and time series analysis. You will not be expected to know anything about the stock market, and you will be introduced to some relevant fundamentals. Please note that this project is not a promise that you will create a result that you could make money off. Exactly what you want to predict will also be left up to you.
2. Large data sets:
In this project, you will explore health data from around the world. We will be using data that is on the order of a few hundred megabytes to a few gigabytes. The challenge lies in the hundreds to thousands of rows and columns you will have to use. The project will focus on feature engineering, dimensionality reduction, visualisation, and making use of external data. You will choose what you find interesting within the given data to focus on.
3. Image processing:
This project will be split into two parts. First, you will learn how to create an image classifier using convoluted neural nets. You will learn how to use transfer learning to make use of pre-trained neural nets. Various methods of image pre-processing will be explored, and you will discover how to optimize deep neural net architecture. Once the classifier has been completed, you will get to choose another imaging processing project. This will either be a style transfer project – i.e. transferring the style of one image onto another, or a generative adversarial neural net (GNN) project to generate new images, or object detection. Expect most of the time to be spent in the first project.
You will not be expected to choose a project before the course starts. In the first session, you will be briefed on each project.
This is a live online course. You will need:
- Internet connection. The classes work best with Chrome.
- A computer with microphone and camera.
We will contact you with joining instructions before your course starts.
What will we cover?
Even though you choose a project to focus on, you will also learn from the other projects. We will discuss the projects together, and you’ll see presentations from each of the projects. The projects will cover the following;
• Natural language processing and time series:
Basic web scraping. Natural language processing methods like sentiment analysis, word to vec, bagging. Time series methods like rolling averages, seasonality, smoothing.
• Large data sets:
How to clean big data, visualising big data, dimensionality reduction, selecting and comparing ML models.
• Image processing:
Pre-processing images, transfer learning (i.e implementing already trained neural nets), generative adversarial neural nets (GANs), convolutional neural nets (CNNs).
What will I achieve?
By the end of this course you should be able to...
• Use Python to pre-process data
• Use Python to implement and compare several machine learning methods
• Use Python to visualise data and use several methods to optimise models
• Compare different machine learning approaches
• Think critically about machine learning models
• Structure code in a coherent manner
• Plan and create a pipeline for a real-world machine learning project
• Use github repositories for your project
• Implement popular machine learning methods specific to your project
• Become comfortable using external resources and re-purposing code to develop your projects.
What level is the course and do I need any particular skills?
You need to be able to program comfortably in Python. You must be familiar with fundamentals of machine learning, and preferably be able to implement these in Python. I.e. you should be able to roughly explain methods like Linear or Logistic regression, Random Forest, Boosted Decision Tree, and Neural Net. Familiarity with Pandas in Python is required. Experience with Scikit Learn or Keras (or similar neural net package) is recommended.
How will I be taught, and will there be any work outside the class?
The sessions will usually be split into around 30-45 minutes theory, and the rest will be spent programming. The format of the programming sessions will vary, e.g. Q&A, or as group work, or other. Note that not all the theory will be directly relevant to the project you have chosen, but rather aims to expose you to a variety of ML methods. Just like a real-world project, there will be no right answer. You will use data exploration to form your own hypothesis and take the project in a direction that you find interesting.
There will be a starting pack for each project with external resources. There will also be a code notebook written by your tutor, to help you get started, and to give you ideas about the expected milestones of each project. You will get support both from your tutor, and from the other people working on the same project as you. It is expected that you work on the project outside class. With this in mind, the course goes over many weeks so that you are free to allocate this time as it best suits you.
If you attended the City Lit Introduction to Machine Learning course, you can expect this course to have more programming. It will be like the Titanic project at the end of the City Lit Introduction to Machine Learning course, but much deeper, more advanced, and more guided.
Are there any other costs? Is there anything I need to bring?
We will use Google Colab, which is a free cloud service, so you will not need to install anything. It is recommended that you have a few gigabytes free memory on your laptop/PC or on a memory stick to download the data sets we will need. You will need a stable internet connection to access and work with Google Colab.
When I've finished, what course can I do next?
You might be interested in the fplloing courses:Data analytics with Python: introduction, Data analytics with Python intermediate: analysing and visualising data, Data analytics with Python intermediate: importing and cleaning data, Advanced Python.