Artigo do tipo Tutorial
Recursos especiais neste artigo:
Contém nota Quickupdate, Conteúdo sobre boas práticas.
Mineração de dados na prática
Classificação é provavelmente a tarefa de data mining mais conhecida e utilizada. Ela consiste em associar objetos a um conjunto pré-definido de classes de acordo com as suas características. As aplicações práticas incluem aprovação de crédito, detecção de fraudes, diagnóstico médico, entre outras. Este artigo apresenta aspectos teóricos e práticos sobre a técnica de mineração de classificadores conhecida como Naïve Bayes.

Este artigo aborda a técnica de classificação Naïve Bayes e está dividido em duas partes. A primeira é teórica. A partir de um pequeno exemplo, são descritos os passos executados pelo Naïve Bayes para realizar a construção do classificador e para efetuar a classificação de novos objetos. A segunda parte é prática, apresentando as instruções para utilizar o Naïve Bayes em projetos reais de mineração de dados com o uso da Weka API, uma biblioteca open source que possibilita a criação de sistemas para mineração de dados na Linguagem Java.

Em que situação o tema útil
Este artigo descreve os princípios básicos empregados pela técnica Naïve Bayes para a mineração de classificadores. O artigo enfoca especialmente a utilização desta técnica em processos práticos de mineração de dados com o uso da biblioteca open source Weka (biblioteca Java para mineração de dados). São destacados os seguintes aspectos: mineração do modelo de classificação, classificação de novos objetos e interpretação dos resultados obtidos.

Mineração de dados (data mining) é um processo que utiliza algoritmos para analisar grandes bases de dados de modo eficiente procurando extrair das mesmas conhecimento valioso. Uma das mais úteis tarefas de mineração de dados chama-se classificação. Seu objetivo é bastante simples: um programa de computador deve atribuir automaticamente uma classe para um objeto cuja classe seja desconhecida.

Para que o conceito de classificação fique claro, abriremos este artigo apresentando alguns exemplos. Como primeiro exemplo, considere um programa que receba como entrada a fotografia do rosto de uma pessoa e que seja capaz de determinar automaticamente se ela é do sexo masculino ou feminino. Veja que o objetivo do programa é associar uma classe (“masculino” ou “feminino”) para um objeto (a fotografia de um rosto), desta forma, trata-se de um programa que realiza a tarefa de classificação. Existem diversos outros exemplos de aplicações práticas mais interessantes e importantes em áreas distintas como segurança de informações, finanças, comércio, marketing, bioinformática e outras. Alguns são relacionados a seguir:

  • Detecção de fraudes: identificar se uma transação financeira é “legal” ou “suspeita”.
  • Programas de filtragem de spam: detectar se e-mail é “normal” ou “spam”.
  • Aprovação de crédito: classificar um cliente como de “alto”, “médio” ou “baixo” risco para a concessão de crédito.
  • Atribuição de tópicos (Topic Tagging): textos livres (ex: texto de uma notícia), podem ser automaticamente classificados em um número fixo de categorias (ex: “esporte”, “política”, “cultura”).
  • Na área de bioinformática, os algoritmos de classificação possuem diversas aplicações como, por exemplo, a identificação da classe de proteínas, o que possibilita descobrir quais são as funções das mesmas.

Um programa ou algoritmo criado com o intuito de executar a tarefa de classificação é denominado classificador. Nos dias atuais, a construção de classificadores precisos e eficientes é considerada um dos grandes desafios na área de mineração de dados tendo em vista o grande número de aplicações importantes para a tarefa. Por este motivo, foram desenvolvidas diversas técnicas (algoritmos) para a construção de classificadores, tais como, árvores de decisão, redes neurais, SVMs (Support Vector Machines), k-NN (k-Nearest Neighbors) e Naïve Bayes.

Este artigo aborda o algoritmo Naïve Bayes, um dos mais simples, populares e eficientes para classificação. Uma característica atraente desse classificador é a sua capacidade de produzir estimativas de probabilidade ao invés de simples classificações. Isto significa que, para cada rótulo de classe, o classificador pode gerar uma estimativa de o novo objeto pertencer à mesma.

A seguir apresenta-se um exemplo. Considere uma instituição financeira que utilize um software de mineração de dados que empregue o classificador Naïve Bayes para identificar se os seus potencias clientes apresentam risco “baixo”, “médio” ou “alto” para a concessão de um financiamento imobiliário. Suponha que dois novos clientes – Antonio e Juan – serão submetidos ao processo de classificação. Nesta situação, o classificador poderia gerar um relatório com formato similar ao mostrado na Listagem 1. Observe que cada objeto é listado juntamente com as estimativas de probabilidade associadas a cada um dos rótulos de classe possíveis (“baixo”, “médio” ou “alto”). A maioria das ferramentas comerciais de mineração de dados – como as embutidas nos SGBDs Oracle e SQL Server - é capaz de gerar relatórios similares para os usuários.

Listagem 1. Estimativas de Probabilidade produzidas pelo classificador Naïve Bayes


  
 Cliente: Antonio  
     Risco = “baixo” 85%
     Risco = “médio” 10%
     Risco = “alto”   5%
  
 Cliente: Juan  
     Risco = “baixo” 12%
     Risco = “médio” 38%
     Risco = “alto”  50%

Este artigo está dividido em duas partes principais. A primeira contém um breve resumo dos principais conceitos relacionados ao algoritmo Naïve Bayes. A ideia é apresentar o conteúdo de teoria suficientemente necessário para habilitar o leitor a entender o funcionamento básico da técnica. Por sua vez, a segunda parte do artigo possui um enfoque bem mais prático. Ela tem como principal objetivo demonstrar a utilização do Naïve Bayes em um sistema de mineração de dados. Para elaborar este sistema, faremos uso da Weka API, um software/biblioteca open-source para mineração de dados cujas principais características foram apresentadas em um artigo da edição 107 da SQL Magazine. Com isto, espera-se demonstrar a “receita básica” para utilização do Naïve Bayes em projetos práticos de mineração de dados.

Entendendo o classificador Naïve Bayes

Esta seção explica o funcionamento do algoritmo Naïve Bayes a partir da descrição dos passos que ele emprega para realizar a tarefa de classificação. Com o intuito de tornar o texto mais “leve” e didático, os conceitos serão introduzidos através de exemplos baseados no processo de classificação de uma pequena base de dados contendo informações sobre as vendas de uma loja de departamentos hipotética. A subseção a seguir apresenta esta base de dados exemplo e oferece informações gerais sobre as características das bases de dados utilizadas em processos de classificação.

Bases de dados para classificação

Conforme introduzido no início do artigo, a tarefa de classificação possui como objetivo associar objetos de classe desconhecida a um conjunto pré-definido de classes. Os algoritmos de classificação extraem os modelos classificadores a partir de base de dados em que cada registro tenha o formato (x,y):

...

Quer ler esse conteúdo completo? Tenha acesso completo