> ## Documentation Index
> Fetch the complete documentation index at: https://handbook.sutro.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Classifiers

> The most flexible and broadly applicable analytical AI primitive

Classifiers are perhaps the oldest form of AI in existence. The original perceptron demonstration in 1957 (the first neural network) was itself a binary classifier.

Nearly 70 years later, classification remains one of the most important decision models in existence, and underpins the operations of nearly all AI systems in some capacity.

## Why humans love classifiers

For one thing, they're simple to understand. Humans easily process discrete decision units, and it's easy to model a decision problem as a classification problem. Should I walk or drive to work? Should I buy a red, blue, or yellow shirt? Should I hire this person or not?

Another reason: the math is simple. Accuracy is easy to understand - (8/10 correct). Precision/recall and f1 scores are a bit more complex, but foundational for data scientists.

Lastly, they're flexible. The various [types of classifiers](/primitives/classifiers/types-of-classifiers) extend the model to cover nearly any type of real-world decision. We'll cover a few of the canonical ones in this guide.

## Why humans hate classifiers

Classification is often the first time someone has to swallow a hard truth about machine learning: the fact that classifiers not always correct is a feature, not a bug.

If you're making some kind of decision or prediction that can be 100% correct by design, that means you should be building some kind of [deterministic filter](/patterns/consistency/determinism), not a predictive classifier. If there is no deterministic filter you can use, yet you found yourself with a 100% correct classifiers on some sample data - you can reasonably expect it to be overfit to that data and not generalize well to data out of sample.

The idea that a system not working 100% of the time is where many software engineers making a jump to AI engineering often have to make a mental leap. So the goal has to shift: instead of looking for 100% reliability, can you reset expectations to producing a model that is roughly a good as, or better than a [human expert](/patterns/context/expert-annotation) at that same task?
