SARAT - Sistema de Análise do Risco de Acidentes no

Propaganda
SISTEMAS DE INFORMAÇÃO
HERBERT SOUZA PEREIRA
SÉRGIO RODRIGUES COSTA
SARAT - SISTEMA DE ANÁLISE DO RISCO DE ACIDENTES NO TRÂNSITO
ATRAVÉS DA MINERAÇÃO DE DADOS
SALVADOR
2008
HERBERT SOUZA PEREIRA
SÉRGIO RODRIGUES COSTA
SARAT - SISTEMA DE ANÁLISE DO RISCO DE ACIDENTES NO TRÂNSITO
ATRAVÉS DA MINERAÇÃO DE DADOS
Monografia apresentada à disciplina Trabalho de
Conclusão de Curso II, do curso de Sistemas de
Informação do Centro Universitário Jorge Amado,
como requisito parcial para a obtenção do título de
Bacharel em Sistemas de Informação.
Orientador: Prof. Msc. Grinaldo Lopes de Oliveira
FOLHA DE APROVAÇÃO
Banca Examinadora
________________________________________________
Prof. MSc. Grinaldo Lopes de Oliveira
________________________________________________
Prof. MSc. Márcio René Brandão Soussa
________________________________________________
Prof. Esp. Márcio Freire da Cruz
SALVADOR
2008
AGRADECIMENTOS
De Sérgio Costa:
Neste momento, gostaria de dedicar este trabalho a memória de meu Pai, Denival Ferreira
Costa, que com todas as dificuldades em sua vida não poupou seus humildes esforços para
fazer de mim uma pessoa melhor. À sua maneira, conseguiu passar para a minha
personalidade, o conceito de suas maiores virtudes, além da vontade de vencer e da
responsabilidade com os compromissos assumidos. Pai, te levo no coração, todos os dias de
minha vida. Obrigado.
A minha Mãe, Eunice de Jesus R. Costa, que me presenteou com a vida, e sempre foi meu
porto seguro, um exemplo claro de superação sobre a adversidade de sua vida.
A meu irmão André Costa a quem admiro profundamente pelo apoio quanto às minhas
decisões, e por ter me inspirado com sua capacidade de adaptar, desenvolver e se tornar
melhor.
Dedico principalmente a minha esposa, Selma Costa e meu filho Leonardo Costa, aos quais
durante esta jornada me apoiaram nos momentos difíceis, e trouxeram alegria quando tudo
parecia impossível. Selma, sem sua presença, segurança e seu carinho, com certeza não
chegaria até este momento tão importante. Leonardo, você é minha inspiração, com seu brilho
e sua vontade de aprender, mesmo agora com apenas 6 anos, você é minha luz. Espero que
este trabalho seja para você, um motivo de orgulho em relação a seu Pai.
Agradeço aos colegas da BCP ENGENHARIA LTDA, pelo apoio moral, e pela convivência
do ambiente de trabalho, crucial para compreensão de muito do que aprendi na Faculdade.
Luciene, Marli, Claudinéia, Marcos Aurélio, Reginaldo, Silvio Rocha, e todos os outros.
Agradeço aos diretores, Arcodaci, Góis e Molinero, por me passar a experiência e o olhar
crítico sobre a importância da organização e do planejamento, para o desenvolvimento de
projetos de qualquer natureza. Sua contribuição foi muito importante para a composição da
minha formação acadêmica.
Não poderia deixar de agradecer a Herbert, meu parceiro neste trabalho e em todos os outros
que fizemos durante estes quatro anos. Meu caro amigo, me orgulho em dizer que
enfrentamos todos os obstáculos com dedicação, compromisso e acima de tudo com
responsabilidade, desde o primeiro grupo de estudo que montamos no primeiro semestre de
2005 até o final do curso. Nossa parceria foi crucial nestes quatro anos. Obrigado.
Aos professores, Márcio Freire, Márcio Soussa, Grinaldo Oliveira, Luiz Carvalho, Permínio,
Andréa Cirino, Cristiane, Christina Nascimento, Jaime, Verônica Santos, Clever Jatobá,
Ricardo Cropalato e a todos os outros. Gildélia (Nossa Gil), muito obrigado pela boa vontade,
sempre presente e prestativa. Vocês agora fazem parte de um capítulo importante da minha
vida, portanto agradeço.
Aos colegas, Edvaldo, Elmer, Diego, Felipe, Gabriel e Rafael companheiros de sala desde o
primeiro semestre, e ainda Milena, Carine, Daiane, Manuele e todos os outros que em algum
momento compartilharam comigo o convívio da sala de aula.
Agradeço ao senhor Ivo Nascimento, Assessor Técnico da Superintendência de Engenharia de
Tráfego de Salvador por fornecer os dados que foram utilizados no processo de análise para
realização do estudo.
A Deus agradeço por tudo. Pela vida, pela saúde, e pelo futuro.
De Herbert Souza:
Agradeço a Deus, pois sem ele nada sou! Costumo dizer que posso perder tudo na vida,
menos a fé em Deus.
A minha esposa Sueli, que sempre me incentivou a voltar estudar, após 10 anos afastado da
sala de aula. O seu apoio foi de suma importância para concretização deste objetivo.
Aos meus pais do coração o Prof. Dr. José Luiz Rech e Prof. Dra. Carmem Lúcia de Souza
Rech que foram peças fundamentais para minha formação como pessoa e consequentemente
em minha graduação.
Ao meu amigo, colega, parceiro e irmão Sérgio Costa, que desde o início do curso montamos
uma excelente parceria, tanto para realização dos excelentes trabalhos semestrais, bem como
para o desenvolvimento desta monografia.
A Jonas Júnior, amigo de trabalho e parceiro do violão, que sempre segurou a “barra” no
trabalho em dias de prova.
Aos professores: Andréa Cirino, Verônica Barreto, Luiz Carvalho, Márcio Soussa, Grinaldo
Lopes e Márcio Freire, obrigado pelas orientações.
Não esquecendo do apoio ao curso de Sistemas de Informação, nossa querida Gildélia (Gil),
sua dedicação e atendimento sempre fez a diferença e teve contribuição considerável para
nossa formação, no que diz respeito aos aspectos burocráticos.
RESUMO
O objetivo deste trabalho é demonstrar uma abordagem diferenciada dos métodos tradicionais
para identificação do risco de acidentes em vias de tráfego. Com o aumento do número de
veículos circulando a cada dia, torna-se cada vez mais complicado o tráfego nas cidades. Uma
das principais resultantes desta situação é o aumento proporcional da quantidade de acidentes
todos os dias. Este trabalho visa demonstrar uma ferramenta baseada em sistemas de
informação que utiliza técnicas de Mineração de Dados para cruzar informações referentes ao
trânsito, e assim identificar cenários que indiquem a probabilidade de aumento ou redução, da
ocorrência de acidentes.
A ferramenta é capaz de fornecer ao usuário a opção de escolher que informações farão parte
da análise, e ainda, sob que condições as mesmas serão utilizadas. O histórico de acidentes, o
histórico de chuvas, índices predefinidos, ou qualquer dado considerado relevante pode ser
utilizado na análise. Esta flexibilidade permite ao especialista em trânsito, criar abordagens
diferenciadas para cada trecho analisado, montar cenários, e concluir estudos que podem
auxiliar nas tomadas de decisão sobre as medidas de controle do tráfego.
Palavras-Chave: Data Mining, Mineração de Dados, Técnicas de Classificação, Acidentes de
Trânsito.
LISTA DE FIGURAS
Figura 1 - Relação entre KDD e Data Mining ...................................................................... 24
Figura 2 - Etapas do processo de KDD definidas por FAYYAD .......................................... 25
Figura 3 - Relação do Data Mining com outras áreas ........................................................... 28
Figura 4 - Exemplo de Árvore de Classificação.................................................................... 32
Figura 5 - Matriz de concordância para o índice Kappa........................................................ 36
Figura 6 - WEKA - Ferramenta de Mineração de Dados ...................................................... 37
Figura 7 – Esquema geral de funcionamento do SARAT...................................................... 44
Figura 8 – Tela principal do SARAT ................................................................................... 47
Figura 9 - Tela do Assistente de Análise .............................................................................. 48
Figura 10 - Tela de Créditos do SARAT .............................................................................. 48
Figura 11 - Seleção de dados para a análise.......................................................................... 49
Figura 12 - Pre-visualização de dados selecionados ............................................................. 49
Figura 13 - Tela conclusão do assistente .............................................................................. 50
Figura 14 - Atributos envolvidos na análise ......................................................................... 50
Figura 15 - Diagrama de Caso de Uso – SARAT ................................................................. 51
Figura 16 - Diagrama de Seqüência do processo de análise .................................................. 52
Figura 17 - Arquitetura de 2 camadas da aplicação............................................................... 54
Figura 18 - Tabelas do sistema............................................................................................. 54
Figura 19 - Visão dos atributos selecionados para análise .................................................... 55
Figura 20 - Diagrama de classe da aplicação ........................................................................ 56
Figura 21 - Simulação: Tela inicial da aplicação SARAT..................................................... 61
Figura 22 - Simulação: Conexão ao banco de dados............................................................. 62
Figura 23 - Simulação: Seleção da tabela e dos campos para análise .................................... 62
Figura 24 - Simulação: Opções finais para o processo de análise.......................................... 63
Figura 25 - Simulação: Visualização do contexto dos atributos para análise ......................... 63
Figura 26 - Simulação: Resultado da aplicação do algoritmo em formato texto .................... 64
Figura 27 - Simulação: Resultado da análise em forma de gráfico tipo árvore ...................... 65
LISTA DE QUADROS
Quadro 1 - Métodos de Mineração de Dados........................................................................ 31
Quadro 2 - Avaliação do índice Kappa................................................................................. 36
Quadro 3 - Descrição dos dados fornecidos pela SET .......................................................... 58
Quadro 4 - Amostra de dados analisados pelo SARAT......................................................... 60
SUMÁRIO
INTRODUÇÃO .................................................................................................................................................13
PROBLEMA DE PESQUISA................................................................................................................................14
HIPÓTESE........................................................................................................................................................14
FUNDAMENTAÇÃO E JUSTIFICATIVA...............................................................................................................14
OBJETIVO GERAL.............................................................................................................................................15
OBJETIVOS ESPECÍFICOS .................................................................................................................................15
MOTIVAÇÃO ...................................................................................................................................................15
ORGANIZAÇÃO ...............................................................................................................................................16
CAPÍTULO 1 -
O TRÂNSITO E SEUS CONCEITOS..........................................................................................17
1.1.
DEFINIÇÕES LEGAIS SOBRE O TRÂNSITO ...................................................................................................17
1.2.
TÉCNICAS DE AVALIAÇÃO DE RISCO NAS VIAS URBANAS ................................................................................19
1.3.
MÉTODOS NUMÉRICOS .......................................................................................................................20
1.4.
NÍVEIS DE CRITICIDADE PARA AS AVENIDAS................................................................................................21
1.5.
CONSIDERAÇÕES FINAIS.......................................................................................................................22
CAPÍTULO 2 -
DESCOBERTA DE CONHECIMENTO EM BANCO DE DADOS...................................................23
2.1.
KDD (KNOWLEDGE DISCOVERY DATABASES) ............................................................................................23
2.2.
O PROCESSO DE KDD .........................................................................................................................24
2.3.
ETAPAS DO KDD ...............................................................................................................................25
2.3.1.
SELEÇÃO ..........................................................................................................................................25
2.3.2.
PRÉ-PROCESSAMENTO ........................................................................................................................26
2.3.3.
TRANSFORMAÇÃO ..............................................................................................................................26
2.3.4.
DATA MINING ..................................................................................................................................26
2.3.5.
INTERPRETAÇÃO ................................................................................................................................27
2.4.
DATA MINING (MINERAÇÃO DE DADOS) .................................................................................................27
2.5.
MÉTODOS DE MINERAÇÃO DE DADOS.....................................................................................................29
2.5.1.
SEGMENTAÇÃO .................................................................................................................................29
2.5.2.
SUMARIZAÇÃO ..................................................................................................................................30
2.5.3.
REGRAS DE ASSOCIAÇÃO......................................................................................................................30
2.5.4.
CLASSIFICAÇÃO..................................................................................................................................31
2.6.
ALGORITMOS DE CLASSIFICAÇÃO ............................................................................................................32
2.6.1.
ENTROPIA DO CONJUNTO DE DADOS E GANHO DE INFORMAÇÃO DO ATRIBUTO ...................................................34
2.6.2.
CONFIABILIDADE DA ANÁLISE – ÍNDICE KAPPA ...........................................................................................35
2.6.3.
FERRAMENTAS DE MINERAÇÃO DE DADOS ...............................................................................................37
2.7.
CONSIDERAÇÕES FINAIS.......................................................................................................................39
CAPÍTULO 3 -
TRABALHOS CORRELATOS ...................................................................................................40
3.1.
SIMULAÇÃO DO CONTROLE DE TRÁFEGO DE AUTOMÓVEIS EM UMA MALHA RODOVIÁRIA URBANA (FREIRE, 2004). ...40
3.2.
PROJETO DE GEOREFERENCIAMENTO DE ACIDENTES DE TRÂNSITO COM VÍTIMAS EM BELO HORIZONTE (MEINBERG,
2003).
41
3.3.
CONSIDERAÇÕES FINAIS .......................................................................................................................42
CAPÍTULO 4 -
SARAT – SISTEMA DE ANÁLISE DE RISCO DE ACIDENTES DE TRÂNSITO................................43
4.1.
OPERAÇÃO DO SARAT .......................................................................................................................43
4.2.
A FUNDAMENTAÇÃO DO SARAT ...........................................................................................................44
4.3.
REQUISITOS ......................................................................................................................................45
4.3.1.
REQUISITOS FUNCIONAIS .....................................................................................................................45
4.3.2.
REQUISITOS NÃO FUNCIONAIS ..............................................................................................................46
4.4.
FUNCIONAMENTO DA FERRAMENTA .......................................................................................................46
4.5.
CASOS DE USO ..................................................................................................................................51
4.6.
DIAGRAMA DE SEQÜÊNCIA ...................................................................................................................51
4.7.
ARQUITETURA TÉCNICA .......................................................................................................................52
4.8.
MODELO DE DADOS ...........................................................................................................................54
4.9.
DIAGRAMA DE CLASSES .......................................................................................................................56
4.10.
CONSIDERAÇÕES FINAIS .......................................................................................................................57
CAPÍTULO 5 -
APLICAÇÃO PRÁTICA DA FERRAMENTA SARAT....................................................................58
5.1.
DADOS PARA ANÁLISE .........................................................................................................................58
5.2.
AMBIENTE OPERACIONAL E TESTE DA APLICAÇÃO ........................................................................................61
5.3.
RESULTADOS OBTIDOS COM O TESTE DA APLICAÇÃO ....................................................................................65
5.4.
CONSIDERAÇÕES FINAIS .......................................................................................................................66
CONCLUSÃO ...................................................................................................................................................67
DIFICULDADES ENCONTRADAS .......................................................................................................................68
CONTRIBUIÇÕES .............................................................................................................................................68
PERSPECTIVAS ................................................................................................................................................69
REFERÊNCIAS BIBLIOGRÁFICAS .......................................................................................................................70
ANEXO 1 – CÓDIGO PARCIAL DAS CLASSES PRINCIPAIS ..................................................................................73
CLASSE DO ASSISTENTE...................................................................................................................................73
CLASSE DO OBJETO J48...................................................................................................................................77
13
INTRODUÇÃO
A quantidade de veículos nas cidades brasileiras tem aumentado significativamente nos
últimos anos, a exemplo de Salvador que entre os anos de 2000 e 2006 houve um aumento de
cerca de 35% de acordo com dados da SET-Superintendência de Engenharia de Tráfego
(2006).
Como conseqüência, o tráfego vem se tornando um problema cada vez mais
complexo. A população reconhece este aumento na frota de veículos na forma mais direta
possível, pois é particularmente afetada por todas as resultantes da problemática do tráfego,
como o consumo de combustível, a poluição do ar, sonora e visual e, principalmente, o
aumento no número dos acidentes.
O sistema de tráfego de uma cidade é composto por um número muito grande de veículos,
pessoas, ações e reações que interferem direta ou indiretamente umas nas outras. Esta
quantidade de variáveis pode ser tratada como dados individuais e que em algum momento
após o processamento adequado podem se tornar informações úteis ao bem estar comum.
Os sistemas de informação nesta área, apesar de serem utilizados há muito tempo,
funcionavam com precariedade, pela lentidão no processo de coleta e análise pois era feito
normalmente de forma manual. Este aspecto limitava a eficiência no processamento das
informações, que é o fator mais importante dos sistemas de informação. Atualmente, os
avanços tecnológicos possibilitam tratar grandes volumes de dados de forma precisa e
eficiente, tornando os sistemas de informação mais confiáveis e completos (ORLANDINI,
2006).
Sob este aspecto e com vistas à problemática do trânsito, não se pode deixar de pensar que a
relação entre o tráfego de veículos e a quantidade de acidentes precisa de uma análise mais
profunda em termos de pesquisa, sobre a possibilidade de determinar soluções para minimizar
os problemas do tráfego no cotidiano das pessoas.
Neste contexto, este trabalho enfoca o desenvolvimento de uma ferramenta de software com o
propósito de permitir ao especialista em trânsito, analisar o tráfego de veículos, montar
cenários sobre os fatores e mecanismos que levam ao acidente e assim auxiliar de forma
siguinificativa na redução e prevenção dos mesmos. Como conseqüência, propagam-se
diversas resultantes, como a redução de custos em hospitais, a diminuição do número de
mortes posteriores aos acidentes, o planejamento de ações preventivas e ainda, o melhor
posicionamento das equipes de controle do tráfego nas avenidas.
14
Problema de pesquisa
A necessidade de informações sobre características específicas e mais detalhadas sobre o
tráfego de veículos na cidade de Salvador demonstrou que o trabalho de divulgação destas
informações é bastante limitado, principalmente sob o aspecto de detalhes sobre as condições
sob as quais os acidentes aconteceram. Outra característica observada é que as estatísticas
possuem um intervalo de tempo de atualização superior a seis meses, o que dificulta análises
mais apuradas por parte das pessoas que fazem uso destas informações para algum tipo de
pesquisa. Não foi possível identificar um mecanismo de análise do tráfego, capaz de aferir os
padrões ou cenários em que os acidentes acontecem, com base nas condições em que as vias
se apresentam, nas condições do tempo e na quantidade de veículos nas vias, em relação a
momentos específicos do dia através do cruzamento destas informações.
Neste contexto, surge o problema de pesquisa: É possível estabelecer cenários de risco,
através do uso de um sistema de informação, baseando-se na identificação das condições e de
tráfego em pontos da cidade, de forma interativa, para possibilitar a tomada de medidas
preventivas e de controle?
Hipótese
Através da utilização da mineração de dados, mais especificamente da técnica de Árvore de
Classificação, é possível modelar um sistema, baseado em dados históricos, mesmo que
simulados, capaz de identificar, classificar e estabelecer cenários de risco de pontos
específicos da cidade.
Fundamentação e Justificativa
Os avanços tecnológicos como as redes sem fio, a computação móvel e a miniaturização dos
componentes eletrônicos, já permitem desenvolver ferramentas cada vez mais precisas para
coleta, transmissão e processamento rápido de informações, capazes de alimentar bancos de
dados de grande porte, utilizados como fonte de dados para análise do tráfego de veículos.
Assim, a viabilidade de um sistema desta natureza, capaz de identificar que pontos da cidade e
sob que condições podem favorecer a ocorrência de acidentes, permitiria às autoridades
competentes, acionar medidas corretivas para minimizar os riscos identificados. O sistema se
apresenta como uma alternativa aos métodos existentes de identificação de riscos já utilizados
pelas autoridades.
15
Objetivo Geral
Desenvolver uma aplicação capaz de, a partir de dados coletados sobre a quantidade de
veículos, condições do tempo e localização específica na cidade, criar modelos de análise que
indiquem o cenário de risco em que determinada via se encontra, para permitir que
especialistas em trânsito estabeleçam estratégias para minimizar os riscos de acidente.
Fundamentado no processo conhecido como Data Ming, uma das etapas do KDD (Knowledge
Discovery in Database), e aplicado às informações do tráfego de veículos, pode viabilizar os
meios para o reconhecimento de padrões de comportamento e proporcionar seu melhor
entendimento.
Objetivos Específicos
- Coletar os dados ou sintetizá-los a partir de informações sumarizadas;
- Utilizar a mineração de dados, mais especificamente a técnica de Árvores de Classificação,
para criar modelos, capazes de levantar resultados classificados quanto ao risco de acidente
em pontos específicos, a partir de dados fornecidos;
Motivação
Apesar de existir um grande número de estatísticas disponibilizadas pelos órgãos de trânsito
sobre o tráfego em Salvador, como o número de acidentes e a quantidade de veículos que
trafegam nas avenidas, há um baixo aproveitamento destas informações, pois os dados são
coletados em regime de amostragem e divulgados com freqüência anual, ou seja, possuem
natureza quase que estática. Não foi possível identificar uma ferramenta de análise contextual
da problemática do tráfego de forma dinâmica e que faça uma relação direta com o número de
acidentes. Assim, perceber que a aplicação dos Sistemas de Informação, amplamente
discutida durante o curso, pode viabilizar de forma real e concreta, um melhor entendimento
da situação do tráfego de veículos, e muito provavelmente, indicar soluções para a
problemática levantada é extremamente relevante. Além disto, realizar um projeto sobre
informações, que estão presentes em nosso cotidiano de uma forma muito subjetiva, e que
para se tornarem realmente úteis precisam de tratamento adequado, caracteriza este trabalho
como uma contribuição, ainda que modesta, à sociedade pública e acadêmica mantendo
focalizada a melhoria da qualidade de vida das pessoas.
16
Organização
Este documento está estruturado de forma a facilitar a compreensão sobre o tema abordado,
partindo de conceitos básicos de cada um dos sub-temas para em seguida através da união dos
conceitos possibilitar o entendimento geral. Em um primeiro momento, o documento trata de
uma forma geral o trânsito e a mineração de dados, em seguida trata de questões específicas
da aplicação. Para detalhar melhor estas fases, este documento encontra-se organizado
conforme se segue:
ü Capítulo 1: Contém uma introdução sobre o Código Nacional de Trânsito em
relação aos conceitos de classificação das avenidas, ao controle das velocidades
permitidas para cada uma delas. Discute ainda as técnicas utilizadas para identificação
de pontos críticos quanto ao risco de acidentes.
ü Capítulo 2: Aborda a sistemática sobre a coleta de dados e a transformação dos
mesmos em informação, através da utilização dos conceitos de Data Mining.
ü Capítulo 3: Faz uma breve descrição sobre trabalhos com alguma relação com o
tema abordado nesta monografia.
ü Capitulo 4: Apresenta o desenvolvimento da ferramenta SARAT, a metodologia
de utilização e a documentação do sistema.
ü Capítulo 5: Demonstra a utilização do SARAT com um estudo de caso e apresenta
os resultados obtidos.
Ao final deste documento, estão apresentadas as conclusões, as dificuldades, as experiências e
os resultados alcançados com a realização deste projeto.
17
CAPÍTULO 1 - O TRÂNSITO E SEUS CONCEITOS
Este capítulo discute os aspectos relacionados com o trânsito de veículos e suas características
sob as definições do Conselho Nacional de Trânsito – CONTRAN, o Departamento Nacional
de Trânsito – DENATRAN, e as leis regulamentadas pelo Código Nacional de Trânsito, para
permitir uma melhor compreensão sobre o tema, do ponto de vista técnico. Aborda ainda, as
metodologias utilizadas para determinar as características do fluxo de veículos e da
qualificação do risco de acidentes nas vias urbanas.
1.1.
Definições Legais Sobre o Trânsito
O Código Nacional de Trânsito Brasileiro sancionado pelo Presidente da República (BRASIL,
1997), consideram o trânsito como a utilização de vias por pessoas, veículos ou animais,
agrupados ou não, para fins de circulação. Estabelece o trânsito como sendo um direito de
todos, e como um dever dos órgãos e entidades componentes do Sistema Nacional de Trânsito
adotar medidas a assegurar este direito.
O código nacional de trânsito, entre outras coisas, determina as velocidades dos veículos nas
vias de acordo a localização, suas características e o objetivo específico para o qual foram
projetadas. De acordo com o artigo 60 do código de trânsito brasileiro, as vias abertas para
circulação de veículos classificam-se em urbanas e rurais, dividindo as mesmas em vias
urbanas ou rurais sendo:
I – Vias Urbanas:
a) via de trânsito rápido
b) via artéria;
c) via coletora
d) via local;
II – Vias Rurais:
a) rodovias;
b) estradas;
O código nacional de trânsito estabelece ainda as velocidades máximas permitidas para os
tipos de vias e deverão ser indicadas através de sinalização. O artigo 61 define:
- Para as vias onde não houver a indicação de velocidade máxima, deverão ser consideradas:
I – Vias Urbanas:
a) oitenta quilômetros por hora, nas vias de trânsito rápido;
b) sessenta quilômetros por hora, nas vias arteriais;
18
c) quarenta quilômetros por hora, nas vias coletoras;
d) trinta quilômetros por hora, nas vias locais;
II – Vias Rurais:
a) nas rodovias:
1) cento e dez quilômetros por hora, para automóveis e camionetas;
2) noventa quilômetros por hora, para ônibus e microônibus;
3) oitenta quilômetros por hora, para demais veículos;
b) nas estradas, sessenta quilômetros por hora.
Para as vias onde não houver a indicação de velocidade máxima deverão ser consideradas:
c) quarenta quilômetros por hora, nas vias coletoras;
d) trinta quilômetros por hora, nas vias locais;
- A velocidade mínima não poderá ser menor que a metade da velocidade máxima
estabelecida para cada via.
- Os órgãos ou entidades de trânsito rodoviário com circunscrição sobre determinada via,
poderão regulamentar por meio de sinalização, velocidades superiores ou inferiores a aquelas
pré-estabelecidas de acordo com a necessidade definida pelo mesmo.
Para o desenvolvimento deste trabalho, é preciso entender alguns dos termos ainda citados
pelo Código Nacional de Trânsito como:
• Via – superfície por onde transitam veículos, pessoas e animais. Compreendem a pista,
calçada, acostamento, ilhas ou canteiro central.
• Via de Trânsito Rápido – caracterizada por acessos especiais com transito livre, sem
interseções em nível, sem acessibilidade direta aos lotes situados ao longo da via, e
sem travessia de pedestres em nível.
• Via Arterial – caracterizada por interseções em nível, normalmente controladas por
semáforo com acessibilidade aos lotes ao longo da via e às vias secundárias e locais
possibilitando o trânsito entre os locais da cidade.
• Via Coletora – destinada a coletar e distribuir o trânsito que tenha necessidade de
entrar e sair das vias de trânsito rápido ou arteriais.
• Via Local – caracterizada por interseções em nível sem a presença de semáforos
destinada apenas a áreas restritas.
• Via Rural – estradas e rodovias.
19
• Via Urbana – ruas, avenidas, vielas ou caminhos e similares, abertos a circulação
pública e caracterizam-se pela presença de imóveis edificados ao longo de sua
extensão.
1.2.
Técnicas de avaliação de risco nas vias urbanas
A avaliação dos riscos de acidente nas avenidas das cidades é um desafio para os órgãos
responsáveis, devido principalmente a complexidade em reunir todas as variáveis envolvidas
nos acidentes e analisá-las. Apesar disto, existem algumas técnicas já desenvolvidas para
tentar entender a arquitetura dos acidentes.
O CEFTRU – Centro de Formação de Recursos Humanos e Transportes desenvolveu um
estudo bastante abrangente sobre o ponto de vista dos acidentes de trânsito, como um manual
para o tratamento de locais críticos. As técnicas de identificação utilizadas pelo CEFTRU
visam determinar o grau de criticidade quanto ao risco de acidente em pontos de uma cidade,
os chamados “Pontos Negros”. De acordo com o CEFTRU (2002), as análises podem ser
feitas com base em métodos que se classificam em:
a) numérico;
b) estatístico; e
c) de técnicas de conflitos.
O método numérico, considerado o mais simples, utiliza o princípio de cálculo da taxa de
risco a partir do registro da quantidade média de acidentes em determinado ponto, que é
comparado com valores pré-determinados por uma equipe técnica.
O método estatístico utiliza-se de modelos matemáticos de probabilidade, para identificar o
grau de risco quanto a valores estimados.
O método de conflitos considera que existe uma relação direta entre o número de conflitos no
trânsito com o número de acidentes, ou seja, reduzir o número de conflitos leva a uma
diminuição na taxa de acidentes.
O CEFTRU considera os métodos numéricos como mais relevantes e os utiliza pelo fato de
serem práticos e mais adequados à realidade brasileira, mas ressalta que os métodos
estatísticos são os mais precisos, e por este motivo requerem um grau mais alto de
sofisticação em termos de pesquisa, assim são mais adequados a países com maior
disponibilidade de recursos humanos e financeiros.
20
1.3.
Métodos Numéricos
Os métodos numéricos podem ser divididos em quatro categorias:
a) Número de acidentes;
b) Severidade de acidentes;
c) Taxa de acidentes; e
d) Taxa de severidade.
Cada uma dos métodos supracitados baseia-se na obtenção de um índice a ser aplicado a um
determinado trecho ou cruzamento, para ser utilizado no cálculo do grau de risco de acidente
que o mesmo possui.
O método do número de acidentes considera o número de ocorrências em um trecho entre
interseções ou interseção, em determinado período de tempo para considerar um local crítico.
São considerados locais críticos aqueles onde o número de ocorrências é maior que a média
dos locais analisados. Possui como vantagem o baixo custo de execução.
O método da severidade de acidentes utiliza uma ponderação definida pelo DENATRAN
chamada Unidade Padrão de Severidade – UPS (DENATRAN, 1987). A UPS define pesos
para cada tipo de ocorrência quanto aos custos resultantes e atribuídos, e assim determina o
grau de sua severidade. Os valores para UPS são:
a) (ADM) Acidente somente com danos materiais, peso 1;
b) (ACF) Acidente com feridos peso 4;
c) (ACF) Acidente com feridos, envolvendo pedestres, peso 6; e
d) (AVF) Acidente com vítima fatal, peso 14.
A técnica da taxa de acidentes relaciona a quantidade de acidentes com o volume de tráfego.
Esta técnica evidencia, que locais onde há fluxo elevado de veículos, o risco de acidentes é
maior.
A técnica da taxa de severidade de acidentes é uma combinação da técnica da taxa de
acidentes com a técnica da severidade de acidentes, ou seja, relaciona o volume de tráfego e a
quantidade de acidentes em UPS.
Segundo BRANDÃO (2006), existe uma complexidade muito grande em se fazer análise dos
riscos no tráfego relacionando a velocidade da via e a freqüência dos acidentes na mesma,
pelo fato de ser difícil tabular os dados de forma satisfatória. Além disso, a coleta de
informações sobre as velocidades praticadas pelos motoristas, principalmente pelos
21
envolvidos nos acidentes é precária. Com a evolução dos métodos, os estudos mais recentes
passaram a mostrar de forma muito mais consistente a relação entre as velocidades e o
número de acidentes.
1.4.
Níveis de criticidade para as avenidas
Utilizando os métodos descritos pelo DENATRAN, é possível determinar o nível de
criticidade para determinada avenida, mas é importante ressaltar que as técnicas apresentadas
não são normativas, e de forma geral, fornecem referência para o tratamento dos chamados
locais críticos (CEFTRU, 2002).
A técnica da taxa de severidade de acidentes é largamente utilizada pelos órgãos de controle
de tráfego no Brasil, principalmente por ser a que faz uma ponderação, relacionando a
quantidade de acidentes com a gravidade e os efeitos gerados pelos mesmos. Sua aplicação
serve para fundamentar a instalação de dispositivos como sinaleiras, faixas de pedestres, e
detectores de velocidade irregular, ou seja, determinar a taxa de criticidade de uma via para
que sejam tratadas com o objetivo de reduzir o número de acidentes.
Com o mesmo objetivo, a técnica da taxa de acidentes, não leva em consideração o grau de
severidade do acidente, apenas o registro da sua ocorrência, o que torna sua aplicação mais
direta e simplificada em termos de volume de dados a serem coletados e tratados, e
conseqüentemente terá resultados mais eficientes em termos de desempenho. Para calcular a
taxa de acidentes em um trecho viário utiliza-se a seguinte fórmula (CEFTRU, 2006):
T=
Ax10 6
PxVxE
Onde:
T = taxa acidentes por milhões de veículos x km;
A = número de acidentes no trecho;
P = período do estudo, em dias (geralmente 365 dias);
V = volume médio diário que passa no trecho;
E = extensão do trecho (em km).
De forma geral, toda e qualquer via de trânsito apresenta algum tipo ou grau de risco, seja ele
evidente ou não. Por motivos diversos como as condições do tempo, o dia da semana
influenciado pela variação do fluxo de veículos, e até mesmo as condições físicas da via em
dado momento são determinantes no grau de risco que a mesma pode se apresentar ao longo
do tempo.
22
1.5.
Considerações Finais
Este capítulo abordou os principais conceitos quanto ao trânsito, para permitir certo
entendimento sobre o mesmo, assim como as principais técnicas de identificação de risco em
vias de tráfego de veículos.
O próximo capítulo se dedica a explanar os conceitos necessários ao entendimento sobre Data
Mining com uma avaliação sobre algumas técnicas disponíveis e a aplicação da mais
adequada ao funcionamento do sistema proposto.
23
CAPÍTULO 2 - DESCOBERTA DE CONHECIMENTO EM BANCO DE
DADOS
Este capítulo discute as tecnologias que possibilitam armazenar e analisar grandes volumes de
dados para obtenção de informações úteis a um determinado propósito, ou seja, a descoberta
de conhecimentos “não identificados” a partir de dados brutos.
2.1.
KDD (Knowledge Discovery Databases)
Antigamente a tecnologia relacionada ao hardware e ao software disponível para a execução
das aplicações, limitava o armazenamento a pequenos volumes de dados. Desta forma, a
análise e gerenciamento destes dados era facilmente executada através de consultas simples
ao banco de dados.
O gerenciamento de dados é considerado uma das primeiras aplicações dos computadores. O
avanço da tecnologia da informação, bem como sua popularização e a redução do custo de
armazenamento, possibilitou um crescimento considerável no que diz respeito ao volume de
dados armazenados, tornando sua análise complexa. Por este motivo, faz-se necessário o
desenvolvimento de ferramentas inteligentes com capacidade de auxiliar na análise e extração
de conhecimento e padrões de grandes volumes de dados (BATISTA, 2003).
Surgiu então o KDD, Knowledge Discovery in Databases ou DCBD Descoberta de
Conhecimento em Bancos de Dados. O KDD foi definido como o processo não trivial de
identificação de padrões válidos, novos, potencialmente úteis e compreensíveis, embutidos
nos dados. O termo KDD foi proposto pela primeira vez em 1989, e é composto por etapas
onde a partir de dados brutos, conhecimento é produzido, tendo como etapa principal a
mineração de dados (Data Mining), fase na qual os dados são transformados em informações
(FAYYAD, 1996).
“Vários autores, principalmente de ambientes comerciais, utilizam o termo Data Mining em
um sentido mais amplo, representando todo o processo de KDD, ao invés de apenas uma
etapa deste processo” (CURROTO, 2003). O processo de Data Mining muitas vezes é
confundido com o próprio KDD, desta forma, é importante alertar que é necessária a
compreensão de todas as etapas do processo de descoberta de conhecimento, para que quando
aplicadas corretamente, os melhores resultados possíveis sejam obtidos. A figura 1 demonstra
a relação entre KDD e Data Mining, no qual o KDD é o processo global de extração de
conhecimento e o Data Mining é uma parte de todo esse processo:
24
Figura 1 - Relação entre KDD e Data Mining
Fonte: CURROTO, 2003
Existe uma diferença primordial entre dados e informações; Dados se transformam em
informações, quando lhe são atribuídos algum significado, ou seja, o dado é a matéria-prima
(bruta) de onde se pode extrair informação. Portanto, o processamento dos dados é o
tratamento dos mesmos, para a obtenção de informações com contexto significativo e bastante
definido. O uso inteligente da informação é o próprio conhecimento, sustentado pela
qualidade da informação (ALVARES, 2004).
2.2.
O Processo de KDD
O processo de KDD se utiliza de métodos, algoritmos e técnicas de diversas áreas, sendo este
multidisciplinar, envolvendo áreas relativas a Banco de Dados, Inteligência Artificial e
Estatística. Tem por finalidade a busca e interpretação de padrões de dados, através da
aplicação de algoritmos, com a participação efetiva de um especialista no domínio da
aplicação para a obtenção de novos conhecimentos sobre determinado tema. A natureza
iterativa e interativa do processo KDD, é responsável pelo refinamento gradativo dos dados,
que os vai tornando mais eficientes sob o ponto de vista do processo de análise que será
aplicado aos mesmos durante a fase de mineração. Outro aspecto importante sobre o processo
de descoberta de conhecimento fundamentado no KDD, é que o mesmo não necessariamente
se encerra imediatamente ao final de suas etapas como um todo, pode ser necessário o retorno
a etapas anteriores, surgindo assim novas hipóteses de descoberta.
O processo de KDD implica na progressão ou evolução do dado à informação, a partir do
processamento do mesmo. A partir da geração da informação, o conhecimento alcançado
pode ser classificado como indutivo ou dedutivo. O conhecimento indutivo é obtido através
da descoberta de novas regras e padrões em um conjunto de dados fornecidos. O dedutivo
baseia-se na descoberta de conhecimento a partir da aplicação de regras lógicas já definidas, a
um conjunto de dados. (ELMASRI; NAVATHE, 2005).
25
2.3.
Etapas do KDD
Por se tratar de um processo, implica em dizer que o KDD é composto de vários passos que
devem ser seguidos, a fim de se atingir um determinado objetivo, neste caso: o conhecimento.
De acordo com FAYYAD (FAYYAD, 1996), o processo é composto por 05 etapas:
•
Seleção – escolha do conjunto de dados a serem tratados;
•
Pré-processamento – limpeza para a eliminação de redundâncias;
•
Transformação – padronização dos dados para aprimorar o processo de mineração;
•
Mineração de Dados – busca de padrões com o algoritmo escolhido;
•
Interpretação – análise dos dados minerados que resultarão no conhecimento.
É necessário realizar uma análise do problema a ser resolvido, denominado de Conhecimento
do Domínio da Aplicação, antes de dar início ao processo do KDD, pois o bom entendimento
do problema ajuda na definição correta dos objetivos do processo. A figura 2 ilustra as etapas
do processo de KDD:
Figura 2 - Etapas do processo de KDD definidas por FAYYAD
Fonte: FAYYAD, 1996
2.3.1. Seleção
A escolha correta dos dados implicará no sucesso do processo e também em uma das etapas
mais adiante, na qual é aplicado o algoritmo para descoberta de conhecimentos. A seleção de
dados é feita após definição dos objetivos, realizando uma seleção de um subconjunto de
dados a partir da base de dados fornecida. Esta etapa também é conhecida como consolidação
dos dados, ou seja, é feita uma coleta e consolidação dos dados, dando inicio ao processo de
extração de conhecimento.
26
2.3.2. Pré-processamento
Também conhecido como limpeza dos dados, tem como objetivo a adequação dos dados para
implementação dos algoritmos. Nesta fase os dados são tratados de maneira que melhore a
qualidade dos mesmos, a fim de evitar possíveis deformidades na extração do conhecimento.
É uma etapa demorada e pode levar cerca de 80% do processo de KDD. Em um banco de
dados, pode haver diversos problemas a serem tratados, como:
•
Dados redundantes – algumas vezes a seleção pode trazer um conjunto de dados
redundantes que não irão impactar na análise e podem ser descartados;
•
Informações incompletas – pode haver a presença de dados incompletos que devem
ser eliminados para melhorar o processo de mineração;
•
Problemas de tipagem – ou seja problemas com os tipos de dados, texto, números etc.;
•
Incertezas – dados não confiáveis;
•
Ruídos – qualquer tipo de corrupção dos dados armazenados.
É importante abordar nesta etapa a adequação dos dados que por ventura estejam fora do
contexto, a integração de dados heterogêneos, o resumo e a seleção das variáveis a serem
utilizadas.
2.3.3. Transformação
De acordo com o algoritmo a ser implementado, os dados devem obedecer ao formato
estabelecido pelo mesmo, sendo assim, para que os dados possam ser transformados é
necessário que já esteja definido o algoritmo que será utilizado na próxima etapa. Após a
transformação, os dados são armazenados corretamente de forma a facilitar o uso das técnicas
de Data Mining.
2.3.4. Data Mining
É a fase onde ocorre a busca por padrões nos dados selecionados, através do algoritmo e do
método que foi definido, com base no objetivo que se deseja alcançar com o processo KDD.
Para isto, é necessário ainda, decidir os modelos e parâmetros apropriados para o algoritmo de
mineração em particular a ser utilizado. Esta é a etapa onde os dados se transformam em
informação, e é considerada a mais importante do processo KDD. Exemplos de tarefas de
mineração:
27
•
Clusterização ou Agrupamento;
•
Classificação;
•
Regras associativas;
•
Padrões seqüenciais.
Ao final desta etapa, gera-se um relatório de descoberta que será utilizado na próxima fase.
2.3.5. Interpretação
Nesta última etapa do processo de KDD é feita uma análise do conhecimento descoberto na
etapa anterior. A interpretação dos resultados objetiva aprimorar a compreensão sobre o tema
objeto da análise. Os resultados podem ser visualizados em forma de gráfico, permitindo a
avaliação quanto a relevância ou não do conhecimento obtido. Quando não favorável, o
processo como um todo ou partes do mesmo, podem ser repetidos por várias vezes. A
descoberta de novos conhecimentos, permite que sejam tomadas decisões frente aos padrões
observados ou apenas a documentação dos mesmos para consultas futuras por parte de grupos
de interesse (FAYYAD, 1996).
2.4.
Data Mining (Mineração de Dados)
A mineração de dados pode ser definida como uma área multidisciplinar e que se relaciona
diretamente com as seguintes disciplinas: Estatística, Banco de dados, Redes neurais,
Inteligência artificial, Aprendizado de máquina, Reconhecimento de padrões, Sistemas
baseados em conhecimento e etc. (HAN; KAMBER, 2001)
A mineração de dados origina-se fundamentalmente da interseção de três áreas (DWBRASIL,
2004):
•
Estatística Clássica;
•
Inteligência Artificial;
•
Aprendizagem de Máquina;
A figura 3 demonstra a relação que culmina na mineração de dados como o resultado da
combinação de várias disciplinas.
28
Figura 3 - Relação do Data Mining com outras áreas
Fonte: DWBrasil, 2004
A estatística clássica é a mais antiga de todas, envolvendo conceitos como distribuição
normal, desvio simples, análise discriminantes, análise de regressão, variância, análise de
conjuntos e intervalos de confiança, todos utilizados a fim de se estudar os dados e o
relacionamento entre eles.
A Inteligência Artificial tem como objetivo a tentativa de imitação da maneira como o homem
raciocina as informações na resolução dos problemas estatísticos, sendo uma área construída
com base nos fundamentos de procedimentos heurísticos.
Aprendizagem de Máquina (Machine Learning) pode ser considerada como a “união” entre a
estatística e a inteligência artificial, com o objetivo de fazer com que os programas de
computador “aprendam” com os dados que eles estudam, de maneira que decisões diferentes
sejam tomadas, com base nas características dos dados estudados. Para os conceitos
fundamentais utiliza-se a estatística, adicionando heurísticas avançadas da inteligência
artificial e algoritmos para alcançar seus objetivos.
A mineração de dados é fundamentalmente a adaptação das técnicas de aprendizagem de
máquina para aplicações de negócios (DWBRASIL, 2004).
29
A utilização das técnicas das áreas abordadas (Estatística Clássica, Inteligência Artificial e
Aprendizagem de Máquina) contribui no estudo dos dados de forma a encontrar padrões nos
mesmos, sendo importante destacar em especial o uso de técnicas de estatística em mineração
de dados, que influenciam de maneira significativa nas tomadas de decisão por diversas
organizações, não sendo diferente para aquelas voltadas ao trânsito, onde a descoberta das
características dos riscos de acidentes nas avenidas das cidades, que é o propósito deste
trabalho, pode contribuir de maneira positiva na tomada de providências pelos órgãos
responsáveis com base na análise de dados estatísticos de forma dinâmica.
Das várias técnicas em análise de dados, as estatísticas são mais ligadas às técnicas de
mineração de dados (CABENA; STADLER; VERHEES; ZANASI, 1988).
A etapa de mineração de dados é considerada a mais importante no processo KDD, pois tem
como objetivo a descoberta de padrões em dados, para permitir a utilização do conhecimento
obtido na solução de problemas (AMARAL, 2001).
2.5.
Métodos de Mineração de Dados
São vários os métodos da mineração de dados disponíveis nas literaturas, contudo a
descoberta de conhecimentos significativos está associada ao estabelecimento de metas bem
definidas, que são obtidas através dos próprios métodos. Segue abaixo os principais métodos
de mineração de dados e na seqüência uma breve explanação sobre cada uma delas
(FAYYAD, 1986):
•
Segmentação (cluster);
•
Sumarização;
•
Regras de Associação;
•
Classificação:
2.5.1. Segmentação
Também denominado como análise de ‘cluster’ ou agrupamento, tem por objetivo agrupar
conjuntos de dados similares ou a identificação de exceções. Segundo Berry e Linoff (1997)
um conjunto de objetos agrupados pela similaridade ou proximidade é definido como um
cluster e a segmentação podem ser definidos como a tarefa de segmentar uma população
heterogênea em um número de clusters (subgrupos) mais homogêneo possível, de acordo
alguma medida.
30
A segmentação difere da classificação, por não existir classes pré-definidas. Enquanto na
classificação a população é subdividida, associando cada registro a uma classe pré-definida,
com base no modelo desenvolvido e exemplos pré-classificados, na segmentação o processo é
realizado de maneira mais geral e comumente realizado como a primeira etapa de outros
métodos de mineração de dados (BERRY; LINOFF, 1997).
2.5.2. Sumarização
Algoritmos de sumarização envolvem métodos para encontrar uma descrição compacta para
um subconjunto de dados. Um simples exemplo pode ser o desvio padrão para todos os itens
de dados (FAYYAD, 1996). A sumarização é utilizada, principalmente, no pré-processamento
dos dados, quando valores inválidos são determinados por meio do cálculo de medidas
estatísticas – como mínimo, máximo, média, moda, mediana e desvio padrão amostral, no
caso de variáveis quantitativas, e no caso de variáveis categóricas, por meio da distribuição de
freqüência dos valores. Técnicas de sumarização mais sofisticadas são chamadas de
visualização, que são de extrema importância e imprescindíveis para o obtenção do
entendimento, muitas vezes intuitivo, do conjunto de dados. Exemplos de técnicas de
visualização de dados incluem diagramas baseados em proporções, diagramas de dispersão e
histogramas, entre outros (SFERRA; CORRÊA, 2003).
2.5.3. Regras de Associação
A proposta inicial das tarefas da associação ou afinidades, teve início em 1993 (AGRAWAL;
SRIKANT, 1994), tendo como objetivo a combinação de itens importantes, de maneira que, a
presença de um item em uma determinada transação, implica na freqüência de outro na
mesma transação.
Devido a sua grande aplicabilidade, as regras de associação encontram-se entre um dos mais
importantes tipos de conhecimento que podem ser minerados em bases de dados. Estas regras
representam padrões de relacionamento entre itens de uma base de dados. Uma de suas típicas
aplicações é a análise de transações de compras (market basket analysis), um processo que
examina padrões de compras de consumidores para determinar produtos que costumam ser
adquiridos em conjunto. Um exemplo de regra de associação, obtida a partir da análise de
uma base de dados real, que registra os produtos adquiridos por famílias cariocas em suas
compras mensais, é dado por: {mini-pizza semi-pronta} Þ {suco de fruta em pó}. Esta regra
de associação indica que as famílias que compram o produto {mini-pizza semi-pronta} têm
maior chance de também adquirir o produto {suco de fruta em pó} (GONÇALVES, 2007).
31
O uso de regras de associação em conjunto com a tecnologia, possibilitou às organizações
coletar, armazenar e analisar grandes quantidades de dados, como é o caso da utilização dos
códigos de barra para identificação e a análise sobre os dados de vendas (AGRAWAL;
SRIKANT, 1994).
O quadro 1 demonstra de forma resumida os métodos de mineração de dados considerados
como aplicáveis a este trabalho:
Quadro 1 - Métodos de Mineração de Dados
Fonte: DIAS ,2001
2.5.4. Classificação
Os métodos de classificação utilizam-se de um conjunto de dados pré-escolhidos, que são
treinados para definir um novo modelo de avaliação, com o qual a partir do mesmo será
efetivamente utilizado para classificar, de forma otimizada, novos conjuntos de dados não
classificados, através de sua categorização em classes (WITTEN e FRANK, 2005).
Os métodos de classificação podem ser relacionados similarmente com a análise
discriminante, que é uma técnica estatística adequada para classificação, onde de acordo com
Mattar (1988), permite que dois ou mais grupos possam ser comparados, com o objetivo de
determinar se diferem uns dos outros e, também, a natureza da diferença, de forma que, com
base em um conjunto de variáveis independentes, seja possível classificar indivíduos ou
objetos em duas ou mais categorias mutuamente exclusivas.
32
2.6.
Algoritmos de classificação
Um algoritmo é o núcleo de qualquer ferramenta de mineração de dados, pois é o responsável
por processar os dados, decidir o grau de relevância dos mesmos e então, apresentar os
resultados. Um algoritmo de classificação baseado em árvores de decisão é estruturado de
forma a representar os resultados em um formato que se assemelha a uma árvore virada de
cabeça para baixo. (HAN; KAMBER, 2006).
A figura 4 representa o resultado simulado de uma árvore de classificação para o tipo de
pessoa que admite assistir a novelas exibidas na televisão.
Figura 4 - Exemplo de Árvore de Classificação
Fonte: Própria autoria
Conforme demonstrado na figura 4, no topo da árvore tem-se um nó chamado de principal ou
raiz, que possui o atributo cuja uma das fases do algoritmo considerou como o que apresenta o
maior grau de relevância quanto à informação que o mesmo possui no conjunto de dados.
Cada interligação entre um nó e outros abaixo, pode ser chamada de ramo e representa um
resultado obtido da análise do nó diretamente superior. Cada ramo interliga o nó superior
(pai), aos intermediários, que representam um atributo sendo testado no contexto da análise.
Os nós da extremidade podem ser chamados de nós-folha e indicam o resultado para o
atributo classificador, ou o seja, o alvo da análise (HAN; KAMBER, 2006).
Dentre os algoritmos capazes de classificar os dados em um formato de árvore, os chamados
“Algoritmos de Arvore de Decisão”, destacam-se o ID3, C45 e o J48. O ID3 e o C45 foram
desenvolvidos pelo pesquisador J. Ross Quinlan entre os anos 70 e 80.
33
O J48, escolhido para utilização neste trabalho, corresponde à implementação em Java do C45
originalmente desenvolvido em C.
De acordo com Han e Kamber (2006), o ID3 e o C45, se utilizam de recursividade para
analisar um conjunto de dados de treinamento seguindo um padrão conhecido como “dividirpara-conquistar” (subdividindo as respostas para cada um dos testes feitos nos atributos), de
cima para baixo, por toda a árvore até o nó mais extremo. Em seguida, os resultados obtidos
são comparados com os dados presentes no atributo selecionado como classificador, para
determinar o grau de precisão da árvore gerada. O modelo derivado da análise pode ser
aplicado a um novo conjunto de dados não-classificados e assim ser utilizado para predição de
condições ou cenarização.
Para Mitchell (1997), o ID3 pode ser considerado o algoritmo básico para a classificação de
dados. A partir de um conjunto de dados de treinamento S, um atributo alvo C que será o
objeto da análise, e os demais atributos Kn na função ID3(S, C, Kn) seguem-se os seguintes
passos:
ID3(S, C, Kn)
(a) Criar nó raiz R
(b)
Se Todos(S == (+)) retorna árvore de apenas um nó R = (+);
Se Todos(S == (-)) retorna árvore de apenas um nó R = (-);
Se ÉVazio(Kn), retorna árvore de apenas um nó R com o valor mais freqüente de C;
(c) Se as condições no passo (b) não acontecerem:
(d) Inicia:
R recebe o atributo A
Para cada valor Vn de A:
Adicionar novo ramo abaixo de R com o resultado do teste A== Vn;
Colocar SVn como subconjunto de S os que possuam valor Vn para A.
Se SVn está vazio Então:
Adicionar ao novo ramo um nó folha, com o valor mais
recorrente de C em S.
Senão,
Abaixo do novo ramo adicionar a sub-árvore:
(e) ID3(SVn, C, (Kn – {A}))
(f) Finaliza
(g) retorna a raiz R
34
Com relação ao algoritmo ID3 demonstrado, vale destacar os seguintes pontos:
§
Os valores (+) e (-), devem ser considerados como Verdadeiro e Falso
respectivamente, ou seja, são respostas à condição analisada no atributo A.
§
No passo (a) o nó raiz R é determinado através da escolha do atributo que possui o
maior índice de relevância, através do cálculo da entropia do conjunto de dados e do
ganho de informação do atributo.
§
No passo (b) nota-se que uma árvore de classificação pode conter apenas um nó:
Se todos os valores de C para S forem positivos (+), ou todos os nós forem negativos
(-), a árvore retorna um único nó raiz R = (+) ou (-) respectivamente.
Se os atributos Kn estiverem vazios retorna uma árvore com apenas um nó R com o
valor (+) ou (-) mais recorrente no conjunto de dados para C.
§
No passo (e) pode-se observar a chamada recursiva a função ID3.
O ID3 executa análises do tipo Verdadeiro/Falso e este foi um dos motivos que levaram ao
desenvolvimento do C45 que é capaz de tratar outros tipos de proposições, mas basicamente
possui a mesma estrutura de funcionamento (MITCHELL, 1997).
2.6.1. Entropia do conjunto de dados e ganho de informação do atributo
De acordo com Mitchell (1997), o cálculo de entropia é importante por medir a pureza de uma
coleção de dados. Dado um conjunto de dados C contendo valores positivos e negativos para
um contexto analisado, a entropia E de C é calculada através das fórmulas:
Para o ID3, por analisar os dados sob um contexto binário (Verdadeiro/Falso):
E(C) = - P(+) log2 P(-) - P(-) log2 P(-)
Onde :
P(+) = porção de valores positivos em C
P(-) = porção de valores negativos em C
Para o C45, capaz de analisar diversos tipos de proposições:
c
E(C) =
∑
i =1
- Pi log2 Pi
35
Onde :
Pi é a proporção de C pertencentes a classe i.
Dada a entropia de um conjunto de dados, o algoritmo de classificação precisa determinar
qual dos atributos possui a maior relevância no contexto da análise, e para isto, se utiliza do
cálculo do ganho de informação expressa pela fórmula:
G(C, A) = E(C) -
∑
v∈Valores ( A )
Cv
C
E (Cv )
Onde:
G = Ganho de informação do atributo A para o conjunto de dados C;
E = Entropia do conjunto de dados C;
V = Um valor dentre todos os possíveis para A.
Cv = Subconjunto de valores assumidos para A em C
Valores(A) = Todos os possíveis valores que podem ser assumidos por A;
Determinada a entropia do conjunto de dados e qual dos atributos possui o maior ganho de
informação, o mesmo é selecionado como nó principal e assim inicia-se o processo de
construção da árvore de classificação repetindo-se o processo sucessivamente para os nós
intermediários (MITCHELL, 1997).
2.6.2. Confiabilidade da análise – Índice Kappa
De acordo com Legrand e Nicoloyannis (2005), o coeficiente Kappa, é utilizado para
quantificar a concordância ou consenso entre proposições previstas e resultados obtidos em
uma análise. O cálculo do índice Kappa é dado pela fórmula:
k=
pCo − pCe
1 − pCe
Onde: pCo = Proporção de concordâncias observadas
pCe = Proporção de concordâncias esperadas
Sendo (T) o total de instâncias coletadas para análise, a dedução dos valores de (pCo) e (pCe)
podem ser obtidos a partir da matriz de concordância do índice Kappa conforme a figura 5.
36
Sendo:
pCo =
a+d
T
(a + c )(a + b) (b + d )(c + d )
+
T
T
pCe =
T
Figura 5 - Matriz de concordância para o índice Kappa
Fonte: LEGRAND; NICOLOYANNIS, 2005
A avaliação do índice Kappa para determinada análise, pode classificar seu desempenho como
fraco, regular ou excelente, conforme demonstrado no quadro 2.
Quadro 2 - Avaliação do índice Kappa
Fonte: LEGRAND; NICOLOYANNIS, 2005
De acordo com Witten e Frank (2005), o índice Kappa faz a análise de concordância entre
valores previstos e alcançados levando em consideração inclusive os casos onde a
concordância ocorre por acaso.
O índice Kappa foi o método de avaliação escolhido para ser utilizado neste trabalho como
validador do modelo de análise, principalmente pelo fato do mesmo já estar presente na API
do WEKA, que será discutido a seguir neste capitulo.
37
2.6.3. Ferramentas de Mineração de Dados
Conforme já abordado neste trabalho, no processo de KDD uma das etapas é a mineração de
dados, onde ocorre a busca por padrões, através de métodos e algoritmos. Para isto faz-se
necessário o uso de uma ferramenta, capaz de realizar estas buscas, de forma rápida e
eficiente. O WEKA - Waikato Environment for Knowledge Analysis, é uma poderosa e
conceituada ferramenta de mineração de dados que foi desenvolvida no meio acadêmico, em
1999, na Nova Zelândia, pela Universidade de Waikato. É um software composto por um
conjunto de algoritmos, que objetiva a análise de problemas reais através da mineração de
dados (WITTEN, 2000).
Desenvolvido em linguagem Java, possui código aberto (domínio público) e oferece suporte à
sistemas
operacionais
como
Linux,
Macintosh
e
Windows.
No
endereço
http://www.cs.waikato.ac.nz/ml/weka/ é possível realizar o download da ferramenta, bem
como sua vasta documentação. A figura 6 demonstra a tela inicial da ferramenta WEKA.
Figura 6 - WEKA - Ferramenta de Mineração de Dados
Fonte: WITTEN; FRANK, 2005
38
A ferramenta foi escolhida para sua utilização por apresentar as melhores características para
adaptação e utilização de sua interface de programação de forma independente no sistema a
ser desenvolvido. A ferramenta WEKA, tem como principais vantagens (OLIVEIRA, 2005):
§ Portabilidade: o WEKA está implementado em linguagem Java, permitindo o uso dos
benefícios de uma linguagem orientada a objetos (encapsulamento, polimorfismo,
modularidade, reutilização de código e etc);
§ Interface: além de ser amigável, a instalação é simples e de fácil utilização. Se
apresenta através de uma interface gráfica, diferentemente da maioria das ferramentas
de mineração de dados;
§ Gratuidade: é um software livre, sua licença é baseada na GPL (General Public
License);
§ Documentação e disponibilidade: vastamente encontrada na internet, sem restrições de
uso;
O WEKA é formado por um conjunto de diversos pacotes ou bibliotecas de função que
podem ser utilizadas na implementação de outros sistemas. Dentre eles vale destacar:
§ Attribute Selection (Seleção de atributos): é usado como o próprio nome diz para
selecionar atributos de uma base de dados para a extração de padrões;
§ Classifiers (Classificação através de árvores de decisão): é formado por
implementações de algoritmos de aprendizagem, tais como: IBK (K-nearest neighbor),
o ID3, o J48.J48 e J48.PART;
§ Clustering (Agrupamento em Clusters): contém uma implementação de dois métodos
de aprendizagem não supervisionada: Cobweb e o algoritmo EM;
§ Association Rules (Generalização de regras de associação usando taxonomias): contém
duas classes, ItemSet e Apriori, que juntos implementam esse algoritmo;
§ Filters (Filtros de seleção): permite aos usuários selecionar um subconjunto de
atributos ou de instâncias de dados baseada em algum critério;
§ Estimators (Estimadores): contém subclasses que são utilizadas pelo algoritmo Native
Bayes para computar os diferentes tipos de distribuição de probabilidade.
39
2.7.
Considerações Finais
“Não há um método de mineração de dados universal e a escolha de um algoritmo particular é
de certa forma uma arte.” (FAYYAD, 1996).
Uma análise à citação de Fayyad nos leva a concluir que cada método sugerido pela
mineração de dados pode se adaptar melhor a uma determinada situação em relação à outra,
ou seja, para cada cenário existe um método ou uma técnica mais adequada. Desta forma, a
intuição e experiência do analista são fatores decisivos para a compreensão dos resultados, e
do sucesso da aplicação da mineração de dados na resolução dos problemas.
40
CAPÍTULO 3 - TRABALHOS CORRELATOS
Este capítulo discorre sobre dois trabalhos relacionados ao tema abordado nesta monografia,
principalmente sobre o aspecto do trânsito quanto ao comportamento do fluxo de veículos e
do registro de acidentes. Faz parte ainda do objetivo, relacionar as características mais
importantes destes trabalhos direta ou indiretamente com o SARAT.
3.1.
Simulação do controle de tráfego de automóveis em uma malha rodoviária
urbana (FREIRE, 2004).
Orientado pelo professor José Roque Voltolini da Silva, Jocemar José Freire, submeteu sua
monografia à Universidade Regional de Blumenal, como requisito parcial para a obtenção do
título de bacharel do curso de Ciência da Computação no ano de 2004.
O estudo apresentado aborda a temática do controle do trânsito de veículos em uma malha
rodoviária através do desenvolvimento do protótipo de uma ferramenta de simulação do
tráfego em área urbana.
A proposta para o desenvolvimento do sistema utilizou-se da API gráfica OPENGL para a
visualização da simulação, da utilização de cálculos matemáticos basicamente fundamentados
em geometria analítica e trigonometria e ainda com o estudo das características do trânsito
propriamente dito.
Motivado pela observação da problemática do trânsito, principalmente quanto ao aumento do
volume de veículos trafegando nas vias, o autor percebe a necessidade de se avaliar a eficácia
da criação de rotas alternativas para o trânsito através de um simulador de comportamento do
tráfego.
Segundo Freire (2004), foi confirmado pelo estudo de caso apresentado em sua pesquisa, que
a simulação se mostra eficiente ao identificar situações muito similares com as encontradas no
dia-a-dia de grandes cidades, onde o congestionamento torna-se extremamente complexo a
ponto de interromper completamente o fluxo de veículos em vários sentidos, prejudicando o
funcionamento do tráfego como um todo.
O sistema proposto baseia-se na quantidade de veículos trafegando em rotas pré-programadas,
para simular o comportamento do trânsito, identificando gargalos e conseqüentemente
engarrafamentos.
41
Apesar de não tratar especificamente de acidentes, entende-se que os mesmos podem ser
inseridos no cenário da simulação como obstruções, para identificar os impactos resultantes
no fluxo do tráfego.
Fazendo uma comparação do SARAT com o Sistema de Simulação de Tráfego, pode-se
observar que um dos objetivos que se deseja alcançar com os dois sistemas é permitir um
melhor entendimento do comportamento do tráfego de veículos, para proporcionar aos
gestores, ferramentas que auxiliem a minimizar os impactos causados por obstruções no já
bastante complexo fluxo de veículos de muitas cidades, através da coleta e processamento de
dados do trânsito.
3.2.
Projeto de Georeferenciamento de Acidentes de Trânsito com Vítimas em Belo
Horizonte (MEINBERG, 2003).
Orientado pela professora Karla Albuquerque Borges, Felipe Furtado Meinberg, submeteu sua
dissertação à Universidade Federal de Minas Gerais, como requisito parcial para a obtenção
do título de especialista em Geoprocessamento no ano de 2002.
O trabalho apresenta uma metodologia de modelagem e desenvolvimento de um sistema que
possibilita a visualização de pontos onde ocorreram acidentes de trânsito com vítimas, através
do georeferenciamento dos mesmos. Para isto, baseia-se em dados reais de acidentes
ocorridos no centro de Belo Horizonte, tendo sido testado e validado pela Empresa de
Trânsito de Belo Horizonte.
O sistema foi desenvolvido com a linguagem de programação JMDL (Java Microstation
Development Language) sobre a plataforma comercial Microstation Geographics. Para a
camada de dados foi utilizado o Microsoft Access.
O sistema basicamente faz o cruzamento de dados dos acidentes identificados pelo local da
ocorrência com coordenadas geográficas e as apresenta em um mapa com indicações sobre a
gravidade do mesmo.
Segundo Meinberg (2002), a utilização do sistema atendeu as expectativas e objetivos
propostos, visto que permitiu a especialistas de trânsito e transporte, avaliar de forma bastante
intuitiva os dados coletados sobre os acidentes acontecidos na área onde o estudo foi aplicado.
A relação do sistema proposto por Felipe com o SARAT é mais próxima, visto que trata
especificamente da coleta e visualização de dados de acidentes de trânsito. Mesmo que se
limitando aos acidentes com vítima, possui pontos de convergência interessantes com o
42
SARAT já em sua fase de análise, leva em consideração detalhes específicos sobre as
condições em que o acidente ocorreu, como a severidade do acidente, o período (dia, mês,
ano), e inclusive as condições do tempo.
3.3.
Considerações finais
Apesar de não terem sido encontrados trabalhos com relação integral a esta monografia, ou
seja, com a aplicação de mineração de dados ao trânsito para identificar riscos de acidentes, é
possível observar algumas similaridades nos fundamentos, ou seja, a coleta de dados sobre o
trânsito e que o entendimento sobre o mesmo é bastante comum.
O aspecto mais importante de relação do SARAT com as ferramentas apresentadas é que de
alguma forma elas objetivam viabilizar meios de facilitar o entendimento de determinadas
situações do trânsito, auxiliando na tomada de decisões para minimizar os impactos das
ocorrências comuns quanto ao fluxo de tráfego e da quantidade de acidentes.
Sob este aspecto, a correlação dos trabalhos fica evidenciada e estabelecida.
43
CAPÍTULO 4 - SARAT – SISTEMA DE ANÁLISE DE RISCO DE
ACIDENTES DE TRÂNSITO
O SARAT tem por objetivo, prover a um usuário especializado em trânsito, uma maneira
simplificada de processar um conjunto de informações relacionadas ao tráfego de veículos em
determinada via, e fornecer como resultado, um modelo de análise.
Este modelo, devidamente interpretado, pode auxiliar no entendimento dos fatores que
incidem na ocorrência de acidentes.
Para alcançar este objetivo, a ferramenta utiliza o algoritmo J48 pertencente ao ambiente da
Mineração de Dados como parte do processo KDD, conforme discutido no capítulo 2, para
fazer o cruzamento do histórico de informações relacionadas aos acidentes ocorridos na via,
com as velocidades médias, o fluxo de veículos, a incidência de chuvas, os dias da semana, e
ainda, o período do dia em que ocorreram, para apresentar os resultados da análise como uma
Árvore de Classificação.
O objetivo é que o resultado da análise possa contribuir para o planejamento estratégico, e
tomadas de decisão, e do ponto de vista dos sistemas de informação, reconhecer e identificar
os padrões de comportamento do trânsito de forma sistemática.
4.1.
Operação do SARAT
O objetivo no conceito de desenvolvimento da aplicação foi a de torná-la o mais simples e
funcional possível, e por este motivo, optou-se pela utilização de um assistente que é muito
similar a outros sistemas de uso geral existentes no mercado.
Conforme demonstrado na figura 7, ao executar o assistente o usuário seguirá os seguintes
passos:
§
1: Selecionar o banco de dados onde estão armazenadas as informações;
§
2: Escolher e selecionar quais informações deverão ser consideradas na análise;
§
3: Escolher opções referentes ao algoritmo a ser utilizado na mineração;
§
4: Executar a mineração propriamente dita.
44
Figura 7 – Esquema geral de funcionamento do SARAT
Fonte: Autoria própria
Ao final da análise, os resultados serão apresentados na janela principal em dois diferentes
formatos; Relatório-texto e um gráfico em forma de árvore.
A interpretação do resultado da mineração, bem como a identificação das ações de controle
que podem ser tomadas a partir das análises, fica por conta do especialista em trânsito, usuário
da ferramenta.
4.2.
A fundamentação do SARAT
Partindo do princípio que analisar um conjunto de números e proposições é uma tarefa
cansativa e sujeita a falhas de interpretação, a utilização de ferramentas computacionais para
este tipo de atividade torna-se atualmente o método mais recomendado. Neste contexto as
técnicas de mineração de dados podem ser utilizadas para interpretar e fornecer resultados de
uma forma bastante precisa. O SARAT está fundamentado basicamente na classificação de
dados através da técnica de mineração de dados conhecida como Árvores de Classificação,
mais especificamente do algoritmo J48, uma implementação do C45 e evolução do ID3,
conforme discutido no capítulo 2.
A técnica de árvores de decisão foi escolhida por apresentar a forma de análise mais
simplificada sob o ponto de vista da interpretação, já que imediatamente após o
processamento dos dados, pode-se visualizar graficamente as evidências resultantes da
análise.
Para desenvolver o SARAT, foi utilizada a API da ferramenta open-source WEKA, que reúne
um conjunto de algoritmos desenvolvidos especificamente para a tarefa de mineração de
dados. A escolha foi feita baseando-se em dois fatores, o primordial foi o fato do WEKA ter
45
seu código aberto, o que possibilitou o acesso a sua interface de programação bastante
documentada, inclusive o próprio J48, já implementado e pronto para sua utilização. O
segundo aspecto por ter sido desenvolvida em JAVA, viabilizando a possibilidade de
utilização em sistemas operacionais distintos.
4.3.
Requisitos
Nesta secção serão relacionados os requisitos funcionais, que determinam especificamente o
que o sistema deve realizar, e os não-funcionais, aqueles referentes a características de
restrição, qualidade, tempo ou quaisquer outras não relacionadas à funcionalidades prestadas
pelo sistema.
4.3.1. Requisitos Funcionais
§
Ler dados: O sistema SARAT deverá permitir ao usuário escolher qualquer SGBD
como fonte de dados para análise, desde que o driver para o mesmo, esteja disponível.
§
Escolher origem dos dados: O sistema SARAT deverá permitir ao usuário escolher
que tabela será a origem dos dados a serem analisados.
§
Escolher atributos da análise: O sistema SARAT deverá permitir ao usuário escolher
que atributos (campos da tabela) serão utilizados na análise. O último a ser
selecionado deverá ser utilizado como atributo classificador.
§
Visualizar as opções definidas para os atributos: O sistema SARAT deverá permitir
que após os atributos para análise sejam selecionados, os valores de opção para cada
atributo sejam previamente visualizados pelo usuário.
§
Visualizar os resultados: O sistema SARAT deverá apresentar os resultados da análise
em forma de texto e em formato gráfico, demonstrando a árvore de classificação do
modelo gerado.
§
Avaliar o índice de concordância do modelo: O sistema deverá apresentar para os
modelos gerados o índice Kappa, para que o mesmo possa ser utilizado como
parâmetro qualificador do resultado da análise.
46
4.3.2. Requisitos Não Funcionais
§
Operação com SGBD: Apenas um banco de dados pode ser utilizado por vez, ou seja,
todos os dados a serem analisados devem pertencer ao mesmo banco de dados.
§
Aceso ao SGBD: É de responsabilidade do usuário manter os drivers necessários para
que o sistema possa se conectar a outros SGBD´s.
§
Tratamento dos Dados: O SARAT não fará edições nos dados utilizados na análise.
§
Coleta de Dados: O SARAT não fará a coleta e manutenção dos dados a serem
utilizados pelo mesmo. Eles já deverão estar disponibilizados previamente no banco
de dados a ser utilizado. Não é responsabilidade do SARAT o tratamento destes dados
que deverão ser realizados pelo usuário.
§
Origem dos dados: Todos os dados a serem analisados pelo SARAT devem pertencer
a uma única tabela.
§
Portabilidade: O sistema deverá ser desenvolvido em Java para que seja portável entre
plataformas de sistemas operacionais.
4.4.
Funcionamento da Ferramenta
Ao inicializar o sistema SARAT é apresentada a tela conforme demonstrado na figura 8. Esta
interface foi desenvolvida com a intenção de ser o mais simples, direta e funcional possível
para que sua utilização seja praticamente imediata por novos usuários. Podem-se observar no
menu as opões “Arquivo”, “Análise” e “Informações”. Na área de resultados é possível
visualizar as abas “Saída” e “Árvore”.
47
Figura 8 – Tela principal do SARAT
Fonte: Autoria própria
No item do menu “Arquivo”, tem-se a opção de abandonar o sistema. Ação que pode ser
efetuada clicando-se no botão fechar no canto superior direito da tela.
O item do menu “Análise”, mostra o sub-menu “Assistente” que dispara o assistente de
análise, conforme demonstrado na figura 9.
O menu “Informações”, mostra o sub-menu “Sobre” que quando acionado mostra a tela de
créditos do sistema conforme a figura 10.
As abas “Árvore” e “Saída” são preenchidas respectivamente com os resultados em forma de
gráfico com a árvore de decisão, e em formato texto, quando o assistente termina o processo
de análise.
48
Figura 9 - Tela do Assistente de Análise
Fonte: Autoria própria
Figura 10 - Tela de Créditos do SARAT
Fonte: Autoria própria
Conforme demonstrado na figura 9, o usuário deve selecionar as opções desejadas, conectar
ao banco de dados e passar para a próxima etapa.
A figura 11 a seguir, denota um dos passos primordiais no sucesso da análise; a escolha dos
campos que farão parte da mesma. Neste momento o último campo selecionado será
automaticamente definido como o atributo classificador (no caso, o atributo “Acidente”).
Nesta tela do assistente são demonstrados ainda, opções de pré-visualização dos dados, antes
da mineração propriamente dita. Estes dados podem ser vistos na figura 12.
49
Figura 11 - Seleção de dados para a análise
Fonte: Autoria própria
Figura 12 - Pre-visualização de dados selecionados
Fonte: Autoria própria
50
Figura 13 - Tela conclusão do assistente
Fonte: Autoria própria
Figura 14 - Atributos envolvidos na análise
Fonte: Autoria própria
A figura 13 demonstra as últimas opções a serem escolhidas para que a aplicação do
algoritmo de mineração de dados escolhido, no caso o J48 do pacote WEKA, seja aplicado. O
botão “Alterar atributos” permite visualizar como os atributos serão considerados na análise,
conforme demonstrado na figura 14.
O processo se inicia após o usuário clicar no botão “Minerar Dados” e os resultados conforme
já mencionado, serão apresentados nas abas “Saída” e “Árvore” da tela principal da aplicação,
e as mesmas serão demonstradas no capítulo 5.
51
4.5.
Casos de Uso
A figura 15 demonstra o caso de uso da ferramenta SARAT, onde seus principais recursos e
funcionalidades são apresentados.
Figura 15 - Diagrama de Caso de Uso – SARAT
Fonte: Autoria própria
Como funcionalidades destacam-se:
§
Conectar Base Dados: Permitir ao usuário se conectar ao SGBD onde os dados para
análise estiverem disponíveis.
§
Selecionar Dados: Permitir ao usuário selecionar quais os dados deverão ser
considerados pelo processo de análise. Incluem-se nesta categoria a tabela e ainda os
campos da mesma.
§
Minerar Dados: Processo que efetivamente processa os dados e opções selecionadas
no assistente, aplica o algoritmo de mineração e apresenta os resultados.
Dos recursos utilizados o mais importante é o pacote contendo a API do WEKA, onde o
algoritmo J48 está incluído, bem como as bibliotecas para a visualização gráfica da árvore
com o resultado da análise.
4.6.
Diagrama de Seqüência
A figura 16 demonstra o diagrama de seqüência onde é possível visualizar a interação entre as
classes do sistema com o usuário, para produzir os resultados da análise com uma visão
temporal das ações.
52
Figura 16 - Diagrama de Seqüência do processo de análise
Fonte: Autoria própria
4.7.
Arquitetura Técnica
Para o desenvolvimento da ferramenta SARAT foi utilizada a linguagem de programação
JAVA, considerada neste caso pelas seguintes características:
§
A ferramenta WEKA, bem como todas as bibliotecas e componentes da API (Interface
de programação) disponibilizadas para livre utilização não comercial, foram
desenvolvidas em Java. Assim, já que para fazer a interação entre outras linguagens de
programação com o JAVA seria mais complicado e não acrescentaria grandes
benefícios ao objetivo deste trabalho, optou-se por manter o JAVA como a linguagem
de programação a ser utilizada.
53
§
Com a diversidade de sistemas operacionais atualmente em uso, pode-se considerar
uma boa prática desenvolver em uma linguagem que apresenta portabilidade e isto foi
levado em consideração.
O NETBEANS foi a IDE utilizada para o desenvolvimento, por facilitar a criação de
aplicações desktop, gerando o código mínimo para posterior complementação, com a inclusão
de outras funcionalidades. Ainda, por se demonstrar bastante eficiente quanto a
extensibilidade de funções através de plugins, que permitiram por exemplo, elaborar diversos
dos diagramas utilizados neste trabalho.
Para o SGBD, que mantém as tabelas utilizadas no processo de análise, foi escolhido o
Microsoft SQL Server Express 2005. A escolha se baseou principalmente no fato do mesmo
ser disponibilizado gratuitamente pela Microsoft, mas ainda assim, apresentar alta eficiência
funcional, segurança e facilidade de manipulação. Foi considerada ainda como uma
oportunidade de fazer a integração entre sistemas heterogêneos, uma vez que poderia ter sido
utilizado o MYSQL, evidentemente mais próximo do Java em termos de portabilidade. A
escolha foi influenciada ainda pelo requisito que define a possibilidade de se utilizar qualquer
SGBD disponível, o que motivou a busca pela consolidação de novos conceitos, e com
certeza contribuiu para agregar valor a este trabalho.
Em termos da arquitetura propriamente dita, pode-se classificar a mesma como uma aplicação
desktop de duas camadas. Uma camada fica responsável pela interação com o usuário,
processar os dados e apresentar os resultados. A outra camada serve para prover à camada de
interface as funcionalidades do acesso aos dados como as consultas e opções de acesso. Mais
uma vez a escolha da linguagem JAVA é justificada como opção de utilização, já que as
bibliotecas utilizadas no tratamento dos dados pela camada responsável, são facilmente
encontradas na internet.
A escolha por desenvolver uma aplicação para desktop é justificada principalmente pelo fato
de que a ferramenta SARAT seria normalmente utilizada por apenas um usuário. Mesmo
assim como foi desenvolvida em Java, sua portabilidade para o ambiente WEB pode ser
implementada, mantendo suas características funcionais quase que inalteradas.
Pode-se ainda citar o fato de que o objetivo principal do desenvolvimento da ferramenta para
este trabalho foi viabilizar um meio de maior interatividade e não-tradicional, sob o ponto de
vista das técnicas de análise convencionais sobre os acidentes de trânsito, feitas pelos órgãos
54
competentes. Sob este aspecto, a característica da aplicação ser desktop ou web realmente não
faz grande diferença. A figura 17 evidencia arquitetura de 2 camadas da aplicação SARAT.
Figura 17 - Arquitetura de 2 camadas da aplicação
Fonte: Autoria própria
4.8.
Modelo de Dados
O modelo de dados da aplicação é bastante simples, já que o sistema basicamente se utiliza de
3 tabelas que não mantém uma relação de dependência forte, conforme figura 18.
Figura 18 - Tabelas do sistema
Fonte: Autoria própria
55
Para um melhor entendimento da filosofia adotada quanto aos dados das tabelas, segue uma
breve explicação sobre o conteúdo das mesmas.
A tabela “Transito” deve possuir todos os registros fornecidos que serão utilizados na análise.
Esta tabela é preenchida pelo usuário utilizando qualquer outro mecanismo, a ferramenta
SARAT não possui esta funcionalidade. Deve-se levar em consideração que a tabela
demonstrada na figura 16 é apenas uma demonstração do tipo de informações que podem
estar presentes na mesma, utilizadas pelo estudo de caso da aplicação.
A tabela “TransitoOpcoes” mantém os dados referentes a que opções cada campo da tabela
“Transito” pode apresentar para o efeito da análise.
A tabela “TransitoCampos” é utilizada para auxiliar na montagem da instrução SQL de select
para filtrar quais campos realmente serão utilizados em conjunto com a tablela
“TransitoOpcoes”. Quando o usuário seleciona os campos que serão ser analisados, a tabela
“TransitoCampos” é limpa e em seguida preenchida com os campos selecionados para
posterior utilização. O resultado da consulta apenas dos atributos selecionados para análise é
demonstrada na figura 19 e demonstra quais são os tipos de dados que podem estar presentes
na tabela “Transito”.
Figura 19 - Visão dos atributos selecionados para análise
Fonte: Autoria própria
56
4.9.
Diagrama de Classes
O diagrama de classes da ferramenta SARAT, conforme demonstrada na figura 20 estabelece
a arquitetura do código da mesma, representando suas principais funcionalidades. Foram
omitidos atributos e métodos pertencentes à construção da interface do usuário já que não
fazem parte do objeto principal de estudo deste trabalho.
A classe “Assistente” é o centro da aplicação. Ela é responsável por criar, visualizar,
manipular e em seguida retornar para a classe “SARATView” que é responsável pela
interface principal do sistema, incluindo a apresentação dos resultados ao usuário.
Figura 20 - Diagrama de classe da aplicação
Fonte: Autoria própria
57
Para conseguir executar suas funcionalidades a classe “Assistente” utiliza as classes
“DtBase”, “VerDados” e “ExportaArff” que é responsável por criar o arquivo com os dados
selecionados para análise que serão processados pela classe “ArvoreJ48”.
A classe “ArvoreJ48” efetivamente cria o objeto onde será aplicado o algoritmo de
classificação utilizando os pacotes da API do WEKA.
A classe “VerDados” é responsável por fornecer a visualização de dados selecionados e
opções, pode ser considerada uma classe utilitária.
No anexo 1 podem ser visualizadas, destacando as partes mais importantes, o código fonte das
classes “ArvoreJ48” e “Assistente”.
4.10. Considerações finais
Este capítulo procurou demonstrar de forma detalhada o processo de desenvolvimento da
ferramenta SARAT. O próximo capítulo se destina a demonstrar a utilização da mesma
através de um estudo de caso.
58
CAPÍTULO 5 - APLICAÇÃO PRÁTICA DA FERRAMENTA SARAT
Neste capítulo será elaborada uma simulação da utilização do sistema, bem como a
apresentação e análise dos resultados apresentados. Mesmo não se tratando de especialistas no
que diz respeito ao trânsito, a composição de variáveis e a forma com que os dados serão
apresentados, facilitará o entendimento, este inclusive um dos maiores objetivos do
desenvolvimento do sistema.
5.1.
Dados para análise
Para desenvolver um sistema de análise que transmita confiabilidade é preciso que sejam
usados dados com algum grau de relevância. Assim, foi feita uma solicitação a SET –
Superintendência de Engenharia de Tráfego que forneceu o levantamento de todos os
acidentes ocorridos na Avenida Tancredo Neves entre os anos de 2005 e julho de 2008.
Apesar disto, para efeito da simulação, foram considerados apenas os dados do ano de 2006
na área do Iguatemi. A estrutura dos dados fornecidos pela SET, pode ser observada no
quadro 3.
CAMPO
Cod_Ocorrencia
Data
Hora
Tipo_Ocorrencia
Rodovia
Idade
Sexo
Categoria
Resultado
Encaminhado
Tipo_Veiculo
Faixa_Etaria
Faixa_Horaria
HOR
Dia_da_Semana
DESCRIÇÃO
Código numérico seqüencial da ocorrência
Data da ocorrência no formato xx/xx/xx
Hora da ocorrência no formato xx:xx:xx
Descrição do tipo da ocorrência: Ex.: Abaloamento, Atropelamento,
Capotamento, Choque, Colisão, Engavetamento e Queda
Tipo da rodovia: Municipal ou Estadual
Idade do envolvido
Sexo do envolvido
Descrição do tipo do envolvido: Condutor, passageiro ou pedrestre
Descrição do estado do envolvido: Ferido, sem lesão ou morto.
Local para onde o envolvido foi enviado: Ex. HSR (Hospital São
Rafael), HGE (Hospital Geral do Estado)
Tipo do veículo envolvido: Passeio, ônibus, caminhão, moto
Faixa etária do envolvido no acidente
Turno em que o acidente ocorreu: Ex. Manhã, tarde, noite ou
madrugada
Dia da semana
Descrição da avenida onde foi registrada a ocorrência. Ex.: Avenida
Logradouro
Tancredo Neves
Trecho onde a ocorrência foi registrada: Ex.: Iguatemi, Pituba,
Localidade
Tancredo Neves
Quadro 3 - Descrição dos dados fornecidos pela SET
Fonte: Autoria própria
59
Mesmo de posse de uma grande quantidade de dados, percebeu-se que para o tipo de análise
os mesmos ainda estavam incompletos, já que eram referentes apenas aos dias em que os
acidentes efetivamente aconteceram. Ou seja, qualquer análise mostraria simplesmente que os
acidentes acontecem. Outro aspecto importante é que o registro das ocorrências relacionavase apenas ao acidente e seus envolvidos sem levar em consideração o ambiente do trânsito no
momento da ocorrência.
Para tornar o conjunto de informações mais relevantes para a simulação, considerou-se
necessário a inclusão de novas variáveis, como a velocidade média dos veículos, um valor
referente ao fluxo de veículos trafegando no momento do acidente, e a informação da
presença ou não de chuva.
Para estabelecer os valores que representassem o fluxo e as velocidades dos veículos foram
seguidos alguns passos:
§
Foi escolhida apenas uma localidade da via para análise, no caso o trecho do Iguatemi
§
Foi realizada uma contagem da quantidade de veículos trafegando numa via próxima
durante 5 minutos em cada hora por 3 dias alternados entre as 9:00 e 18:00 através de
observação visual. A contagem foi realizada do alto do Edifício Ômega, décimo
primeiro andar, nos dias 01/10/08, 03/10/08 e 05/10/08. Além da quantidade de
veículos, foram feitas estimativas também visuais das velocidades médias durante as
observações.
§
De posse de valores referentes a 5 minutos, foi estabelecido uma média dos 3 dias e
realizada uma estimativa das quantidades para cada hora do dia. O mesmo foi feito
para a estimativa de velocidades.
§
Os períodos entre 18:00 e 8:00 da manhã foram estimados com base na
redução/aumento progressivo de valores já estabelecidos.
Os dados coletados foram utilizados como limitadores para gerar randomicamente valores de
fluxo e de velocidades dos veículos para cada hora do dia.
Como os dados fornecidos pela SET continham apenas os dias com os registros de ocorrência,
foi montado um calendário contendo todos os dias do ano de 2006 e nele foram acrescentadas
as ocorrências registradas pela SET e ainda a informação da incidência de chuva.
60
Para conseguir os dados de registros das chuvas em salvador, foram utilizadas informações do
Weather Underground, um portal onde é disponibilizado o histórico das chuvas em diversos
lugares do mundo inclusive Salvador.
O resultado da combinação dos dados fornecidos pela SET, com as simulações de velocidade
e de fluxo, assim como o histórico das chuvas formam o conjunto de dados onde foram
aplicadas as etapas do processo KDD sugerido por FAYYAD (1996), conforme se segue:
§
Seleção de dados: Foram eliminados todos os campos considerados irrelevantes para
análise, bem como a limitação dos mesmos a uma seleção de 60 dias do ano de 2006.
§
Pré-processamento: O registro das ocorrências fornecidas pela SET passaram por um
processo de limpeza a exemplo das redundâncias por acidente. Cada registro da tabela
fornecida referenciava um envolvido (motorista, pedestre, ciclista, passageiro etc..) o
que resultava em vários registros do mesmo acidente com diferentes pessoas
envolvidas.
§
Transformação: Foram feitas as normalizações nos dados. Correção de termos,
padronização de texto para, por exemplo, referenciar os dias da semana abreviada.
O quadro 4, apresenta uma amostra dos dados já prontos para serem utilizados no teste da
aplicação SARAT.
DIA
CHUVA TURNO FLUXOMEDIO VELOCMEDIA ACIDENTE
dom
Nao
Madrugada
298
48
NAO
dom
Nao
Manha
3197
47
NAO
dom
Nao
Noite
2093
48
NAO
dom
Nao
Tarde
4331
46
NAO
seg
Nao
Madrugada
292
46
NAO
seg
Nao
Manha
3292
53
NAO
seg
Nao
Noite
2224
51
NAO
seg
Nao
Tarde
4537
50
NAO
ter
Nao
Madrugada
302
44
NAO
ter
Nao
Manha
3121
46
NAO
ter
Nao
Noite
1971
47
NAO
ter
Nao
Tarde
4368
47
SIM
qua
Nao
Madrugada
297
48
NAO
qua
Nao
Manha
3131
44
SIM
qua
Nao
Noite
2142
47
NAO
qua
Nao
Tarde
4336
50
SIM
qua
Nao
Tarde
4336
50
SIM
qua
Nao
Tarde
4336
50
SIM
qui
Nao
Madrugada
291
48
NAO
Quadro 4 - Amostra de dados analisados pelo SARAT
Fonte: Autoria própria
61
Em seguida passou-se para as duas últimas fases; a aplicação do algoritmo J48 e avaliação dos
resultados desta fase já com a utilização da ferramenta SARAT.
5.2.
Ambiente operacional e teste da aplicação
Para realizar o teste da aplicação foi utilizado um Notebook Sony Vaio, dotado de
processador Intel Core 2 Duo, 2Gb de memória, HD de 80Gb.
Iniciada a aplicação temos apresentada a primeira tela do sistema conforme figura 21.
Figura 21 - Simulação: Tela inicial da aplicação SARAT
Fonte: Autoria própria
Em seguida selecionada a opção “Análise” no menu principal, iniciou-se o assistente
conforme a figura 22, onde os dados referentes ao banco de dados foram preenchidos.
62
Figura 22 - Simulação: Conexão ao banco de dados
Fonte: Autoria própria
Após pressionar o botão “Conectar” a conexão com o banco de dados foi estabelecida e os
dados das tabelas foram carregados corretamente. Ao clicar no botão “Próximo” ou selecionar
a aba “Dados” foram disponibilizadas as possibilidades de se escolher que tabela, bem como
quais os campos seriam analisados. No caso, todos menos o campo “ID” foram solicitados,
conforme a figura 23.
Figura 23 - Simulação: Seleção da tabela e dos campos para análise
Fonte: Autoria própria
63
Ao clicar no botão “Próximo” ou selecionar a aba “Opções”, conforme a figura 23, surgem as
opções de pré-visualizar o contexto de análise de cada um dos campos, selecionar o algoritmo
ou mesmo executar o processo de análise, clicando-se no botão “Minerar Dados”, conforme
demonstrado na figura 24. A figura 25 demonstra as opções do contexto de cada um dos
campos da tabela analisada.
Figura 24 - Simulação: Opções finais para o processo de análise
Fonte: Autoria própria
Figura 25 - Simulação: Visualização do contexto dos atributos para análise
Fonte: Autoria própria
Após clicar no botão “Minerar Dados”, a análise é executada. Ao fechar o assistente são
apresentadas as telas de resultado de texto e gráfico nas abas “Saída” e “Arvore”
respectivamente conforme as figuras 26 e 27.
64
Figura 26 - Simulação: Resultado da aplicação do algoritmo em formato texto
Fonte: Autoria própria
65
Figura 27 - Simulação: Resultado da análise em forma de gráfico tipo árvore
Fonte: Autoria própria
Com a apresentação das telas de resultados, está concluída a utilização da ferramenta SARAT,
a partir de então parte-se para a análise dos resultados obtidos.
5.3.
Resultados obtidos com o teste da aplicação
Os resultados da aplicação podem ser melhor compreendidos, através do gráfico da árvore
demonstrada na figura 27. A partir do resultado, podem ser interpretadas as seguintes
conclusões para a via em questão:
§
Quando a média do fluxo de veículos se encontra abaixo de 2096, não há incidência de
ocorrências.
§
Quando a média do fluxo de veículos for maior do que 2096, passa-se a levar em
consideração o dia da semana em questão:
•
Segundas e domingos, não há ocorrência de acidentes;
66
•
Quartas, sextas e sábados há ocorrência de acidentes.
•
Terças, só há o registro de ocorrências quando o fluxo é maior do que 3177
veículos, em caso contrário não há ocorrências.
•
Quintas, se chove, há o registro de ocorrências, caso contrário não há registro de
ocorrências.
Quanto aos resultados em relação à aplicação, percebe-se que a interpretação é bastante
intuitiva e facilitada graças a representação gráfica dos resultados. Ainda assim, a
demonstração de resultados em forma de texto não deixa de ser importante, pois além de
permitir a mesma interpretação fornecida pelo modo gráfico, acrescenta alguns detalhes
importantes que merecem ser mencionados como:
§
Índice Kappa; Demonstrando o percentual de confiabilidade da análise conforme
discutido no capítulo 2, no caso teste foi de aproximadamente 93%;
§
Total de Instâncias: 57 registros considerados na análise;
§
Instâncias corretamente classificadas: 52 registros após classificados e comparados
com o atributo alvo corresponderam à classificação feita pela ferramenta;
§
5.4.
Instâncias incorretamente classificadas: 2 registros;
Considerações finais
Este capítulo demonstrou o processo de levantamento de dados, preparação dos mesmos e
utilização da ferramenta para análise e em seguida apresentou os resultados encontrados.
67
CONCLUSÃO
O principal objetivo deste trabalho foi desenvolver uma ferramenta flexível para viabilizar
uma metodologia de análise, capaz de realizar operações pré-determinadas com precisão,
rapidez e montar o cenário de análise para um especialista em trânsito. Ou seja, demonstrar a
utilização de uma nova abordagem para o processo de análise do tráfego de veículos.
Com este foco, procurou-se ainda demonstrar as técnicas e a relevância de métodos existentes
para identificação de locais de risco de acidentes, como os métodos numéricos recomendados
pelo CEFTRU.
O sistema utilizou como principal componente de informação o que poderia ser considerado a
mesma fonte de dados utilizada pela técnica da “Taxa de Acidentes”, os dados históricos dos
acidentes.
O trabalho também ressaltou o fato de que o aumento na capacidade do armazenamento de
dados, pelo volume de informações que são gerados todos os dias nas diversas áreas de
aplicação, o Data Mining se apresenta como a ferramenta ideal para a análise de cenários
como o proposto. Sua utilização é justificada ainda pelo extenso leque de opções quanto ao
tipo de análise que podem ser feitas e até mesmo, e senão principalmente, pela capacidade de
descobrir novos padrões de comportamento e conseqüentemente de novas informações.
Para se tornar realmente flexível, o sistema foi estruturado para possibilitar a utilização de
diversas variáveis que podem ser inseridas como componentes da análise quando as mesmas
estiverem disponíveis, como por exemplo, o nível de risco que uma avenida pode apresentar
calculada pelas técnicas tradicionais.
Desta forma, conclui-se que a aplicação de Sistemas de Informação, apoiado em técnicas
robustas de Mineração de Dados e nos avanços da tecnologia dos computadores, são
ferramentas de grande desempenho, que juntas, podem realmente contribuir para viabilizar a
análise e o melhor entendimento do comportamento do tráfego de veículos e dos acidentes
que ocorrem em grandes cidades como Salvador.
68
Dificuldades Encontradas
A principal dificuldade para realização do desenvolvimento deste trabalho foi conseguir os
dados em relação ao trânsito para iniciar o processo de pré-análise.
Mesmo após ter os dados em mãos, foi constatado que os mesmos encontravam-se
incompletos para se atingir as metas que haviam sido planejadas no início do projeto.
Ainda quanto aos dados, quando se decidiu acrescentar outros fatores aos dados originais
como a incidência das chuvas, constatou-se que em Salvador e até no Brasil não são
disponibilizados registros sobre a ocorrência de chuvas no território nacional. Estas
informações foram encontradas após um longo período de busca em portais da internet
hospedados fora do Brasil. Isto indica que ainda existe uma carência muito grande de fontes
de informação atualizadas sobre o que acontece em nosso próprio país.
Outra dificuldade que merece ser apontada é a falta de informações detalhadas sobre os
principais algoritmos de classificação. Os poucos que existem limitam-se a explicações
superficiais, baseadas em exemplos pouco expressivos e resultados de difícil interpretação.
Contribuições
Acreditamos que a principal contribuição deste trabalho para o meio acadêmico, é a
demonstração da viabilidade de utilização de conceitos de mineração de dados para análise de
um problema que é tradicionalmente tratado através de estatísticas e fórmulas com alto nível
de complexidade. Vale salientar que tentou-se abordar o problema com uma linguagem o
mais próxima do entendimento geral, utilizando-se de detalhes técnicos apenas onde era
inevitável.
A intenção desta abordagem é permitir que o leitor mesmo não sendo da área de tecnologia,
sinta-se a vontade e consiga absorver os conceitos aqui discutidos sem intimidações por
explicações de alto nível técnico, ou seja, consigam entender a essência do trabalho.
69
Perspectivas
Uma das perspectivas é que este trabalho sirva como referência para trabalhos futuros onde
possam ser implementadas por exemplo:
• A inclusão de relatórios para os resultados da análise.
• A possibilidade se utilizar outros algoritmos além do J48.
• A implementação de uma versão para WEB da ferramenta.
• Os dados utilizados pela aplicação já devem estar prontos para consulta. Poderia ser
incluído um módulo de extensão para fornecer a capacidade de modificar os dados da
base.
• A inclusão de filtros de seleção para, por exemplo, selecionar qual via deverá ser
analisada.
70
REFERÊNCIAS BIBLIOGRÁFICAS
AGRAWAL, R.; SRIKANT, R.
Fast
algorithms
for
mining
association
rules.
Proceedings of the 20th VLDB Conference. Chile: Santiago, 1994.
ALVARES, Reinaldo Viana. Mineração de dados: Introdução e aplicações. 2004. SQL
MAGAZINE, Edição 10, 2004.
AMARRAL, Fernando C. Data Mining
Técnicas e Aplicações para o Marketing. Ed
Berkeley Brasil, 2001.
BATISTA, G.E.A.P.A, Pré-processamento de dados em aprendizado de máquina
Supervisionado. 2003. Tese (Doutorado) - Instituto de Ciências Matemáticas e de
Computação. Universidade de São Paulo, São Carlos.
BERRY, M. J. A.; LINOFF, G. Data Mining techniques – for marketing, sales, and customer
support. United States: Wiley Computer Publishing, 1997.
BRANDÃO, Lúcia Maria. Medidores eletrônicos de velocidade, uma visão da engenharia
para implantação: Manual Teórico-prático. Perkons 2006, Paraná, 2006.
BRASIL. Código Nacional de Trânsito Brasileiro. Lei n° 9.503, de 23 de setembro de 1997.
Artigo 1, parágrafos 1 e 2. Brasília, DF, 1997.
CABENA, P.; HANDJINIAN, P.; STADLER, R.; VERHEES, J.; ZANASI, A. Discovering
data mining: from concept to implementation. Upper Saddle River: Prentice-Hall PTR, 1998.
CEFTRU. Procedimentos para o tratamento de locais críticos de acidentes de trânsito. MT –
Programa Pare, 2002. Brasília 2002.
CONTRAN – CONSELHO NACIONAL DE TRÂNSITO. Resolução Nº146/2003. Dispõe
sobre requisitos técnicos mínimos para a fiscalização da velocidade de veículos automotores,
reboques e semi-reboques. Brasília, DF, 2003.
CURROTO, C.L. Integração de recursos de datamining com gerenciadores de bancos de
dados relacionais. 2003. Tese (Doutor). COPPE/UFRJ. Universidade Federal do Rio de
Janeiro, Rio de Janeiro.
71
DENATRAN – Departamento Nacional de Trânsito. Manual de identificação, análise e
tratamento de pontos negros. 2° edição, Brasília, DF, 1987.
DIAS, M. M. Um modelo de formalização do processo de desenvolvimento de sistemas de
descoberta de conhecimento em banco de dados. 2001. Tese de Doutorado do Programa de
Pós-Graduação em Engenharia de Produção UFSC. Florianópolis, Santa Catarina.
DWBRASIL.
Data
Mining.
2004.
Disponível
em:
<http://www.dwbrasil.com.br/html/dmining.html> Acesso em: 04 Mai. 2008.
ELMARSRI, Ramez; NAVATHE, Shamkant B. Sistemas de bancos de dados. 4° Edição.
Pearson Addison Welsley, 2005.
FAYYAD, U.M.,G; PIATETSKY-SHAPIRO; SMYTH P. Fron Data Mining to Knowledge
Discovery in Databases. AI MAGAZINE, California, outono 1996.
FREIRE, Jocemar José. Simulação do controle de tráfego de automóveis em uma malha
urbana. 2004. Trabalho de conclusão de curso (Bacharelado em Ciência da Computação).
Universidade Regional de Blumenau. Blumenau, 2004.
GONÇALVES, Eduardo Correia. Data Mining Regras de Associação. SQL Magazine, 2007.
Disponível em: <http://www.devmedia.com.br/articles/viewcomp.asp?comp=6533> Acesso
em: 04 Mai. de 2008.
GROTH, R. Data mining: a hands-on approach for business professionals. Prentice Hall, New
Jersey, 1998.
HAN, J.; KAMBER, M. Data mining-concepts and techniques. Morgan Kaufmann. San
Fransico, CA, 2001.
LEGRAND, Gaelle; NICOLOYANNIS, Nicolas. Data preprocessing and kappa coefficient.
In: 10th INTERNACIONAL CONFERENCE OF ROUGH SETS, FUZZY SETS, DATA
MINING, AND GRANULAR COMPUTING. Procedings, part I. Springer. Canada, 2005.
MATTAR, F.N. Pesquisa de Marketing. São Paulo: Atlas, 1998.
72
MEINBERG, Felipe Furtado. Projeto de Georeferenciamento de Acidentes de Trânsito com
Vítimas em Belo Horizonte. 2002. Monografia do curso de especialização em
Geoprocessamento. Universidade Federal de Minas Gerais. Minas Gerais, 2002.
MITCHELL, Tom M. Machine Learning. McGraw-Hill. New York, 1997.
ORLANDINI, Leandro: A importância dos sistemas de informação. O Bonde, abril 2005.
Disponível
em:
<http://www.bonde.com.br/colunistas/colunistasd.php?id_artigo=1646>.
Acesso em: 3 Abr. 2008.
OLIVEIRA, Alessandra Marchiori de; Smiderle, Andréia. Mineração de dados: um estudo de
caso de concessão de crédito explorando o software Weka. Revista de Informatica Mater Dei,
Pato Branco, Paraná: v.2,n.2, p.17-22,2005.
QUINLAN. J. Ross. C4.5 – Programs for machine learning. Morgan Kaufmann. San Fransico,
CA, 1993.
SET-SUPERINTENDÊNCIA DE ENGENHARIA DE TRÁFEGO: Anuário estatístico de
acidentes
de
trânsito
em
Salvador.
Salvador,
2006.
Disponível
em:
<http://www.set.salvador.ba.gov.br/estatistica_dados.asp>. Acesso em Mar. 2008.
SFERRA, Heloisa Helena; CORRÊA, Ângela M. C. Jorge. Conceitos e Aplicações de Data
Mining.
Revista
Ciência
&
Tecnologia.
Piracicaba,
2003.
Disponível
em:
<http://www.unimep.br/phpg/editora/revistaspdf/rct22art02.pdf>. Acesso em: Jan. de 2008.
WITTEN, FRANK. ; Ian H. Witten, Eibe Frank. Data Mining: Pratical machine learning tools
and techiniques. Morgan Kaufmann, San Francisco, CA, 2005.
WEATHER
UNDERGROUND.
Internet
Weather
Service.
Disponível
em:
<
http://www.wunderground.com/history/airport/SBSV/2008/1/1/CustomHistory.html?dayend=
1&monthend=9&yearend=2008&req_city=NA&req_state=NA&req_statename=NA>.
Acesso em: Ago. de 2008.
73
ANEXO 1 – Código parcial das classes principais
Classe do assistente
/*
* SARATApp.java
* Sistema de Análise do Trânsito - Risco de Acidente
* Técnica: Mineração de Dados
* Módulo: Assistente de Mineração de Dados
* Orientador: Mestre Grinaldo Lopes
* Trabalho de Conclusão de Curso - Ano: 2008.2
* Sistemas de Informação - Centro Universitário Jorge Amado - UNIJORGE
* @author Sérgio Costa & Herbert Souza
*/
package sarat;
/**
* Módulos das bibliotecas padrão do java utilizados pela aplicação
*/
import DBUtil.*;
import javax.swing.*;
import java.sql.*;
import java.awt.BorderLayout;
/**
* Módulos das bibliotecas do WEKA utilizados pela aplicação
*/
import weka.gui.treevisualizer.PlaceNode2;
import weka.gui.treevisualizer.TreeVisualizer;
/**
* Classe Assistente - Módulo de Mineração dos Dados
*/
public class Assistente extends javax.swing.JFrame {
private DefaultListModel listModelLeft;
private DefaultListModel listModelRight;
private JInternalFrame jFarvore;
private JTextArea jFareatexto;
private ArvoreJ48 TreeData;
private DBUtil.DtBase db;
private String selectString;
private String selectOpcoes;
/**
* Construtor da Classe Assistente
*/
public Assistente(JInternalFrame jFrameArvore, JTextArea jSaidaTexto) {
listModelLeft = new DefaultListModel();
listModelRight = new DefaultListModel();
74
initComponents();
//Objetos de visuzalicação dos resultados da mineração
jFarvore = jFrameArvore;
jFareatexto = jSaidaTexto;
//Cria o objeto de dados
db = new DBUtil.DtBase();
selectString = "";
selectOpcoes = "SELECT T.CAMPO, T.OPCOES FROM TransitoOpcoes T" +
" JOIN TransitoCampos C ON (T.CAMPO=C.CAMPO)";
}
/** Método disparado pelo construtor, responsavel por inicializar todos os
* componentes da janela da aplicação.
* Esta porção de código foi gerada pela ferramenta grafica do Netbeans 6.1
* e só deve ser modificada através da mesma.
* Vizualização parcial
*/
@SuppressWarnings("unchecked")
private void initComponents() {
.
.
.
}
/**
* Método para permitir a inclusão de ítens na consulta dos dados a serem
* minerados através da conexão ao SGBD.
* Preenche o combobox com o nome das tabelas
*/
private void RecuperarTabelasDB() {
if (db.BancoConectado()) {
try {
//Quantas Tabelas tem no banco?
int ct = db.getTablesBanco();
respTables = db.GetTabelas();
for (int i = 0; i < respTables.length; i++) {
jComboTabelas.addItem(respTables[i]);
}
} catch (Exception Ex) {
Ex.printStackTrace();
}
} else {
// System.out.println("Erro: Banco não Conectado");
JOptionPane.showMessageDialog(null, "Não conectado!",
"Erro: Banco de Dados.", JOptionPane.ERROR_MESSAGE);
}
}
75
/**
* Recupera a lista de campos de uma tabela selecionada
* e adiciona os mesmos à lista de campos disponíveis para minerar
*/
private void SelecionarCamposTabela(String tabela) {
if (db.BancoConectado()) {
String[] respCols;
try {
respCols = db.RecuperaCamposTabela(tabela);
for (int i = 0; i < respCols.length; i++) {
listModelLeft.addElement(respCols[i]);
}
} catch (Exception Ex) {
Ex.printStackTrace();
}
} else {
JOptionPane.showMessageDialog(null, "Não conectado!",
"Erro: Banco de Dados.", JOptionPane.ERROR_MESSAGE);
}
}
/**
* Faz o pre-processamento dos dados, coletando-os a partir do banco e gerando o arquivo
* ".arff" que será utilizado pelo algorítimo
*
*/
private boolean processarOpcoes() {
boolean resp = false;
try {
if(insereCamposOpcoes()){
DBUtil.ExportArff expData = new DBUtil.ExportArff(selectString, selectOpcoes);
expData.Exportar(db, DtviewOpcoes, Dtview);
resp = true;
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage(), "Erro:",
JOptionPane.ERROR_MESSAGE);
}
return resp;
}
/**
* Cria o objeto que minera os dados utilizando o Algorítimo J48 do WEKA
*
*/
private void MinerarDados(){
if (this.processarOpcoes()) {
try {
TreeData = new ArvoreJ48();
76
jFareatexto.setText(null);
String GraficoTexto = TreeData.getGraficoTexto();
String Avaliacao = TreeData.getAvaliacao();
double indiceKappa = TreeData.getIndiceKappa();
jFareatexto.setEditable(false);
jFareatexto.append(GraficoTexto);
jFareatexto.append("\nÍndice
Kappa
para
Double.toString(indiceKappa) + " \n");
jFareatexto.append(Avaliacao);
o
modelo:
TreeVisualizer tv;
jFarvore.getContentPane().setLayout(new BorderLayout());
tv = new TreeVisualizer(null, TreeData.getGrafico(), new PlaceNode2());
jFarvore.getContentPane().removeAll();
jFarvore.getContentPane().add(tv, BorderLayout.CENTER);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage(),
"Erro:", JOptionPane.ERROR_MESSAGE);
}
} else {
JOptionPane.showMessageDialog(null, "Falha na preparação dos dados!",
"Erro:", JOptionPane.ERROR_MESSAGE);
this.dispose();
}
}
"
+
77
Classe do objeto J48
/*
* SARATApp.java
* Sistema de Análise do Trânsito - Risco de Acidente
* Técnica: Mineração de Dados
* Módulo: Objeto que utiliza a biblioteca do WEKA para minerar os dados
* Orientador: Mestre Grinaldo Lopes
* Trabalho de Conclusão de Curso - Ano: 2008.2
* Sistemas de Informação - Centro Universitário Jorge Amado - UNIJORGE
* @author Sérgio Costa & Herbert Souza
*/
package sarat;
/**
* Módulos das bibliotecas padrão do java utilizados pela aplicação
*/
import java.io.FileReader;
/**
* Módulos das bibliotecas do WEKA utilizados pelo objeto
*/
import weka.classifiers.trees.J48;
import weka.core.Instances;
import weka.classifiers.Evaluation;
/**
* Classe que executa o algoritimo de Classificação J48 do WEKA
*/
public class ArvoreJ48 {
private String arquivo;
private weka.classifiers.trees.J48 j48;
private weka.classifiers.Evaluation evaluation;
private String GraficoTexto;
private String Avaliacao;
private double indiceKappa;
private String Grafico;
public ArvoreJ48() {
//Abre o arquivo temporário exportado pelo assistente
arquivo = "c:\\temp\\Transito.arff";
try {
Instances inst = new Instances(new FileReader(arquivo));
inst.setClassIndex(inst.numAttributes() - 1);
j48 = new J48();
j48.buildClassifier(inst);
evaluation = new Evaluation(inst);
evaluation.evaluateModel(j48, inst);
78
//Indice kappa encontrado para o modelo
indiceKappa = evaluation.kappa();
//Avaliacao geral do modelo
Avaliacao = evaluation.toSummaryString(false);
//Gráfico da árvore fornecida
GraficoTexto = j48.toString();
Grafico = j48.graph();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage(),
"Erro:", JOptionPane.ERROR_MESSAGE);
}
}
/**
* Get´s e Sets para acesso ao objeto com os resultados.
*/
public J48 getObjJ48() { return j48; }
public String getGrafico() { return Grafico;}
public double getIndiceKappa() { return indiceKappa; }
public String getAvaliacao() {
return evaluation.toSummaryString(false);
}
public String getGraficoTexto() {
return GraficoTexto;
}
public String getArquivo() {
return arquivo;
}
public void setArquivo(String arquivo) {
this.arquivo = arquivo;
}
}
Download