Abernethy - 2010 - Mineração de Dados Com o WEKA, Parte 2 Classific2

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 13

Mineração de dados com o WEKA, Parte 2: Classificação e armazenamento em cluster Página 1 de 13

Mineração de dados com o WEKA, Parte 2: Classificação e


armazenamento em cluster
Michael Abernethy, Product Development Manager, Optimal Auctions

Resumo: Mineração de dados é um termo coletivo para dezenas de técnicas para colher informações de dados e transformá-las em tendências e
regras significativas para melhorar seu entendimento sobre os dados. Neste segundo artigo da série "Mineração de dados com WEKA"
discutiremos dois métodos comuns de mineração de dados — classificação e armazenamento em cluster — que podem ser usados para realizar
análises mais poderosas em seus dados.

Data: 28/Mai/2010
Nível: Intermediário
Atividade: 16094 visualizações
Comentários: 1 (Visualizar | Incluir comentário - Conectar)

Média de classificação (27 votos)


Classificar este artigo

Introdução

Na Parte 1, introduzi o conceito de mineração de dados e o software livre e grátis Waikato Environment for Knowledge Analysis (WEKA), que
permite que você minere seus próprios dados para encontrar tendências e padrões. Também falei sobre o primeiro método de — regressão — de
mineração de dados que permite prever um valor numérico para um determinado conjunto de valores de entrada. Esse método de análise é o
método mais fácil de ser executado e o método menos eficiente para mineração de dados, mas ele atendeu ao objetivo de introduzir o WEKA e
forneceu um bom exemplo de como dados brutos podem ser transformados em informações significativas.

Neste artigo, mostrarei dois métodos de mineração de dados adicionais que são um pouco mais complexos do que um modelo de regressão, mas
mais eficientes em seus respectivos objetivos. Onde um modelo de regressão poderia dar somente uma saída numérica com entradas específicas,
esses modelos adicionais permitem que você interprete seus dados de maneira diferente. Como disse na Parte 1, a mineração de dados tem a ver
com aplicar o modelo certo a seus dados. É possível que você possua os melhores dados sobre seus clientes (o que quer que isso signifique), mas
caso você não aplique os modelos certos a eles, eles serão apenas lixo. Pense nisso de uma outra maneira: Caso você usasse somente modelos de
regressão, que produzem uma saída numérica, como a Amazon seria capaz de lhe dizer "Outros clientes que compraram X também compraram
Y"? Não há uma função numérica que poderia lhe dar esse tipo de informação. Então, vamos investigar esses dois modelos adicionais que
podem ser usados com seus dados.

Neste artigo, também farei referências repetidas ao método de mineração de dados chamado "vizinho mais próximo", apesar de não entrar
realmente em detalhes até a Parte 3. No entanto, eu o incluo nas comparações e descrições para este artigo para tornar as discussões completas.

Classificação vs. armazenamento em cluster vs. vizinho mais próximo

Antes de entrarmos nos detalhes específicos de cada método e executá-los através do WEKA, acho que devemos entender o que cada modelo se
esforçará para conseguir — que tipo de dados e que objetivos cada modelo tenta alcançar. Também colocaremos na discussão nosso modelo
existente — o modelo de regressão — para que seja possível ver como os três modelos se comparam ao modelo que já conhecemos. Usarei um
exemplo real para mostrar como cada modelo pode ser usado e como eles se diferem. Todos os exemplos reais giram em torno de uma
concessionária local da BMW e como ela pode aumentar as vendas. A concessionária armazenou todas suas informações de vendas passadas e
informações a respeito de cada pessoa que comprou uma BMW, olhou uma BMW ou procurou algo no salão de exposição da BMW. A
concessionária quer aumentar suas vendas futuras e empregar mineração de dados para conseguir isso.

Regressão

Pergunta: "Quanto deveríamos cobrar pela nova BMW M5?" Os modelos de regressão podem responder a essa pergunta com uma resposta
numérica. Um modelo de regressão usaria dados de vendas passadas sobre BMWs e M5s para determinar quanto as pessoas pagaram pelos
carros anteriores da concessionária, baseando-se nos atributos e características de vendas dos carros vendidos. Então, o modelo permitiria que a
concessionária da BMW inserisse os novos atributos do carro para determinar o preço.

Exemplo: Selling Price = $25,000 + ($2900 * Liters in Engine) + ($9000 * isSedan) + ($11,000 * isConvertible) + ($100
* inches of car) + ($22,000 * isM).

Classificação

http://www.ibm.com/developerworks/br/opensource/library/os-weka2/ 15/01/2013
Mineração de dados com o WEKA, Parte 2: Classificação e armazenamento em cluster Página 2 de 13

Pergunta: "Qual a probabilidade de uma pessoa X comprar o mais novo modelo BMW M5?" Criando uma árvore de classificação (uma árvore
de decisão), os dados podem ser minerados para determinar a probabilidade de essa pessoa comprar um novo M5. Possíveis nós na árvore seriam
idade, nível de renda, número atual de carros, estado civil, filhos, proprietário do imóvel ou inquilino. Os atributos dessa pessoa podem ser
usados em relação à árvore de decisão para determinar a probabilidade de ele comprar o M5.

Armazenamento em cluster

