# Neutral Class

> Adds an explicit uncertain class for genuinely ambiguous cases

- **Category**: Machine Learning
- **Subcategory**: Problem Framing and Model Structure
- **Canonical URL**: https://designpattern.fyi/patterns/neutral-class/

---

## Description
**Intent**: Handle cases where forcing a strict binary decision is misleading because the ground truth itself is genuinely ambiguous due to human rater disagreement or borderline cases.

**Context**: Forcing a model to pick a side on genuinely ambiguous examples injects noise and distorts confidence calibration on the cases that actually are clear-cut. Human raters disagree substantially on some cases.

**Solution**: Add an explicit neutral (or uncertain) class to what would otherwise be a binary problem. This honestly represents genuinely ambiguous cases, keeps the two original classes cleaner and more separable, and lets downstream systems treat neutral outputs differently (e.g., routing to human review).



## Use Cases
- Sentiment analysis with borderline or mixed sentiment
- Content moderation with subjective judgment calls
- Medical diagnosis with genuinely ambiguous cases
- Any task with inherent labeler disagreement or ambiguity






## Trade-offs


### Advantages

- Honestly represents genuine ambiguity in data

- Keeps main classes cleaner and more separable

- Enables specialized handling of uncertain cases

- Improves calibration on clear-cut cases




### Considerations & Drawbacks

- Neutral class needs its own downstream handling logic

- Evaluation gets more complex with additional class

- Requires clear criteria for what qualifies as neutral

- May need relabeling effort to identify neutral cases







---
**Reference**: [Original Source](https://github.com/GoogleCloudPlatform/ml-design-patterns)

