This organization holds the course projects of ADSP 32014 in the Master of Science in Applied Data Science at the University of Chicago.
In teams of three or four, students pose a question where quantifying uncertainty matters, choose a dataset, and answer it with a Bayesian method from the course: Bayesian networks, changepoint detection, hidden Markov models, Monte Carlo methods, variational inference and the generative models built on it, or Bayesian neural networks. Each team keeps its work in a repository here and presents it at the end of the quarter.
Selected projects from earlier quarters, shown with the authors' work and commit history intact. Course staff tidied each one and noted their changes in its README. Browse them all under the topic example-project.
|
|
Conditional Variational Autoencoders for Age Transformation in Facial Imagery Winter 2025 · Bradley Stoller, Cassandra Maldonado, John Melel, Kyler Rosen A conditional VAE trained on 55,000 labeled faces ages or de-ages a photo while keeping the person recognizable. Most of the work went into bringing new photos into the training distribution: eye alignment, background masking, and brightness and histogram matching. |
|
|
Book Recommendation System Using Bayesian Machine Learning Winter 2025 · Daniel Sa, Samuel Fisher, Hyunji Kim, Jazil Kalim A hierarchical Poisson matrix factorization in PyMC, fit with NUTS and with ADVI, whose posterior samples drive an uncertainty-aware ranking rule, behind a Streamlit app. Shown with a staff section on what to learn from it, including a subsampling mistake that is easy to make. |
|
|
Fine-Tuning SDXL with LoRA for Conan Image Generation Winter 2025 · Yifei Wang, Xinyi Jiang, Ke Wang, Maxine Wu Stable Diffusion XL taught the drawing style of one anime series with a 60 MB low-rank adapter, a tuning log with reasons, an FID comparison, and a hand-written derivation of the DDPM objective. Shown with a staff section on crediting borrowed pieces and reporting metrics properly. |
|
|
Bayesian and Neural Approaches for Chord Generation in Pop Music Autumn 2025 · Michelle Peng, Luna Lu, Wen Yao Chord progressions in 909 pop songs, predicted with Markov chains over absolute and functional chords, a Bayesian HMM with a key-aware prior fit by Gibbs sampling, and a duration-modeling variant, all generating playable MIDI, next to an LSTM that writes piano accompaniment from a melody. |
|
|
Bayesian Kinematic Models of NFL Player Movement Autumn 2025 · Mitch Verhelle, Richard Huang, Claire Fenton Constant-acceleration physics as the mean, learned noise around it in PyMC, position-group hierarchies for the spread, and a Bayesian logistic regression for pass completion, with posterior predictive cones and heatmaps animated on the field. Shown with a staff section on reporting evidence for every model compared. |
|
|
Industrial Biscuit Defect Detection Spring 2025 · Rithik Alluri, Alex Lee, Zimeng Huang, Manas Vemuri Four generative models trained only on good biscuits, an autoencoder, a VAE, a DCGAN with latent optimization and a Vision Transformer VAE, flag defects by reconstruction error, and the VAE's latent space separates harmless misshapen biscuits from dangerous ones. Shown with a staff section on crediting borrowed code and reporting the numbers the code produced. |
|
|
Personalized Music Recommendation with Bayesian Matrix Factorization Spring 2025 · Peyton Nash, Apoorva Gupta, Zoe Calianos, Kirthi Rao Hierarchical Bayesian matrix factorization of Last.fm play counts in PyMC, fit with variational inference after NUTS proved too slow for the full data, with a clear account of what ADVI buys and costs. Shown with a staff section on using the posterior you computed and measuring recommendations, not just regression error. |
|
|
RealSight: Probabilistic Deepfake Detection Spring 2025 · Suyog Mahale, Zeel Patel A pipeline from a YouTube URL to a forensic report: frame suspicion from a deepfake detector with Monte Carlo dropout, lip motion tracked against Whisper's word timestamps, BERT perplexity of the transcript, and a PyMC fusion with a credible interval. Shown as the authors' slides, because the code is private while they develop it further. |
|
|
Bayes' Beats: Music from the Mood of an Image Spring 2025 · Ariel Azria, Gabe Barrett, Kwaku Ofori-Atta, Danielle Rosenthal ACE-Step, an open text-to-music diffusion model, fine-tuned with LoRA on 200 five-second Jamendo clips, behind a small site where a picture picks a tune. A generative AI project shown for its engineering and its candor: the variational layer the team planned was not built, and the staff section says what else the write-up promises that the code does not do. |
|
|
Conversation Analysis: What Makes a Chatbot Win a Human Preference Vote Autumn 2025 · Yusen Wu, Yifei Zhou A Bayesian logistic regression in PyMC on 23,294 Chatbot Arena battles, with each side's provenance, length, LLM-read formatting flags and prompt topic entered as differences, so the intercept is position bias, plus a topic-interaction model the authors flag as overfit. Shown with a staff section on partial pooling, model identity as the missing term, and validating features you got from an LLM. |
|
|
NSF Grant Data Analysis: Did the Language of Funded Research Change in 2025? Autumn 2025 · Riley Morrison, Evan Fantozzi, Teddy Kolios On 82,000 NSF award abstracts from 2019 to 2025: LDA topics per division with hand-written labels, an index of flagged words, a PyMC changepoint model on the yearly drift of abstract embeddings, and a Bayesian regression of which awards were terminated. Shown with a staff section on baselines that contain their own test year, priors on the wrong scale, and reading a changepoint posterior that sits on the boundary. |
|
|
New Sneaker Designs from Existing Design Data Winter 2026 · Ethan Wang, Steven Si, Wenbo Zhao, Diana Chen, Justin Yang A β-VAE with 16 latent dimensions trained on 12,856 UT Zappos50K sneaker photos at 64 × 64, with KL annealing, eight latent-space diagnostics and a slider-driven designer in a notebook and a small web page. Shown with a staff section on reporting what a figure shows rather than what you hoped, calibrating β to the scale of the loss, and measuring an improvement on held-out data. |
|
|
Bayesian Modeling of Sepsis Progression in ICU Patients Winter 2026 · Ryan Abdelrahim, Collin Kim, Yuta Kobayashi, Hoon Yum, Nick Thompson Two hidden Markov models of sepsis severity on 1,502 MIMIC-IV ICU stays: an hmmlearn baseline, and a Bayesian HMM in PyMC with a hand-written forward algorithm, treatment-dependent transitions and ADVI, driving a decision-support layer that compares treatments and delays. Shown with a staff section on a treatment effect built into the state definition, counterfactuals outside the data, in-sample validation, and state posteriors that are never uncertain. |
|
|
Bayesian Trajectory Prediction for Autonomous Driving Safety Winter 2026 · Amulya Rayasam, Haiyang Hu, Ian Kidwell, Khadija Shuaib, Nikhil Sharma An encoder-decoder LSTM on the ETH/UCY pedestrian benchmark, made Bayesian two ways: MC dropout averaged over 50 passes, and a Pyro variational posterior over the output layer, with a notebook that turns the spread of predicted paths into proceed, slow or yield decisions. Shown with a staff section on a variational model whose LSTM never trained, a test evaluation that never ran, and trajectory plots drawn in the wrong coordinates. |
|
|
Deepfake Detection with Bayesian Uncertainty Quantification Winter 2026 · Anais Morales, Estella Hu, Gaoyuan Gu, Khalil He Four heads on frozen Xception features for 1,952 in-the-wild images from Deepfake-Eval-2024: logistic regression, Gaussian Naive Bayes, an MC dropout network and a variational linear layer written from scratch, evaluated on whether their uncertainty marks their errors and on a reject option. Shown with a staff section on a KL-dominated variational fit, a memorizing dropout head, the missing confidence baseline, thresholds tuned on the test set, and a demo that does not compute what the notebooks did. |
|
|
Bayesian Job Failure Prediction in Distributed Systems Winter 2026 · Dhawal Dixit, Jenitha Patel, RJ Xia, Sabayna Ali, Sameeksha Kini A three-state Gaussian hidden Markov model over resource telemetry from a month of Google's Borg cluster traces, fit by stochastic variational inference in NumPyro with the hidden states enumerated exactly, decoded with a hand-written forward filter and Viterbi, and checked against where tasks were killed, with a teammate's NUTS run on the marginalized model alongside. Shown with a staff section on a transition matrix too flat to make the HMM more than a mixture, a kill-row validation that scores the label's own footprint, a training loop that saw only the first ten windows of each task, and a hierarchy that stayed on paper. |
|
|
Predictive Maintenance for Aircraft Engines: RUL Estimation Winter 2026 · Adi Singh, Eduardo Tovilla Rivera, Mukul Ramesh, Ryan Chen, William Niu Models of the remaining useful life of NASA's simulated turbofan engines (C-MAPSS FD001), one per team member: a hierarchical Student-t regression sampled with NUTS in PyMC, a dynamic Bayesian network and an unscented Kalman filter, a linear Kalman filter beside a random-forest ensemble, Prophet, and a CNN, attention and LSTM network with Monte Carlo dropout whose labels start at an onset found by a hand-written Bayesian online changepoint detector. Shown with a staff section on swapped constants in the benchmark's score, a network result chosen on the test set and scored against rewritten labels, a random forest presented as a Bayesian time-series model, and a Kalman-filter grid search that cannot change anything. |
|
|
Smart Home Fall Detection for Elderly Safety Winter 2026 · Lexi Lin, Xiaojing Fang Per-activity Gaussian hidden Markov models, a random forest smoothed by Viterbi decoding over an activity transition matrix, a hidden semi-Markov model with Poisson durations and a weighted bidirectional LSTM, compared on 25 recordings of four body-worn location tags from UCI's Localization Data for Person Activity, with a Streamlit dashboard that raises an ensemble fall alarm. Shown with a staff section on a smoother that cuts false alarms from 155 to 4 per hour, which the team never measured, test chunks and durations taken from the labels, a threshold tuned on the test folds, and falls a model can find by where in the room they happen. |
|
|
Beyond Glicko-2: Hierarchical Bayesian Estimation of Latent Chess Skill Summer 2026 · John Henry Oliphant Ordered-probit models of latent chess skill fit to 5.2 million Lichess games between 21,488 blitz players, with hand-written JAX samplers (data augmentation, forward filtering and backward sampling, and a two-skill model of board strength and clock discipline) compared with the Lichess Glicko-2 ratings on a two-month holdout. Shown with a staff section on a headline win that scores games selected by how they ended, a "same data" comparison in which the model sees a fifth of the cohort's games while the ratings keep updating, a single chain whose drift estimate is still falling, and a simultaneous skill update that understates posterior spread. |
|
|
Uncertainty-Aware Modeling of Second-Language Acquisition Summer 2026 · Shane Dunkle, Richard Pollitt A hierarchical Bayesian logistic regression of Duolingo learners' word-level errors, fit by minibatch ADVI in PyMC to 927,000 French-course tokens with pooled learner and word effects, random slopes and a low-rank interaction, alongside a scikit-learn model ladder, a cross-course transfer study, an abstention rule and a demo of the posterior draws. Shown with a staff section on headline numbers from Colab notebooks that are not in the repository, extensions chosen on the dev set they are scored on, history features that see the labels of the same answer, and an abstention threshold described as a guarantee that a simulation puts over budget a third of the time. |
|
|
Inferring Social Value Orientation in Multi-Agent Cooking Coordination Spring 2026 · Bufan Gao, Jiabin Zou, Tianrun Wu, Yufei Mao Bayesian Delegation agents in the gym-cooking kitchen of Wu et al. (2021), extended with a continuous social value orientation per cook that shapes task allocation and idling, and a particle filter with which each cook infers its partner's orientation from its moves, shown on three recorded salad episodes with posterior trajectories. Shown with a staff section on a cos/sin utility that is never switched on, a hand-built likelihood that reads the angle almost only from standing still and so places a 45-degree partner near 85, a partner estimate seeded with the true answer, and single unseeded runs whose figures and table come from different episodes. |
|
|
What Can I Cook Tonight? Spring 2026 · Elaine Wang, Kevin Fan, Qixin Cui, Yizhuo Li, Zhetao Zhang A recipe recommender that turns a fridge photo into ingredients with a pre-trained YOLOv5 detector and ranks 53,573 Food.com recipes by coverage, a shrunk rating and the flavor topics of an LDA fit by scikit-learn's variational Bayes, with bootstrap refits for uncertainty and a Gradio app. Shown with a staff section on a flavor-alignment term that is 1.0 for every demo recommendation and lowers held-out ranking where it varies, a single-topic pantry posterior that is one-hot where LDA's own is not, a reported confidence that is a near-zero bootstrap spread, and a recommender and detector that are never evaluated. |
|
|
Bayesian Regime Inference for Macro-Driven Asset Allocation Spring 2026 · Bosen Yang, Jingnan Chi, Kevin Long, Mike Peng A two-state Bayesian hidden Markov model of a six-ETF portfolio's monthly return, with a hand-written Gibbs sampler using forward filtering and backward sampling, beside a Markov-switching regression whose filtered regime probabilities drive a hand-set and a mean-variance allocation rule, backtested from 2011 against equal weight and 60/40. Shown with a staff section on a Bayesian model that never reaches the trades and whose smoothed probabilities would be look-ahead, a refined rule that does no better than the same optimizer without regimes, macro variables that enter no model, and log returns compounded as simple returns. |
- Interactive tutorials: short warm-ups for selected sessions.
- Course notebooks and applications: the code used in class.
If you built one of these projects and want it in your own account, make a standalone copy with the full history rather than a fork, so your commits count on your profile. Each example README explains how. Add a line at the top of your copy saying where it started, with a link back here. That link credits your teammates.