Pergunta: "Que faixa etária gosta da BMW M5 da cor prata?" Os dados podem ser minados para comparar a idade dos compradores prévios de
carros e as cores que eles compraram no passado. A partir desses dados, é possível encontrar se certas faixas etárias (22-30 anos de idade, por
exemplo) estão mais propensas a comprar um certo tipo de cor da BMW M5 (75 por cento compram azul). De maneira similar, pode ser exibido
que uma faixa etária diferente (55-62 anos, por exemplo) está mais propensa a comprar BMWs da cor prata (65 por cento compram prateadas, 20
por cento compram cinzas). Os dados, quando minerados, tendem a ser armazenados em cluster em volta de certas faixas etárias ou cores,
permitindo ao usuário determinar padrões nos dados rapidamente.

Vizinho mais próximo

Pergunta: "Quando as pessoas compram a BMW M5, quais outras opções elas tendem a comprar ao mesmo tempo?" Os dados podem ser
minerados para mostrar que quando as pessoas chegam e compram uma BMW M5, elas também compram a bagagem correspondente. (Isso
também é mostrado como uma análise de cesta). Usando esses dados, a concessionária de carros pode mover as promoções das bagagens
correspondentes para a parte da frente da concessionária ou até mesmo oferecer um anúncio no jornal para uma bagagem correspondente
grátis/com desconto ao comprar o M5, em um esforço para aumentar as vendas.

Classificação

Classificação (também conhecidas como árvores de classificação ou árvores de decisão) é um algoritmo de mineração de dados que cria um guia
passo a passo com a maneira para determinar a saída de uma nova instância de dados. A árvore criada é exatamente esta: uma árvore na qual
cada nó na árvore representa um ponto onde uma decisão deve ser tomada com base na entrada e você move para os próximos nós até alcançar
uma folha que mostre a saída prevista. Parece confuso, mas é realmente muito direto. Vamos examinar um exemplo.

Listagem 1. Árvore de classificação simples

[ Will You Read This Section? ]


