Classificação em aprendizado de máquina: o que é e como funciona
Publicados: 2024-11-20A classificação é um conceito central em análise de dados e aprendizado de máquina (ML). Este guia explora o que é classificação e como funciona, explica a diferença entre classificação e regressão e cobre tipos de tarefas, algoritmos, aplicações, vantagens e desafios.
Índice
- O que é classificação?
- Classificação vs. regressão
- Tipos de tarefas de classificação em ML
- Algoritmos usados para análise de classificação
- Aplicações de classificação
- Vantagens da classificação
- Desvantagens da classificação
O que é classificação em aprendizado de máquina?
A classificação é uma técnica de aprendizado supervisionado em aprendizado de máquina que prevê a categoria (também chamada de classe) de novos pontos de dados com base em recursos de entrada. Os algoritmos de classificação usam dados rotulados, onde a categoria correta é conhecida, para aprender como mapear recursos para categorias específicas. Este processo também é conhecido como categorização ou classificação categórica.
Para realizar a classificação, os algoritmos operam em duas fases principais. Durante a fase de treinamento, o algoritmo aprende a relação entre os dados de entrada e seus rótulos ou categorias correspondentes. Uma vez treinado, o modelo entra na fase de inferência, onde utiliza os padrões aprendidos para classificar dados novos e não vistos em aplicações do mundo real. A eficácia da classificação depende em grande parte de como estas fases são tratadas e da qualidade dos dados pré-processados disponíveis durante o treinamento.
Compreender como os algoritmos de classificação gerenciam essas fases é essencial. Uma diferença importante é como eles abordam o aprendizado. Isso nos leva a duas estratégias distintas que os algoritmos de classificação podem seguir: aprendizagem preguiçosa e aprendizagem ansiosa.
Alunos preguiçosos versus alunos ansiosos
Os algoritmos de classificação normalmente adotam uma de duas estratégias de aprendizagem: aprendizagem preguiçosa ou aprendizagem ansiosa. Essas abordagens diferem fundamentalmente em como e quando o modelo é construído, afetando a flexibilidade, a eficiência e os casos de uso do algoritmo. Embora ambos tenham como objetivo classificar dados, eles o fazem com métodos contrastantes que são adequados para diferentes tipos de tarefas e ambientes.
Vamos examinar as operações de alunos preguiçosos e ansiosos para compreender melhor os pontos fortes e fracos de cada abordagem.
Alunos preguiçosos
Também conhecidos como alunos baseados em instância ou baseados em memória, os algoritmos de aprendizado lento armazenam os dados de treinamento e atrasam o aprendizado real até que uma consulta precise ser classificada. Quando um desses algoritmos é colocado em operação, ele compara novos pontos de dados com as instâncias armazenadas usando uma medida de similaridade. A qualidade e a quantidade de dados disponíveis influenciam significativamente a precisão do algoritmo, com o acesso a conjuntos de dados maiores normalmente melhorando o seu desempenho. Alunos preguiçosos geralmente priorizam dados recentes, o que é conhecido comoviés de recência. Como aprendem em tempo real, podem ser mais lentos e mais caros do ponto de vista computacional ao responder às consultas.
Alunos preguiçosos se destacam em ambientes dinâmicos onde a tomada de decisões em tempo real é crucial e os dados estão em constante evolução. Esses algoritmos são adequados para tarefas onde novas informações fluem continuamente e não há tempo para extensos ciclos de treinamento entre tarefas de classificação.
Alunos ansiosos
Algoritmos de aprendizagem ávidos, por outro lado, processam todos os dados de treinamento antecipadamente, construindo um modelo antes que qualquer tarefa de classificação seja executada. Essa fase de aprendizado inicial normalmente consome mais recursos e é complexa, permitindo que o algoritmo descubra relacionamentos mais profundos nos dados. Uma vez treinados, os alunos ansiosos não precisam de acesso aos dados de treinamento originais, o que os torna altamente eficientes durante a fase de previsão. Eles podem classificar dados rapidamente e lidar com grandes volumes de consultas com custo computacional mínimo.
No entanto, alunos ávidos são menos flexíveis na adaptação a novos dados em tempo real. Seu processo de treinamento com muitos recursos limita a quantidade de dados que eles podem manipular, dificultando a integração de novas informações sem retreinar todo o modelo.
Mais adiante nesta postagem, veremos como algoritmos preguiçosos e ávidos podem ser usados em conjunto para reconhecimento facial.
Classificação vs. regressão: Qual é a diferença?
Agora que exploramos como funciona a classificação, é importante distingui-la de outra técnica importante de aprendizagem supervisionada: a regressão.
Tanto a classificação quanto a regressão são usadas para fazer previsões com base em dados rotulados da fase de treinamento, mas diferem no tipo de previsões que geram.
Algoritmos de classificaçãoprevêem resultados discretos e categóricos. Por exemplo, em um sistema de classificação de e-mail, um e-mail pode ser rotulado como “spam” ou “ham” (onde “ham” se refere a e-mails não-spam). Da mesma forma, um modelo de classificação meteorológica pode prever “sim”, “não” ou “talvez” em resposta à pergunta “Choverá amanhã?”
Algoritmos de regressão, por outro lado, prevêem valores contínuos. Em vez de atribuir dados a categorias, os modelos de regressão estimam resultados numéricos. Por exemplo, em um sistema de email, um modelo de regressão pode prever a probabilidade (por exemplo, 70%) de que um email seja spam. Para um modelo de previsão do tempo, ele poderia prever o volume esperado de chuva, como 5 centímetros de chuva.
Embora a classificação e a regressão tenham finalidades diferentes, às vezes são usadas juntas. Por exemplo, a regressão pode estimar probabilidades que alimentam um sistema de classificação, melhorando a precisão e a granularidade das previsões.
Tipos de tarefas de classificação em ML
As tarefas de classificação variam, cada uma adaptada para tipos de dados e desafios específicos. Dependendo da complexidade da sua tarefa e da natureza das categorias, você pode empregar diferentes métodos: classificação binária, multiclasse, multirrótulo ou desequilibrada. Vamos nos aprofundar em cada abordagem abaixo.
Classificação binária
A classificação binária é uma tarefa fundamental que classifica os dados em duas categorias, como verdadeiro/falso ou sim/não. É amplamente pesquisado e aplicado em áreas como detecção de fraudes, análise de sentimentos, diagnóstico médico e filtragem de spam. Embora a classificação binária lide com duas classes, uma categorização mais complexa pode ser tratada dividindo o problema em múltiplas tarefas binárias. Por exemplo, para classificar dados em “maçãs”, “laranjas”, “bananas” e “outros”, classificadores binários separados poderiam ser usados para responder “É uma maçã?”, “É uma laranja?” É uma banana?”
Classificação multiclasse
A classificação multiclasse, também conhecida como classificação multinomial, é projetada para tarefas em que os dados são classificados em três ou mais categorias. Ao contrário dos modelos que decompõem o problema em múltiplas tarefas de classificação binária, os algoritmos multiclasse são construídos para lidar com tais cenários de forma mais eficiente. Esses algoritmos são normalmente mais complexos, exigem conjuntos de dados maiores e exigem mais recursos para serem configurados do que os sistemas binários, mas geralmente fornecem melhor desempenho depois de implementados.
Classificação multirótulo
A classificação multirótulo, também conhecida como classificação de múltiplas saídas, atribui mais de um rótulo a um determinado dado. Muitas vezes é confundido com classificação multiclasse, onde cada instância recebe apenas um rótulo de múltiplas categorias.
Para esclarecer a diferença: um algoritmo de classificação binária poderia classificar as imagens em duas categorias – imagens com frutas e imagens sem frutas. Um sistema multiclasse poderia então classificar as imagens das frutas em categorias específicas, como bananas, maçãs ou laranjas. A classificação multirótulo, por outro lado, permitiria atribuir vários rótulos a uma única imagem. Por exemplo, uma única imagem pode ser classificada como “fruta” e “banana”, e a fruta também pode ser rotulada como “madura” ou “não madura”. Isso permite que o sistema considere múltiplas características independentes simultaneamente, como (“sem fruta”, “sem banana”, “nada está maduro”), (“fruta”, “banana”, “maduro” ou (“fruta, ” “banana”, “nada está maduro”).
Classificação desequilibrada
Freqüentemente, os dados disponíveis para treinamento não representam a distribuição dos dados vistos na realidade. Por exemplo, um algoritmo pode ter acesso apenas aos dados de 100 usuários durante o treinamento, onde 50% deles fazem uma compra (quando, na realidade, apenas 10% dos usuários fazem uma compra). Algoritmos de classificação desequilibrados resolvem esse problema durante o aprendizado usando técnicas de sobreamostragem (reutilização de algumas partes dos dados de treinamento) e subamostragem (subutilização de algumas partes dos dados de treinamento). Isso faz com que o algoritmo de aprendizagem aprenda que um subconjunto de dados ocorre com muito mais ou menos frequência na realidade do que nos dados de treinamento. Essas técnicas geralmente são um tipo de otimização de treinamento, pois permitem que o sistema aprenda com significativamente menos dados do que seria necessário para aprender de outra forma.
Às vezes, acumular dados suficientes para refletir a realidade é difícil ou demorado, e esse tipo de otimização pode permitir que os modelos sejam treinados mais cedo. Outras vezes, a quantidade de dados é tão grande que os algoritmos de classificação demoram muito para treinar todos eles, e algoritmos desequilibrados permitem que eles sejam treinados de qualquer maneira.
Algoritmos usados para análise de classificação
Os algoritmos de classificação são bem estudados e nenhuma forma única de classificação foi considerada universalmente apropriada para todas as situações. Como resultado, existem grandes kits de ferramentas de algoritmos de classificação bem conhecidos. Abaixo, descrevemos alguns dos mais comuns.
Preditores lineares
Os preditores lineares referem-se a algoritmos que prevêem resultados com base em combinações lineares de recursos de entrada. Esses métodos são amplamente utilizados em tarefas de classificação porque são simples e eficazes.
Regressão logística
A regressão logística é um dos preditores lineares mais comumente usados, particularmente na classificação binária. Ele calcula a probabilidade de um resultado com base nas variáveis observadas usando uma função logística (ou sigmóide). A classe com maior probabilidade é selecionada como resultado previsto, desde que exceda um limite de confiança. Se nenhum resultado atingir este limite, o resultado poderá ser marcado como “incerto” ou “indeciso”.
Regressão linear
A regressão linear geralmente é usada para casos de uso de regressão e gera valores contínuos. No entanto, os valores podem ser reaproveitados para classificação adicionando filtros ou mapas para converter suas saídas em classes. Se, por exemplo, você já treinou um modelo de regressão linear que gera previsões de volume de chuva, o mesmo modelo pode se tornar um classificador binário “dia chuvoso”/”dia não chuvoso” ao definir arbitrariamente um limite. Por padrão, é apenas o sinal do resultado da regressão que é usado ao converter modelos em classificadores binários (0 e números positivos são mapeados para a resposta “sim” ou “+1” e números negativos para a resposta “não” ou “- 1”). No entanto, os mapas podem ser mais complexos e ajustados ao caso de uso. Por exemplo, você pode decidir que qualquer previsão acima de cinco ml de chuva será considerada um “dia chuvoso” e qualquer previsão abaixo disso irá prever o contrário.
Análise discriminante
A análise discriminante linear (LDA) é outro importante preditor linear usado para classificação. O LDA funciona encontrando combinações lineares de recursos que melhor separam as diferentes classes. Assume que as observações são independentes e normalmente distribuídas. Embora o LDA seja frequentemente empregado para redução de dimensionalidade, ele também é uma poderosa ferramenta de classificação que atribui observações a classes usando funções discriminantes – funções que medem as diferenças entre classes.
Classificação Bayesiana
Os algoritmos de classificação bayesiana usam o teorema de Bayes para calcular a probabilidade posterior de cada classe, dados os dados observados. Esses algoritmos assumem certas propriedades estatísticas dos dados, e seu desempenho depende de quão bem essas suposições são válidas. Naive Bayes, por exemplo, assume que os recursos são condicionalmente independentes, dada a classe.
Classificação k-NN
O algoritmo k-vizinho mais próximo (k-NN) é outro método de classificação amplamente utilizado. Embora possa ser aplicado tanto para tarefas de regressão quanto para classificação, é mais comumente usado para classificação. O algoritmo atribui uma classe a um novo ponto de dados com base nas classes de seus k vizinhos mais próximos (onde k é uma variável), usando um cálculo de distância para determinar a proximidade. O algoritmo k-NN é simples, eficiente e eficaz quando há estrutura local nos dados. Seu desempenho depende da seleção de uma métrica de distância apropriada e da garantia de que os dados tenham padrões locais que possam auxiliar na classificação.
Árvores de decisão e florestas aleatórias
As árvores de decisão são um algoritmo popular usado para tarefas de classificação. Eles funcionam dividindo recursivamente os dados com base nos valores dos recursos para tomar uma decisão sobre a qual classe uma determinada observação pertence. No entanto, as árvores de decisão tendem a ajustar demais os dados de treinamento, capturando ruído e levando a uma alta variância. Esse overfitting resulta em uma generalização deficiente para novos dados.
Para mitigar o overfitting, florestas aleatórias são usadas como método de conjunto. Uma floresta aleatória treina múltiplas árvores de decisão em paralelo em subconjuntos aleatórios de dados, e cada árvore faz sua própria previsão. A previsão final é feita agregando as previsões de todas as árvores, normalmente através de votação por maioria. Esse processo, conhecido como “bagging” (uma palavra abreviada para agregação bootstrap), reduz a variação e melhora a capacidade do modelo de generalizar para dados não vistos. As florestas aleatórias são eficazes no equilíbrio entre viés e variância, tornando-as um algoritmo robusto e pronto para uso para tarefas de classificação.
Aplicações de classificação
Algoritmos de classificação são amplamente utilizados em vários campos para resolver problemas do mundo real, categorizando dados em grupos predefinidos. Abaixo estão algumas aplicações comuns de classificação, incluindo reconhecimento facial, classificação de documentos e previsão do comportamento do cliente.
Reconhecimento facial
Os sistemas de reconhecimento facial comparam um rosto em um vídeo ou foto em tempo real com um banco de dados de rostos conhecidos. Eles são comumente usados para autenticação.
Um sistema de desbloqueio de telefone, por exemplo, começaria usando um sistema de detecção facial, que captura imagens de baixa resolução da câmera direcionada ao rosto a cada poucos segundos e depois infere se um rosto está na imagem. O sistema de detecção facial poderia ser um classificador binário bem treinado e ávido que respondesse à pergunta “Existe um rosto presente ou não?”
Um classificador preguiçoso seguiria o ansioso “Existe um rosto?” classificador. Ele usaria todas as fotos e selfies do proprietário do telefone para implementar uma tarefa de classificação binária separada e responder à pergunta “Este rosto pertence a uma pessoa que tem permissão para desbloquear o telefone?” Se a resposta for sim, o telefone será desbloqueado; se a resposta for não, não acontecerá.
Classificação de documentos
A classificação de documentos é uma parte crucial das estratégias modernas de gerenciamento de dados. Classificadores baseados em ML catalogam e classificam um grande número de documentos armazenados, apoiando esforços de indexação e pesquisa que tornam os documentos e seu conteúdo mais úteis.
O trabalho de classificação documental começa com o pré-processamento dos documentos. Seus conteúdos são analisados e transformados em representações numéricas (já que os números são mais fáceis de processar). Recursos importantes do documento, como equações matemáticas, imagens incorporadas e o idioma do documento, são extraídos dos documentos e destacados para serem aprendidos pelos algoritmos de ML. Isso é seguido por outras tarefas de processamento semelhantes na mesma linha.
Um subconjunto de documentos é então classificado manualmente, por humanos, para criar um conjunto de dados de treinamento para sistemas de classificação. Uma vez treinado, um classificador catalogará e classificará todos os documentos recebidos rapidamente e em grande escala. Se algum erro de classificação for detectado, correções manuais poderão ser adicionadas aos materiais de treinamento do sistema de ML. De vez em quando, o modelo do classificador pode ser treinado novamente com as correções adicionadas e seu desempenho será melhorado.
Previsão do comportamento do cliente
As lojas de varejo on-line e de comércio eletrônico coletam informações refinadas e detalhadas sobre o comportamento de seus clientes. Essas informações podem ser usadas para categorizar novos clientes e responder perguntas como “É provável que esse novo cliente faça uma compra?” e “A oferta de um desconto de 25% influenciará o comportamento de compra deste cliente?”
O classificador é treinado a partir de dados de clientes anteriores e seu eventual comportamento, como se fizeram uma compra. À medida que novos clientes interagem com a plataforma, o modelo pode prever se e quando farão uma compra. Ele também pode realizar análises hipotéticas para responder a perguntas como “Se eu oferecer a este usuário um desconto de 25%, ele fará uma compra?”
Vantagens da classificação
A classificação oferece vários benefícios no domínio do aprendizado de máquina, tornando-a uma abordagem amplamente utilizada para resolver problemas de categorização de dados. Abaixo, exploramos algumas das principais vantagens da classificação, incluindo sua maturidade, flexibilidade e capacidade de fornecer resultados legíveis por humanos.
Bem estudado e compreendido
A classificação é um dos problemas mais estudados e compreendidos no domínio do aprendizado de máquina. Como resultado, existem muitos kits de ferramentas maduros disponíveis para tarefas de classificação, permitindo aos usuários equilibrar compensações entre velocidade, eficiência, uso de recursos e requisitos de qualidade de dados.
Técnicas padrão, como matrizes de exatidão, precisão, recall e confusão, estão disponíveis para avaliar o desempenho de um classificador. Com estas ferramentas, pode ser relativamente simples escolher o sistema de classificação mais apropriado para um determinado problema, avaliar o seu desempenho e melhorá-lo ao longo do tempo.
Fornece saída legível por humanos
Os classificadores geralmente permitem uma compensação entre o poder preditivo e a legibilidade humana. Modelos mais simples e interpretáveis, como árvores de decisão ou regressão logística, podem ser ajustados para facilitar a compreensão do seu comportamento. Esses modelos interpretáveis podem ser usados para explorar propriedades de dados, permitindo que usuários humanos obtenham insights sobre os dados. Esses insights podem então orientar o desenvolvimento de modelos de aprendizado de máquina mais complexos e precisos.
Desvantagens da classificação
Embora a classificação seja uma ferramenta poderosa no aprendizado de máquina, ela apresenta certos desafios e limitações. Abaixo, discutimos algumas das principais desvantagens da classificação, incluindo overfitting, underfitting e a necessidade de pré-processamento extensivo de dados de treinamento.
Sobreajuste
Ao treinar modelos de classificação, é importante ajustar o processo de treinamento para reduzir as chances de o modelo superajustar seus dados. Overfitting é um problema em que um modelo memoriza alguns ou todos os seus dados de origem, em vez de desenvolver uma compreensão abstrata das relações nos dados. Um modelo que superajustou os dados de treinamento funcionará bem quando encontrar novos dados que se pareçam muito com os dados nos quais foi treinado, mas pode não funcionar tão bem em geral.
Subajuste
O desempenho dos sistemas de classificação depende da disponibilidade de quantidades suficientes de dados de treinamento e de serem aplicados a problemas que funcionem bem para os algoritmos de classificação escolhidos. Se não houver dados de treinamento suficientes disponíveis ou se um algoritmo de classificação específico não tiver as ferramentas certas para interpretar os dados corretamente, o modelo treinado poderá nunca aprender a fazer boas previsões. Este fenômeno é conhecido como “underfitting”. Existem muitas técnicas disponíveis para tentar mitigar o underfitting e aplicá-las corretamente nem sempre é fácil.
Pré-processamento de dados de treinamento
Muitos sistemas de classificação têm requisitos relativamente rígidos para estrutura e formatação de dados. Seu desempenho geralmente está intimamente relacionado com o quão bem os dados foram processados antes de serem expostos a eles ou treinados neles. Como resultado, os sistemas de classificação podem ser rígidos e inflexíveis, tendo limites rígidos em torno dos problemas e contextos de dados aos quais são mais adequados.