Upload
emerson-butzen
View
50
Download
0
Embed Size (px)
DESCRIPTION
Sistemas de Apoio a Decisão, normalmente utilizados em empresas no processo de tomada de decisão, também são utilizados em equipes de voleibol e/ou em outros esportes, com a finalidade de gerar melhores resultados. Nesse universo de equipes esportivas, foram elaborados sistemas estatísticos de monitoramento de desempenho de atletas e de equipes, também conhecidos como sistemas de scout, permitindo às comissões técnicas decidirem sobre treinamentos, estratégias de jogo e táticas sobre jogadas. Contudo, a quantia de informações (precisas e/ou desnecessárias) é mesmo assim enorme, deixando o processo de decidir bastante empírico, ou seja, dependente da experiência do técnico ou de algum integrante da comissão técnica. A mineração de dados (data mining) entra nesse campo com o intuito de descobrir informações mais precisas, evitando assim informações desnecessárias. Dessa forma, o objetivo deste trabalho é realizar a análise e o projeto de um módulo de data mining para o sistema de scout do projeto de pesquisa “A IA entrando na quadra de vôlei: Scout Inteligente”.
Citation preview
CENTRO UNIVERSITÁRIO FEEVALE
ÉMERSON BUTZEN
PROPOSTA DE UM MÓDULO DE DATA MINING PARA
SISTEMA DE SCOUT NO VOLEIBOL
Novo Hamburgo, novembro de 2008.
ÉMERSON BUTZEN MARQUES
PROPOSTA DE UM MÓDULO DE DATA MINING PARA
SISTEMA DE SCOUT NO VOLEIBOL
Centro Universitário Feevale
Instituto de Ciências Exatas e Tecnológicas
Curso de Sistemas de Informação
Trabalho de Conclusão de Curso
Professor Orientador: Alexandre de Oliveira Zamberlam
Novo Hamburgo, novembro de 2008.
AGRADECIMENTOS
Gostaria de agradecer a todos os que, de alguma
maneira, contribuíram para a realização desse
trabalho de conclusão, em especial:
Meu pai, José Jorge Marques da Silveira, que
foi quem me ensinou a nunca desistir, minha
mãe, Teresinha Dolores Butzen Marques, pela
dedicação aos filhos, meu orientador,
Alexandre de Oliveira Zamberlam, que me
auxiliou de maneira única para a realização
deste projeto, a minha namorada, Mônica
Reichert, pelo incentivo a crescer sempre e
paciência em alguns momentos, ao meu amigo
Rafael Arnold pela oportunidade que me
indicou, aos amigos tricolores (Hoff, Minuzzo e
Thiago), aos demais amigos e pessoas que
convivem comigo, minha sincera gratidão, pelo
apoio em todos os períodos do trabalho.
Obrigado pela confiança.
RESUMO
Sistemas de Apoio a Decisão, normalmente utilizados em empresas no processo de
tomada de decisão, também são utilizados em equipes de voleibol e/ou em outros esportes,
com a finalidade de gerar melhores resultados. Nesse universo de equipes esportivas, foram
elaborados sistemas estatísticos de monitoramento de desempenho de atletas e de equipes,
também conhecidos como sistemas de scout, permitindo às comissões técnicas decidirem
sobre treinamentos, estratégias de jogo e táticas sobre jogadas. Contudo, a quantia de
informações (precisas e/ou desnecessárias) é mesmo assim enorme, deixando o processo de
decidir bastante empírico, ou seja, dependente da experiência do técnico ou de algum
integrante da comissão técnica. A mineração de dados (data mining) entra nesse campo com o
intuito de descobrir informações mais precisas, evitando assim informações desnecessárias.
Dessa forma, o objetivo deste trabalho é realizar a análise e o projeto de um módulo de data
mining para o sistema de scout do projeto de pesquisa “A IA entrando na quadra de vôlei:
Scout Inteligente”.
Palavras-chave: Sistemas de Apoio a Decisão. Mineração de Dados. Sistema de
Monitoramento de Desempenho. Scout Voleibol.
ABSTRACT
Decision Support Systems, normally used in companies in the making decisions
process, also are used in volleyball teams and/or in other sports, with the aim to get better
results. In this universe of sport teams, statistics systems of performance tracking of athletes
and of teams were prepared, also known like scout (Scout Systems), allowing to the technical
committees decide about training, game strategies and tactical moves. However, the amount
of information (precise and/or unnecessary) is, anyway, enormous, letting the decision
process a lot empirical, in other words, dependent on the couch experience or on any other
person of the technical committee. The data mining gets into this field with the purpose of
discovering precise information, avoiding unnecessary information. This way, the goal of this
study is to perform the analysis and the project of a data mining module to the scout system of
the research project “The IA getting into the volleyball court: Intelligent Scout”.
Key words: Decision Support Systems. Data Mining. Statistics Systems of Performance
Tracking of Athletes. Scout Volleyball.
LISTA DE FIGURAS
Figura 1.1 – Etapas que precedem a aplicação de técnicas de Mineração de Dados ............... 17
Figura 1.2 – Árvore de Decisão de classificação de grau ......................................................... 24
Figura 1.3 – Exemplos de diferentes esquemas ........................................................................ 25
Figura 1.4 – Aproveitamento de Saque (Atleta/Tempo de Jogo) ............................................. 28
Figura 2.1 – Figura da tabela de análise estatística dos fundamentos de voleibol. .................. 34
Figura 3.1 – Esquema geral do scout inteligente ...................................................................... 40
Figura 3.2 – Modelagem do banco de dados do sistema scout................................................. 41
Figura 3.3 – Modelagem do banco de dados alterada .............................................................. 42
Figura 3.4 – Diagrama de Atividade do sistema scout de Raimann (2008) ............................. 43
Figura 3.5 – Mapa Conceitual do Fundamento Saque.............................................................. 44
Figura 3.6 – Mapa Conceitual dos Fundamentos Defesa/Passe ............................................... 45
Figura 3.7 – Mapa Conceitual dos Fundamentos Levantamento ............................................. 45
Figura 3.8 – Mapa Conceitual dos Fundamentos Cortada........................................................ 46
Figura 3.9 – Mapa Conceitual dos Fundamentos Bloqueio...................................................... 46
Figura 3.10 – Diagrama de Caso de Uso geral ......................................................................... 50
Figura 3.11 – Diagrama de Caso de Uso geral do módulo de Mineração de Dados ................ 51
Figura 3.12 – Diagrama de Atividade referente a gerar dados para análise ............................. 53
Figura 3.13 – Diagrama de Atividade referente a selecionar dados gerados para análise ....... 55
Figura 3.14 – Diagrama de Atividade referente a aplicar técnicas de mineração de dados ..... 57
Figura 3.15 – Diagrama de Classes referente a integração do módulo MD e o WEKA .......... 59
Figura 3.16 – Diagrama de Seqüência referente ao caso de uso UC001 (Gerar Dados para
Análise) ..................................................................................................................................... 60
Figura 3.17 – Diagrama de Seqüência referente ao caso de uso UC002 (Selecionar Dados
Gerados para Análise) .............................................................................................................. 60
Figura 3.18 – Diagrama de Seqüência referente ao caso de uso UC002 (Selecionar Dados
Gerados para Análise) .............................................................................................................. 61
Figura 4.1 – Protótipo da tela inicial do módulo de mineração de dados................................. 65
Figura 4.2 – Protótipo da tela de geração de dados para o módulo de MD .............................. 65
Figura 4.3 – Protótipo da tela de selecionar dados gerados para análise.................................. 66
Figura 4.4 – Protótipo da tela de aplicar técnicas de mineração de dados ............................... 66
Figura 4.5 – Modelagem do Data Mart .................................................................................... 67
Figura 4.6 – Figura apresenta o código fonte da classe de integração ClusteringEM .............. 69
Figura 4.7 – Figura apresenta o código fonte da classe de integração ClusteringFarthestFirst 70
Figura 4.8 – Figura apresenta o arquivo ARFF submetido ao algoritmo EM do WEKA ........ 71
Figura 4.9 – Figura apresenta o resultado da aplicação do algoritmo EM do WEKA ............. 72
Figura 4.10 – Figura do arquivo ARFF submetido ao algoritmo FarthestFirst do WEKA ...... 73
Figura 4.11 – Figura mostra o resultado da aplicação do algoritmo FarthestFirst do WEKA . 73
Figura Apêndice 1 – Função SQL do PostgreSQL para geração de dados no DataMart ........ 81
Figura Apêndice 2 – Função SQL do PostgreSQL que gera o arquivo para o relatório de
agrupamento de atletas por efeito de fundamento .................................................................... 82
Figura Apêndice 3 – Função SQL do PostgreSQL que gera o arquivo para o relatório de
agrupamento de atletas por posição e efeito de fundamento .................................................... 82
LISTA DE TABELAS
Tabela 1.1 – Jogos de jogadores e aproveitamento do fundamento bloqueio .......................... 21
Tabela 1.2 – Classificação de dados do grau ............................................................................ 23
Tabela 1.3 – Simples exemplo de agrupamento de informação ............................................... 24
Tabela 1.4 – Aproveitamento de Saque (Atleta/Tempo de Jogo)............................................. 27
LISTA DE QUADROS
Quadro 3.1 – Caso de Uso Gerar Dados para Análise.............................................................. 51
Quadro 3.2 – Caso de Uso Selecionar Dados Gerados para Análise ....................................... 53
Quadro 3.3 – Caso de Uso Aplicar Técnicas de Mineração de Dados ..................................... 55
LISTA DE ABREVIATURAS E SIGLAS
MD Mineração de Dados
DM Data Mining
DCBD Descoberta de Conhecimento em Base de Dados
KDD Knowledge Discovery in Databases
OLAP On-Line Analytic Processing
SGBD Sistema de Gerenciamento de Banco de Dados
SUMÁRIO
INTRODUÇÃO ...................................................................................................................... 13
1 MINERAÇÃO DE DADOS ................................................................................................ 16 1.1 O processo de mineração de dados ................................................................................ 17
1.1.1 Definição do problema ........................................................................................ 18
1.1.2 Coleta dos dados .................................................................................................. 18
1.1.3 Pré-processamento dos dados .............................................................................. 19 1.1.4 Especificação do possível método ....................................................................... 20 1.1.5 Interpretação e análise dos dados produzidos pelo método ................................. 20
1.2 Principais métodos de mineração de dados ................................................................... 21 1.2.1 Regras de Associação (Association Rules) .......................................................... 21
1.2.2 Classificação (Classification) .............................................................................. 22 1.2.3 Agrupamento (Clustering) ................................................................................... 24 1.2.4 Dados em séries temporais (Time-Series Data) ................................................... 26
1.2.5 Padrões seqüenciais (Sequential Patterns) .......................................................... 29
1.3 Ferramentas de Mineração de Dados ............................................................................ 30
1.3.1 WEKA ................................................................................................................. 30 1.3.2 RapidMiner .......................................................................................................... 31
2 SCOUT .................................................................................................................................. 33 2.1 Trabalho Correlato - Advanced Scout: Data Mining and Knowledge Discovery in NBA
Data 36 2.2 Utilização de técnicas de KDD em um call center ativo ............................................... 37
3 A PROPOSTA DE MÓDULO DE MINERAÇÃO .......................................................... 39 3.1 Especificação dos requisitos .......................................................................................... 47
3.1.1 Requisitos funcionais ........................................................................................... 47 3.1.2 Requisitos não funcionais .................................................................................... 48
3.2 Casos de Uso ................................................................................................................. 49
3.2.1 Diagrama de Casos de Uso .................................................................................. 50
3.2.2 Casos de Uso Estendidos ..................................................................................... 51
3.3 Diagrama de Classes ...................................................................................................... 58 3.4 Diagrama de Seqüência ................................................................................................. 60
4 PROTÓTIPO DO MÓDULO DE MINERAÇÃO DE DADOS ...................................... 62 4.1 Linguagem de Programação .......................................................................................... 62 4.2 Sistema de Gerenciamento de Banco de Dados ............................................................ 63 4.3 Ferramenta para Administração do PostgreSQL ........................................................... 64 4.4 Modelagem do Módulo de Mineração de Dados .......................................................... 64
4.5 Protótipo do Módulo de Mineração de Dados ............................................................... 64 4.6 Preparação dos Dados Mineração de Dados ................................................................. 67
4.7 Classes de integração Módulo com o WEKA ............................................................... 68 4.8 Resultados ...................................................................................................................... 70
CONCLUSÃO ......................................................................................................................... 75
REFERÊNCIAS BIBLIOGRÁFICAS ................................................................................. 77
APÊNDICES ........................................................................................................................... 80
INTRODUÇÃO
Na atualidade, os sistemas de informação são requisitos básicos para a tomada de
decisão automatizada, pois o processo decisório apóia-se na malha de sistemas de informação
de uma organização (BINDER, 1994). A importância da informação nas organizações
aumenta de acordo com o crescimento da complexidade da sociedade e das organizações, ou
seja, em todos os níveis organizacionais a informação é um recurso fundamental (FREITAS et
al, 1997).
Há muito tempo, existe a preocupação de como a informação é processada, pois
segundo Martin (1984), há muitas situações em que os gestores não recebem a informação de
que necessitam dos seus diversos sistemas. Binder (1994) alega que em um ambiente
propício, a informática torna-se útil no processo de tomada de decisão, possibilitando
obtenção de dados com melhor qualidade. Freitas (1997) afirma que a forma com que a
informação é trabalhada deve ser observada, pois não pode haver risco que um usuário,
envolvido em processo decisório, receba “ruídos” em sua informação. A partir dessas
afirmações, deve-se saber distinguir o que são dados e o que são informações.
De acordo com (DAVIS; OLSON, apud FREITAS, 1997) os dados são a matéria
prima da informação, são grupos de símbolos não aleatórios que representam quantidades,
ações, objetos, etc. Ainda, segundo o mesmo autor, a informação é um dado que foi
processado de uma forma significativa para o usuário e seu valor é real ou percebido no
momento, ou em ações prospectivas nas decisões.
Binder (1994) aponta que a atividade máxima de um líder é a tomada de decisão.
Esse é o momento onde se demonstra toda sua capacidade de direcionar sua equipe e sua
razão de ser dentro de uma organização. A tomada de decisão consiste, basicamente, na
14
escolha de uma opção entre diversas alternativas existentes, seguindo determinados passos
previamente estabelecidos e culminando na resolução ou não de problema.
Na gestão de um time de voleibol, a todo o momento, a partir de uma quantidade
diversificada de informações, decisões importantes devem ser tomadas. Decidir onde um
jogador deve sacar, qual sua posição na quadra oferece maior rendimento, qual jogador
substituir e por quem, que tipo de treinamento deve ser realizado para apurar um atleta e/ou a
equipe toda (treino de fundamentos de voleibol, posicionamento, jogadas, saque, etc), enfim,
qual a melhor estratégia ou quais táticas utilizar são situações as quais uma comissão técnica
de voleibol deve estar atenta (ZAMBERLAM et al., 2005).
Por isso, existem sistemas estatísticos que auxiliam nessa tarefa, conhecidos como
scout. São sistemas que capturam e processam informações estatísticas de desempenho dos
atletas da equipe e da equipe adversária. Porém, eles não levam em consideração o histórico
do jogador de toda uma temporada (comportamento do atleta em outros jogos) e o contexto de
uma partida de vôlei, ou seja, o comportamento do atleta nos diferentes níveis da partida. Um
set (parte de uma partida) de vôlei possui basicamente três níveis. O terceiro nível, próximo
do final, é o de maior tensão em que o físico e o emocional do atleta devem estar ajustados.
Dessa forma, os sistemas atuais, simplesmente, repassam dados para a comissão, que avalia
essa gama diversificada referente aos fundamentos básicos do vôlei e/ou jogadas realizadas
pela equipe adversária, num tempo extremamente reduzido e toma decisões relacionadas com
aqueles dados relatados. Decisões muitas vezes baseadas mais no conhecimento empírico do
técnico ou da comissão do que no fator racional real daquela situação (ZAMBERLAM et al.,
2005).
A mineração de dados, ou data mining, entra nesse contexto para oferecer um
ambiente propício e dados confiáveis, pois através dela, existe o processo de seleção, de
exploração e de modelagem de dados em grande escala (GIUDICI, 2003).
O projeto de pesquisa “A IA entrando na quadra de vôlei: Scout Inteligente”
(ZAMBERLAM et al., 2005) busca mostrar que equipes de voleibol não são diferentes no que
diz respeito ao processo de tomada de decisão, em que a comissão técnica está
constantemente monitorando os jogadores e seu desempenho, a fim de decidir a melhor tática
ou estratégia de jogo ou de treinamento. Sua proposta tem como foco descrever como técnicas
de Inteligência Artificial, que combinam agentes inteligentes e mineração de dados, podem
15
ser utilizadas para auxiliar a comissão técnica. Esse projeto tem como objetivo final projetar e
construir um sistema de observação inteligente para a gestão de equipes de voleibol, a fim de
manipular e produzir conhecimentos específicos de forma quantitativa e qualitativa para o
processo de decisão, reduzindo assim o fator empírico e o tempo das decisões.
Surge então este trabalho, como parte do projeto de pesquisa acima citado. Portanto,
através da base de dados do sistema de scout, projetado por Raimann (2008), também parte
desse projeto, foi realizada a aplicação de técnicas de data mining. Os resultados foram
analisados e a técnica de data mining escolhida foi a de agrupamento. Espera-se, assim,
auxiliar professores e profissionais de Educação Física no ensino de gestão de equipes, bem
como a gestão de jogadores e tipos de treinamentos.
O trabalho foi dividido em quatro capítulos, sendo que o primeiro trata sobre
Mineração de Dados, mostrando as principais técnicas e aplicações. O segundo aborda o
scout, ou seja, o sistema de avaliação de desempenho de atletas, apresentando o que é esse
sistema, quais suas finalidades e como é utilizado geralmente, também foram encontrados
alguns trabalhos correlatos nesse capítulo. No terceiro capítulo, apresenta-se a proposta de
módulo de data mining em um sistema de scout. O quarto capítulo apresenta o protótipo do
módulo, e a aplicação da técnica de agrupamento através de dois de seus algoritmos.
Finalmente, as considerações finais e as referências bibliográficas.
1 MINERAÇÃO DE DADOS
A grande quantidade de dados armazenados em bancos de dados na atualidade é um
problema de muitas empresas. Esse problema gera muitas dificuldades para organizações em
geral, desde a aquisição de servidores que suportem a maior demanda de processamento,
passando por unidades de armazenamento enormes à dificuldade em obter informações
precisas. Dados de um relatório de 2003 apontam uma população de 6,3 bilhões de pessoas, e
que cada pessoa produz 800 megabytes por ano (CHARLES et al., 2003). Dentro desse
panorama existem tecnologias que podem fazer de um grande banco de dados uma fonte de
informações até então desconhecidas, obtendo assim uma vantagem competitiva. Uma dessas
tecnologias é a Mineração de Dados (MD), também conhecida como Data Mining (DM).
De acordo com o dicionário de Ferreira (1988), mineração significa exploração de
minas, a exploração de minas remete ao ato de descobrir preciosidades da Terra, assim a
mineração de dados busca essas preciosidades na forma de informação. Para Giudici (2003), a
associação de dados com essa palavra sugere uma pesquisa em profundidade para encontrar
informações adicionais que, anteriormente passaram despercebidas na massa de dados
disponíveis. O mesmo autor aponta que o termo mineração de dados foi formalizado por
Usama Fayyad, em 1995, na Primeira Conferência Internacional de Descoberta de
Conhecimento e Mineração de Dados em Montreal. Esse evento é considerado uma das
principais conferências sobre o tema.
Segundo Feldens et al. apud Wives (2004) a mineração de dados é uma etapa do
processo de Descoberta do Conhecimento em Banco de Dados (DCBD) mais conhecido por
Knowledge Discovery in Databases (KDD). Em (GOEBEL; GRUENWALD, apud WIVES,
2004) também é observado que muitas vezes o termo mineração de dados é utilizado como
sinônimo para todo o processo de descoberta de conhecimento, entretanto ela é a etapa mais
importante, respondendo por 15 a 25 por cento do processo de descoberta. Cabena et al. apud
17
Gonchoroski (2007) aponta que a mineração de dados é o processo de extrair informações
válidas antes desconhecidas, de grandes bases de dados, auxiliando em decisões cruciais no
mundo dos negócios.
Para isso, data mining utiliza-se de técnicas ou algoritmos de áreas como
Aprendizado de Máquinas, Estatística, Redes Neurais, Algoritmos Genéricos, etc (ELMASRI;
NAVATHE, 2005). O mesmo autor aponta que a mineração de dados apóia o conhecimento
indutivo, descobrindo novas regras e padrões nos dados minerados. Para Kantardzic (2003),
os dois primeiros objetivos da mineração de dados são: a predição e a descrição. A predição
utiliza algumas variáveis ou campos de um conjunto de dados para prever valores
desconhecidos ou futuros de outras variáveis de interesse. A descrição concentra-se em
encontrar padrões nos dados que possam ser interpretados por humanos.
Como a mineração de dados é uma parte do processo de Descoberta do
Conhecimento em Banco de Dados, as etapas (Figura 1.1) devem ser realizadas antes de
aplicar-se alguma técnica de data mining. Conforme Bramer (2007), os dados possivelmente
vêm a partir de muitas fontes, esses dados devem ser integrados e/ou coletados e armazenados
em lugar comum. O próximo passo é a preparação dos dados, então é aplicada alguma técnica
de mineração de dados, que produz uma saída na forma de regras ou em algum tipo de padrão.
Figura 1.1 – Etapas que precedem a aplicação de técnicas de Mineração de Dados
Fonte: Adaptado de BRAMER, 2007
Essas regras ou padrões são também conhecidos como modos de descoberta, os mais
conhecidos são a descoberta de regras de associação, classificação, agrupamento, padrões
seqüenciais e padrões em séries temporais.
1.1 O processo de mineração de dados
Para Kantardzic (2003) o processo de mineração de dados é composto por cinco
fases. São elas: definição do problema; seleção e coleta dos dados; pré-processamento dos
18
dados; especificação de possível método; interpretação e análise dos dados produzidos pelo
método.
1.1.1 Definição do problema
Segundo Giudici (2003), nem sempre é fácil de definir o fenômeno que se quer
analisar. Os objetivos e o problema da empresa ou equipe que são passados são claros, mas os
problemas subjacentes podem ser difíceis de traduzir em objetivos a serem analisados.
Kantardzic (2003) aponta que a grande maioria das bases de dados existentes é específica para
os seus sistemas, o que requer experiência e domínio de um perito. Uma declaração clara do
problema e os objetivos a atingir são os pré-requisitos para a criação da análise correta. Pode-
se utilizar, como exemplo no voleibol, os excessivos erros do fundamento saque, quando
realizada a análise dos dados, pode-se concluir que o destino/alvo do saque tem sido sempre o
mesmo, assim a comissão técnica interage com os jogadores para que mudem o destino/alvo
de seu saque. Nesse caso, fica explícito a definição do problema - “porque erramos os
saques”. Sendo assim, os estatísticos e os mineradores de dados (data miners) sabem onde
devem atuar - nos dados do fundamento saque, e extrair o máximo de informações possíveis
para a comissão técnica.
1.1.2 Coleta dos dados
A principal preocupação dessa etapa é a forma como os dados são gerados e/ou
coletados. Em geral, dá-se de duas maneiras distintas: a primeira é quando o processo está
sobre o domínio de um perito, em que o mesmo realiza a coleta; a segunda possibilidade é
quando o perito não pode influenciar o processo de geração de dados. Essa é conhecida como
a abordagem observacional, e dados podem ser perdidos (KANTARDZIC, 2003). Um
exemplo pode ser visto no próprio voleibol, quando vários scouters1 utilizam bases
independentes em seus laptos. Essas bases devem ser integradas para gerar a informação
correta. Nesses casos, a mineração é normalmente aplicada após os jogos.
1 Responsável em realizar o scout.
19
1.1.3 Pré-processamento dos dados
Giudici (2003) divide essa tarefa em duas etapas. A primeira é composta por seleção,
organização e tratamento inicial dos dados. Nessa etapa são identificadas as fontes de dados,
em que o ideal é que seja um armazém de dados (data warehouse) histórico que não esteja
sujeito a mudanças, facilitando a coleta de dados. Nela, também é necessária uma limpeza
preliminar nos dados. A segunda etapa contém a análise de dados e posterior transformação.
Aqui, é desenvolvida uma análise exploratória dos dados semelhante a técnicas de OLAP,
uma análise inicial da importância dos dados pode levar a uma transformação das variáveis
originais para melhor compreender o fenômeno, ou que pode levar a métodos estatísticos em
que satisfaçam objetivos específicos iniciais. Giudici (2003) afirma que é fundamental essa
fase, pois permite ao analista prever métodos estatísticos que possam ser mais adequados na
próxima fase. Utilizando-se do exemplo anterior (voleibol e bases independentes em
notebooks), uma base de dados tem várias entidades: Clube; Cidade; Equipe; Jogador;
JogadorPartida; Sets; JogoSetRotacao; Movimento; Evento; Saque; etc, Nesse caso eliminar
entidades como Cidade e Clube e dados sobre ex-atletas da entidade Jogador seria
interessante. Os demais dados podem ser armazenados em um data warehouse, eliminando-se
possíveis “ruídos” na informação que será gerada pela mineração de dados.
1.1.3.1 Armazém de Dados (Data Warehouse)
O armazém de dados é uma coleção de dados orientada por assunto, integrada, não
volátil, variante no tempo, que dá apoio às decisões. Proporciona acesso aos dados para uma
análise complexa, descoberta de conhecimento e tomada de decisão (ELMASRI; NAVATHE,
2005).
Além do Data Warehouse existe o Data Mart (mercado de dados), que normalmente
é uma parte extraída do Data Wharehouse. O Data Mart é uma base de dados temática
originalmente orientada para o campo do marketing (GIUDICI, 2003). O escopo é confinado
aos assuntos específicos selecionados (HAN; KAMBER, 2006).
Um Data Mart pode ser criado (em algumas situações com certa dificuldade) mesmo
quando não há nenhum sistema de armazém de dados (Data Warehouse) integrado. A criação
de estruturas de dados temáticos como Data Marts representa o primeiro e movimento
fundamental para um ambiente informativo para a atividade da mineração de dados
(GIUDICI, 2003).
20
1.1.3.2 Processamento Analítico On-Line (OLAP)
De acordo com Barbieri apud Wagner (2008), o termo OLAP (On-line Analytical
Processing), traduzido para Processamento Analítico On-line, representa essa característica de
se trabalhar os dados, com operadores dimensionais, possibilitando uma forma múltipla e
combinada de análise. Elmasri e Navathe (2005) apontam que OLAP é a análise de dados
complexos a partir de um armazém de dados.
Han e Kamber (2006) sugerem a utilização dessas três tecnologias conjuntas,
afirmando que o armazém de dados pode ser empregado para a descoberta do conhecimento e
a tomada de decisão usando ferramentas da mineração de dados. Sendo necessário assim três
tipos de aplicações do armazém de dados: processamento de informação, processamento
analítico (OLAP) e mineração de dados.
1.1.4 Especificação do possível método
A escolha do método depende do problema a ser estudado ou o tipo de dados
disponíveis. Os métodos utilizados podem ser classificados de acordo com o objetivo da
análise (GIUDICI, 2003). Esse processo não é simples, a aplicação é baseada em vários
métodos. Os principais métodos ou técnicas (descritos no capítulo 1.2) e a seleção dos
melhores é uma tarefa adicional (KANTARDZIC, 2003). Um possível método a ser utilizado
num módulo de Data Mining para scout de Vôlei é o método de agrupamento (Clustering),
aplicado no fundamento saque, em que os dados ficariam agrupados por faixas de
aproveitamento.
1.1.5 Interpretação e análise dos dados produzidos pelo método
O objetivo dos dados obtidos pelo método é ajudar a tomada de decisão. Empresas
ou equipes esportivas possuem peritos que podem analisar se os dados obtidos são ou não
interessantes para o tomador de decisão. Dessa maneira, pode-se descartar um determinado
método que não gerou dados de relativo interesse. Vale observar que os métodos de
interpretação mais fáceis são os métodos com menor precisão.
Finalizada a descrição das fases do processo de mineração de dados, indicadas por
Kantardzic (2003), segue uma contextualização dos principais métodos de mineração.
21
1.2 Principais métodos de mineração de dados
Os métodos ou técnicas são, na verdade, algoritmos computacionais. Cada um desses
algoritmos tem características particulares, normalmente entradas e saídas específicas
(GONCHOROSKI, 2007). A seguir são apresentados os algoritmos mais utilizados.
1.2.1 Regras de Associação (Association Rules)
O objetivo é encontrar qualquer relação existente entre os valores das variáveis
(BRAMER, 2007). Para Kantardzic (2003), a técnica de regras de associação é uma das
principais técnicas de mineração de dados. Através dela é possível recuperar todos os padrões
interessantes em uma base de dados. A base de dados é uma coleção de transações, no
voleibol é possível elencar características semelhantes que podem ser identificadas através de
regras de associação. A Tabela 1.1 mostra os jogadores em quadra e o aproveitamento da
equipe no fundamento bloqueio.
Tabela 1.1 – Jogos de jogadores e aproveitamento do fundamento bloqueio
IdJogo (Partida) iNumeroCamisetaJogador (em quadra) Bloqueio (Resultado)
1 2, 5, 6, 8, 10, 11 Excelente
1 1, 4, 5, 6, 8, 10 Regular
2 2, 3, 5, 8, 10, 11 Bom
2 1, 3, 4, 8, 9, 11 Péssimo Fonte: AUTOR, 2008
Uma regra de associação é da forma X => Y, onde X = {x1, x2,..., xn} e Y = {y1,
y2,..., ym} são conjuntos de itens com xi e yi sendo distintos para todo i e todo o j. Essa
associação estabelece que quando o jogador X estiver escalado, ele estará propenso a jogar
com o Jogador Y. Caso este também estiver escalado na mesma equipe ou da equipe
adversária, um determinado bloqueador escalado para bloquear específico atacante.
Normalmente essas regras de associação têm a forma LME (lado da mão esquerda) e LMD
(lado da mão direita), cada uma formando um conjunto de itens. Quando LME une-se a LMD
(LME LMD) tem-se o conjunto-item, que é, no exemplo do voleibol, o conjunto de todos
os jogadores escalados. Para descobrir interesses nessa regra, ela precisa satisfazer algumas
medidas, as mais comuns fornecem suporte e confiança (ELMASRI; NAVATHE, 2005).
O suporte para a regra LME => LMD refere-se à freqüência que ela ocorre no banco
de dados, ou seja, o percentual de transações que contém todos os itens na própria relação
LME LMD. Se o suporte é baixo, implica que não existe evidência significativa que os
22
itens LME LMD ocorram juntos. A confiança dessa regra é calculada como o suporte
(LME LMD) / suporte (LMD). Pode-se assim analisar a possibilidade dos jogadores do
LMD sejam escalados juntos, dado que os jogadores do LME também sejam escalados pelo
técnico (ELMASRI; NAVATHE, 2005).
Para exemplificar o suporte e a confiança, considere essas regras: Jogador 10 =>
Jogador 11 e Jogador 8 => Jogador 11. Observa-se na Tabela 1.1 que existem quatro
transações de duas partidas de vôlei: o suporte para {Jogador 10, Jogador 11} é de 50%, e o
suporte de {Jogador 8, Jogador 11} é 75%. Já a confiança de Jogador 10 => Jogador 11 é de
66,7%, ou seja, das três vezes em que o jogador 10 é escalado, duas tem a companhia do
jogador 11, e a confiança do Jogador 8 => Jogador 11 é também de 66,7%.
Pode-se notar que o suporte e a confiança nem sempre são proporcionais. A meta
para as regras de associação é gerar todas as possíveis regras que excedam a especificação do
usuário garantindo suporte e confiança acima do limite definido (ELMASRI; NAVATHE,
2005). O principal algoritmo de regras de associação é o algoritmo Apriori.
1.2.2 Classificação (Classification)
De acordo com Bramer (2007), a classificação é uma das aplicações mais comuns de
mineração de dados. Ela corresponde a uma tarefa que ocorre com freqüência na vida diária
do ser humano. Por exemplo, um hospital pode querer classificar pacientes médicos naqueles
que estão em elevado, em médio ou em baixo risco de adquirir uma determinada doença. Já
uma pesquisa de opinião de votação pode desejar classificar as pessoas entrevistadas naquelas
que tendem a votar em um partido político ou são indecisos. Pode-se desejar classificar um
trabalho de um estudante com a distinção, merecê-lo, passá-lo ou reprová-lo. Apesar de
diferentes todos são exemplos de classificação.
Para Elmasri e Navathe (2005), a classificação é o processo de encontrar um modelo
que descreva classes diferentes de dados. Essas classes são predeterminadas e essa atividade
também é chamada de aprendizado supervisionado. Dado que esse modelo é construído, ele
pode então ser usado para classificar novos dados. A primeira etapa do modelo de
aprendizado é realizada usando um treinamento com um conjunto de dados que já foi
classificado, cada registro de dados desse treinamento possui um atributo, conhecido como
rótulo de classe, indicando a que classe o registro pertence.
23
O exemplo a seguir mostra uma situação típica (Figura 1.2). Tem-se uma série de
dados no formulário de uma tabela que contém graus estudantes em cinco disciplinas (os
valores dos atributos TCI, BDII, INOVTEC, GERPROJ e TOPAVA) e em suas classificações
totais do grau. Procura-se encontrar alguma maneira de predizer a classificação para outros
estudantes dados somente sua turma “Perfil”.
Tabela 1.2 – Classificação de dados do grau
TCI BDII INOVTEC GERPROJ TOPAVA TURMA
A B A B B Segunda
A B B B B Segunda
B A A B A Segunda
A A A A B Primeira
A A B B A Primeira
B A A B B Segunda
A A B A B Primeira Fonte: Adaptado de BRAMER, 2007
Segundo Bramer (2007) existem várias maneiras para fazer isto, incluindo as
seguintes:
Vizinho mais próximo de correspondência (Nearest Neighbour
Matching): este método confia em identificar (palavra) os cinco
exemplos que são "mais próximos", em algum sentido a um não
classificada. Se os cinco "mais próximos vizinhos" têm graus B, A, B, B
e B pode-se concluir razoavelmente que a nova instância deverá ser
classificada como 'Segunda'.
Regras de classificação (Classification Rules): Procura-se as regras que
pode-se predizer a classificação de um exemplo despercebido, segue
exemplos: SE TCI=A E TOPAVA=A ENTÃO TURMA=Primeira, SE
TCI=A E TOPAVA=B E BDII=B ENTÃO TURMA=Segunda ou ainda
SE TCI=B ENTAO TURMA=Segunda;
Árvore da classificação (Classification Tree): uma forma de geração de
regras de classificação é por intermédio de estrutura chamada árvore de
classificação ou de uma decisão árvore, como a seguir:
24
Figura 1.2 – Árvore de Decisão de classificação de grau Fonte: Adaptado de BRAMER, 2007
1.2.3 Agrupamento (Clustering)
Uma dada população de eventos ou novos itens podem ser particionados
(segmentados) em conjuntos de elementos „padrões‟ (ELMASRI; NAVATHE, 2005). Bramer
(2007) confirma que os algoritmos de agrupamento analisam os dados para encontrar grupos
de itens que são semelhantes. Amostras de agrupamento são representadas como um vetor de
medições, ou, mais formalmente, como um ponto em um espaço multidimensional. As
amostras de um agrupamento válido são mais semelhantes (não necessariamente iguais) entre
si do que as amostras que pertencem a um agrupamento diferente (KANTARDZIC, 2003).
De acordo com Kantardzic (2003), a técnica de agrupamento é adequada para a
exploração de inter-relações entre as amostras e para fazer uma avaliação preliminar da
estrutura da amostra. A Tabela 1.3 tem um simples exemplo de agrupamento de informação.
São doze atletas distribuídos em três agrupamentos. As características que descrevem esses
atletas são: o aproveitamento em percentual no fundamento bloqueio e o número de bloqueios
realizados.
Tabela 1.3 – Simples exemplo de agrupamento de informação
Agrupamentos Aproveitamento Bloqueios Realizados Atletas
Agrupamento 1
100% 1 Jogador 1
90% 4 Jogador 3
80% 1 Jogador 6
Agrupamento 2
70% 20 Jogador 2, Jogador 9
60% 30 Jogador 4, Jogador5
50% 30 Jogador 8
Agrupamento 3
40% 10 Jogador 7
20% 3 Jogador11
0% 5 Jogador 10, Jogador 12 Fonte: AUTOR, 2008
25
Pode-se concluir que o Agrupamento 1 tem o melhor aproveitamento, mas
pouquíssimos bloqueios foram efetuados por seus atletas. No Agrupamento 2, existe a melhor
média, pois vários bloqueios foram efetuados. O Agrupamento 3 apresenta atletas que
possivelmente não tenham esse fundamento como principal característica.
Para utilizar a técnica de agrupamento, é necessário um critério objetivo. Para
descrever esse processo é preciso dominar os conceitos básicos e o processo de agrupamento.
A entrada para uma análise de agrupamento pode ser descrita como um par requisitado (X, s),
ou (X, d), onde X é um jogo (descrições das amostras), e s e d são medidas para a
similaridade ou a dissimilaridade (distância) entre amostras, respectivamente. A saída é uma
divisão Λ = {G1, G2,…, GN} onde Gk, k = 1,…, N é um subconjunto cristalino de X tal que G1
G2 ... GN = X, e Gi Gj = , i j. Assim os membros G1, G2,…, GN de Λ são
chamados de agrupamentos. Cada um dos agrupamentos é descrito com algumas
características. Na descoberta, tanto o agrupamento (um conjunto de pontos distintos em X)
quanto suas características, são gerados como resultado de um procedimento de agrupamento
(KANTARDZIC, 2003).
Kantardzic (2003) aponta que a representação da descoberta por agrupamento pode
se dar por diferentes esquemas (Figura 1.3), os mais conhecidos são:
Representar o agrupamento dos pontos em um espaço n-dimensional
(amostras) por seu centróide ou por um conjunto de distantes (fronteira)
pontos em um agrupamento;
Representar graficamente usando um agrupamento de nós em um
agrupamento de árvore;
Representar agrupamentos, usando a expressão lógica de amostra de
atributos.
Figura 1.3 – Exemplos de diferentes esquemas Fonte: KANTARDZIC, 2003
26
A vasta coleção de algoritmos de agrupamento disponíveis na literatura e os
diferentes softwares confundem os usuários que tentam selecionar aproximações mais
apropriadas para o seu problema. A maior parte dos algoritmos de agrupamento tem por base
as duas seguintes abordagens: agrupamento hierárquico e agrupamento particional iterativo.
As técnicas hierárquicas organizam dados em uma seqüência aninhada dos grupos, que
normalmente são indicados através de uma estrutura de árvore. Já os algoritmos particionais
tentam obter essa divisória que minimiza o espalhamento dentro do agrupamento ou
maximiza o espalhamento entre os agrupamentos. Esses métodos não são hierárquicos porque
todos os agrupamentos resultantes são grupos das amostras no mesmo nível da divisória
(KANTARDZIC, 2003).
1.2.4 Dados em séries temporais (Time-Series Data)
Para Elmasri e Navathe (2005) esses padrões podem ser encontrados em posições de
uma série temporal de dados, que é uma seqüência de dados capturada a intervalos regulares
(segundos, horas, dias, semanas, etc). Han e Kamber (2006) confirmam dizendo que séries
temporais consistem em seqüências de valores ou medidas repetidas, excessivamente, em
intervalos de tempos. As aplicações mais populares com base de dados de padrões com séries
temporais são as de análise da bolsa de valores, índices econômicos, observação de
fenômenos naturais (tais como a atmosfera, a temperatura, o vento, o terremoto) e
experiências científicas e da engenharia.
Com a distribuição crescente de um grande número de sensores, de dispositivos da
telemetria, e de outras ferramentas de levantamento de dados, a quantidade de dados em séries
temporais está aumentando rapidamente, freqüentemente na ordem dos gigabytes por dia
(como o números de negociações na bolsa de valores) ou por minuto (como de programas do
espaço da NASA). A mineração de dados em séries temporais tem o desafio de analisar tais
números enormes de dados em séries temporais para encontrar os padrões similares ou
regulares, tendências rapidamente ou mesmo responder em tempo real (HAN; KAMBER,
2006).
No vôlei, pode-se analisar o desempenho de atletas pelo tempo de jogo, e analisar
assim qual é o tempo de jogo ideal para ele (período no set ou no jogo todo). Existem atletas
que jogam com um mesmo nível a partida inteira, outros atletas têm um início de alto nível, e
no decorrer da partida o nível cai, mas após o período de estresse, o nível volta a ser bom.
27
Outros que mantêm um bom nível durante boa parte da partida, mas depois o nível cai e não
retorna mais. Há de se considerar, aqui, também o aspecto emocional de cada atleta, não
apenas os números. Na Tabela 1.4, podem-se ver os dois últimos tipos de atletas citados e
seus desempenhos. Esse é um exemplo ilustrativo apenas, já que em uma situação real o
volume de dados seria muito maior. Pode-se, também, dividir um set em fases (de 0 a 8
pontos, fase um; de 9 a 19, fase dois; e de 20 a 25, fase 3). Nessa divisão é possível perceber
os diferentes comportamentos dos atletas (qualidade da jogada, concentração, obediência
técnica e tática) devido ao aumento do estresse emocional do final do set.
Tabela 1.4 – Aproveitamento de Saque (Atleta/Tempo de Jogo)
Atletas Tempo de Jogo (minutos)
5 min. 10 min. 15 min. 20 min. 30 min. 40 min. 60 min.
Jogador 01 100 % 80 % 70 % 60 % 40 % 50 % 80 %
Jogador 02 60 % 60 % 60 % 70 % 70 % 70 % 65 %
Fonte: AUTOR, 2008
Em geral, são dois os objetivos na análise de séries temporais: modelagem das séries
temporais (isto é, ganhar uma visão sobre os mecanismos subjacentes ou forças que geram as
séries temporais), e previsão de séries temporais (isto é, predizer os futuros valores do tempo
de séries de variáveis), as técnicas mais usadas são a análise de tendências e a pesquisa por
semelhança (HAN; KAMBER, 2006).
No voleibol, a análise de tendência parece ser a mais atrativa, já que a partir dos
dados históricos é possível traçar tendências de jogadas de equipes adversárias, e analisando
os dados da Tabela 1.4, pode-se visualizar a tendência de aproveitamento dos atletas
conforme o tempo de jogo. Segundo Han e Kamber (2006) uma série temporal que envolve
uma variável Y, representando, por exemplo, o aproveitamento de uma atleta ao final de um
set ou partida, pode ser vista em função do tempo t, isto é, Y = F (t). Essa função é ilustrada
como um gráfico de séries temporais, como mostrado na Figura 1.4, que descreve um ponto
em movimento com o passar do tempo.
28
Figura 1.4 – Aproveitamento de Saque (Atleta/Tempo de Jogo) Fonte: AUTOR, 2008
Han e Kamber (2006) apontam que análise de tendência consiste nos quatro
componentes seguintes ou movimentos para caracterizar dados em uma série temporal:
Tendência ou movimentos em longo prazo: indicam o sentido geral em
que um gráfico de série temporal está se movendo sobre um intervalo
longo do tempo. Esse movimento é indicado por uma curva da
tendência, ou por uma linha da tendência. Por exemplo, a curva da
tendência de Figura 1.4 é indicada por uma curva tracejada. Os métodos
típicos para determinar uma curva da tendência ou uma linha da
tendência incluem o método de médias móveis e o método dos mínimos
quadrados;
Movimentos cíclicos ou variações cíclicas: consultam as oscilações em
longo prazo sobre uma linha ou uma curva da tendência, que possam ou
não possam ser periódicas. Isto é, os ciclos não necessitam
necessariamente seguir exatamente testes padrões similares após
intervalos iguais do tempo;
Movimentos sazonais ou variações sazonais: são sistemáticos ou
relacionados ao calendário. Os exemplos incluem os eventos que
retornam anualmente, como o aumento repentino nas vendas dos
chocolates e das flores antes do dia de namorados ou aumento observado
29
no consumo da água no verão devido ao calor. Nesses exemplos, os
movimentos sazonais são os testes padrões idênticos ou quase idênticos
que uma série de tempo parece seguir durante meses correspondentes de
anos sucessivos;
Movimentos irregulares ou aleatórios: caracterizam o movimento
esporádico da série de tempo devido à aleatoriedade, tais como disputas
trabalhistas e as inundações fazem parte desde tipo.
Para a análise no vôlei, a utilização do primeiro movimento já proporciona
resultados, pois através dos resultados das médias móveis já se observa a tendência de
desempenho futura.
1.2.5 Padrões seqüenciais (Sequential Patterns)
Elmasri e Navathe (2005) apontam que a técnica de padrões seqüenciais é a
investigação de seqüências de ações ou eventos. Han e Kamber (2006) escrevem que é uma
técnica desafiadora, pois pode gerar e/ou testar um número combinatório explosivo de
seqüências intermediárias. Para Sumathi e Sivanandam (2006), essa técnica tem algumas
similaridades com a técnica de regras, a diferença é que faz exame da dimensão seqüencial
dos dados analisados. O problema de mineração de dados em padrões seqüenciais foi
introduzido pela primeira vez por Agrawal e Srikant, em 1995, com base no seu estudo de que
cliente compra em seqüência. Segue um exemplo: dada uma relação de seqüências, em que
cada seqüência consiste em uma lista dos eventos (ou dos elementos) e cada evento consiste
em um conjunto de artigos. E dado um ponto inicial mínimo, especificado pelo usuário, da
sustentação do limite mínimo, os achados seqüenciais da mineração do teste padrão
freqüentam subseqüências, isto é, as subseqüências cuja freqüência da ocorrência na relação
das seqüências não é nenhum menos do que limite mínimo (HAN; KAMBER, 2006).
Esse problema foi motivado inicialmente por aplicações na indústria do comércio e
varejo, e de satisfação de cliente. Mas os resultados aplicam-se a muitos domínios científicos
e de negócio. Por exemplo, no domínio médico, uma seqüência dos dados pode corresponder
aos sintomas ou às doenças de um paciente, com uma transação que corresponde aos sintomas
exibidos ou às doenças diagnosticadas durante uma visita ao médico. Os testes padrões
30
descobertos usando os dados poderiam ser usados na pesquisa da doença ajudar identificar os
sintomas/doenças que precedem determinadas doenças (SUMATHI; SIVANANDAM, 2006).
No voleibol, essa técnica pode ser utilizada para identificar o comportamento padrão
de ataque ou defesa de equipes adversárias. Existem casos em que equipes têm jogadas
prontas, principalmente por características e/ou limitações técnicas de seus atletas. Essas
jogadas podem dar resultados positivos sempre que bem efetuadas, mas se a outra equipe
identificar esse padrão de jogo durante a partida, pode se beneficiar e ganhar a partida, pois
estaria anulando a jogada de seu adversário. Mas muitas vezes não é identificada essa
seqüência padrão de acontecimentos. Para exemplificar uma seqüência de jogada padrão:
equipe A saca, jogador seis da equipe B recepciona e passa para jogador três de sua equipe,
que levanta para o jogador cinco que efetua a cortada. Na próxima jogada tem-se a recepção
do jogador cinco, que passa para o jogador três e recebe o levantamento para a cortada. Mais
uma jogada, mas agora quem recepciona é o jogador dois que passa para o jogador três que
levanta para o jogador cinco cortar. Já é possível perceber uma seqüência padrão nessas
jogadas. Toda vez que o jogador três receber a bola, ele levantará sempre, ou na grande
maioria, para o jogador cinco fazer a cortada. Utilizando a técnica de padrões seqüências, esse
comportamento padrão seria percebido no resultado da mineração. O suporte de confiança ou
limite mínino especificado pela comissão técnica, nesse caso poderia ser: “jogador cinco
recebe mais de dois levantamentos do mesmo jogador três”.
1.3 Ferramentas de Mineração de Dados
Existem várias ferramentas de Mineração de Dados, as duas ferramentas escolhidas
foram o WEKA e o RapidMiner, nas próximas duas seções são abordados mais detalhes de
cada uma dessas ferramentas.
1.3.1 WEKA
Desenvolvido na Univesidade de Waikato, o WEKA (Waikato Enviroment
Knowledge Analysis) é uma coleção de algoritmos da aprendizagem de máquina para tarefas
de mineração de dados. Esses algoritmos podem ser aplicados diretamente a uma série de
dados ou serem chamados de seu próprio código Java. O WEKA contém ferramentas para o
pré-processamento dos dados, a classificação, a regressão, o agrupamento, as regras da
associação e visualização, é também bem adequado para o desenvolvimento de novos
31
sistemas de aprendizagem. Através da interface gráfica chamada Explorer é possível com
facilidade utilizar todas as funções através de menus de seleção. Por exemplo, é possível
rapidamente ler uma série de dados de dentro um arquivo e construir uma árvore de decisão
(decision tree) dessa série de dados, mas árvore de decisão é apenas o começo: há muitos
outros algoritmos disponíveis a explorar (WITTEN; FRANK, 2005).
Para trabalhar as séries de dados, recomenda-se que converta a série em arquivos do
formato ARFF (Attribute-Relation File Format). Esse formato é um arquivo texto composto
por três partes: relação, atributos e dados. Outra característica do WEKA é sua portabilidade
para outras aplicações Java através de suas classes (SANTOS, 2005).
O WEKA tem sido usada em diversos trabalhos. Podem-se citar os trabalhos de
Gonchoroski (2007) e Wagner (2008), por ter explorado os principais algoritmos e técnicas de
mineração de dados.
1.3.2 RapidMiner
RapidMiner (anteriormente Yale) é um ambiente para aprendizagem de máquina e do
processo de mineração de dados desenvolvido na Universidade de Dortmund. O RapidMiner
introduz novos conceitos de manipulação de dados transparente e modelagem do processo que
facilitam a configuração do processo para usuários finais (MIERSWA et al., 2006).
Segundo Coelho (2008), sua operação se dá por processos, isto significa que, para
realizar uma classificação de dados nesta ferramenta, é necessário incluir operadores para
cada processo que antecede a tarefa final desejada, sendo que alguns operadores possuem
parâmetros configuráveis. A lista de operadores, sua seqüência de execução e parâmetros são
armazenados em um arquivo XML para edição. O RapidMiner conta com diversos operadores
para as mais diversas finalidades de mineração de dados.
Mierswa et al. (2006) aponta que é muito simples alcançar os dados de um SGBD
como Oracle, Microsoft SQL Server, PostgreSQL ou MySQL. O RapidMiner suporta uma
escala larga desses sistemas sem nenhum esforço adicional.
Após essa breve conceituação e caracterização da mineração de dados, suas técnicas
e algumas ferramentas, chama a atenção que não existe uma técnica que seja melhor que
outra. É através da sua aplicação aos problemas que se terá uma avaliação de qual se encaixa
32
melhor ao problema definido. No caso de um sistema de scout, não é diferente, devem ser
aplicadas técnicas, a fim de analisar os resultados, para definir a melhor técnica. No próximo
capitulo apresenta-se alguns conceitos e características dos sistemas scout.
2 SCOUT
A informática está presente, cada dia mais, nas vidas das pessoas. Como não podia
ser diferente, está presente no esporte, onde existem sistemas de avaliação de desempenho de
atletas que são normalmente chamados por scout. Esse tipo de sistema, como apresentado na
Introdução, tem como função capturar e processar informações estatísticas de desempenho
dos atletas da equipe e da adversária, e que, em muitas vezes, não levam em consideração o
histórico do jogador em outros jogos e nem o comportamento do atleta nos diferentes
níveis/fases da partida. Dessa forma, os sistemas repassam dados para a comissão, que avalia
essa gama diversificada referente aos fundamentos básicos do vôlei e/ou jogadas realizadas
pela equipe adversária, num tempo reduzido e toma decisões muitas vezes baseadas mais no
conhecimento empírico do técnico ou da comissão do que no fator racional real daquela
situação (ZAMBERLAM et al., 2005).
Bizzocchi apud (RAIMANN, 2008) aponta que nos jogos olímpicos de 1984, os
norte-americanos foram os responsáveis pela inclusão do computador na quadra de voleibol,
tornando-se obrigatório também para treinamentos e elaboração de planos táticos e técnicos.
A seleção brasileira de vôlei, comandada pelo técnico Bernardo Rezende
(Bernardinho), utiliza-se dos dois scouts: tático e técnico. O tático faz um mapeamento da
quantidade, do percentual e do tipo de jogadas do time adversário; analisa tendências dos
atletas (direções, preferências e posicionamentos). O scout técnico analisa o próprio time,
como cada atleta se comporta em cada fundamento, qual seu aproveitamento final. Isso
possibilita, por exemplo, elaborar quadros evolutivos de saque de um determinado atleta
(BERNARDINHO, 2006). A planilha, encontrada na Figura 2.1, foi apresentada pelo técnico
da seleção brasileira, com o objetivo de exemplificar a utilização da análise estatística nos
jogos da seleção. Essa planilha apresenta os dados coletados durante os Jogos Olímpicos,
34
realizado na Grécia, na data do dia 29 de agosto de 2004. O jogo em questão foi à final dos
Jogos Olímpicos, realizado entre Brasil e Itália.
Figura 2.1 – Figura da tabela de análise estatística dos fundamentos de voleibol.
Fonte: BERNARDINHO, 2006
Esses dados são coletados durante a partida por um ou mais scouters. Antes da
informática, os scouters coletavam esses dados em planilhas manuais, analisando os jogos
gravados em fitas de vídeo (VHS). Atualmente, os sistemas scouts permitem o armazenando
desses dados durante a partida, o processo de coleta de dados (ao longo do jogo) é difícil, pois
a velocidade com que um jogo de vôlei transcorre é alta, então é normal que contenham erros
em seqüências de jogadas. Alguns sistemas scouts possuem regras que não permitem erros
primários, por exemplo, depois de um saque ocorrer um levantamento da equipe adversária
sem ocorrer uma recepção.
De posse dos dados, os estatísticos das equipes começam a fazer os estudos para
apresentarem para suas comissões técnicas, emitindo, assim, relatórios estatísticos à comissão
técnica, que por sua vez faz uma análise empírica em cima dos dados que a mesma considera
importantes. No “calor” de uma partida, dados podem ser interpretados de maneira
equivocada, proporcionando tomadas de decisões equivocadas. Esses estudos são realizados
antes, durante e após a partida (RAIMANN, 2008).
Bernardinho (2006) aponta que ao analisar a Figura 2.1, a relação total de saques-
errados / saques-pontos tem um saldo muito positivo, pois a equipe teve 10 saques errados,
mas, fez nove aces (pontos obtidos direto do saque). Avaliando a coluna bloqueio (BLOK), é
possível distinguir entre bloqueio-ponto (BP) e bloqueio para contra-ataque (BC), ou seja,
aqueles que propiciam contra-ataques são bloqueios defensivos extremamente importantes. É
muito freqüente, durante os jogos, ocorrerem um número pequeno de BP, mas um número
35
elevado de BC. São avaliados ainda os passes, a qualidade de cada ação e a proporção de
passes acertos (PA), ditos perfeitos sobre o total de ações, Bernardinho (2006) afirma que as
colunas de contra-ataque mostram talvez o ponto menos eficiente do jogo. Do total de contra-
ataques (29), 14 foram convertidos em pontos, ou seja, 48% de aproveitamento. Observa-se
também a grande atuação do atleta Gustavo, camisa 13, com 100% de aproveitamento. A
coluna E aponta erros cometidos sem relação com as ações anteriormente avaliadas: mão na
rede, dois toques, etc. Já a coluna APV mede o aproveitamento individual de cada jogador:
pontos efetuados – pontos concedidos.
Além do sistema da seleção brasileira, que foi criado pela estatística Roberta Giglio,
existem outros sistemas scouts. Os mais conhecidos, de acordo com Raimann (2008), são:
Scout Graph 1.0: sistema scout proprietário da empresa SFW
Informática tem como funções armazenar dados de jogos específicos e
gerar relatórios para uma análise mais precisa de cada equipe, atleta ou
fundamento, é um sistema portável a outros esportes como futebol,
futebol de salão, basquete, voleibol e handebol;
SisVolei: sistema scout proprietário e através dele é possível analisar
todos os fundamentos do vôlei, sendo eles: saque, passe (recepção),
levantamento, ataque, bloqueio e defesa, é voltado ao voleibol apenas;
Data Volley: sistema scout proprietário desenvolvido pela empresa
DataProject permite monitorar todos os fundamentos do voleibol, com
uma avaliação completa, que inclui, além do sentido, o tipo de ataque e
as zonas de partida e de chegada, até mesmo, informações específicas
como o número de jogadores em bloco e o tipo de erro, além disso,
possui integração com outros sistemas da empresa como o Data Video
2007 que permite sincronizar, o scout com o filme do jogo, facilitando
assim o estudo e entendimento dos atletas, apresentando
posicionamentos em função das possíveis alterações de jogadores da
equipe adversária. A maioria das grandes seleções de vôlei utiliza esse
sistema.
36
Raimann (2008) aponta como clara a importância dos Sistemas de Monitoramento
para auxiliar na tomada de decisão quando aplicada a esportes como o vôlei. Por exemplo,
jogadas velozes combinadas com boa tática, posicionamento correto e análise do adversário,
podem ser decisivos para a vitória do jogo e até mesmo do campeonato.
O scout desenvolvido por Raimann (2008) tem as seguintes características: não é um
sistema proprietário, possui cadastro de jogos, cadastro de sets, cadastro de rotação inicial do
set, o módulo de entrada de dados de um jogo, em que os fundamentos são cadastrados na
forma de caracteres. Com a finalidade de tornar mais rápida a entrada de dados, foi proposta
uma gramática para análise de comandos suprindo as necessidades de velocidade no cadastro
das jogadas. A gramática de comandos foi criada de forma a ser mais completa, mas para o
sistema scout aborda somente a entrada de dados relativa aos fundamentos do voleibol.
Enfim, após a descrição de um sistema scout, segue a apresentação de um sistema
scout (para o basquete) que se utiliza da mineração de dados.
2.1 Trabalho Correlato - Advanced Scout: Data Mining and Knowledge
Discovery in NBA Data
Em (BHANDARI et al.,1997), é apresentado o software Advanced Scout (AS). Esse
sistema procura e descobre padrões interessantes em dados de jogos da NBA (liga norte-
americana de basquete). Sua primeira utilização se deu na temporada 1995-1996, onde
dezesseis das vinte e nove equipes o receberam para avaliação. As comissões técnicas o
avaliaram positivamente, afirmando ser uma valiosa ferramenta. Esse software trabalha em
quatro etapas: coleta de dados, pré-processamento, mineração de dados e interpretação do
conhecimento descoberto.
A coleta de dados é feita por um software especialmente desenhado para o registro
de dados de basquete. Esses dados são armazenados em uma base de dados comum a todas as
equipes. Posteriormente, as equipes realizam o download dessa base de dados e a manipulam
de forma independente e sigilosa.
O pré-processamento é feito após o download da base de dados. O AS permite
realizar uma série de consistências na base de dados, visto que informações errôneas
permitiriam interpretações erradas dos dados, assim os dados errados são corrigidos por meio
de regras base ou através de alguém que tenha domínio do assunto. Após a consistência, os
37
dados são transformados e reformatados. Os dados brutos são reformatados na forma de
fichas de jogo, que são familiares para as comissões técnicas que, assim, analisam os eventos
discretos (padrões) de um jogo. Nessa fase os dados são enriquecidos através da verificação
das regras ou da entrada de dados adicionais.
A mineração de dados no AS ocorre quando um membro da comissão técnica inicia
uma consulta geral. Automaticamente a mineração de dados procura por padrões interessantes
na equipe da casa ou na visitante, em busca dos arremessos à cesta de basquete (um dos
fundamentos do basquete, por exemplo), detectando o percentual padrão de desempenho
(aproveitamento). As análises posteriores podem incluir consultas mais específicas em torno
de atributos (como por exemplo, o jogador, a função do jogador, lado da quadra, etc.) ou
fundamentos particulares (rebote, arremesso, etc.). A técnica de mineração de dados utilizada
no AS é conhecida como Attribute Focusing (AF) (BHANDARI, 1995).
A interpretação do conhecimento descoberto é a forma como o resultado da
mineração de dados é mostrada. No AS, os resultado são vistos de duas formas: através de
uma descrição textual ou gráfica. O objetivo é que os resultados sejam compreendidos
facilmente pela comissão técnica. O processo de interpretação de padrões representa a
descoberta de conhecimento e exige, normalmente, alguém que tenha domínio do assunto.
Essa interpretação é facilitada pela possibilidade do usuário ter várias formas de aprofundar a
análise interativamente para obter informações adicionais ao resultado.
A seguir, a descrição de um trabalho, fora do domínio de sistemas de scout, mas que
colaborou na realização deste trabalho.
2.2 Utilização de técnicas de KDD em um call center ativo
O Trabalho de Conclusão de Curso apresentado por Gonchoroski (2007), mostrou
que o fato de Call Center não possuir nenhuma técnica de mineração de dados pode significar
um mau aproveitamento dos dados disponíveis. Uma vez que o emprego de mineração
confirmou a existência de informações importantes que não estavam disponíveis na
visualização dos dados, que dizem respeito à relação entre as características dos clientes e o
resultado do contato. Como são vários os fatores que influenciam as vendas, é importante a
combinação de mais de uma característica do cliente, e isso pode ser fundamental para definir
o perfil da pessoa que mais adquire produtos.
38
O foco da aplicação das técnicas de Descoberta de Conhecimento em Base de Dados
(DCBD) ou Knowledge Discovery in Databases (KDD) desse trabalho foi a venda de títulos
de capitalização, pois é grande quantidade de atributos presentes em cada registro de cliente a
ser contatado, crescendo a possibilidade de aumentar o grau de qualidade e diversidade das
informações geradas. A técnica de KDD escolhida foi a de classificação. As árvores de
classificação tornaram possível organizar os atributos e a relação entre eles, para os contatos
com venda ou recusa. O software de mineração utilizado foi WEKA versão 3, que possui
todas as funcionalidades necessárias para aplicar KDD e dar todo o suporte para que os dados
sejam minerados. A aplicação de técnicas de KDD permitiu conhecer os perfis dos
compradores em potencial dos produtos, possibilitando unir o conhecimento adquirido pelos
analistas de informações da empresa de telemarketing e o conhecimento descoberto com a
mineração, auxiliando a seleção mais eficiente dos prospectos, aumentando as vendas e
reduzindo a quantidade de contatos telefônicos com os clientes.
Após apresentar esses trabalhos correlatos mostrando a influência da Data Mining
sobre os Sistemas de Tomada de Decisão, no próximo capítulo é apresentada a proposta de
um Módulo de Data Mining para o sistema scout de Raimann (2008).
3 A PROPOSTA DE MÓDULO DE MINERAÇÃO
Um sistema scout, como já escrito, é um sistema estatístico de monitoramento de
atletas, auxiliando em decisões importantes na gestão de equipes. Entretanto, a quantidade de
informações continua muito grande, deixando o processo de decidir dependente da
experiência do técnico ou de algum integrante da comissão técnica.
Solieman (2006) aponta que há igualmente muitos tipos de estatísticas que são
recolhidas para cada atleta. Por exemplo, um jogador de basquetebol terá dados para pontos,
rebotes, assistências, roubadas e bloqueios para cada jogo. Isso pode conduzir à sobrecarga de
informação para aqueles que tentam derivar o significado das estatísticas. Assim, os esportes
são ideais para ferramentas e técnicas da mineração de dados.
A vantagem para equipes esportivas quando utilizam a mineração de dados está no
desempenho resultante de suas equipes e respectivos jogadores. Alguns esportes são
atualmente mais avançados do que outros, em especial no caso do voleibol e de seu uso atual
da análise estatística.
Por isso, surge a idéia deste trabalho - desenvolver um módulo de mineração de
dados para o sistema: “Scout: Sistema de Monitoramento em Equipes de Voleibol”
desenvolvido por Raimann (2008), parte integrante do projeto de pesquisa “A IA entrando na
quadra de vôlei: Scout Inteligente” (ZAMBERLAM, 2005). Para facilitar a visualização, a
Figura 3.1 ilustra o que está sendo realizado e como o módulo de mineração fará parte do
sistema scout.
40
Figura 3.1 – Esquema geral do scout inteligente
Fonte: ZAMBERLAM, 2005
O módulo de mineração interage com a base de dados, destacado com círculo na
Figura 3.1, fornecendo informações mais precisas à comissão técnica, evitando assim o uso de
complicadas planilhas, pois existem grandes dificuldades nas leituras dessas planilhas. Os
dados que são inseridos não passam por nenhuma filtragem, não “saltam” aos olhos os
problemas ou as vantagens das equipes na partida.
Na Figura 3.2 é possível visualizar parte da estrutura do banco de dados do sistema
de scout desenvolvido por Raimann (2008), a fim de ilustrar em quais dados a mineração
deverá atuar. Para armazenar os dados de maneira mais eficiente, foram feitas algumas
alterações na base de dados original. As alterações foram a inclusão do campo Tempo na
tabela de Movimento, para saber em qual momento do jogo ocorreu o movimento; a outra foi
a inversão das cardinalidades entre as tabelas Movimento e Evento, onde um movimento terá
N eventos até a conclusão do ponto. E entre tabelas Evento, Saque, DefesaPasse,
Levantamento, Cortada e Bloqueio, onde cada evento representa um fundamento até a
conclusão do movimento. Essa alteração pode ser vista na Figura 3.3.
41
Figura 3.2 – Modelagem do banco de dados do sistema scout
Fonte: RAIMANN, 2008
42
Figura 3.3 – Modelagem do banco de dados alterada
Fonte: Autor, 2008
43
Através dessa estrutura do banco de dados, é possível perceber a quantidade de dados
que uma partida de voleibol pode gerar. Por meio do diagrama de atividade apresentado na
Figura 3.4, pode-se visualizar como o sistema de scout se comporta.
Figura 3.4 – Diagrama de Atividade do sistema scout de Raimann (2008)
Fonte: Autor, 2008
De forma simplificada, pode-se dizer que o processo de scout de uma partida
propriamente dito, inicia a partir do cadastro de jogos, para cada jogo são cadastrados todos os
jogadores (duas equipes por partida) que ficarão disponíveis para a disputa. O próximo passo
44
é cadastrar os sets e quais serão os fundamentos (saque, bloqueio, etc.) que serão analisados.
Ao inicializar cada set são informados os jogadores que entram em quadra. Esse é o cadastro
de rotação inicial, também deve ser sinalizado qual é o jogador sacador, é por meio desses
dados que será controlada a rotação do jogo, que é realizada automaticamente pelo sistema. A
partir desse ponto, os scouters (pessoas que ficam na quadra cadastrando cada jogada e
substituições ocorridas durante a partida) dão a entrada de dados do jogo.
Conforme Raimann (2008), esses dados são gravados na forma de caracteres, com o
objetivo de tornar mais rápida a entrada de dados. Cada fundamento e sua seqüencia de
caracteres são separados por ponto e vírgula. Abaixo é descrito e ilustrado a seqüência de
fundamentos executados em uma partida e como os dados devem ser inserido dentro do
sistema scout de Raimann (2008).
O fundamento saque armazena: número da camiseta do jogador, posição em que fez
o saque, tipo de saque, direção em que fez o saque, efeito do saque e observações. Na Figura
3.5 é possível visualizar o Mapa Conceitual desse fundamento.
Figura 3.5 – Mapa Conceitual do Fundamento Saque
Fonte: RAIMANN, 2008
Os fundamentos defesa e passe armazenam as seguintes informações: número da
camiseta do jogador, posição em que fez a defesa, tipo de defesa, efeito da defesa e
observações, Figura 3.6 apresenta seu mapa conceitual.
45
Figura 3.6 – Mapa Conceitual dos Fundamentos Defesa/Passe
Fonte: RAIMANN, 2008
O fundamento levantamento armazena: número da camiseta do jogador, posição em
que fez o levantamento, forma de levantamento, qualidade do levantamento, direção do
levantamento e observações, veja seu mapa conceitual (Figura 3.7).
Figura 3.7 – Mapa Conceitual dos Fundamentos Levantamento
Fonte: RAIMANN, 2008
No fundamento de ataque cortada, os dados são os seguintes: número da camiseta do
jogador, posição em que fez a cortada, direção da cortada, efeito da cortada, velocidade da
cortada e observações, detalhes dos dados Figura 3.8.
46
Figura 3.8 – Mapa Conceitual dos Fundamentos Cortada
Fonte: RAIMANN, 2008
Fundamento de defesa bloqueio armazena essas informações: número da camiseta do
jogador, posição em que fez o bloqueio, tipo de bloqueio, efeito do bloqueio e observações,
detalhes dos dados Figura 3.9.
Figura 3.9 – Mapa Conceitual dos Fundamentos Bloqueio
Fonte: RAIMANN, 2008
São essas as informações que o módulo de Data Mining vai analisar, pois é através
de dados como o número do jogador que será analisado o desempenho do mesmo em um set
ou em uma partida. A posição de cada fundamento é essencial para analisar as preferências
dos jogadores e também pontos fracos dos mesmos. O efeito é a conseqüência do fundamento,
que é uma numeração de 0 a 3, onde zero é erro do fundamento, gerando assim ponto para o
47
adversário, 1 continuidade negativa, pois possibilita ao adversário um contra ataque, 2 é uma
continuidade positiva pois gerou dificuldades ao adversário e 3 e ponto direto da equipe.
Alguns fundamentos têm outras informações relevantes, como a direção é comum a
saque, levantamento e cortada. O fundamento de defesa/passe ainda conta com informação
sobre o tipo de defesa/passe. No levantamento a forma e a qualidade são informações
imprescindíveis. Na cortada a velocidade pode ser um fator relevante e no bloqueio seu tipo é
a informação mais importante. Essas informações vão passar por um tratamento, que será a
etapa da preparação de dados que está inserida no capítulo 4.
Uma vez contextualizado os dados a serem manipulados pelo módulo proposto,
seguem os detalhes da modelagem.
3.1 Especificação dos requisitos
De acordo com Guedes (2008); a especificação de requisitos de software contém e
descreve os requisitos, ou seja, define o produto e pode servir como um documento auxiliar
no contrato de desenvolvimento do produto. As seções que seguem, referentes à modelagem,
foram baseadas nas orientações encontradas em (MEDEIROS, 2004).
3.1.1 Requisitos funcionais
Conforme Guedes (2008) os requisitos funcionais são declarações de funções que o
sistema deve fornecer, como o sistema deve reagir a entradas específicas e como deve se
comportar em determinadas situações.
REQF1 – [Controlar Acesso ao Sistema]
Requisito corresponde ao controle de acesso às opções do site: caso o usuário esteja
com o status bloqueado ele não terá acesso a nenhuma opção no sistema, é herdado do sistema
proposto por Raimann (2008).
Classificação: Essencial
48
REQF2 – [Gerar Dados para Análise]
Requisito que corresponde a gerar dados para análise para o módulo de Mineração de
Dados. Deve constar: data e hora da geração dos dados. É através desse requisito que são
executados os primeiros passos da mineração de dados, onde os dados da base de dados
original são selecionados e inseridos no Data Mart, esses dados ganham um código e data e
hora de geração para futuras comparações históricas. Esse procedimento será realizado
através de comandos SQL (select, insert) que serão colocados em uma função do PostgreSQL,
essa executada a partir do site da aplicação.
Classificação: Essencial
REQF3 – [Selecionar Dados Gerados para Análise]
Requisito que corresponde a consultar os dados para análise para o módulo de
Mineração de Dados. Através de uma lista de códigos, data e hora o usuário selecionará a
geração desejada para a mineração de dados.
Classificação: Essencial
REQF4 – [Aplicar Técnicas de Mineração de Dados]
Requisito que corresponde a aplicação das técnicas de mineração de dados na
consulta selecionada no REQF3, esse requisito consiste nos demais passos da mineração de
dados, é nesse requisito que são gerados os arquivos ARFF para serem submetidos às classes
selecionadas do WEKA.
Classificação: Essencial
3.1.2 Requisitos não funcionais
Guedes (2008) afirma que são restrições sobre os serviços ou as funções oferecidas
pelo sistema. Entre eles, destacam-se restrições de tempo, restrições sobre o processo de
desenvolvimento, padrões e outros.
49
REQNF1 – [Utilização de Banco de Dados Relacional]
Requisito que corresponde a utilização de um banco de dados relacional. Vai manter-
se a utilização do PostgreSQL.
Classificação: Essencial
REQNF2 – [Base de dados Alimentada]
A base de dados do sistema desenvolvido por Raimann (2008) deve estar alimentada
com dados de pelo menos cinco jogos envolvendo uma determinada equipe para que os
resultados da mineração de dados sejam proveitosos efetivamente.
Classificação: Essencial
REQNF3 – [Links/Ícones/Botões para Acesso às Principais Funções]
Requisito corresponde ao acesso às principais funções por meio de links/ícones.
Facilitando assim a utilização do sistema.
Classificação: Essencial
REQNF4 – [Java Virtual Machine]
Requisito corresponde à execução do módulo.
Classificação: Essencial
3.2 Casos de Uso
Para Guedes (2008) é o diagrama mais geral da UML2, utilizado na maioria das
vezes nas fases de levantamento e análise de requisitos do sistema, também é utilizado
durante todo o processo de modelagem e serve como base para outros diagramas, fornecendo
uma compreensão comum entre todos os envolvidos no projeto.
2 UML: Unified Modeling Language ou simplesmente Linguagem de Modelagem Unificada.
50
3.2.1 Diagrama de Casos de Uso
O diagrama apresenta uma macro atividade do sistema, descrevendo/detalhando as
opções que o sistema disponibilizará. Também busca identificar os atores que executam
atividades, bem como outros sistemas que possam interagir com o sistema. Para Medeiros
(2004) um Ator pode ser uma pessoa, um sistema ou mesmo uma entidade externa.
Na Figura 3.10 é apresentado um diagrama geral do sistema scout e onde o módulo
de Mineração de Dados entra. A Figura 3.11 detalha as opções que o módulo de Mineração,
assim como os Atores que terão interação com o mesmo.
Figura 3.10 – Diagrama de Caso de Uso geral
Fonte: AUTOR, 2008
51
Figura 3.11 – Diagrama de Caso de Uso geral do módulo de Mineração de Dados
Fonte: AUTOR, 2008
3.2.2 Casos de Uso Estendidos
São utilizados para detalhar de forma mais precisa as interações entre os usuários e o
módulo de mineração de dados. Lembrando que essa estrutura foi baseada em (MEDEIROS,
2004).
UC001 – Gerar Dados para Análise
Breve Descritivo: Este caso de uso descreve o processo de Gerar Dados para
Análise.
Quadro 3.1 – Caso de Uso Gerar Dados para Análise
Requisitos Funcionais: REQF1 – [Controlar Acesso ao Sistema]
Requisitos Não Funcionais: REQNF1 – [Utilização de Banco de Dados Relacional]
REQNF2 – [Base de dados Alimentada]
REQNF3 – [Links/Ícones/Botões para Acesso às
Principais Funções]
52
REQNF4 – [Java Virtual Machine]
Atores: Usuário Administrador.
Pré-condições: Ser um usuário com permissões de administrador.
Fluxo Principal: O administrador acessa o módulo de mineração de
dados e clica na opção gerar dados para análise.
Campo: data e hora da geração.
Subfluxo:
1. Gerar Dados.
Subfluxos: 1. Gerar Dados:
1.1 O administrador informa a data e a hora da
nova geração;
1.2 O administrador clica no botão/link “Gerar
Dados”;
1.3 O módulo verifica os dados e sugere um código
para a nova geração;
1.4 O módulo executa a função do PostgreSQL
(Figura Apêndice 1) que seleciona os dados na
base de dados original e os insere no Data
Mart, essa etapa no processo de mineração de
dados equivale a preparação dos dados;
1.5 O módulo retorna a mensagem: “Dados
gerados com sucesso.”.
Tratamento de Exceções: 1.3.1 Verifica se os dados foram preenchidos
corretamente. Caso não estejam ele retorna a
mensagem de erro “Dados para geração não
informados.”.
1.3.2 Caso o banco de dados não responda a
requisição ele retorna a mensagem de erro “Banco
indisponível.”.
Pós-condições: Os usuários administrador, scouter, restrito estarão
aptos a consultar os dados gerados para análise.
Fonte: Autor, 2008.
O Diagrama de Atividade referente à gerar dados para análise é apresentado na
Figura 3.12. É importante ressaltar que o uso de diagramas de atividades com casos de usos
estendidos auxilia na validação dos fluxos, subfluxos e exceções descritas nos casos de uso.
53
Figura 3.12 – Diagrama de Atividade referente a gerar dados para análise
Fonte: AUTOR, 2008
UC002 – Selecionar Dados Gerados para Análise
Breve Descritivo: Este caso de uso descreve o processo de Selecionar Dados
Gerados para Análise.
Quadro 3.2 – Caso de Uso Selecionar Dados Gerados para Análise
Requisitos Funcionais: REQF1 – [Controlar Acesso ao Sistema]
REQF2 – [Gerar Dados para Análise]
Requisitos Não Funcionais: REQNF1 – [Utilização de Banco de Dados Relacional]
54
REQNF2 – [Base de dados Alimentada]
REQNF3 – [Links/Ícones/Botões para Acesso às
Principais Funções]
REQNF4 – [Java Virtual Machine]
Atores: Usuário Administrador, Scouter e Restrito.
Pré-condições: Ser um usuário cadastrado no sistema.
Ter dados gerados para consulta.
Fluxo Principal: O usuário acessa o módulo de mineração de dados e
clica na opção selecionar dados gerados para análise.
Campos: Data Início e Data Fim
Subfluxo:
1. Consultar Gerações;
2. Selecionar Geração.
Subfluxos: 1. Consultar Gerações:
1.1 O usuário informa a data e hora de início e fim
da geração que deseja realizar análises;
1.2 O usuário clica no botão/link “Consultar
Gerações”;
1.3 O módulo carrega os dados em uma tabela,
listados com o código, data e hora de sua
geração além da coluna selecionado;
2. Selecionar Geração:
2.1 O usuário seleciona a geração desejada
clicando sobre o botão de checagem da coluna
selecionado;
2.2 O usuário clica no botão/link “Salvar
Informações”;
2.3 O módulo grava as informações no banco de
dados;
2.4 O módulo retorna a mensagem: “Dados salvos
com sucesso.”.
Tratamento de Exceções: 1.3.1 e 2.3.1 Caso o banco de dados não responda a
requisição ele retorna a mensagem de erro “Banco
indisponível.”.
Pós-condições: Os usuários estarão aptos a aplicar as técnicas de MD.
Fonte: Autor, 2008.
Figura 3.13 apresenta o diagrama de atividade, a fim de contemplar o caso de uso
estendido.
55
Figura 3.13 – Diagrama de Atividade referente a selecionar dados gerados para análise
Fonte: AUTOR, 2008
UC003 – Aplicar Técnicas de Mineração de Dados
Breve Descritivo: Este caso de uso descreve o processo de Aplicar Técnicas de
Mineração de Dados.
Quadro 3.3 – Caso de Uso Aplicar Técnicas de Mineração de Dados
Requisitos Funcionais: REQF1 – [Controlar Acesso ao Sistema]
REQF2 – [Gerar Dados para Análise]
56
REQF3 – [Selecionar Dados Gerados para Análise]
Requisitos Não Funcionais: REQNF1 – [Utilização de Banco de Dados Relacional]
REQNF2 – [Base de dados Alimentada]
REQNF3 – [Links/Ícones/Botões para Acesso às
Principais Funções]
REQNF4 – [Java Virtual Machine]
Atores: Usuário Administrador, Scouter e Restrito.
Pré-condições: Ser um usuário cadastrado no sistema.
Ter selecionado dados para a análise.
Fluxo Principal: O usuário acessa o módulo de mineração de dados e
clica na opção aplicar técnicas de mineração de dados.
Subfluxo:
1. Relatório de Agrupamento de Atletas por Efeito de
Fundamento;
2. Relatório de Agrupamento de Atletas por Posição e
Efeito de Fundamento.
Subfluxos: 1. Relatório de Agrupamento de Atletas por Efeito
de Fundamento:
1.1 Usuário clica no botão/link “Agrupamento de
Atletas por Efeito de Fundamento”;
1.2 O módulo através de uma função do
PostgreSQL (Figura Apêndice 2) gera o
arquivo ARFF e o grava no disco rígido;
1.3 O módulo, através da classe de integração
ClusteringEM carrega o arquivo ARFF e
submete a classe EM do WEKA através do
método buildClusterer, depois o retorno é lido
pela classe de integração através do método
getNumClusters da classe ClusterEvaluation;
1.4 Esse retorno é tratado para que os dados sejam
de fácil entendimento da comissão técnica;
2. Relatório de Agrupamento de Atletas por
Posição e Efeito de Fundamento:
2.1 Usuário clica no botão/link “Agrupamento de
Atletas por Posição e Efeito de Fundamento”;
2.2 O módulo através de uma função do
PostgreSQL (Figura Apêndice 3) gera o
arquivo ARFF e o grava no disco rígido;
2.3 O módulo, através da classe de integração
ClusteringFarthestFirst carrega o arquivo ARFF
e submete a classe FarthestFirst do WEKA
57
através do método buildClusterer, depois o
retorno é lido pela classe de integração através
dos métodos getNumClusters e toString da
própria classe ClusterEvaluation FarthestFirst;
2.4 Esse retorno é tratado para que os dados sejam
de fácil entendimento da comissão técnica.
Tratamento de Exceções: 1.2.1 e 2.2.1 Caso o banco de dados não responda a
requisição ele retorna a mensagem de erro “Banco
indisponível.”.
Pós-condições: Os usuários administrador, scouter, restrito estarão
aptos analisar relatório das técnicas aplicadas.
Fonte: Autor, 2008.
Figura 3.14 apresenta o diagrama de atividade, como forma de validar o caso de uso
estendido.
Figura 3.14 – Diagrama de Atividade referente a aplicar técnicas de mineração de dados
Fonte: AUTOR, 2008
58
3.3 Diagrama de Classes
Guedes (2008) aponta que o principal objetivo do diagrama de classes é apresentar
quais classes vão compor o módulo com seus respectivos atributos e métodos, além de
demonstrar como as classes se relacionam. Na seguir (Figura 3.15) é apresentado o diagrama
de classes do módulo proposto.
59
Figura 3.15 – Diagrama de Classes referente a integração do módulo MD e o WEKA
Fonte: AUTOR, 2008
60
3.4 Diagrama de Seqüência
Medeiros (2004) afirma que esse diagrama pode ser usado para mostrar a evolução
de uma dada situação em determinado momento do software, mostrar uma dada colaboração
entre as classes e pode, também, ser usado para mostrar a tradução do caso de uso. Enfim, é
através desse diagrama que métodos são definidos e em quais classes eles serão depositados.
A seguir (Figuras 3.16, 3.17 e 3.18) são apresentados os diagramas de seqüência dos
casos de uso apresentados anteriormente.
Figura 3.16 – Diagrama de Seqüência referente ao caso de uso UC001 (Gerar Dados para
Análise) Fonte: AUTOR, 2008
Figura 3.17 – Diagrama de Seqüência referente ao caso de uso UC002 (Selecionar Dados
Gerados para Análise) Fonte: AUTOR, 2008
61
Figura 3.18 – Diagrama de Seqüência referente ao caso de uso UC002 (Selecionar Dados
Gerados para Análise) Fonte: AUTOR, 2008
Com base nos casos de uso e nos diagramas apresentados é possível iniciar o
desenvolvimento do módulo de mineração de dados, que segue no próximo capítulo.
4 PROTÓTIPO DO MÓDULO DE MINERAÇÃO DE DADOS
Este trabalho apresenta um projeto de um módulo de mineração de dados. Essa é
mais uma etapa concluída do Projeto de Pesquisa “A IA Entrando na Quadra de Vôlei: Scout
Inteligente”.
4.1 Linguagem de Programação
Para o desenvolvimento do módulo proposto, é recomendada a linguagem de
programação Java 3, pois ela é compatível com os sistemas suporte, pois tanto o sistema scout
de Raimann (2008) quanto o WEKA são sistemas desenvolvidos nessa linguagem.
De acordo com a Sun, as principais qualidades são a versatilidade, eficiência e
portabilidade, permitindo aos desenvolvedores:
Criar um software em uma plataforma e executá-lo em praticamente qualquer
outra;
Criar programas para execução em navegadores e serviços da Web;
Desenvolver aplicativos no lado do servidor usados tanto em fóruns, lojas e
pesquisas on-line, como no processamento de formulários HTML, e muito
mais;
Combinar aplicativos ou serviços usando a linguagem Java para criar
aplicativos ou serviços altamente personalizados;
Criar aplicativos potentes e eficazes para telefones celulares, processadores
remotos, produtos de consumo de baixo custo e praticamente qualquer outro
dispositivo com tecnologia digital.
3 http://java.sun.com
63
Além disso, podem-se destacar outras vantagens apresentadas pela linguagem:
Sintaxe similar a Linguagem C/C++;
Facilidades de Internacionalização: Suporta nativamente caracteres Unicode;
É distribuída com um vasto conjunto de bibliotecas ou APIs;
Possui facilidades para criação de programas distribuídos e multitarefa;
Desalocação de memória automática por processo de coletor de lixo, Garbage
Collector.
O tipo de aplicação, web ou desktop, deverá ser definida após uma melhor análise do
tempo de processamento dos algoritmos de mineração de dados, os ensaios feitos durante esse
trabalho tiveram uma quantidade de dados muito pequena.
Caso aplicação seja web, deverá ser instalado um servidor de aplicação, o mais
conhecido é o Apache Tomcat4, esse servidor é distribuído como software livre e
desenvolvido como código aberto dentro do conceituado projeto Apache Jakarta e
oficialmente endossado pela Sun como a Implementação de Referência (RI) para as
tecnologias Java Servlet e Java Server Pages (JSP).
A ferramenta para o ambiente de desenvolvimento do modulo é o Eclipse IDE5 para
Java. É um ambiente de desenvolvimento integrado de código aberto para a construção de
programas de computador. É mantida atualmente pela Eclipse Foundation6.
4.2 Sistema de Gerenciamento de Banco de Dados
Como Sistema de Gerenciamento de Banco de Dados Objeto-Relacional foi utilizado
o PostgreSQL 8.3.37, pois é Open Source. Foi desenvolvido pela PostgreSQL Global
Development Group8 e possui a característica de ser multiplataforma.
O PostgreSQL possui alguns recursos como:
Consultas complexas;
Chaves estrangeiras;
4 http://tomcat.apache.org/download-60.cgi#6.0.16
5 http://www.eclipse.org/
6 http://www.eclipse.org/org/foundation/
7 http://www.postgresql.org/docs/
8 http://www.postgresql.org/
64
Integridade transacional;
Controle de concorrência multi-versão;
Suporte ao modelo híbrido objeto-relacional;
Trigger;
Views;
Stored Procedures em várias linguagens.
4.3 Ferramenta para Administração do PostgreSQL
Como ferramenta de administração e manipulação de dados, foi utilizado o SQL
Manager for PostgreSQL 4.4.0.69 da EMS
10, contudo essa ferramenta não é livre, mas permite
avaliação por trinta dias. Seu diferencial são os inúmeros recursos facilitadores para o
desenvolvimento, gerenciamento e manipulação de dados.
4.4 Modelagem do Módulo de Mineração de Dados
Utilizou-se a UML 2.0 como linguagem de modelagem dos aspectos estruturais e
funcionais do modulo proposto. Optou-se por UML pela característica flexível e por ser uma
linguagem gráfica.
Foi utilizado o JUDE Community 5.3.2811
, que é uma ferramenta para modelagem,
devido a sua característica de software livre.
4.5 Protótipo do Módulo de Mineração de Dados
O protótipo do sistema foi baseado nos requisitos apresentados no capítulo 3 item 3.1
e nos casos de uso descritos no item 3.2.
A seguir são apresentados os protótipos das telas do módulo. Esses protótipos foram
desenvolvidos utilizando a tecnologia ASP.net da Microsoft por causa de sua fácil
manipulação com componentes web. A seguir (Figura 4.1) a tela inicial do módulo.
9 http://sqlmanager.net/products/postgresql/manager/
10 http://sqlmanager.net/en/about
11 http://jude.change-vision.com/jude-web/product/community.html
65
Figura 4.1 – Protótipo da tela inicial do módulo de mineração de dados
Fonte: AUTOR, 2008.
Tela de geração de dados para o módulo de mineração de dados.
Figura 4.2 – Protótipo da tela de geração de dados para o módulo de MD
Fonte: AUTOR, 2008.
66
A próxima tela que permite o usuário selecionar os dados desejados para aplicação
das técnicas de mineração de dados e posterior análise.
Figura 4.3 – Protótipo da tela de selecionar dados gerados para análise
Fonte: AUTOR, 2008.
A seguir a tela referente à aplicação das técnicas de mineração de dados.
Figura 4.4 – Protótipo da tela de aplicar técnicas de mineração de dados
Fonte: AUTOR, 2008.
67
Além da prototipação das telas, também foram desenvolvidas algumas etapas da
mineração de dados, parte do processo para que o módulo seja integrado ao WEKA.
4.6 Preparação dos Dados Mineração de Dados
Após os ajustes feitos na base de dados do sistema scout de Raimann (2008)
ilustrado na Figura 3.3 do capítulo 3, foram simulados alguns sets para que houvesse dados
para que fossem elaborados os procedimentos de mineração de dados. As informações
armazenadas na base de dados do sistema scout são preparadas e carregadas em um Data
Mart. Esse Data Mart é estruturado para unir os dados dos fundamentos, possibilitando assim
uma melhor visão dos dados que serão submetidos a Mineração de Dados como pode ser visto
na Figura 4.5.
Figura 4.5 – Modelagem do Data Mart
Fonte: AUTOR, 2008
Após a criação desse Data Mart e da função apresentada na Figura Apêndice 1, é
possível popular com os dados inseridos na base original do sistema scout de Raimann (2008).
Além dessa função, foram criadas outras duas funções que geram os arquivos ARFF para cada
uma das técnicas selecionadas para os experimentos. Essas funções são apresentadas nas
Figuras Apêndice 2 e 3. O próximo passo é criação das classes de integração para que o
módulo possa comunicar-se diretamente com o WEKA.
68
4.7 Classes de integração Módulo com o WEKA
A responsabilidade dessas classes é comunicar os arquivos ARFF gerados pelas
funções citadas anteriormente com o WEKA, sem que o usuário tome conhecimento, sendo
assim um processo transparente.
Após a aplicação de três técnicas de mineração de dados (regras de associação,
agrupamento e classificação) no Data Mart, a técnica escolhida para o módulo foi a de
agrupamento. Essa técnica possibilitou resultados interessantes, apesar da base de dados ser
incipiente. Os dados exibidos por essa técnica são entendíveis a alguém que está familiarizado
com o voleibol. Outro ponto positivo foi o grande número de algoritmos disponíveis para essa
técnica, porém foram selecionados os algoritmos EM12
e FarthestFirst13
para o
desenvolvimento das classes.
A classe apresentada na Figura 4.6 é responsável pela integração entre o módulo e o
algoritmo EM do WEKA.
12
Algoritmo EM (Expectation Maximization): atribui uma distribuição da probabilidade a cada exemplo, que
indica a que agrupamento pertence a cada exemplo.
13 Algoritmo FarthestFirst: maiores informações leia Hochbaum, D.; Shmoys, D.. A best possible heuristic for
the k-center problem. Em Mathematics of Operations Research, 10(2):180-184, 1985.
69
Figura 4.6 – Figura apresenta o código fonte da classe de integração ClusteringEM
Fonte: AUTOR, 2008
Já a classe apresentada na Figura 4.7 é responsável pela integração entre o módulo e
o algoritmo FarthestFirst do WEKA.
import weka.core.Instances;
import weka.clusterers.DensityBasedClusterer;
import weka.clusterers.EM;
import weka.clusterers.ClusterEvaluation;
import java.io.BufferedReader;
import java.io.FileReader;
/**
* @author Émerson Butzen
*/
public class ClusteringEM {
/**
* @param filename the name of the ARFF file to run on
*/
public ClusteringEM(String filename) throws Exception
{
Instances data;
data = new Instances(new BufferedReader(new FileReader(filename)));
// normal
System.out.println("\n--> normal");
String[] options;
options = new String[2];
options[0] = "-t";
options[1] = filename;
ClusterEvaluation eval;
DensityBasedClusterer cl;
cl = new EM();
System.out.println(
ClusterEvaluation.evaluateClusterer(cl, options)
);
// manual call
System.out.println("\n--> manual");
cl.buildClusterer(data);
eval = new ClusterEvaluation();
eval.setClusterer(cl);
eval.evaluateClusterer(new Instances(data));
System.out.println("# of clusters: " + eval.getNumClusters());
// density based
System.out.println("\n--> density (CV)");
cl = new EM();
eval = new ClusterEvaluation();
eval.setClusterer(cl);
eval.crossValidateModel(cl, data, 10, data.getRandomNumberGenerator(1));
System.out.println("# of clusters: " + eval.getNumClusters());
}
}
70
Figura 4.7 – Figura apresenta o código fonte da classe de integração ClusteringFarthestFirst
Fonte: AUTOR, 2008
Para cada técnica/algoritmo de mineração de dados foi criada uma classe de
integração, pois cada algoritmo do WEKA tem métodos diferentes uns dos outros. A seguir
são apresentados alguns resultados obtidos nos experimentos.
4.8 Resultados
Os resultados apresentados, a seguir, foram produzidos através do módulo proposto.
Para aferir esses resultados, os mesmos arquivos de formato ARFF foram submetidos
diretamente à ferramenta WEKA, através do seu módulo Explorer, e os resultados
permaneceram os mesmos.
Para o primeiro algoritmo (EM) da técnica de agrupamento foi submetido um
arquivo ARFF com os atributos fundamento, numerocamisetajogador e efeitofundamento,
com um total de 31 registros, todos eles do fundamento bloqueio. O objetivo desse primeiro
experimento é avaliar o resultado da mineração e qual seria sua aplicação numa equipe de
vôlei, na Figura 4.8 o arquivo ARFF gerado.
package ModuloDM;
import weka.core.Instances;
import weka.clusterers.FarthestFirst;
import java.io.BufferedReader;
import java.io.FileReader;
/**
* @author Émerson Butzen
*/
public class ClusteringFarthestFirst {
/**
* @param filename the name of the ARFF file to run on
*/
public ClusteringFarthestFirst(String filename) throws Exception {
Instances data;
String[] options;
FarthestFirst cl = new FarthestFirst();
data = new Instances(new BufferedReader(new FileReader(filename)));
// normal
System.out.println("\n--> normal");
options = new String[1];
options[0] = "-N 4";
cl.setOptions(options);
cl.buildClusterer(data);
System.out.println("# of clusters: " + cl.getNumClusters());
System.out.println(cl.toString());
}
}
71
Figura 4.8 – Figura apresenta o arquivo ARFF submetido ao algoritmo EM do WEKA
Fonte: AUTOR, 2008
O resultado da aplicação desse algoritmo é apresenta na Figura 4.9, onde é visto que
foram criados três agrupamentos, um para cada jogador e seus valores mais representativos.
No primeiro agrupamento (cluster 0 da Figura 4.9) pode-se identificar que o atleta da
camiseta número 2 realizou em torno (Discrete Estimator. Counts) de 14 bloqueios e o efeito
desses foi de 3, ou seja, 14 pontos para sua equipe. Mas esses dados podem ser utilizados pela
comissão técnica adversária para orientar seus atletas para que não atacassem sobre esse
atleta. O segundo agrupamento apresenta dados semelhantes, porém de outro atleta: atleta
camiseta número 4. O último agrupamento apresenta dados do mesmo atleta, camiseta
número 2, onde houve uma mudança no efeito do fundamento. O efeito alcançado foi de 2
para duas ocorrências, ou seja, continuidade positiva mas não ponto. Conclui-se assim que
essa equipe é altamente forte no bloqueio e que alternativas devem ser criadas para evitá-lo.
@relation fundamentobloqueio
@attribute fundamento {BL}
@attribute numerocamisetajogador real
@attribute efeitofundamento real
@data
BL,2,3
BL,4,3
BL,2,3
BL,4,3
BL,2,3
BL,4,3
BL,4,3
BL,4,3
BL,2,2
BL,4,3
BL,2,3
BL,4,3
BL,2,3
BL,4,3
BL,2,3
BL,2,3
BL,2,3
BL,2,3
BL,2,3
BL,4,3
BL,4,3
BL,4,3
BL,4,3
BL,2,3
BL,4,3
BL,4,3
BL,2,3
BL,2,3
BL,2,3
BL,4,3
BL,2,3
72
Figura 4.9 – Figura apresenta o resultado da aplicação do algoritmo EM do WEKA
Fonte: AUTOR, 2008
No segundo algoritmo (FarthestFirst) da técnica de agrupamento, foi submetido um
arquivo ARFF com os atributos fundamento, numerocamisetajogador, posicaojogador e
efeitofundamento (total de 31 registros) do fundamento bloqueio. A seguir o arquivo ARFF e
o resultado da mineração de dados (Figuras 4.10 e 4.11).
--> normal
EM
==
Number of clusters selected by cross validation: 3
Cluster: 0 Prior probability: 0.4833
Attribute: fundamento
Discrete Estimator. Counts = 14.97 (Total = 14.97)
Attribute: numerocamisetajogador
Normal Distribution. Mean = 2.0269 StdDev = 0.2303
Attribute: efeitofundamento
Normal Distribution. Mean = 3 StdDev = 0.1796
Cluster: 1 Prior probability: 0.4844
Attribute: fundamento
Discrete Estimator. Counts = 17.03 (Total = 17.03)
Attribute: numerocamisetajogador
Normal Distribution. Mean = 3.8485 StdDev = 0.5292
Attribute: efeitofundamento
Normal Distribution. Mean = 3 StdDev = 0.1796
Cluster: 2 Prior probability: 0.0323
Attribute: fundamento
Discrete Estimator. Counts = 2 (Total = 2)
Attribute: numerocamisetajogador
Normal Distribution. Mean = 2 StdDev = 1.016
Attribute: efeitofundamento
Normal Distribution. Mean = 2 StdDev = 0.1796
=== Clustering stats for training data ===
Clustered Instances
0 15 ( 48%)
1 15 ( 48%)
2 1 ( 3%)
Log likelihood: 0.06105
--> manual
# of clusters: 3
--> density (CV)
# of clusters: 0
73
Figura 4.10 – Figura do arquivo ARFF submetido ao algoritmo FarthestFirst do WEKA
Fonte: AUTOR, 2008
Figura 4.11 – Figura mostra o resultado da aplicação do algoritmo FarthestFirst do WEKA
Fonte: AUTOR, 2008
--> normal
# of clusters: 2
FarthestFirst
==============
Cluster centroids:
Cluster 0
BL 4.0 P5 3.0
Cluster 1
BL 2.0 P2 2.0
@relation fundamentobloqueio
@attribute fundamento {BL}
@attribute numerocamisetajogador real
@attribute posicaojogador {P1, P2, P3, P4, P5, P6}
@attribute efeitofundamento real
@data
BL,2,P3,3
BL,4,P5,3
BL,2,P3,3
BL,4,P5,3
BL,2,P3,3
BL,4,P4,3
BL,4,P5,3
BL,4,P5,3
BL,2,P2,2
BL,4,P5,3
BL,2,P3,3
BL,4,P5,3
BL,2,P3,3
BL,4,P5,3
BL,2,P3,3
BL,2,P3,3
BL,2,P3,3
BL,2,P3,3
BL,2,P3,3
BL,4,P5,3
BL,4,P5,3
BL,4,P5,3
BL,4,P5,3
BL,2,P3,3
BL,4,P5,3
BL,4,P5,3
BL,2,P3,3
BL,2,P3,3
BL,2,P3,3
BL,4,P5,3
BL,2,P3,3
74
Apesar de parecer simples o resultado desse algoritmo, é bastante conclusivo. O
atleta de camiseta número 2 quando bloqueia na posição dois não tem o mesmo
aproveitamento do que nas outras posições. Sendo assim, a comissão técnica adversária pode
orientar seus atacantes que explorem essa condição, aumentando a possibilidade de ponto de
sua equipe.
Como apresentado nesses dois experimentos, a mineração de dados realmente é
válida para a descoberta de informações antes não conhecidas.
Assim, conclui-se o projeto do módulo de mineração de dados para o sistema scout
de Raimann (2008), realizando a integração entre o sistema scout tradicional com uma
ferramenta avançada de mineração de dados, e obtendo informações que podem realmente
influenciar resultados de uma equipe de voleibol.
CONCLUSÃO
Os sistemas de informação são essenciais no dia-a-dia das organizações, bem como
nas equipes de voleibol, que não tem condições de grandes investimentos nessa área. Tais
sistemas são conhecidos como sistemas scout, que monitoram desempenho de atletas. A cada
dia que passa, grandes quantias de informações são armazenadas nos bancos de dados desses
sistemas. Esses dados referem-se a atletas de uma equipe, ou de várias equipes. Quanto mais
rica a base de dados, mais cenários podem ser considerados no processo de tomada de
decisão. Por causa dessa grande quantidade de dados que o processo de decisão tem se
tornado cada vez mais difícil. Quanto maior o número de cenários a considerar, mais difícil é
para que o tomador de decisão encontre um padrão e tome a decisão correta.
No mundo esportivo, os sistemas são basicamente estatísticos (scout), ou seja, são
números e números a serem analisados, aumentando mais a dificuldade no processo de
tomada de decisão, além de não permitem uma visualização de padrões (de jogadas) que
podem estar ocorrendo em um jogo. Uma das soluções encontradas no mundo dos negócios
foi a mineração de dados, sendo que muitos dos sistemas de inteligência para o negócio
aplicam técnicas de mineração de dados para buscar padrões e traçar cenários futuros.
A partir desses problemas enfrentados por muitas equipes esportivas, principalmente
a nível amador, é que surge este trabalho. Com objetivo é projetar um módulo de mineração
de dados que possa ser acoplado ao sistema scout desenvolvido por Raimann (2008).
Este trabalho, assim como o de Raimann (2008), fazem parte de do projeto de
pesquisa “A IA entrando na quadra de vôlei: Scout Inteligente”, que visa disponibilizar
sistemas a equipes amadoras para que possam ter acesso a informações de suas equipes e
equipes adversárias, e assim preparar melhor seus atletas (melhora nos fundamentos) e suas
equipes (táticas de jogo).
76
O trabalho realizou um estudo bibliográfico sobre Mineração de Dados. Este estudo
apresentou algumas características e funcionalidades de sistemas de informação e do processo
de tomada de decisão, além de apresentar principais características, funcionalidades,
utilizações e técnicas de mineração de dados. Também foram avaliados sistemas que utilizam
mineração de dados como solução para a melhora no processo de tomada de decisão. Sendo
que um deles é voltado ao esporte e outro ao telemarketing.
Através da elaboração de duas classes de integração foi possível integrar o módulo
proposto com o WEKA e aplicar dois algoritmos de mineração de dados da técnica de
agrupamento. A aplicação dos algoritmos nos dados do Data Mart possibilitou também
conferir a importância da mineração de dados para a descoberta de informações relevantes
para a comissão técnica de uma equipe de voleibol.
Este trabalho também possibilitou a publicação de um resumo e dois artigos, são eles
respectivamente:
Proposta de uso da Mineração de Dados em Sistemas de Avaliação de
Desempenho de Atletas, apresentado na II Mostra de Pesquisa e de
Iniciação Científica da Ulbra;
Proposta de um Módulo de Data Mining para um sistema de Scout no
Voleibol, apresentado no VII Simpósio de Informática da Região Centro
do Rio Grande do Sul - SIRC/RS.
Projeto de Módulo de Data Mining para Scout Voleibol, apresentado no
VII Seminário de Informática - RS – SEMINFO RS‟2008.
Algumas limitações foram encontradas, como por exemplo, o sistema Scout
(RAIMANN, 2008) em desenvolvimento e com sua base de dados incipiente além da
ausência de softwares para comparação com o módulo desenvolvido
Como trabalhos futuros, sugerem-se: a integração de mais técnicas de mineração de
dados ao módulo; o tratamento do retorno apresentado das técnicas de mineração aplicadas
neste trabalho, permitindo uma visualização melhor das informações. Outro trabalho
interessante seria a adaptação deste módulo para qualquer tipo de base de dados.
REFERÊNCIAS BIBLIOGRÁFICAS
BERNARDINHO. Transformando suor em ouro. Rio de Janeiro, RJ: Sextante, 2006. 215 p.
BHANDARI, Inderpal Singh. Attribute Focusing: Data mining for the layman (Research
Report RC 20136). IBM T.J. Watson Research Center.
BHANDARI, Inderpal Singh; COLET, Edward; PARKER, Jennifer; PINES, Zachary;
PRATAP, Rajiv; RAMANUJAM, Krishnakumar. Advanced Scout: Data Mining and
Knowledge Discovery in NBA Data. Data Mining and Knowledge Discovery, Boston,
Massachusetts, EUA: Kluwer Academic Publishers, 1997, Vol. 1, No. 1, p. 121-125.
BINDER, Fábio Vinícius. Sistemas de apoio à decisão. São Paulo, SP: Érica, 1994. 98 p.
BRAMER, Max. Principles of Data Mining (Undergraduate Topics in Computer
Science). Londres, Inglaterra: Springer-Verlag London Ltd, 2007. 344 p.
CHARLES, Peter; GOOD, Nathan; JORDAN, Laheem Lamar; PAL, Joyojeet;
SWEARINGEN, Kirsten; LYMAN, Peter; VARIAN, Hal R.. How Much Information?
2003. Berkeley, Califórnia, EUA: 2003. School of Information Management and Systems, UC
Berkeley, 2003. Disponível em <http://www.sims.berkeley.edu/research/projects/how-much-
info-2003/>. Acesso em 03 de junho de 2008.
COELHO, Fabrício Luís. Classificação semi-automática de monografias. Novo Hamburgo,
RS: 2008. 71p. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) –
Instituto de Ciências Exatas e Tecnológicas, Feevale, 2008.
ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4ª ed. São
Paulo, SP: Pearson Addison Wesley, 2005. 724 p.
FAYYAD, Usama; PIATETSKY-SHAPIRO, Gregory; SMYTH, Padhraic. From Data
Mining to Knowledge Discovery in Databases. AI Magazine, American Association for
Artificial Intelligence. Menlo Park, California, EUA, 1996, v.17 n.3, p. 37-54.
FERREIRA, Aurélio Buarque de Holanda. Mini Dicionário da Língua Portuguesa. 2ª ed.
Rio de Janeiro, RJ: Nova Fronteira, 1988, 536 p.
FREITAS, Henrique; BECKER, João Luiz; KLADIS, Constantin Metaxa; HOPPEN,
Norberto. Informação e decisão: sistemas de apoio e seu impacto. Porto Alegre, RS: Ortiz,
1997. 214 p.
78
GIUDICI, Paolo. Applied Data Mining: Statistical Methods for Business and Industry.
Chichester, West Sussex, Inglaterra: John Wiley & Sons Ltd, 2003. 364 p.
GONCHOROSKI, Sidinei Pereira. Utilização de técnicas de KDD em um call center ativo.
Novo Hamburgo, RS: 2007. 73p. Trabalho de Conclusão de Curso (Bacharelado em Ciência
da Computação) – Instituto de Ciências Exatas e Tecnológicas, Feevale, 2007.
GUEDES, Gilleanes T. A. UML Uma abordagem prática 3º ed. São Paulo: Ed. Novatec,
2008. 336 p.
HAN, Jiawei; KAMBER, Micheline, Data Mining Concepts and Techniques. São
Francisco, Califórnia, EUA: Morgan Kaufman Publishers, 2006. 772 p.
KANTARDZIC, Mehmed. Data Mining: Concepts, Models, Methods, and Algorithms.
Hoboken, Nova Jersey, EUA: John Wiley & Sons Inc., 2003. 343 p.
MARTIN, James. An information systems manifesto. Englewood Cliffs, Nova Jersey,
EUA: Prentice-Hall, c 1984. 300 p.
MEDEIROS, Ernani Sales de. Desenvolvendo Software com UML 2.0: Definitivo. São
Paulo: Pearson Makron Books, 2004. 264 p.
MIERSWA, Ingo; WURST, Michael; KLINKENBERG, Ralf; SCHOLZ, Martin; EULER,
Timm. Yale (now: RapidMiner): Rapid Prototyping for Complex Data Mining Tasks. In:
Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery and
Data Mining (KDD 2006), Filadélfia, Pensilvânia, EUA: ACM, 2006.
PRODANOV, Cleber. Manual de Metodologia Científica. 3ª ed. Novo Hamburgo, RS:
FEEVALE, 2003. 79 p.
RAIMANN, Luís Henrique. Scout: Sistema de monitoração em equipes de voleibol. Novo
Hamburgo, RS: 2008. Trabalho de Conclusão de Curso (Bacharelado em Sistemas de
Informação) – Instituto de Ciências Exatas e Tecnológicas, Feevale, 2008.
SANTOS, Rafael. Weka na Munheca: Um guia para uso do Weka em scripts e
integração com aplicações em Java. Apostila Princípios e Aplicações de Mineração de
Dados. S.l., 2005. 20 p. Disponível em: <
http://www.lac.inpe.br/~rafael.santos/Docs/CAP359/2005/weka.pdf>. Acessado em: 05 set.
2008.
SOLIEMAN, Osama K.. Data Mining in Sports: A Research Overview. Tucson: 2006. 76p.
MIS Master‟s Project, University of Arizona, 2006.
SUMATHI, S.; SIVANANDAM, S. N. Introduction to data mining and its applications
(Studies in Computational Intelligence). Berlim, Alemanha: Springer-Verlag Berlin
Heidelberg, 2006. p 828.
ZAMBERLAM, Alexandre de Oliveira; WIVES, Leandro Krug; GOULART, Rodrigo Rafael
Villarreal; SILVEIRA, Roni Gilberto. A IA entrando na quadra de vôlei: scout inteligente.
Hífen, Uruguaiana, RS, v.29, n.55/56, p.103-110, I/II semestre 2005.
79
WAGNER, Eduardo Antonio. Utilizando data mining em pesquisa de clima
organizacional. Novo Hamburgo, RS: 2008. Trabalho de Conclusão de Curso (Bacharelado
em Sistemas de Informação) – Instituto de Ciências Exatas e Tecnológicas, Feevale, 2008.
WITTEN, Ian H.; FRANK, Eibe. Data Mining: Practical machine learning tools and
techniques. 2 ª ed. São Francisco, Califórnia, EUA: Morgan Kaufman Publishers, 2005.
Disponível em: <http://www.cs.waikato.ac.nz/ml/weka/index.html>. Acesso em: 24 jun.
2008.
WIVES, Leandro Krug. Utilizando conceitos como descritores de textos para o processo
de identificação conglomerados (clustering) de documentos. Porto Alegre, RS: 2004. 136
fl. Tese (Doutorado em Ciência da Computação) - Universidade Federal do Rio Grande do
Sul, 2004.
APÊNDICES
81
Figura Apêndice 1 – Função SQL do PostgreSQL para geração de dados no DataMart
Fonte: AUTOR, 2008.
CREATE OR REPLACE FUNCTION "public"."fnPopulaDataMart" () RETURNS boolean AS
$body$
insert into public.dmhistorico (DataDm)
select now()::"timestamp";
insert into public.dmjogos
(
idjogo,
idequipe,
idjogador,
dmhistorico_idhistorico,
numerocamisetajogador,
funcaopartida
)
select vwdatamartdados.idjogo,
vwdatamartdados.idequipe,
vwdatamartdados.idjogador,
max(idhistorico) as "dmhistorico_idhistorico",
vwdatamartdados.numerocamisetajogador,
vwdatamartdados.funcaopartida
from vwdatamartdados, dmhistorico
group by vwdatamartdados.idjogo,
vwdatamartdados.idequipe,
vwdatamartdados.idjogador,
vwdatamartdados.numerocamisetajogador,
vwdatamartdados.funcaopartida;
insert into public.dmsetsrotacaofundamentos
(
idset,
dmjogos_idjogador,
dmjogos_idequipe,
dmjogos_idjogo,
dmjogos_dmhistorico_idhistorico,
idjogosetrotacao,
idmovimento,
tempomovimento,
idevento,
posicaojogador,
fundamento,
posicaofundamento,
efeitofundamento,
direcaofundamento,
tipofundamento,
constituicaofundamentobloqueio,
velocidadefundamentocortada,
formafundamentolevantamento,
qualidadefundamentolevantamento,
observacoesfundamento
)
select vwdatamartdados.idset,
vwdatamartdados.idjogador,
vwdatamartdados.idequipe,
vwdatamartdados.idjogo,
max(idhistorico)::integer as dmjogos_dmhistorico_idhistorico,
vwdatamartdados.idjogosetrotacao,
vwdatamartdados.idmovimento,
vwdatamartdados.tempomovimento,
vwdatamartdados.idevento,
vwdatamartdados.posicaojogador,
vwdatamartdados.fundamento,
vwdatamartdados.posicaofundamento,
vwdatamartdados.efeitofundamento,
vwdatamartdados.direcaofundamento,
vwdatamartdados.tipofundamento,
vwdatamartdados.constituicaofundamentobloqueio,
vwdatamartdados.velocidadefundamentocortada,
vwdatamartdados.formafundamentolevantamento,
vwdatamartdados.qualidadefundamentolevantamento,
vwdatamartdados.observacoesfundamento
from vwdatamartdados, dmhistorico
group by vwdatamartdados.idset,
vwdatamartdados.idjogador,
vwdatamartdados.idequipe,
vwdatamartdados.idjogo,
vwdatamartdados.idjogosetrotacao,
vwdatamartdados.idmovimento,
vwdatamartdados.tempomovimento,
vwdatamartdados.idevento,
vwdatamartdados.posicaojogador,
vwdatamartdados.fundamento,
vwdatamartdados.posicaofundamento,
vwdatamartdados.efeitofundamento,
vwdatamartdados.direcaofundamento,
vwdatamartdados.tipofundamento,
vwdatamartdados.constituicaofundamentobloqueio,
vwdatamartdados.velocidadefundamentocortada,
vwdatamartdados.formafundamentolevantamento,
vwdatamartdados.qualidadefundamentolevantamento,
vwdatamartdados.observacoesfundamento;
select true;
$body$
LANGUAGE 'sql'
VOLATILE
RETURNS NULL ON NULL INPUT
SECURITY INVOKER
COST 100;
82
Figura Apêndice 2 – Função SQL do PostgreSQL que gera o arquivo para o relatório de
agrupamento de atletas por efeito de fundamento Fonte: AUTOR, 2008.
Figura Apêndice 3 – Função SQL do PostgreSQL que gera o arquivo para o relatório de
agrupamento de atletas por posição e efeito de fundamento Fonte: AUTOR, 2008.
CREATE OR REPLACE FUNCTION "public"."fnGerarRAAPEFarff" () RETURNS SETOF boolean AS
$body$
copy (
SELECT '@relation fundamentobloqueio'::text as Estrutura
union all
SELECT '@attribute fundamento {BL}'::text as Estrutura
union all
SELECT '@attribute numerocamisetajogador real'::text as Estrutura
union all
SELECT '@attribute posicaojogador {P1, P2, P3, P4, P5, P6}'::text as Estrutura
union all
SELECT '@attribute efeitofundamento real'::text as Estrutura
union all
SELECT '@data'::text as Estrutura
union all
select public.dmsetsrotacaofundamentos.fundamento ||','||
public.dmjogos.numerocamisetajogador ||','||
public.dmsetsrotacaofundamentos.posicaojogador ||','||
public.dmsetsrotacaofundamentos.efeitofundamento::text as Estrutura
FROM public.dmjogos
INNER JOIN public.dmsetsrotacaofundamentos ON (public.dmjogos.idjogo =
public.dmsetsrotacaofundamentos.dmjogos_idjogo)
AND (public.dmjogos.idequipe = public.dmsetsrotacaofundamentos.dmjogos_idequipe)
AND (public.dmjogos.idjogador = public.dmsetsrotacaofundamentos.dmjogos_idjogador)
AND (public.dmjogos.dmhistorico_idhistorico =
public.dmsetsrotacaofundamentos.dmjogos_dmhistorico_idhistorico)
where (public.dmjogos.dmhistorico_idhistorico = 5)
and (public.dmsetsrotacaofundamentos.fundamento = 'BL')
) to E'D:/My Documents/TCC/TCII/TCII_Modulo/Experimentos/RAAPEF.arff';
select true;
$body$
LANGUAGE 'sql'
VOLATILE
RETURNS NULL ON NULL INPUT
SECURITY INVOKER
COST 100 ROWS 1000;
CREATE OR REPLACE FUNCTION "public"."fnGerarRAAEFarff" () RETURNS boolean AS
$body$
copy (
SELECT '@relation fundamentobloqueio'::text as Estrutura
union all
SELECT '@attribute fundamento {BL}'::text as Estrutura
union all
SELECT '@attribute numerocamisetajogador real'::text as Estrutura
union all
SELECT '@attribute efeitofundamento real'::text as Estrutura
union all
SELECT '@data'::text as Estrutura
union all
select public.dmsetsrotacaofundamentos.fundamento ||','||
public.dmjogos.numerocamisetajogador ||','||
public.dmsetsrotacaofundamentos.efeitofundamento::text as Estrutura
FROM public.dmjogos
INNER JOIN public.dmsetsrotacaofundamentos ON (public.dmjogos.idjogo =
public.dmsetsrotacaofundamentos.dmjogos_idjogo)
AND (public.dmjogos.idequipe = public.dmsetsrotacaofundamentos.dmjogos_idequipe)
AND (public.dmjogos.idjogador = public.dmsetsrotacaofundamentos.dmjogos_idjogador)
AND (public.dmjogos.dmhistorico_idhistorico =
public.dmsetsrotacaofundamentos.dmjogos_dmhistorico_idhistorico)
where (public.dmjogos.dmhistorico_idhistorico = 5)
and (public.dmsetsrotacaofundamentos.fundamento = 'BL')
) to E'D:/My Documents/TCC/TCII/TCII_Modulo/Experimentos/RAAEF.arff';
select true;
$body$
LANGUAGE 'sql'
VOLATILE
RETURNS NULL ON NULL INPUT
SECURITY INVOKER
COST 100;