# Classificação de uma classe

No aprendizado de máquina, a classificação de uma classe (OCC, do inglês one-class classification), também conhecida como classificação de classe única, classificação unária ou modelagem de classe, tenta identificar objetos de uma classe específica entre todos os objetos, aprendendo principalmente a partir de um conjunto de treinamento contendo apenas os objetos dessa classe, embora existam variantes de classificadores de uma classe onde contra-exemplos são usados para refinar ainda mais o limite de classificação. Isso é diferente e mais difícil do que o problema de classificação tradicional, que tenta distinguir duas ou mais classes com o conjunto de treinamento contendo objetos de todas as classes. Os exemplos incluem o monitoramento de caixas de engrenagens de helicópteros, previsão de falha do motor, ou o status operacional de uma usina nuclear como 'normal': Neste cenário, há poucos, se houver, exemplos de estados catastróficos do sistema; apenas as estatísticas de operação normal são conhecidas.
Embora muitas das abordagens acima se concentrem no caso de remover um pequeno número de discrepâncias ou anomalias, também é possível aprender o outro extremo, onde a única classe cobre um pequeno subconjunto coerente dos dados, usando uma abordagem de gargalo de informações.

## Visão geral

O termo classificação de uma classe (OCC) foi cunhado por Moya & Hush (1996) e muitas aplicações podem ser encontradas na literatura científica, por exemplo, detecção de outliers, detecção de anomalias, detecção de novidades. Uma característica do OCC é que ele usa apenas pontos de amostra da classe atribuída, de modo que uma amostragem representativa não seja estritamente necessária para classes não-alvo.

## Introdução

A classificação de uma classe baseada em SVM (OCC) baseia-se na identificação da menor hiperesfera (com raio r e centro c) que consiste em todos os pontos de dados. Esse método é chamado de descrição de dados com vetores de suporte (SVDD). Formalmente, o problema pode ser definido na seguinte forma de otimização restrita,$\min _{r,c}r^{2}{\text{ sujeito a, }}||\Phi (x_{i})-c||^{2}\leq r^{2}\;\;\forall i=1,2,...,n$No entanto, a formulação acima é altamente restritiva e é sensível à presença de valores discrepantes. Portanto, uma formulação flexível, que permite a presença de outliers, é formulada conforme mostrado abaixo,
$\min _{r,c,\zeta }r^{2}+{\frac {1}{\nu n}}\sum _{i=1}^{n}\zeta _{i}$
${\text{sujeito a, }}||\Phi (x_{i})-c||^{2}\leq r^{2}+\zeta _{i}\;\;\forall i=1,2,...,n$
Das condições de otimalidade de Karush-Kuhn-Tucker (KKT), obtemos
$c=\sum _{i=1}^{n}\alpha _{i}\Phi (x_{i}),$
onde os $\alpha _{i}$ 's são a solução para o seguinte problema de otimização:
$\max _{\alpha }\sum _{i=1}^{n}\alpha _{i}\kappa (x_{i},x_{i})-\sum _{i,j=1}^{n}\alpha _{i}\alpha _{j}\kappa (x_{i},x_{j})$
sujeito a, $\sum _{i=1}^{n}\alpha _{i}=1{\text{ e }}0\leq \alpha _{i}\leq {\frac {1}{\nu n}}{\text{para todo }}i=1,2,...,n.$
A introdução de uma função kernel fornece flexibilidade adicional ao algoritmo One-class SVM (OSVM).

### Aprendizado de dados positivos e não-rotulados

Um problema semelhante é o aprendizado de dados positivos e não-rotulados, no qual um classificador binário é aprendido de forma semi-supervisionada a partir de apenas pontos amostrais positivos e não rotulados.
No aprendizado de dados positivos e não-rotulados, dois conjuntos de exemplos são considerados disponíveis para treinamento: o conjunto positivo $P$ e um conjunto misto $U$, que se supõe conter amostras positivas e negativas, mas sem que estas sejam rotuladas como tal. Isso contrasta com outras formas de aprendizado semissupervisionado, onde é assumido que um conjunto rotulado contendo exemplos de ambas as classes está disponível além de amostras não rotuladas. Existe uma variedade de técnicas para adaptar classificadores supervisionados à configuração de aprendizado de PU, incluindo variantes do algoritmo EM. O aprendizado de dados positivos e não-rotulados foi aplicado com sucesso a texto, séries temporais, tarefas de bioinformática, e dados de sensoriamento remoto.

## Abordagens

Várias abordagens têm sido propostas para resolver a classificação de uma classe (OCC). As abordagens podem ser distinguidas em três categorias principais: estimativa de densidade, métodos de contorno e métodos de reconstrução.

### Métodos de estimativa de densidade