/ \
Yes No
/ \
[Will You Understand It?] [Won't Learn It]
/ \
Yes No
/ \
[Will Learn It] [Won't Learn It]

Essa árvore de classificação simples procura responder à questão "Você entenderá árvores de classificação?" Em cada nó, responda à questão e
continue naquela ramificação até encontrar uma folha que responda sim ou não. Esse modelo pode ser usado para qualquer instância de dados
desconhecida e é possível prever se essa instância de dados desconhecida aprenderá sobre árvores de classificação perguntando-lhe somente duas
questões simples. Aparentemente, essa é a grande vantagem de uma árvore de classificação — ela não necessita de muitas informações sobre os
dados para criar uma árvore que pode ser muito exata e muito informativa.

Um importante conceito da árvore de classificação é similar ao que vimos no modelo de regressão da Parte 1: o conceito de usar um "conjunto
de treinamento" para produzir o modelo. Isso toma o conjunto de dados com valores de saída conhecidos e usa esse conjunto de dados para
construir nosso modelo. Então, sempre que possuirmos um novo ponto de dados, com um valor de saída desconhecido, o colocamos no modelo e
produzimos nossa saída esperada. Isso é igual ao que vimos no modelo de regressão. No entanto, esse tipo de modelo segue uma etapa adiante e
é uma prática comum pegar todo um conjunto de treinamento e dividi-lo em duas partes: pegue cerca de 60-80 por cento dos dados e coloque-os
em nosso conjunto de treinamento, que usaremos para criar o modelo; então, pegue os dados restantes e coloque-os em um conjunto de testes,
que usaremos imediatamente após criar o modelo para testar a exatidão de nosso modelo.

Por que essa etapa extra é importante nesse modelo? O problema é chamado superajuste: Se fornecermos dados demais na nossa criação do
modelo, o modelo será, na verdade, perfeitamente criado, mas somente para esses dados. Lembre-se: Gostaríamos de usar esse modelo para
prever valores futuros desconhecidos; não gostaríamos que o modelo predissesse valores que já conhecemos. É por isso que criamos um
conjunto de testes. Após criarmos o modelo, o verificamos para garantir que a exatidão do modelo que construímos não diminui com o conjunto
de testes. Isso garante que nosso modelo preverá, de maneira exata, valores futuros desconhecidos. Veremos isso em ação usando o WEKA.

Isso traz à tona um outro conceito importante das árvores de classificação: a noção de limpeza. Limpeza, como sugere o nome, envolve a
remoção de ramificações da árvore de classificação. Por que alguém gostaria de remover informações da árvore? Novamente, isso é devido ao
conceito de superajuste. Com o crescimento do conjunto de dados e do número de atributos, é possível criar árvores que se tornam cada vez mais
complexas. Em teoria, poderia haver uma árvore com leaves = (rows * attributes). Mas para que serviria isso? Isso não nos ajudará de
maneira alguma a prever valores futuros desconhecidos, já que ela é perfeitamente adequada somente para nossos dados de treinamento
existentes. Gostaríamos de criar um equilíbrio. Gostaríamos que nossa árvore fosse a mais simples possível, com o menor número de nós e
folhas possível. Mas também gostaríamos que ela fosse a mais exata possível. Isso é um dilema que veremos.

http://www.ibm.com/developerworks/br/opensource/library/os-weka2/ 15/01/2013
Mineração de dados com o WEKA, Parte 2: Classificação e armazenamento em cluster Página 3 de 13

Finalmente, o último ponto que gostaria de levantar sobre a classificação antes de usar o WEKA é sobre o positivo falso e o negativo falso.
Basicamente, um positivo falso é uma instância de dados em que o modelo que criamos prevê que ela deve ser positiva, mas, ao invés disso, o
valor real é negativo. De modo inverso, um negativo falso é uma instância de dados em que o modelo prevê que ela deve ser negativa, mas o
valor real é positivo.

Esses erros indicam que possuímos erros em nosso modelo, já que o modelo classifica alguns dados de maneira incorreta. Embora algumas
classificações incorretas possam ser esperadas, depende do criador do modelo determinar qual a porcentagem aceitável de erros. Por exemplo, se
o teste fosse para monitores cardíacos em um hospital, é claro que necessitaríamos de uma porcentagem de erros extremamente baixa. Por outro
lado, caso esteja simplesmente minerando alguns dados inventados em um artigo sobre mineração de dados, sua porcentagem de erros aceitável
pode ser muito maior. Para levar isso uma etapa adiante, é necessário decidir qual a porcentagem de negativos falsos vs. positivos falsos é
aceitável. O exemplo que vêm imediatamente à mente é um modelo de spam: Um positivo falso (um e-mail verdadeiro que é rotulado como
spam) é, provavelmente, muito mais danoso do que um negativo falso (uma mensagem de spam não rotulada como spam). Em um exemplo
como esse, é possível julgar que uma proporção mínima de 100:1 negativo falso:positivo falso seja aceitável.

OK — chega desse papo técnico e de plano de fundo sobre árvores de classificação. Vamos obter alguns dados reais e colocá-los em compasso
com o WEKA.

Conjunto de dados WEKA

O conjunto de dados que usaremos para nosso exemplo de classificação estará focado em nossa concessionária fictícia da BMW. A
concessionária está iniciando uma campanha promocional na qual está tentando vender uma garantia estendida de dois anos para seus clientes
passados. A concessionária já fez isso antes e reuniu 4.500 pontos de dados de vendas antigas de garantias estendidas. Os atributos no conjunto
de dados são:

• Colchete de renda [0=$0-$30k, 1=$31k-$40k, 2=$41k-$60k, 3=$61k-$75k, 4=$76k-$100k, 5=$101k-$150k, 6=$151k-$500k, 7=$501k+]
• Ano/mês de compra da primeira BMW
• Ano/mês de compra da BMW mais recente
• Se eles responderam à oferta de garantia estendida no passado

Vejamos Attribute-Relation File Format (ARFF) que usaremos neste exemplo.

Listagem 2. Dados WEKA de classificação

@attribute IncomeBracket {0,1,2,3,4,5,6,7}


@attribute FirstPurchase numeric
@attribute LastPurchase numeric
@attribute responded {1,0}

@data

4,200210,200601,0
5,200301,200601,1
...

Classificação no WEKA

Carregue o arquivo de dados bmw-training.arff (consulte Download) no WEKA usando as mesmas etapas que usamos até este ponto.
Observação: Esse arquivo contém somente 3.000 dos 4.500 registros que a concessionária possui em seus registros. Necessitamos dividir nossos
registros para que algumas instâncias de dados sejam usadas para criar o modelo e algumas sejam usadas para testar o modelo para garantir que
não o superajustamos. Após carregar os dados, sua tela deve se parecer à da Figura 1.

Figura 1. Classificação de dados da BMW no WEKA

http://www.ibm.com/developerworks/br/opensource/library/os-weka2/ 15/01/2013
Mineração de dados com o WEKA, Parte 2: Classificação e armazenamento em cluster Página 4 de 13

Como fizemos no modelo de regressão na Parte 1, selecionamos a guia Classify, selecionamos o nó trees e a folha J48 (Não sei o porquê este é
o nome oficial, mas selecione-a).

Figura 2. Algoritmo de classificação da BMW

Neste ponto, já estamos prontos para criar nosso modelo no WEKA. Garanta que Use training set esteja selecionado para que usemos o
conjunto de dados que acabamos de carregar para criar nosso modelo. Clique em Start e deixe que o WEKA seja executado. A saída desse
modelo deve-se parecer com as saídas na Listagem 3.

Listagem 3. Saída do modelo de classificação do WEKA


Number of Leaves : 28

Size of the tree : 43

Time taken to build model: 0.18 seconds

=== Evaluation on training set ===

http://www.ibm.com/developerworks/br/opensource/library/os-weka2/ 15/01/2013
Mineração de dados com o WEKA, Parte 2: Classificação e armazenamento em cluster Página 5 de 13

=== Summary ===

Correctly Classified Instances 1774 59.1333 %


Incorrectly Classified Instances 1226 40.8667 %
Kappa statistic 0.1807
Mean absolute error 0.4773
Root mean squared error 0.4885
Relative absolute error 95.4768 %
Root relative squared error 97.7122 %
Total Number of Instances 3000

=== Detailed Accuracy By Class ===

TP Rate FP Rate Precision Recall F-Measure ROC Area Class


0.662 0.481 0.587 0.662 0.622 0.616 1
0.519 0.338 0.597 0.519 0.555 0.616 0
Weighted Avg. 0.591 0.411 0.592 0.591 0.589 0.616

=== Confusion Matrix ===

a b <-- classified as
1009 516 | a = 1
710 765 | b = 0

O que significam todos esses números? Como sabemos se esse é um bom modelo? Onde está essa suposta "árvore" pela qual deveria estar
procurando? Todas são boas perguntas. Vamos responder uma por vez:

• O que significam todos esses números? Os números importantes que devem ser focados aqui são os números próximos às "Correctly
Classified Instances" (59,1 por cento) e às "Incorrectly Classified Instances" (40,9 por cento). Outros números importantes estão na coluna
"ROC Area", na primeira fila (o 0,616); explicarei esse número mais tarde, mas tenha-o em mente. Finalmente, em "Confusion Matrix", o
número de positivos falsos e negativos falsos é mostrado. Os positivos falsos são 516 e os negativos falsos são 710 nessa matriz.
• Como sabemos se esse é um bom modelo? Bem, baseando-se em nossa taxa de exatidão de somente 59,1 por cento, teria que dizer que
através de uma análise inicial, esse não é um modelo muito bom.
• Onde está essa suposta árvore? É possível ver a árvore clicando com o botão direito do mouse no modelo que você acabou de criar, na
lista de saídas. No menu pop-up, selecione Visualize tree. Você verá a árvore de classificação que acabamos de criar, apesar de que, neste
exemplo, a árvore visual não oferece muita ajuda. Nossa árvore é mostrada na Figura 3. A outra maneira de ver a árvore e olhar para a
parte mais superior no Classifier Output, onde a saída de texto mostra toda a árvore, com nós e folhas.

Figura 3. Visualização da árvore de classificação

Há uma etapa final para validar nossa árvore de classificação, que é executar nosso conjunto de testes no modelo para garantir a exatidão do
modelo ao avaliar se o conjunto de testes não é muito diferente do conjunto de treinamento. Para fazer isso, em Test options, selecione o botão
de opções Supplied test set e clique em Set. Escolha o arquivo bmw-test.arff, que contém 1.500 registros que não estavam no conjunto de
treinamento que usamos para criar o modelo. Desta vez, ao clicarmos em Start, o WEKA executará este conjunto de dados de teste no modelo
que já criamos e nos avisará como o modelo se saiu. Vamos fazer isso, clicando em Start. Abaixo está a saída.

http://www.ibm.com/developerworks/br/opensource/library/os-weka2/ 15/01/2013
Mineração de dados com o WEKA, Parte 2: Classificação e armazenamento em cluster Página 6 de 13

Figura 4. Teste da árvore de classificação

Comparando as "Correctly Classified Instances" desse conjunto de testes (55,7 por cento) com as "Correctly Classified Instances" do conjunto de
treinamento (59,1 por cento), vemos que a exatidão do modelo é bem próxima, o que indica que o modelo não falhará com dados desconhecidos
ou quando dados futuros forem aplicados a ele.

No entanto, devido ao fato de a exatidão do modelo ser tão ruim, classificando somente 60 por cento dos registros de dados corretamente,
poderíamos dar um passo atrás e dizer, "Nossa! Esse modelo não é muito bom. Está somente um pouco acima de 50 por cento, o que eu poderia
obter somente adivinhando valores de maneira aleatória." Isso é totalmente verdade. Isso nos leva a um ponto importante que eu gostaria de
esclarecer, em segredo, a todos: Algumas vezes, aplicar um algoritmo de mineração de dados a seus dados produzirá um modelo ruim. Isso é
particularmente verdadeiro aqui e foi feito de propósito.

Eu quis lhe mostrar as etapas para produzir um modelo de árvore de classificação com dados que parecem ser ideais para um modelo de
classificação. No entanto, os resultados que obtivemos do WEKA, indicam que estávamos errados. Uma árvore de classificação não é o modelo
que deveríamos ter escolhido aqui. O modelo que criamos nos diz absolutamente nada e, caso o usássemos, poderíamos tomar decisões ruins e
desperdiçar dinheiro.

Isso significa que esses dados não podem ser minerados? A resposta é um outro ponto importante com relação à mineração de dados: o modelo
do vizinho mais próximo, discutido em um artigo futuro, usará esse mesmo conjunto de dados, mas criará um modelo que é 88 por cento exato.
Ele tem o objetivo de provar que é necessário escolher o modelo certo para que os dados certos obtenham informações boas e significantes.

Leitura adicional: Caso esteja interessado em aprender mais sobre árvores de classificação, aqui estão algumas palavras-chave para procurar e
que eu não tive espaço para detalhá-las neste artigo: curvas ROC, AUC, positivos falsos, negativos falsos, curvas de aprendizado, Naive Bayes,
ganho de informações, superajuste, limpeza, teste qui-quadrado.

Armazenamento em cluster

O armazenamento em cluster permite que um usuário faça grupos de dados para determinar padrões a partir dos dados. O armazenamento em
cluster tem suas vantagens quando o conjunto de dados for definido e um padrão geral necessitar ser determinado a partir dos dados. É possível
criar um número específico de grupos, dependendo de suas necessidades de negócio. Um benefício decisivo do armazenamento em cluster sobre
a classificação é que cada atributo no conjunto de dados será usado para analisar os dados. (Se você se lembrar do método de classificação,
somente um subconjunto de atributos é usado no modelo.) Uma grave desvantagem de usar o armazenamento em cluster é que o usuário
necessita saber de antemão quantos grupos ele gostaria de criar. Para um usuário sem qualquer conhecimento real de seus dados, isso pode ser
difícil. Deveria criar três grupos? Cinco grupos? Dez grupos? Pode levar várias etapas de tentativa e erro para determinar o número ideal de
grupos a serem criados.

No entanto, para o usuário médio, o armazenamento em cluster pode ser o método de mineração de dados mais útil que pode ser usado. Ele pode
pegar, rapidamente, todo seu conjunto de dados e transformá-lo em grupos, a partir dos quais é possível tirar algumas conclusões rapidamente. A
matemática por trás desse método é relativamente complexa e confusa. Por isso aproveitamos todas as vantagens do WEKA.

Visão geral da matemática

Essa deve ser considerada uma visão geral rápida e não detalhada da matemática e do algoritmo usados no método de armazenamento em
cluster:

http://www.ibm.com/developerworks/br/opensource/library/os-weka2/ 15/01/2013
Mineração de dados com o WEKA, Parte 2: Classificação e armazenamento em cluster Página 7 de 13

1. Cada atributo nesse conjunto de dados deve ser normalizado, pelo qual cada valor é dividido pela diferença entre o valor alto e o valor
baixo no conjunto de dados para esse atributo. Por exemplo, se o atributo for idade e o valor mais alto for 72 e o valor mais baixo for 16,
então, a idade 32 deve ser normalizada para 0,5714.
2. Dado o número de clusters desejados, selecione, de maneira aleatória, esse número de amostras do conjunto de dados para servir como
nossos centros iniciais de teste de clusters. Por exemplo, caso deseje ter três clusters, você selecionaria, de maneira aleatória, três linhas de
dados do conjunto de dados.
3. Calcule a distância de cada amostra de dados até o centro do cluster (ou linha de dados selecionada aleatoriamente), usando o método de
cálculo de distância dos mínimos quadrados.
4. Atribua cada linha de dados a um cluster, baseando-se na distância mínima até cada centro do cluster.
5. Calcule o centroide, que é a média de cada coluna de dados usando somente os membros de cada cluster.
6. Calcule a distância de cada amostra de dados até os centroides recém-criados. Se os clusters e membros de cluster não mudarem, você
terminou e os clusters estão criados. Caso eles mudem, é necessário começar novamente voltando à etapa 3 e continuando novamente até
que os clusters não sejam modificados.

Obviamente, isso não parece muito divertido. Com um conjunto de dados de 10 linhas e três clusters, pode-se levar 30 minutos para que
funcione usando uma planilha. Imagine o tempo que levaria para fazer isso à mão se você tivesse 100.000 linhas de dados e quisesse 10 clusters.
Felizmente, um computador pode fazer esse tipo de cálculo em poucos segundos.

Conjunto de dados para WEKA

O conjunto de dados que usaremos para nosso exemplo de armazenamento em cluster estará novamente focado em nossa concessionária fictícia
da BMW. A concessionária acompanhou quantas pessoas passaram pela concessionária e pelo salão de exibição, que carros eles olharam e com
que frequência eles, enfim, compraram. Eles esperam minerar esses dados encontrando padrões nos dados e usando clusters para determinar se
surgiram certos comportamentos em seus clientes. Há 100 colunas de dados nessa amostra e cada coluna descreve as etapas em que os clientes
chegaram em sua experiência com a BMW, com uma coluna possuindo 1 (eles chegaram a essa etapa ou olharam esse carro) ou 0 (eles não
chegaram a essa etapa). A Listagem 4 mostra os dados ARFF que usaremos com o WEKA.

Listagem 4. Dados WEKA de armazenamento em cluster

@attribute Dealership numeric


@attribute Showroom numeric
@attribute ComputerSearch numeric
@attribute M5 numeric
@attribute 3Series numeric
@attribute Z4 numeric
@attribute Financing numeric
@attribute Purchase numeric

@data

1,0,0,0,0,0,0,0
1,1,1,0,0,0,1,0
...

Armazenamento em cluster no WEKA

Carregue o arquivo de dados bmw-browsers.arff no WEKA usando as mesmas etapas que usamos para carregar dados na guia Preprocess. Leve
alguns minutos para dar uma olhada nos dados nessa guia. Veja as colunas, os dados do atributo, a distribuição das colunas, etc. Sua tela deve se
parecer com a da Figura 5 após carregar os dados.

Figura 5. Dados de cluster da BMW no WEKA

http://www.ibm.com/developerworks/br/opensource/library/os-weka2/ 15/01/2013
Mineração de dados com o WEKA, Parte 2: Classificação e armazenamento em cluster Página 8 de 13

Esperamos criar clusters com esse conjunto de dados, então, ao invés de clicar na guia Classify, clique na guia Cluster. Clique em Choose e
selecione SimpleKMeans a partir das opções que aparecem (essa será nossa preferência para método de armazenamento em cluster para este
artigo). Neste momento, sua janela do WEKA Explorer deve se parecer com a da Figura 6.

Figura 6. Algoritmo de armazenamento em cluster da BMW

Finalmente, queremos ajustar os atributos de nosso algoritmo do cluster clicando em SimpleKMeans (não é o melhor design de UI, mas siga em
frente). O único atributo do algoritmo que nos interessa ajustar aqui é o campo numClusters, que nos diz quantos clusters desejamos criar.
(Lembre-se: é necessário saber disso antes de começar.) Vamos alterar o valor padrão de 2 para 5, por enquanto, mas lembre-se dessas etapas
caso queira ajustar o número de clusters criados. Neste momento, seu WEKA Explorer deve se parecer com o da Figura 7. Clique em OK para
aceitar esses valores.

Figura 7. Atributos do cluster

http://www.ibm.com/developerworks/br/opensource/library/os-weka2/ 15/01/2013
Mineração de dados com o WEKA, Parte 2: Classificação e armazenamento em cluster Página 9 de 13

Nesse ponto, estamos prontos para executar o algoritmo de armazenamento em cluster. Lembre-se de que 100 linhas de dados com cinco clusters
de dados provavelmente levariam algumas horas de cálculo com uma planilha, mas o WEKA pode dar a resposta em menos de um segundo. Sua
saída deve se parecer com a da Listagem 5.

Listagem 5. Saída do cluster

Cluster#
Attribute Full Data 0 1 2 3 4
(100) (26) (27) (5) (14) (28)
==================================================================================
Dealership 0.6 0.9615 0.6667 1 0.8571 0
Showroom 0.72 0.6923 0.6667 0 0.5714 1
ComputerSearch 0.43 0.6538 0 1 0.8571 0.3214
M5 0.53 0.4615 0.963 1 0.7143 0
3Series 0.55 0.3846 0.4444 0.8 0.0714 1
Z4 0.45 0.5385 0 0.8 0.5714 0.6786
Financing 0.61 0.4615 0.6296 0.8 1 0.5
Purchase 0.39 0 0.5185 0.4 1 0.3214

Clustered Instances

0 26 ( 26%)
1 27 ( 27%)
2 5 ( 5%)
3 14 ( 14%)
4 28 ( 28%)

Como interpretamos esses resultados? Bem, a saída está nos dizendo como cada cluster se une, com um "1" significando que cada um naquele
cluster compartilha o mesmo valor de um e com um "0" indicando que cada um naquele cluster possui um valor de zero para aquele atributo. Os
números são o valor médio de todos no cluster. Cada cluster nos mostra um tipo de comportamento em nossos clientes, do qual podemos
começar a tirar algumas conclusões.

• Cluster 0 — Podemos chamar esse grupo de "Sonhadores", já que parece que eles andam pela concessionária, olhando os carros
estacionados nos estacionamentos, mas diminui no que diz respeito a entrar na concessionária e, o pior de tudo, eles não compram nada.
• Cluster 1 — Chamamos esse grupo de "Amantes do M5" pois eles tendem a ir diretamente em direção aos M5, ignorando os carros 3-
series e o Z4. No entanto, eles não possuem uma alta taxa de compra — somente 52 por cento. Esse é um potencial problema e poderia ser
um foco de melhoria para a concessionária, talvez enviando mais vendedores para a seção do M5.
• Cluster 2 — Esse grupo é tão pequeno que podemos chamá-lo de "Jogados Fora", pois eles não são estatisticamente relevantes e não
podemos tirar nenhuma conclusão boa de seu comportamento. (Algumas vezes, isso acontece com clusters e pode indicar que é necessário
reduzir o número de clusters criados).
• Cluster 3 — Esse grupo será chamado de "Bebês da BMW" pois eles sempre acabam comprando um carro e sempre acabam financiando-
o. Aqui é onde os dados nos mostram algumas coisas interessantes: Parece que eles andam pelo estacionamento olhando para os carros,
então usam a pesquisa do computador disponível na concessionária. Enfim, eles tendem a comprar M5s ou Z4s (mas nunca 3-series). Esse
cluster diz à concessionária que ela deveria considerar tornar os computadores de pesquisa mais notáveis nos estacionamentos
(computadores de pesquisa do lado de fora?) e, talvez, fazer com que o M5 ou o Z4 fossem muito mais notáveis nos resultados da
pesquisa. Quando o cliente tiver decidido comprar um veículo, ele sempre se qualifica para o financiamento e conclui a compra.

http://www.ibm.com/developerworks/br/opensource/library/os-weka2/ 15/01/2013
Mineração de dados com o WEKA, Parte 2: Classificação e armazenamento em cluster Página 10 de 13

• Cluster 4 — Chamaremos esse grupo de "Começando com a BMW", pois eles sempre olham o 3-series e nunca olham para o M5, que é
muito mais caro. Eles entram diretamente no salão de exibição, preferem não andar pelo estacionamento e tendem a ignorar os terminais
de pesquisa por computador. Enquanto que 50 por cento chegam ao estágio de financiamento, somente 32 por cento acabam finalizando a
transação. A concessionária poderia concluir que esses clientes que esperam comprar seu primeiro BMW sabem exatamente que tipo de
carro desejam (o modelo de nível de entrada 3-series) e esperam qualificar-se para o financiamento e terem condições financeiras de
comprá-lo. A concessionária poderia, possivelmente, aumentar as vendas para esse grupo relaxando seus padrões de financiamento ou
reduzindo os preços do 3-series.

Uma outra maneira interessante de examinar os dados nesses clusters é inspecioná-los visualmente. Para fazer isso, clique com o botão direito na
seção Result List da guia Cluster (novamente, não é o melhor design de UI). Uma das opções desse menu pop-up é Visualize Cluster
Assignments. Uma janela aparecerá e deixará que você brinque com os resultados e possa visualizá-los. Para esse exemplo, altere o eixo X para
ser M5 (Num), o eixo Y para ser Purchase (Num)e a cor para ser Cluster (Nom). Isso nos mostrará, em um gráfico, como os clusters estão
agrupados com base em quem olhou o M5 e quem o comprou. Aumente também o "Jitter" para cerca de três quartos do limite, o que espalhará
artificialmente os pontos de plotagem para permitir que os vejamos de maneira mais fácil.

Os resultados visuais correspondem-se às conclusões que tiramos dos resultados na Listagem 5? Bem, podemos ver no ponto X=1, Y=1 (as
pessoas que olharam os M5s e fizeram uma compra) que os únicos clusters representados aqui são 1 e 3. Também podemos ver que os únicos
clusters no ponto X=0, Y=0 são 4 e 0. Isso corresponde às conclusões acima? Sim, corresponde. Os clusters 1 e 3 estavam comprando os M5s,
enquanto que o cluster 0 não estava comprando nada e o cluster 4 estava somente olhando o 3-series. A Figura 8 mostra o layout visual do
cluster para nosso exemplo. Sinta-se livre para brincar com os eixos X e Y para tentar identificar outras tendências e padrões.

Figura 8. Inspeção visual do cluster

Leitura adicional: Se estiver interessado em dar continuidade ao tópico, leia sobre os seguintes termos: Distância euclidiana, algoritmo de
Lloyd, distância de Manhattan, distância de Chebyshev, soma dos quadrados dos erros, centroides de cluster.

Conclusão

Este artigo discutiu dois algoritmos de mineração de dados: a árvore de classificação e o armazenamento em cluster. Esses algoritmos são
diferentes do algoritmo do modelo de regressão explicado na Parte 1, na qual não estamos restritos a uma saída numérica de nosso modelo. Esses
dois modelos nos permitem ter maior flexibilidade com nossa saída e podem ser armas mais poderosas em nosso arsenal de mineração de dados.

A árvore de classificação cria, literalmente, uma árvore com ramificações, nós e folhas que nos deixa tomar um ponto de dados desconhecido e
descer pela árvore, aplicando os atributos do ponto de dados à árvore até chegarmos a uma folha e a saída desconhecida do ponto de dados puder
ser determinada. Aprendemos que, para criar um bom modelo de árvore de classificação, necessitamos possuir um conjunto de dados existente
com saída conhecida a partir da qual possamos construir nosso modelo. Também vimos que necessitamos dividir nossos conjuntos de dados em
duas partes: um conjunto de treinamento, que é usado para criar o modelo e um conjunto de testes, que é usado para verificar a exatidão do
modelo e se ele não está superajustado. Como um ponto final nesta seção, mostrei que, algumas vezes, mesmo quando um modelo de dados
criado parece estar correto, ele não está, e é necessário descartar todo o modelo e algoritmo procurando por algo melhor.

O algoritmo do armazenamento em cluster toma um conjunto de dados e divide os dados em grupos para que seja possível fazer conclusões
baseando-se nas tendências vistas nesses grupos. O armazenamento em cluster difere da classificação e da regressão por não produzir uma

http://www.ibm.com/developerworks/br/opensource/library/os-weka2/ 15/01/2013
Mineração de dados com o WEKA, Parte 2: Classificação e armazenamento em cluster Página 11 de 13

variável de saída única, o que leva a conclusões fáceis, mas ao invés disso, necessita que você observe a saída e tente chegar a suas próprias
conclusões. Como vimos no exemplo, o modelo produziu cinco clusters, mas coube a nós interpretar os dados dentro dos clusters e chegar a
conclusões a partir dessas informações. Com respeito a isso, pode ser difícil acertar seu modelo de armazenamento em cluster (penso no que
aconteceria se criássemos clusters demais ou de menos), mas, de modo inverso, fomos capazes de obter algumas informações interessantes a
partir dos resultados — coisas que nunca seríamos capazes de notar usando os outros modelos que discutimos até agora.

A Parte 3 encerrará a série "Mineração de dados com o WEKA" concluindo nossa discussão sobre modelos com o modelo do vizinho mais
próximo. Também veremos o WEKA usando uma biblioteca Java™ de terceiros, ao invés de um aplicativo independente, permitindo que a
integremos diretamente em nosso código do lado do servidor. Isso permitirá que mineremos os dados diretamente em nossos servidores, sem a
necessidade de manipulá-los em um arquivo ARFF ou executá-los à mão.

Download

Descrição Nome Tamanho Método de download


Sample code os-weka2-Examples.zip 17KB HTTP

Informações sobre métodos de download

Recursos

Aprender

• O WEKA solicita que todas as publicações a seu respeito citem o artigo "The WEKA Data Mining Software: An Update," escrito por
Mark Hall, Eibe Frank, Geoffrey Holmes, Bernhard Pfahringer Peter Reutemann e Ian H. Witten.

• Veja como usar uma planilha para um modelo de regressão simples com este vídeo no YouTube.

• Confira o Web site do WEKA para obter toda a documentação e um FAQ sobre o software.

• Leia mais a respeito da Análise de regressão na Wikipédia, que, provavelmente, possui uma grande quantidade de detalhes técnicos.

• Leia os detalhes sobre o ARFF, para que seja possível carregar seus dados no WEKA.

• A IBM possui seu próprio software de mineração de dados e "Integrate InfoSphere Warehouse data mining with IBM Cognos reporting,
Part 1" é um bom ponto de partida.

• Para ouvir entrevistas e discussões interessantes para desenvolvedores de software, consulte os podcasts do developerWorks.

• Mantenha-se atualizado com os eventos e webcasts técnicos do developerWorks.

• Siga o developerWorks no Twitter.

• Consulte as próximas conferências, feiras, webcasts e outros Eventos em todo o mundo que sejam de interesse dos desenvolvedores IBM
de software livre.

• Visite a Zona de software livre do developerWorks para obter informações abrangentes sobre procedimentos, ferramentas e atualizações
de projetos que simplificam o desenvolvimento de tecnologias de software livre e a utilização destas com produtos IBM; e não deixe de
passar pelos nossos artigos e tutoriais mais populares.

• A comunidade My developerWorks é um exemplo de comunidade geral de sucesso que abrange uma ampla gama de assuntos.

• Assista e aprenda sobre a IBM e as tecnologias e funções de produtos de software livre com as demos on demand do developerWorks
grátis.

Obter produtos e tecnologias

• Faça o download do WEKA para executá-lo em seu próprio sistema.

• Também é possível ver detalhes específicos sobre o software IBM DB2 Intelligent Miner para fazer uma comparação com o WEKA.

• Inove em seu próximo projeto de desenvolvimento de software livre com o software de avaliação da IBM, disponível para download ou
em DVD.

• Faça download das versões de avaliação de produtos IBM ou explore as avaliações on-line no IBM SOA Sandbox e utilize as ferramentas
de desenvolvimento de aplicativos e produtos de middleware do DB2®, Lotus®, Rational®, Tivoli® e WebSphere®.

Discutir

http://www.ibm.com/developerworks/br/opensource/library/os-weka2/ 15/01/2013
Mineração de dados com o WEKA, Parte 2: Classificação e armazenamento em cluster Página 12 de 13

• Confira também o novo grupo de Mineração de dados no My developerWorks.

• Participe dos blogs developerWorks e envolva-se na comunidade do developerWorks.

Sobre o autor

Em 11 anos de trabalho com tecnologia, Michael Abernethy trabalhou com uma grande variedade de tecnologias e uma grande variedade de
clientes. Ele trabalha atualmente como Gerente de Desenvolvimento de Produtos para a Optimal Auctions, uma empresa de software de leilão.
Atualmente, seu foco está em Rich Internet Applications e em torná-los mais complexos e mais simples ao mesmo tempo. Quando não está
trabalhando em seu computador, ele pode ser encontrado na praia, no México, lendo um bom livro.

Fechar [x]

developerWorks: Registre-se
IBM ID:
Precisa de um ID IBM?
Esqueceu seu ID IBM?

Senha:
Esqueceu sua senha?
Alterar sua senha

Mantenha-me conectado.

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

Enviar Cancelar

Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil
developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que
escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Todas as informações enviadas são seguras.

Fechar [x]

Selecione seu nome de exibição


Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de
exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve
ser o seu endereço de email por motivo de privacidade.

Nome de exibição: (Deve possuir de 3 a 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

Enviar Cancelar

Todas as informações enviadas são seguras.

Média de classificação (27 votos)

1 estrela

1 estrela

http://www.ibm.com/developerworks/br/opensource/library/os-weka2/ 15/01/2013
Mineração de dados com o WEKA, Parte 2: Classificação e armazenamento em cluster Página 13 de 13

2 estrelas

2 estrelas
3 estrelas

3 estrelas
4 estrelas

4 estrelas
5 estrelas

5 estrelas

Enviar

Incluir comentário:

Conectar or registre-se para deixar um comentário.

Observação: elementos HTML não são suportados nos comentários.

Notificar-me quando um comentário for adicionado1000 caracteres restantes

Postar
Postar

Total de comentários (1)

Boa tarde Michael Abernethy.

Estou desenvolvendo a minha monografia com o tema e data mining.


Pretendo realizar uma análise de credito bancário utilizando duas ferramentas de data mining, sendo uma utilizando a técnica de árvore de
decisão e outra redes neurais.
Estou gostando bastante, porém estou um pouco preocupado com a prática.
Você poderia me dar algumas dicas?

Meu e-meil é [email protected]

Desde já agradeço a ajuda e atenção

Enviado por portaljonatas em 13/Jun/2012

Relatar abuso

http://www.ibm.com/developerworks/br/opensource/library/os-weka2/ 15/01/2013

Você também pode gostar