Skip to content

Repository files navigation

Facial Emotion Classification & Context-Aware Recommendation

Comparative Machine Learning and Deep Learning Project | UMBC Graduate Studies | 2023

Overview

This project explores facial-emotion classification using multiple machine-learning and deep-learning approaches and examines how predicted emotional states can be incorporated into a simple context-aware recommendation workflow.

Rather than relying on a single modeling technique, the project evaluates several approaches to image classification, including convolutional neural networks and traditional supervised-learning algorithms.

The repository represents graduate-level work completed during my master's studies at the University of Maryland, Baltimore County (UMBC) in 2023.

Historical project note: The underlying notebooks originate from the 2023 academic project. Repository documentation has subsequently been expanded to improve clarity, reproducibility, and technical presentation. The original project history has been retained.

Project Objectives

  • Explore facial-image data for emotion-classification tasks.
  • Compare traditional machine-learning techniques with deep-learning approaches.
  • Investigate feature-based and image-based classification strategies.
  • Evaluate ensemble-learning approaches.
  • Build an application-oriented workflow connecting emotion prediction with song recommendation.
  • Develop practical experience across the machine-learning lifecycle.

Technical Approach

Convolutional Neural Networks

A CNN-based approach was explored for learning image representations directly from facial-image data.

Relevant notebook: cnn_model-final.ipynb

Support Vector Machine

Support Vector Machine classification was investigated as a traditional supervised-learning approach.

Relevant notebook: saved_svm_model.ipynb

Random Forest

Random Forest models were explored as an ensemble tree-based classification approach.

Relevant notebooks:

  • random_forest_model.ipynb
  • random_forest_model with Vgg.ipynb

XGBoost

Gradient-boosted tree methods were evaluated using XGBoost.

Relevant notebook: XGBoost.ipynb

Gradient Boosting

A separate boosting experiment explores another ensemble-learning strategy for classification.

Relevant notebook: Boosting_model.ipynb

Ensemble / Voting Classification

The project also explores combining multiple classification approaches using an ensemble-voting strategy.

Relevant notebook: Ensemble-Voting XG-GG-RF-SVM.ipynb

Exploratory Data Analysis

Relevant notebook: Data Exploration.ipynb

Exploratory analysis supports understanding data distribution, class representation, image quality, preprocessing requirements, and potential sources of bias before model development.

Application-Oriented Workflow

The repository also includes RUN THIS APP.ipynb.

Conceptual workflow:

Facial Image
     ↓
Image Preprocessing
     ↓
Emotion Classification
     ↓
Predicted Emotional Context
     ↓
Recommendation Logic
     ↓
Song Recommendation

Machine-Learning Workflow

Data Collection / Input
        ↓
Data Exploration
        ↓
Preprocessing
        ↓
Feature Representation
        ↓
Model Training
        ↓
CNN / SVM / RF / XGBoost / Boosting
        ↓
Model Comparison
        ↓
Ensemble Evaluation
        ↓
Application Integration

Repository Structure

Notebook Purpose
Data Exploration.ipynb Exploratory analysis
cnn_model-final.ipynb Convolutional neural-network experiment
saved_svm_model.ipynb Support Vector Machine experiment
random_forest_model.ipynb Random Forest classification
random_forest_model with Vgg.ipynb Random Forest experiment using VGG-related representations
XGBoost.ipynb XGBoost classification
Boosting_model.ipynb Boosting-based model experiment
Ensemble-Voting XG-GG-RF-SVM.ipynb Multi-model ensemble/voting experiment
RUN THIS APP.ipynb Application-oriented emotion/recommendation workflow

Technologies Demonstrated

  • Python
  • Jupyter Notebook
  • Machine Learning
  • Deep Learning
  • Convolutional Neural Networks
  • Support Vector Machines
  • Random Forest
  • Gradient Boosting
  • XGBoost
  • Ensemble Learning
  • Image Classification
  • Exploratory Data Analysis
  • Model Evaluation
  • Recommendation Workflows

Engineering Significance

The project demonstrates an early focus on comparative model evaluation, ensemble methods, image-based machine learning, and converting predictive outputs into downstream recommendation workflows.

Responsible AI Considerations

Emotion-recognition systems have important limitations. Facial appearance does not provide a definitive representation of an individual's emotional state, and models can be affected by dataset composition, demographic representation, image conditions, labeling methodology, and cultural differences.

Systems of this type should therefore be treated as experimental or assistive rather than authoritative assessments of an individual's emotional state.

Limitations

This project was developed as graduate academic work rather than as a production facial-analysis system. Potential limitations include dataset dependence, class imbalance, variation in image conditions, generalization to unseen populations, and the difference between measured model performance and real-world reliability.

Reproducibility

The notebooks preserve the original experimentation workflow. Because this repository originates from a 2023 academic environment, package versions and external datasets may differ from current environments. Dependency and data-access documentation can be expanded later after the original notebooks are verified.

Academic Context

This project was developed during graduate studies at UMBC in 2023 as part of broader work in data science, machine learning, analytics, and applied AI.

It represents an earlier stage in a continuing technical progression from predictive analytics and machine learning toward enterprise automation and AI-assisted decision-support systems.

Disclaimer

This repository is provided for educational and technical demonstration purposes. It should not be interpreted as a production-ready emotion-recognition or behavioral-assessment system.

About

Comparative facial-emotion classification using CNN, SVM, Random Forest, XGBoost, boosting and ensemble learning, with an application-oriented recommendation workflow.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages