95-865: Unstructured Data Analytics
(Fall 2026 Mini 2)

Unstructured Data Analytics

Lectures:
Note that the current plan is for Section B2 to be recorded.

There is also a Z2 section that is only for Heinz students in a part-time distance learning degree program, which follows a different format of the course but uses recordings of lectures and recitations (the Z2 section is not open to on-campus full-time CMU students).

Recitations (shared across sections A2 & B2): Fridays 2pm-3:20pm, HBH A301

Instructor: George Chen (email: georgechen ♣ cmu.edu) ‐ replace "♣" with the "at" symbol

Teaching assistants (listed here alphabetically by last name):

Office hours (starting second week of class): Check the course Canvas homepage for the office hour times and locations.

Contact: Please use Piazza (follow the link to it within Canvas) and, whenever possible, post so that everyone can see (if you have a question, chances are other people can benefit from the answer as well!).

Course Description

Companies, governments, and other organizations now collect massive amounts of data such as text, images, audio, and video. How do we turn this heterogeneous mess of data into actionable insights? A common problem is that we often do not know what structure underlies the data ahead of time, hence the data often being referred to as "unstructured". This course takes a practical approach to unstructured data analysis via a two-step approach:

  1. We first examine how to identify possible structure present in the data via visualization and other exploratory methods.
  2. Once we have clues for what structure is present in the data, we turn toward exploiting this structure to make predictions.
Many examples are given for how these methods help solve real problems faced by organizations. Along the way, we encounter many of the most popular methods in analyzing unstructured data, from modern classics in manifold learning, clustering, and topic modeling to some of the latest developments in deep neural networks for analyzing text, images, and time series.

We will be coding lots of Python and dabble a bit with GPU computing (Google Colab).

Note regarding GenAI (including large language models): As likely all of you are aware, there are now technologies like (Chat)GPT, Gemini, Claude, Llama, DeepSeek, etc which will all be getting better over time. If you use any of these in your homework, please cite them. For the purposes of the class, I will view these as external collaborators (no different than if you got help from a human friend). For exams, I want to make sure that you actually understand the material and are not just telling me what someone else (human or not) knows. This is important so that in the future, if you get help from an AI assistant (or a human) to aid you in your unstructured data analysis, you have enough background knowledge to check for yourself whether you think the AI (or human) is giving you a solution that is correct or not. For this reason, exams in this class will explicitly not allow electronics. In particular, exams will be assessing whether you as a human have learned the course material.

Prerequisite: If you are a Heinz student, then you must have taken 95-888 "Data-Focused Python" or 90-819 "Intermediate Programming with Python". If you are not a Heinz student and would like to take the course, please contact the instructor and clearly state what Python courses you have taken/what Python experience you have.

Helpful but not required: Math at the level of calculus and linear algebra may help you appreciate some of the material more

Grading: Homework (30%), Quiz 1 (35%), Quiz 2 (35%)

Letter grades are determined based on a curve.

Calendar for Sections A2/B2 (tentative)

Previous version of course (including lecture slides and demos): 95-865 Spring 2026 mini 4

Date Topic Supplemental Materials
Part I. Exploratory data analysis
Week 1
Mon Oct 19 Lecture 1: Course overview
[slides]

Wed Oct 21 Lecture 2: Basic text analysis (requires Anaconda Python 3 & spaCy)
[lecture slides]
[slides on how to install Anaconda Python 3 and spaCy (needed for HW1 and lecture demos)]
Note: Anaconda Python 3 includes support for Jupyter notebooks, which we use extensively in this class
[Jupyter notebook (basic text analysis)]
Fri Oct 23 Recitation: Wrap up basic text analytics, Python review
Week 2
Mon Oct 26 Lecture 3: Co-occurrence analysis
Wed Oct 28 Lecture 4: Visualizing high-dimensional data with PCA
Fri Oct 30 Recitation: Lecture 5 — Manifold learning
Week 3
Mon Nov 2 HW1 due 11:59pm

Lecture 6: Manifold learning (cont'd)
Wed Nov 4 Lecture 7: Clustering
Fri Nov 6 Recitation: More on dimensionality reduction
Week 4
Mon Nov 9 Lecture 8: Clustering (cont'd)
Wed Nov 11 Lecture 9: Clustering (cont'd), TF-IDF representation, topic modeling
Fri Nov 13 Quiz 1 (80-minute exam) — material coverage is everything up to & including the coverage in the Fri Nov 6 recitation (i.e., everything up to and including Week 3's coverage)
Week 5
Part II. Predictive data analysis
Mon Nov 16 Lecture 10: Introduction to prediction
Wed Nov 18 Lecture 11: Intro to neural nets and deep learning
Fri Nov 20 Recitation: Lecture 12 — Image analysis with convolutional neural nets
Week 6
Mon Nov 23 HW2 due 11:59pm

Lecture 13: Time series analysis with recurrent neural nets (RNNs)
Wed Nov 25 and Fri Nov 27 No class (Thanksgiving holiday)
🦃
Week 7
Mon Nov 30 Lecture 14: Wrap up RNNs; glimpse of word embeddings; start coverage on text generation
Wed Dec 2 Lecture 15: Text generation with generative pretrained transformers; course wrap-up
Fri Dec 4 Recitation: TBD
Final exam week
Mon Dec 7 HW3 due 11:59pm
Fri Dec 11, 1pm-2:20pm — location TBA Quiz 2 (note: 80 minutes long just like Quiz 1; not a 3 hour exam)

Quiz 2 focuses on material from Week 4 and onwards (note that by how the course is set up, material from Week 4 onwards naturally at times relates to material from Weeks 1–3, so some ideas in these earlier lectures could still possibly show up on Quiz 2—please focus your studying on material from Week 4 onwards)