yusenthebot
Initial commit - Book recommendation predictor
93fb19f

A newer version of the Gradio SDK is available: 6.0.1

Upgrade
metadata
title: Book Recommendation Predictor
emoji: πŸ“š
colorFrom: blue
colorTo: green
sdk: gradio
sdk_version: 4.44.0
app_file: app.py
pinned: false
license: mit

πŸ“š Book Recommendation Predictor

Overview

An interactive machine learning application that predicts whether a book should be recommended to everyone based on its characteristics and reading experience. Built with AutoGluon's Gradient-Boosted Decision Tree (LightGBM) and deployed using Gradio.

Model Details

  • Model Type: Gradient-Boosted Decision Tree (LightGBM)
  • Framework: AutoGluon-Tabular
  • Developer: Zachary Zdobinski
  • Source Model: zacCMU/2024-24679-tabular-autolguon-predictor
  • Task: Binary Classification
  • Performance: 55% Accuracy on test set

Features

Input Variables

  1. Fiction or Non-Fiction: Genre classification of the book
  2. Number of Pages: Total page count (1-2000 pages)
  3. Book Thickness: Physical thickness in inches (0.1-5.0 inches)
  4. Reading Status: Whether the book was Read, Unfinished, or Unread

Output

  • Binary prediction: "Recommended to Everyone" vs "Not Recommended to Everyone"
  • Confidence scores for both classes
  • Visual probability distribution

How to Use

Interactive Interface

  1. Select Book Genre: Choose between Fiction or Non-Fiction
  2. Set Book Length: Adjust the page count slider
  3. Specify Thickness: Set the physical thickness or auto-calculate from pages
  4. Choose Reading Status: Select whether you've read, not finished, or haven't read the book
  5. Make Prediction: Click the prediction button to see results

Example Inputs

The application includes 6 pre-configured examples demonstrating various book types:

  • Popular fiction (completed)
  • Long non-fiction (unfinished)
  • Short books vs. long books
  • Different reading completion statuses

Technical Implementation

Architecture

  • Frontend: Gradio interface with interactive widgets
  • Backend: AutoGluon TabularPredictor
  • Deployment: Hugging Face Spaces
  • Model Format: Compressed AutoGluon predictor directory

Dependencies

  • autogluon.tabular
  • gradio
  • huggingface_hub
  • pandas

Model Performance & Limitations

Strengths

  • Fast inference time
  • Simple, interpretable features
  • Handles both fiction and non-fiction genres
  • Considers reading completion as a quality signal

Limitations

  • Limited Feature Scope: Only uses 4 features; doesn't consider author, writing style, or publication date
  • Cold Start Problem: May perform poorly for users with minimal reading history
  • Genre Coverage: Performance may vary for niche or underrepresented genres
  • Moderate Accuracy: 55% accuracy indicates room for improvement

Dataset Information

The model was trained on a private dataset containing:

  • User reading history
  • Book metadata (genre, length)
  • Binary recommendation labels

Use Cases

  • Personal Reading Lists: Help readers identify broadly appealing books
  • Library Recommendations: Assist librarians in selecting popular titles
  • Book Club Selection: Find books likely to appeal to diverse groups
  • Publishing Insights: Understand characteristics of universally appealing books

Ethical Considerations

  • Recommendations may reflect biases present in the training data
  • The model should not be the sole factor in book selection decisions
  • Consider diverse perspectives beyond algorithmic recommendations

Future Improvements

  • Incorporate additional features (author, publication year, user ratings)
  • Improve model accuracy through ensemble methods
  • Add multi-class recommendations for different audience segments
  • Include content-based features from book descriptions

Citation

If you use this model or interface, please cite: @misc{book_recommendation_2025, author = {Zachary Zdobinski}, title = {Book Recommendation Predictor}, year = {2025}, publisher = {Hugging Face}, url = {https://huggingface.co/zacCMU/2024-24679-tabular-autolguon-predictor} }

Contact & Support

Created for CMU 24-679 Course Assignment For questions or issues, please open an issue in the repository.


Last Updated: September 2025