Os métodos de estimativa de densidade dependem de estimar a densidade dos pontos de dados e da definição de um limiar. Esses métodos baseiam-se em assumir distribuições, como a gaussiana ou uma distribuição de Poisson. Em seguida, os testes de discordância podem ser usados para testar os novos objetos. Esses métodos são robustos à variação de escala.
O modelo gaussiano é um dos métodos mais simples para criar classificadores de uma classe. Devido ao Teorema do Limite Central, esses métodos funcionam melhor quando um grande número de amostras está presente e são perturbados por pequenos valores de erro independentes. A distribuição de probabilidade para um objeto d-dimensional é dada por:
$p_{\mathcal {N}}(x;\mu ;\Sigma )={\frac {1}{(2\pi )^{\frac {d}{2}}|\Sigma |^{\frac {1}{2}}}}\exp\{-{\frac {1}{2}}(z-\mu )^{T}\Sigma ^{-1}(z-\mu )\}$
em que $\mu$ é a média e $\Sigma$ é a matriz de covariância. O cálculo da inversa da matriz de covariância ($\Sigma ^{-1}$) é a operação mais cara e nos casos em que os dados não são dimensionados corretamente ou os dados têm direções singulares a pseudo-inversa $\Sigma ^{+}$ é usada para aproximar a inversa, e é calculado como $\Sigma ^{T}(\Sigma \Sigma ^{T})^{-1}$.

### Métodos de limite

Os métodos de limite se concentram em definir limites em torno de alguns conjuntos de pontos, chamados pontos-alvo. Esses métodos tentam otimizar o volume. Os métodos de limite dependem de distâncias e, portanto, não são robustos à variação de escala. O método dos K-centros, NN-d e SVDD são alguns dos principais exemplos.
K-centros
No algoritmo K-centros, são posicionadas $k$ pequenas bolas de mesmo raio para minimizar a distância máxima de todas as distâncias mínimas entre os objetos de treinamento e os centros. Formalmente, é minimizado o seguinte erro:
$\varepsilon _{k-center}=\max _{i}(\min _{k}||x_{i}-\mu _{k}||^{2})$
O algoritmo utiliza o método de busca direta com inicialização aleatória, onde o raio é determinado pela distância máxima do objeto que qualquer bola deve capturar. Depois que os centros são determinados, para qualquer objeto de teste $z$, a distância pode ser calculada como
$d_{k-centr}(z)=\min _{k}||z-\mu _{k}||^{2}$

### Métodos de reconstrução

Os métodos de reconstrução usam o processo de geração e conhecimento prévio para construir um modelo de geração que melhor se ajuste aos dados. Novos objetos podem ser descritos em termos de um estado do modelo gerador. Alguns exemplos de métodos de reconstrução para OCC são: agrupamento por k-médias, quantização vetorial de aprendizado, mapas auto-organizados, etc.

## Aplicações
### Classificação de documentos

O paradigma básico de uma máquina de vetores de suporte (SVM) é treinado usando tanto exemplos positivos quanto negativos, porém, estudos mostraram que há muitas razões válidas para usar apenas exemplos positivos. Quando o algoritmo SVM é modificado para usar apenas exemplos positivos, o processo é considerado uma classificação de uma classe. Uma situação em que esse tipo de classificação pode ser útil para o paradigma SVM é ao tentar identificar os sites de interesse de um navegador da Web com base apenas no histórico de navegação do usuário.

### Estudos biomédicos

A classificação de uma classe pode ser particularmente útil em estudos biomédicos, nos quais muitas vezes os dados de outras classes podem ser difíceis ou impossíveis de obter. Ao estudar dados biomédicos pode ser difícil e/ou caro obter o conjunto de dados rotulados da segunda classe que seria necessário para realizar uma classificação de duas classes. Um estudo do The Scientific World Journal descobriu que a abordagem de tipicidade é a mais útil na análise de dados biomédicos porque pode ser aplicada a qualquer tipo de conjunto de dados (contínuo, discreto ou nominal). A abordagem de tipicidade é baseada no agrupamento de dados examinando-os e colocando-os em agrupamentos novos ou existentes. Para aplicar a tipicidade à classificação de uma classe para estudos biomédicos, cada nova observação, $y_{0}$, é comparada com a classe de destino, $C$, e identificada como um outlier ou um membro da classe de destino.

### Detecção não supervisionada de desvio de conceito

A classificação de uma classe tem semelhanças com a detecção não supervisionada de desvio de conceito, já que ambos visam identificar se os dados não vistos compartilham características semelhantes aos dados iniciais. Chama-se de conceito a distribuição de probabilidades fixa da qual os dados são extraídos. Na detecção não supervisionada de desvio de conceito, o objetivo é detectar se a distribuição de dados muda sem utilizar rótulos de classe. Na classificação de uma classe, o fluxo de dados não é importante. Os dados não vistos são classificados como típicos ou atípicos dependendo de suas características, sejam do conceito inicial ou não. No entanto, a detecção não supervisionada de desvio monitora o fluxo de dados e sinaliza um desvio se houver uma quantidade significativa de alterações ou anomalias. A detecção não supervisionada de desvio de conceito pode ser identificada como a forma contínua da classificação de uma classe. Os classificadores de uma classe são usados para detectar desvios de conceito.