Chemical Education

Machine learning for functional group identification in vibrational spectroscopy: A pedagogical lab for undergraduate chemistry students



Here we report a computational activity that introduces undergraduate physical chemistry students to machine learning (ML) in the context of vibrational spectroscopy. In the first part of the activity, students use ML binary classification algorithms to distinguish between carbonyl-containing and non-carbonyl-containing molecules on the basis of their infrared absorption spectra and test modifications to this basic analysis. In a further extension of the activity, students implement a multiclass classification to predict whether carbonyl-containing molecules contain a ketone, a carboxylic acid, or another carbonyl group. This activity is designed to introduce students both to the basic workflow of a ML classification analysis and to some of the ways in which machine learning analyses can fail. We provide a comprehensive handout for the activity, including theoretical background and a detailed protocol, as well as datasets and code to implement the exercise in Python or Mathematica.


Thumbnail image of maintext.pdf

Supplementary material

Thumbnail image of supportinginformation.pdf
Supporting information
Supporting information including supplementary methods and results
Thumbnail image of studenthandoutandprotocol.pdf
Student handout and protocol
Student handout containing background information, an example protocol, and discussion questions

Supplementary weblinks

GitHub repository
GitHub repository containing the latest versions of the notebooks and student handout