‘Sheld-on’ Massive Open Online Courses
Indoor living space improvement: Smart Habitat for the Elderly
The Sheldon MOOC Platform is already Available!
Due to the impossibility for the Sheldon members to arrange most of the networking activities during the period impacted by the COVID-19, the Management Committee of the Sheldon COST Action CA16226 agreed to support the launch of a MOOC (Massive Open Online Courses) platform that would work as a repository of educational content related to Sheldon objectives whether developed under the frame of the Sheldon Actions or under other means.
The Sheldon MOOC structure includes aggregated knowledge and learning materials for key topics related to Sheldon, primarily to Ambient Assisted Living. The materials are approved by the MOOC teams including content for areas of expertise relevant for the Action:
– Introduction to Ambient Assisted Living – AAL
– Ethical and usability aspects.
– Furniture and habitats from different disciplines: Health care, Psychology, Ergonomics, Construction, etc., and from the users: elderly, caregivers, etc.
– Innovative ICT solutions that will be integrated into Smart Support Furniture and habitat environments.
– Healthcare domain, Home Care Domain System, Smart Home, Health Monitoring and Assistance,
– Electrical engineering, electronic engineering, Information engineering: Sensors and sensor systems
– Mechanical engineering: Product design, ergonomics, mechanical engineering aspects of man-machine interfaces
– Assistive technologies. Overview on the state of the art. Challenges and perspectives.
– Selected Topics (User interfaces for older people, ADL recognition and smart home technologies, introduction to locomotion analysis)
– Aspects of the user centred design approach
Explainable Artificial Intelligence in Ambient Assisted Living
The main goal of this course is to introduce students to techniques that can be used to explain Artificial Intelligence models, with a specific focus on their application on models that analyze and classify data from AAL systems. It also aims to demonstrate the Python tools and libraries that can make this application easier and available to a wide variety of machine learning models.
Students taking this course are expected to be familiar with the basic working of machine learning models, including decision trees, random forests, logistic regression, linear and neural network regression and neural network classification.
After completing this course students will be able to understand some of the most widely used techniques in explainable AI, such as SHAP and LIME and know how to use Python to apply them to various machine learning models with different types of input data. Students will know how to understand the explanations given by the tools they’re using and what avenues they have to further improve the model based on them.
Topics covered in this course include the SHAP explainer and how it can be used to explain classification algorithms applied to tabular and image data, LIME and its usage in the explanation of classification of tabular data and Partial Dependence Plots for the explanation of classification and regression algorithms.
The tools that will be used in this course include the shap and lime Python libraries that contain a multitude of explainers for all machine learning and artificial intelligence models and visualizers for those explanations that can differ and are adapted to the type of input data used. Scikit-learn is used to compute the values for the Partial Dependence Plots and matplotlib is used to help visualize them.
These tools, along with the understanding of the working of the explanation techniques and the meaning of their output should equip students with the knowledge they need to both use their knowledge to improve their machine learning models and to extract new knowledge from these models using explainable AI.
Lecture 1: Explainable AI
This video serves as an introduction to explainable AI. It introduces the concept, the problems that arise when using black box models, the necessity for explanation and the advantages of using it.
Lecture 2: SHAP Values
This video introduces the concept of SHAP values. It explains what they mean and gives a step-by-step example of how they are calculated.
Lecture 3: SHAP Example 1
This video introduces the shap Python library and shows the first example of using SHAP values to explain tabular data.
Lecture 4: SHAP Example 2
This video shows how to explain tabular data, applied to an AAL dataset, using the shap Python library.
Lecture 5: SHAP Example 3
This is the third example showing the use of the shap Python library. In this video, the explanation of the classification of image data is shown
Lecture 6: SHAP Example 4
This video shows how to use the shap Python library to explain the classification made by a neural network classifier on tabular AAL data.
Lecture 7: LIME for Explainable AI
This video introduces the LIME explainer. It shows the working of the technique and what its explanations mean.
Lecture 8: LIME example 1
This video introduces the LIME Python library and shows the first example of using LIME to explain tabular data.
Lecture 9: LIME Example 2
This video shows how to use the SHAP Python library to explain the classification made by a random forest classifier on tabular AAL data
Lecture 10: Partial Dependence Plots and Individual Conditional
This video introduces the concept of Partial Dependence Plots and Individual Conditional Expectation curves. It explains their meaning, differences, and how they can be used to understand and explain various machine learning models.
Lecture 11: PDP and ICE Example 1
This video shows how scikit-learn can be used to compute the values needed for the PDP and ICE for a neural network regression model and how matplotlib can be used to visualize these plots and curves.
Lecture 12: PDP and ICE Example 2
This video shows another example of how PDP and ICE curves can be computed and visualized using scikit-learn and matplotlib, this time for a logistic regression model applied to an AAL dataset.
Lecture 13: PDP and ICE Example 3
This video shows how the PDP of two features can be computer and visualized.
Datasets and Pre-Processing in AAL
The main goal of this course is to introduce students to some of the most important and widely used preprocessing techniques, as well as the tools they can use to apply them to AAL datasets.
After completing this course, students will be able to clean up a given dataset and prepare it for further processing and analysis with other machine learning algorithms.
Students will be able to deal with missing, inconsistent and noisy data. They will learn how to encode categorical data and they’ll be introduced to feature selection and dimensionality reduction techniques.
The course also aims to provide an introduction to pandas and scikit-learn as tools that can be used to preprocess data using Python. The completion of this course should enable students to use these tools effectively to solve data quality issues and to make other necessary adjustments to a dataset of tabular data.
Topics covered in this course include opening a dataset in Python using pandas, dealing with missing data by removing the affected rows or filling in the missing value with an estimated one, dealing with outliers, using scikit-learn to encode categorical data as a number and to reduce the size of the dataset and its features, as well as to scale the data and make it more suitable for use in machine learning applications.
Lecture 1: Introduction to Ambient Assisted Living (AAL) – Sheldon
In this video, the basic concepts of AAL are introduced. An overview of the types of data that can be collected for AAL systems, as well as their sources and applications is also given
Lecture 2: AAL Datasets
This video introduces the datasets that will be used throughout the course. It shows how to read in a dataset using pandas and introduces the content and features of the used datasets.
Lecture 3: Handling missing data
In this video, the problem of missing data is shown, as well as techniques and tools that can be used to handle it. It shows how to remove samples with missing data or replace the missing values with an estimate using pandas and scikit-learn.
Lecture 4: Handling Outliers
This video deals with the problem of outliers and how to handle them.
Lecture 5: Encoding categorical data
This video shows two ways to encode categorical (non-numeric) data using scikit-learn and why it is necessary.
Lecture 6: Normalization
In this video an example of the problems that arise with some machine learning algorithms when using non-standard, normally distributed data is given. It also provides a solution to this by scaling the data using scikit-learn.
Lecture 7: Feature selection
This video shows how to select only some of the features in a large dataset when not all of them are needed.
Lecture 8: Dimensionality reduction
This video shows another way of lowering the complexity of a dataset, again using scikit-learn.
Lecture 9: Sampling
This video shows how to randomly select only some of the rows of a dataset.
Introduction to Python
This Course …
Lecture 1: Introduction to Python IDEs
Why we use Python as programme language?
Lecture 2: Expressions in Python
Introduction about Expressions in Python
Lecture 3: Python in Built Functions
Advantages of using funtions when programming in Python
Lecture 4: Control Flow
Lecture 5: Python Data Structures
This lecture explains the main data structures in Python: «list», «tuple», «dict» and «sect».
Lecture 6: Python errors and exception handling
Video about how errors and exception in Python can be managed.
Lecture 7: Numpy and Panda
Lecture about the most used packages in Python: Numpy and Panda
Lecture 8: Python Sequences
Sequences in Python when a list in Python is being implemented.
Lecture 9: Python Excersices 1
Set of videos where some programming problems are solved
Lecture 10: Python excersises 2
Set of videos where some programming problems are solved: This excersise allows to check if a number is a palindrome
Lecture 11: Python Exercises 3
Example for how to plot partial dependence plugs in individual conditional expectations curves in Python.
Lecture 12: Python excersises 4
How to write a program that prints the 1st ten numbers in descending order from the interval from 0-n that contains the digit m k times.
Lecture 13: Exercises 5
A number n is read from standard input. After that N lists of numbers are read as well.
For each of the read lists, print the percentaje of equal mirror lists int he list.
For mirror elements in a list are considered the first and the last, the second and the second to the last, the third and the third to the last, etc.
If the list has odd unmber of elemetns, the middle is considered for minor numbers as well.
Lecture 14: Exercise 6
Print the relative frequencies of all the characters found in the file text.txt. Ignore the case of the4 characters that are letters.
Lecture 15: Exercise 7
In the file «words.txt» there is a list of words (each of them in a new line). Write all the groups of anagrams that have 5 or more than 5 words.
Two words are considered for anagrams if they contain the same letters.
The groups should be prented in new line. The words in the groups should be sorted lexicographically in ascending order.
The order of the printing of the groups shoud be the same to dthe order of the words in the file.