Classificação de uma classe

Origem: Wikipédia, a enciclopédia livre.

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,[1] 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,[2][3][4] previsão de falha do motor,[5] ou o status operacional de uma usina nuclear como 'normal':[6] 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.[7]

Visão geral[editar | editar código-fonte]

O termo classificação de uma classe (OCC) foi cunhado por Moya & Hush (1996)[8] 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.[9]

Introdução[editar | editar código-fonte]

Ficheiro:One-class data description TAX.png
A hiperesfera contendo os dados alvo com centro c e raio r. Objetos na fronteira são vetores de suporte e dois objetos ficam fora da fronteira com folga maior que 0

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.[10] 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,

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,

Das condições de otimalidade de Karush-Kuhn-Tucker (KKT), obtemos

onde os 's são a solução para o seguinte problema de otimização:

sujeito a,

A introdução de uma função kernel fornece flexibilidade adicional ao algoritmo One-class SVM (OSVM).[11]

Aprendizado de dados positivos e não-rotulados[editar | editar código-fonte]

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.[12]

No aprendizado de dados positivos e não-rotulados, dois conjuntos de exemplos são considerados disponíveis para treinamento: o conjunto positivo e um conjunto misto , 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,[13][14][15] séries temporais,[16] tarefas de bioinformática,[17][18] e dados de sensoriamento remoto.[19]

Abordagens[editar | editar código-fonte]

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.[6]

Métodos de estimativa de densidade[editar | editar código-fonte]

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[20] é um dos métodos mais simples para criar classificadores de uma classe. Devido ao Teorema do Limite Central,[21] 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:

em que é a média e é a matriz de covariância. O cálculo da inversa da matriz de covariância () é 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 é usada para aproximar a inversa, e é calculado como .[22]

Métodos de limite[editar | editar código-fonte]

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,[23] são posicionadas 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:

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 , a distância pode ser calculada como

Métodos de reconstrução[editar | editar código-fonte]

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[editar | editar código-fonte]

Classificação de documentos[editar | editar código-fonte]

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[editar | editar código-fonte]

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).[24] A abordagem de tipicidade é baseada no agrupamento de dados examinando-os e colocando-os em agrupamentos novos ou existentes.[25] Para aplicar a tipicidade à classificação de uma classe para estudos biomédicos, cada nova observação, , é comparada com a classe de destino, , e identificada como um outlier ou um membro da classe de destino.[24]

Detecção não supervisionada de desvio de conceito[editar | editar código-fonte]

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.[26] Os classificadores de uma classe são usados para detectar desvios de conceito.[27]

Ver também[editar | editar código-fonte]

