Os classificadores tradicionais, tais como árvores de decisão e multi-layer perceptrons, recebem como entrada instâncias de duas ou mais classes e dividem o espaço de características em regiões de forma que cada classe seja representada por uma ou mais regiões. Logo, instâncias de classes diferentes são usadas para melhor definir as bordas entre regiões.
De maneira diferente, one-class classifiers (OCCs) recebem instâncias de apenas uma classe e dividem o espaço de características em apenas duas regiões: target (instâncias que pertencem à classe-alvo) e outliers (instâncias que não pertencem à classe-alvo). Assim, o objetivo de OCCs é determinar se uma dada instância de teste pertence à classe-alvo.

A imagem acima mostra um OCC, representado pela curva em vermelho, que delimita a área do espaço de caraterísticas para a classe-alvo, formada por cajus. Ou seja, todas as instância que se encontram dentro desta região serão ditas cajus e todas as instâncias fora desta região serão classificadas como não-cajus. Logo, esse classificador é potencialmente capaz de distinguir cajus de quaisquer outras frutas e/ou objetos.
Vale ressaltar que em seu processo de treinamento, os OCCs não usam contra-exemplos, pois apenas instâncias da classe-alvo estão disponíveis. Desta forma, os OCCs não dispõem de informação entre as classes para melhor posicionar a fronteira de decisão (curva em vermelho na figura). Em contraste, como apenas uma classe é usada no treinamento, desbalanceamento não é um problema.

Uma maneira simples de construir um OCC é mostrada na figura acima. Nela, um OCC é representado pela esfera em azul. Esta esfera foi definida da seguinte forma: primeiro, calcula-se o centro de massa das instâncias (cajus) e, em seguida, define-se um raio que pode ser ajustado de várias formas, por exemplo, como a distância do centro de massa ao caju mais distante.
Nesta figura, três cajus ficaram fora do círculo, logo, estes cajus são classificados como não-cajus, gerando erros de falsos negativos. Além disso, percebem-se espaços vazios dentro da esfera, pois a região de decisão não se ajustou tão bem aos dados de treinamento como no exemplo mostrado na primeira figura.
Um falso positivo ocorre quando uma instância se localiza dentro do círculo e esta instância é, por exemplo, um maracujá, ou seja, um não-caju. Logo, a definição do raio possui um papel fundamental para minimizar os erros de falso negativo e de falso positivo. Quanto menor o raio, maior o erro de falso negativo e menor o erro de falso positivo. Em contrapartida, quanto maior o raio, menor o erro de falso negativo e maior o erro de falso positivo. Assim, podemos pensar nestes dois erros como uma balança, quando um aumenta o outro diminui e vice-versa.
OCCs representam uma classe de classificadores composta por vários algoritmos de treinamento, entre eles: one-class support vector machine, support vector data description, auto-encoder neural network e isolation forest.
Aplicações
OCCs têm encontrado uso nas mais diversas aplicações, tais como: detecção de imagens e de eventos, biometria, detecção de falsificação, classificação de documento e detecção de mudança de conceito. A seguir são descritas três áreas mais abrangentes da aprendizagem de máquina que têm se beneficiado do emprego de OCCs.
OCCs podem ser usados para tarefas multi-classe de maneira que cada classe é modelada por um OCC. Assim, tem-se m OCCs, sendo m o número de classes da tarefa. A inferência da classe de uma instâncias de teste é realizada da seguinte forma: esta instância de teste é fornecida como entrada para cada um dos OCCs e o OCC com o maior grau de certeza indicará a classe.
Detecção de anomalia e de outliers são aplicações nas quais OCCs se apresentam como uma alternativa interessante. Nestas aplicações, deseja-se separar um conjunto de instâncias ditas “normais” de instância que não se encaixam nesta “normalidade”.
Em tarefas com múltiplas classes, open set recognition tem o objetivo de considerar que uma dada instância de teste pode não pertencer a nenhuma das m classes iniciais do sistema. Pode-se considerar este processo como a rejeição da instância de teste, pois a instância não é atribuída a nenhuma das m possíveis classes. Num futuro, este mesmo sistema pode aumentar o número de classes m para incorporar estas instâncias que diferiram das classes preexistentes.