Referências[editar | editar código-fonte]

  1. Oliveri P (agosto de 2017). «Class-modelling in food analytical chemistry: Development, sampling, optimisation and validation issues - A tutorial». Analytica Chimica Acta. 982: 9–19. PMID 28734370. doi:10.1016/j.aca.2017.05.013 
  2. Japkowicz N, Myers C, Gluck M (1995). «A Novelty Detection Approach to Classification». IJCAI-95: 518–523. CiteSeerX 10.1.1.40.3663Acessível livremente 
  3. Concept-Learning in the Absence of Counter-Examples:An Autoassociation-Based Approach to Classification (Tese) 
  4. Japkowicz N (2001). «Supervised Versus Unsupervised Binary-Learning by Feedforward Neural Networks» (PDF). Machine Learning. 42: 97–122. doi:10.1023/A:1007660820062Acessível livremente 
  5. «A Neural Network Autoassociator for Induction Motor Failure Prediction» (PDF). NIPS. 1996 
  6. a b One-class classification: Concept-learning in the absence of counter-examples. (PDF) (Ph.D.) 
  7. Crammer, Koby (2004). «A needle in a haystack: local one-class optimization». ICML Proceedings of the Twenty-First International Conference on Machine Learning. 26 páginas. ISBN 9781581138382. doi:10.1145/1015330.1015399 
  8. Moya, M.; Hush, D. (1996). «Network constraints and multi- objective optimization for one-class classification». Neural Networks. 9 (3): 463–474. doi:10.1016/0893-6080(95)00120-4 
  9. Rodionova OY, Oliveri P, Pomerantsev AL (15 de dezembro de 2016). «Rigorous and compliant approaches to one-class classification». Chemometrics and Intelligent Laboratory Systems. 159: 89–96. doi:10.1016/j.chemolab.2016.10.002 
  10. Zineb, Noumir; Honeine, Paul; Richard, Cedue (2012). «On simple one-class classification methods.». IEEE, 2012. IEEE International Symposium on Information Theory Proceedings 
  11. Khan, Shehroz S.; Madden, Michael G. (2010). Jill; Freyne, Lorcan, eds. «A Survey of Recent Trends in One Class Classification». Springer Berlin Heidelberg. Artificial Intelligence and Cognitive Science. Lecture Notes in Computer Science (em inglês). 6206: 188–197. ISBN 9783642170805. doi:10.1007/978-3-642-17080-5_21 
  12. Liu, Bing (2007). Web Data Mining. [S.l.]: Springer. pp. 165–178 
  13. Bing Liu; Wee Sun Lee; Philip S. Yu; Xiao-Li Li (2002). Partially supervised classification of text documents. ICML. pp. 8–12 
  14. Hwanjo Yu; Jiawei Han; Kevin Chen-Chuan Chang (2002). PEBL: positive example based learning for web page classification using SVM. ACM SIGKDD 
  15. Xiao-Li Li; Bing Liu (2003). Learning to classify text using positive and unlabeled data. IJCAI 
  16. Minh Nhut Nguyen; Xiao-Li Li; See-Kiong Ng (2011). Positive Unlabeled Learning for Time Series Classification. IJCAI 
  17. Peng Yang; Xiao-Li Li; Jian-Ping Mei; Chee-Keong Kwoh; See-Kiong Ng (2012). Positive-Unlabeled Learning for Disease Gene Identification. Bioinformatics, Vol 28(20) 
  18. Bugnon, L. A.; Yones, C.; Milone, D. H.; Stegmayer, G. (2020). «Genome-wide discovery of pre-miRNAs: comparison of recent approaches based on machine learning». Oxford Bioinformatics. 22 (3). PMID 32814347. doi:10.1093/bib/bbaa184  Verifique o valor de |name-list-format=amp (ajuda)
  19. Li, W.; Guo, Q.; Elkan, C. (fevereiro de 2011). «A Positive and Unlabeled Learning Algorithm for One-Class Classification of Remote-Sensing Data». IEEE Transactions on Geoscience and Remote Sensing. 49 (2): 717–725. Bibcode:2011ITGRS..49..717L. ISSN 0196-2892. doi:10.1109/TGRS.2010.2058578 
  20. Bishop, Christopher M.; Bishop, Professor of Neural Computing Christopher M. (23 de novembro de 1995). Neural Networks for Pattern Recognition (em inglês). [S.l.]: Clarendon Press. ISBN 9780198538646 
  21. R, Ullman Neil (1 de janeiro de 2017). «Elementary statistics» 
  22. «Introduction to Applied Mathematics». SIAM Bookstore (em inglês). Consultado em 29 de abril de 2019 
  23. Ypma, Alexander; Duin, Robert P. W. (1998). Mikael; Bodén, Lars; Ziemke, eds. «Support objects for domain approximation». Springer London. Icann 98. Perspectives in Neural Computing (em inglês): 719–724. ISBN 9781447115991. doi:10.1007/978-1-4471-1599-1_110 
  24. a b Irigoien I, Sierra B, Arenas C (2014). «Towards application of one-class classification methods to medical data». TheScientificWorldJournal. 2014. 730712 páginas. PMC 3980920Acessível livremente. PMID 24778600. doi:10.1155/2014/730712Acessível livremente 
  25. Irigoien I, Arenas C (julho de 2008). «INCA: new statistic for estimating the number of clusters and identifying atypical units». Statistics in Medicine. 27 (15): 2948–73. PMID 18050154. doi:10.1002/sim.3143 
  26. Gözüaçık, Ömer; Can, Fazli (novembro de 2020). «Concept learning using one-class classifiers for implicit drift detection in evolving data streams». Artificial Intelligence Review. 54 (5): 3725–3747. doi:10.1007/s10462-020-09939-x. Consultado em 8 de dezembro de 2020 
  27. Krawczyk, Bartosz; Woźniak, Michał (2015). «One-class classifiers with incremental learning and forgetting for data streams with concept drift». Soft Computing. 19 (12): 3387–3400. doi:10.1007/s00500-014-1492-5Acessível livremente