o impacto do uso de anÁlise de dados na geraÇÃo de ... · desta forma são estudados conceitos...

67
LUIZ FELIPE PRESTES TEIXEIRA O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ESTIMATIVAS ATRAVÉS DE REDES BAYESIANAS CANOAS, 2011

Upload: others

Post on 27-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

LUIZ FELIPE PRESTES TEIXEIRA

O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO

DE ESTIMATIVAS ATRAVÉS DE REDES BAYESIANAS

CANOAS, 2011

Page 2: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

LUIZ FELIPE PRESTES TEIXEIRA

O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO

DE ESTIMATIVAS ATRAVÉS DE REDES BAYESIANAS

Trabalho de Conclusão apresentado para a banca examinadora do Curso de Ciência da Computação do Centro Universitário La Salle – Unilasalle, como exigência parcial para a obtenção do grau de Bacharel em Ciência da Computação com ênfase em Desenvolvimento de Software.

Orientador: Prof. Me. Abraham Lincoln Rabelo de Sousa

CANOAS, 2011

Page 3: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

LUIZ FELIPE PRESTES TEIXEIRA

O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO

DE ESTIMATIVAS ATRAVÉS DE REDES BAYESIANAS

Trabalho de Conclusão aprovado como exigência parcial para a obtenção do grau de Bacharel em Ciência da Computação com ênfase em Desenvolvimento de Software do Curso de Ciência da Computação pelo Centro Universitário La Salle – Unilasalle.

Aprovado pela banca examinadora em ___ de _________ de 2011.

BANCA EXAMINADORA

______________________________________________

Prof. Me. Abraham Lincoln Rabelo de Sousa

Unilasalle

______________________________________________

Prof. Me. Gustavo Passos Tourinho

Unilasalle

______________________________________________

Prof. Me. Roberto Petry

Unilasalle

Page 4: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

AGRADECIMENTOS

Agradeço a todos que contribuíram de forma direta ou indireta para a realização

deste trabalho, mas especialmente a minha família e aos meus amigos pela

colaboração a mim dedicada.

Agradeço também ao meu orientador Prof. Lincoln por ter me auxiliado ao

longo desta pesquisa com sua experiência, dedicação e atenção.

Page 5: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

RESUMO

Apesar da constante evolução da engenharia de software ao longo dos anos a

geração de estimativas em projetos de software ainda é um dos problemas mais

complexos em um projeto de software. E mesmo com a utilização de base de dados

históricos e ferramentas de auxilio a tomada de decisão, por si só não são o

bastante para auxiliar efetivamente o gerente de projetos na tarefa de estimar,

principalmente devido a má qualidade dos dados inseridos na base.

Tendo em visto esta situação esta pesquisa tem como objetivo estudar o impacto

que a análise de dados exerce sobre as estimativas geradas através de Redes

Bayesianas. Desta forma são estudados conceitos de mineração de dados, como

técnicas, algoritmos, seu processo de coleta de conhecimento, problemas mais

comuns em grupos de dados, aprendizagem automatizada, redes bayesianas e suas

formas de conhecimento, o uso de base de dados históricos de projetos de software.

Como proposta de modelo são criados fluxos de mineração de dados, onde são

aplicadas técnicas e algoritmos de tratamento de dados em bases de dados

históricas, posteriormente esses dados servem para treinar a Rede Bayesiana e

posteriormente é possível a aplicação de vários testes.

Por fim conclui-se que a mineração de dados tem um alto impacto sobre as

estimativas geradas através de Redes Bayesianas, e aconselha-se o uso do

algoritmo K-Means.

Palavras chave: Redes bayesianas. Análise de Dados. Gerência de software.

Page 6: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

ABSTRACT

Despite the constant evolution of software engineering over the years the generation

of estimates in software projects is still one of the most complex problems. And even

with the use of historical Project data set and tools to aid decision-making alone is

not enough to effectively assist the project manager on the task to estimate, mainly

due to poor quality of data entered in the database.

Having seen this situation this research aims to study the impact that the analysis of

data has on estimates generated through Bayesian networks. Thus are studied

concept of data mining, such as techniques, algorithms, the process of gathering

knowledge, the most common problems in groups of data, automated learning,

Bayesian networks and forms of knowledge, the use of the historical database of

projects of software. As proposed model are data mining fluxes, where these are

techniques and algorithms for processing data in historical databases, then these

data are used to train the Bayesian network and is then possible to apply various

tests.

Finally it was concluded that data mining has a high impact on the estimates

generated using Bayesian networks, and we recommend the use of K-Means

algorithm.

Key words: Bayesian networks. Data Analyses. Data Mining. Project Software

Manager. Software Engineering

Page 7: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

LISTA DE ILUSTRAÇÕES

Figura 1 - Cone da Incerteza de um projeto de software. ......................................... 13

Figura 2 - Exemplo de grafo e tabelas de probabilidade de Redes Bayesianas. ...... 15

Figura 3 - Etapas da descoberta do conhecimento. .................................................. 19

Figura 4 - Exemplo de árvore de decisão em modo gráfico. ..................................... 26

Figura 5 - Exemplo gráfico das etapas do algoritmo de K-means. ............................ 28

Figura 6 - Esquema gráfico do Processo de desenvolvimento.................................. 34

Figura 7 – Fluxo de mineração de dados na ferramenta WEKA (KnowledgeFlow). .. 45

Figura 8 - Fluxo de mineração de dados com J48. ................................................... 48

Figura 9 - Fluxo de mineração de dados com algoritmo K-Means. ........................... 49

Figura 10 - Representação gráfica da Rede Bayesiana. ........................................... 51

Figura 11 - Predição da Rede Bayesiana para Esforço Requerido. .......................... 53

Figura 12 - Predição da Rede Bayesiana para Experiência necessária. ................... 54

Figura 13 - Estimando a dificuldade estimada de um projeto em uma base pura. .... 54

Figura 14 - Estimando esforço com algoritmo J48. ................................................... 55

Figura 15 - Estimando a experiência necessária de um projeto. ............................... 56

Figura 16 - Estimando a dificuldade em projetos. ..................................................... 57

Figura 17 - Estimativa de esforço mais precisa com uso algoritmo de K-Means. ..... 58

Figura 18 - Estimando nível de experiência para o projeto. ...................................... 59

Figura 19 - Estimando a dificuldade para o projeto de teste. .................................... 60

LISTA DE QUADROS Quadro 1 - Relação das tarefas do processo de desenvolvimento. .......................... 35

Quadro 2 - Características do projeto selecionado para testes na Rede Bayesiana. 52

Quadro 3 - Demonstrativo do resultado dos testes aplicados. .................................. 60

Quadro 4 - Demonstrativo dos projetos de testes utilizados. .................................... 61

Quadro 5 - Demonstrativo dos resultados gerais dos testes aplicados. .................... 61

Page 8: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

SUMÁRIO 1 INTRODUÇÃO ...................................................................................................... 9

2 FUNDAMENTAÇÃO TEÓRICA ............................. ............................................. 11

2.1 Estimativas em projetos de software ............... ............................................... 11

2.2 Redes Bayesianas .................................. .......................................................... 14

2.2.1 Tipos de Probabilidade em Redes Bayesianas ................................ 15

2.2.2 Aprendizagem em Redes Bayesianas ............................................. 15

2.2.3 Discretização .................................................................................... 16

2.3 Mineração de Dados ................................ ......................................................... 17

2.3.1 Desafios que levam ao uso da mineração de dados ........................ 18

2.3.2 O Processo de Descoberta de Conhecimento em Banco de Dados 19

2.3.3 Tarefas de Mineração de dados ....................................................... 21

2.3.4 Qualidade de Dados ......................................................................... 22

2.3.5 Técnicas de análise de dados .......................................................... 24

2.4 Trabalhos Relacionados ............................ ....................................................... 29

3 ESTUDO DA ANÁLISE DO IMPACTO DA MINERAÇÃO DE DADOS EM

ESTIMATIVAS ATRAVÉS DE REDES BAYESIANAS ........... ................................. 31

3.1 Ferramentas para gerência de projetos ............. ............................................. 32

3.1.1 WebApsee – Gerenciador de Projetos de Software ......................... 32

3.1.2 Processo de desenvolvimento de software ...................................... 32

3.2 Base de dados sintética ........................... ........................................................ 36

3.3 Ferramentas para mineração de dados ............... ........................................... 43

3.3.1 Weka ................................................................................................ 43

3.4 Organização dos dados ............................. ....................................................... 46

3.5 Aplicando análise de dados em dados históricos de p rojetos ..................... 46

3.5.1 J48 – Árvores de Decisão ................................................................ 46

3.5.2 SimpleKMeans – K-means ............................................................... 48

3.6 Ferramentas para utilização de Redes Bayesianas ... .................................... 49

3.6.1 Treinando as Redes Bayesianas ...................................................... 50

3.7 Definindo a Rede Bayesiana para análise ........... ........................................... 50

3.8 Projeto para testes de predição em Redes Bayesianas ................................ 51

3.9 Analisando o impacto de mineração de dados em estim ativas geradas

através de Redes Bayesianas ....................... ......................................................... 52

3.9.1 Rede Bayesiana – Treinada com base de dados pura ..................... 53

Page 9: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

3.9.2 Rede Bayesiana – Treinada com base de dados tratada com o

algoritmo J48. 55

3.9.3 Rede Bayesiana – Treinada com base de dados tratada com

algoritmo K-Means. ................................................................................................... 57

4 CONCLUSÃO ......................................... ............................................................ 62

REFERÊNCIA ........................................................................................................... 63

Page 10: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

9

1 INTRODUÇÃO

A engenharia de software visa a melhoria do processo de desenvolvimento de

software, introduzindo normas e padrões a serem seguidos para que esse objetivo

seja atingido. Seguindo estes padrões, equipes de desenvolvimento buscam

produzir softwares de maior qualidade, redução de custos, além de alcançar uma

maior satisfação dos usuários finais. Contudo, unir todas estas características

citadas em um projeto de desenvolvimento de software continua sendo um desafio.

Devido a isto, a área de engenharia de software continua em freqüente evolução

buscando atender as novas exigências do mercado.

Há diversas pesquisas voltadas para a engenharia de software relacionada à

novas ferramentas e modelos para auxiliar os gerentes de projeto na complexa

tarefa de concretizar um projeto de desenvolvimento de software com sucesso.

Porém, mesmo com todo o progresso nos estudos e pesquisas, ainda há desafios a

serem solucionados. Entre eles é possível citar a elaboração de estimativas para os

projetos de desenvolvimento de software como sendo uma das tarefas mais

complexas que um gerente de projetos pode enfrentar (Pressman, 2009). As

estimativas são tão vitais para os projetos que podem determinar seu sucesso ou

fracasso. Sendo assim, as estimativas podem ser consideradas a fundação para

todas as outras atividades de planejamento do projeto.

As estimativas têm como principal objetivo mensurar o projeto que esta sendo

desenvolvido, este pode ser mensurado em diversos elementos como: custo, tempo,

esforço e qualidade. No entanto, há um grande índice de projetos com estimativas

imprecisas ou incorretas.

Há diversas técnicas que visam amenizar esse tipo de problema, sendo uma

das mais indicadas as Redes Bayesianas, que são grafos de probabilidade,

representando cenários de um projeto, com o objetivo de realizar predições levando

em conta situações de causa e efeito. Todavia o uso das Redes Bayesianas requer

dados históricos para que seu modelo seja treinado a fim de aperfeiçoar suas

predições. Entretanto nem sempre a base de dados históricos utilizada no

treinamento tem dados com a qualidade necessária, comprometendo a precisão das

estimativas geradas pela Rede Bayesiana.

Page 11: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

10

Este estudo propõe apresentar uma análise do impacto que o uso de técnicas

de mineração de dados exercem sobre as estimativas geradas através de Redes

Bayesianas.

Se faz importante mencionar aqui que este trabalho faz parte de um projeto

desenvolvido conjuntamente com o colega Fábio Pittoli, cujo trabalho de conclusão

de curso se propõe a monitoração de projetos de desenvolvimento de software

utilizando Redes Bayesianas. O modelo de processo de desenvolvimento de

projetos elaborado por ele foi utilizado neste trabalho com o intuito de simular

situações rotineiras em um projeto de software, facilitando assim a criação de uma

base de dados histórica de projetos similares. O professor Abraham Lincoln Rabelo

de Sousa, cujo trabalho desenvolvido no doutorado abrange as áreas contempladas

tanto neste trabalho, quanto no trabalho do Fábio, colaborou largamente com sua

experiência e conhecimento na área.

Esta pesquisa esta disposta ao longo de cinco capítulos, sendo o segundo

deles um estudo sobre o estado da arte dos assuntos relacionados à esta pesquisa.

O terceiro capítulo aborda as questões que envolvem este estudo do impacto

de análise de dados em estimativas através de Redes Bayesianas, contendo os

modelos escolhidos bem como os critérios de análise e ferramentas utilizadas,

também relata os resultados obtidos com as experiências.

Na quarta seção é apresentada uma conclusão sobre os resultados obtidos e

sobre a pesquisa como um todo, além de trabalhos futuros sugeridos.

Page 12: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

11

2 FUNDAMENTAÇÃO TEÓRICA

Nesta sessão serão apresentados os conceitos a serem aplicados para que se

atinjam os objetivos desta pesquisa tais como conceitos de estimativas, redes

bayesianas e análise de dados. Estes conceitos são importantes para entendimento

da solução proposta para essa pesquisa com relação ao problema dos ruídos em

bases de dados históricas de projetos de software.

2.1 Estimativas em projetos de software

Tendo o objetivo de mensurar o projeto, o delimitando em termos de tempo

necessário para o desenvolvimento, custos totais, esforços necessários, entre outras

características que um projeto de desenvolvimento de software possa a ter, as

estimativas são os pilares de um projeto e também uma das tarefas mais difíceis,

devido bastante ao alto nível de incerteza em que os projetos se encontram na fase

de estimar. As estimativas fazem parte de uma das fases mais importantes de um

projeto o planejamento.

De acordo com Pressman (2006), o planejamento trata-se de uma atividade

fundamental dentro da gerencia de projetos de software. Durante a fase de

planejamento o gerente de projeto deve estimar esforço exigido, o tempo, e o custo

que o projeto demandará.

Ressalta-se que os esforços com relação as estimativas se concentram em

garantir uma melhor qualidade do software, bem como ganhos na produtividade,

uma maior satisfação dos clientes e a diminuição do retrabalho e conseqüentemente

dos custos (CLEMENTES, 2001).

Entretanto, pesquisadores da área (LEHMAN, 1989; FUGGETA, 2000;

CLARKE, 2003; HANNAY, 2007) consideram que atualmente ainda há pouco

conhecimento disponível sobre os fenômenos e/ou incertezas que afetam o

desenvolvimento de software e sobre como reagir diante deles.

Os principais motivos para estimativas incorretas e imprecisas estão

provavelmente em suas origens, ou seja, em quem estimou. Muitas vezes um

gerente de projetos possui diversas responsabilidades e tem pouco tempo para o

planejamento do projeto em si, com isso o tempo para gerar as estimativas é ainda

Page 13: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

12

mais curto. Além disso, há diversos outros fatores que podem complicar ainda mais

a tarefa do gerente de projetos tais como:

• Falta de atenção a detalhes pertinentes ao projeto;

• Requisitos que podem mudar a qualquer momento;

• Informações imprecisas sobre o produto desenvolvido.

• Complexidade do projeto acima do normal, e dessa forma, difícil de ser

estimado;

• Falta de uma base de dados históricos de projetos, levando as estimativas a

serem feitas de forma intuitiva.

• Falha na coleta dos dados do projeto levando a base de dados históricos a

apresentar ruídos.

• Uso de base de dados históricos de projetos de software, porém sem

tratamento dos dados adequado em conjunto a uma ferramenta de apoio a

tomada de decisões;

Segundo Pressman (2009) um dos maiores problemas de projetos de software

são as estimativas imprecisas, e isso se deve a o baixo nível de dados coletados

sobre os processos de desenvolvimento, ou seja, uma fraca base de dados de

projetos, que faz com que as estimativas sejam empíricas e altamente imprecisas.

Outro grande problema na geração de estimativas é o ambiente de incertezas

que envolvem os projetos de software. Isso ocorre devido a etapa onde as

estimativas são exigidas, normalmente logo no inicio do planejamento, quando ainda

não se tem o real escopo do projeto. Muitas vezes somente se conta com requisitos

básicos que podem vir a mudar e dessa forma as estimativas geradas estão sujeitas

a muitos erros. Inúmeros estudos indicam que as estimativas deveriam ser criadas

em uma fase mais avançada do projeto quando os requisitos e o escopo real

estivessem bem definidos, evitando assim que mudanças alterassem o

comportamento do projeto e com isso as estimativas poderiam ter uma precisão

maior. Uma boa estimativa é aquela que tem 25% ou menos de erro, em pelo menos

75% dos casos (McConnell, 2006).

Page 14: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

13

Figura 1 - Cone da Incerteza de um projeto de software. Fonte: McConnel, 2008.

Os custos dos projetos se tornam cada vez mais onerosos quando se trata de

erros de estimativas, pesadas multas muitas vezes têm de ser pagas por empresas,

além de que a corrida para vencer as estimativas incorretas faz com que os

softwares não tenham os cuidados necessários ao serem implementados e com isso

percam bastante sua qualidade. Desta forma terão de passar por diversas fases de

manutenção gerando ainda mais custos para as empresas, ou até mesmo a perda

de contratos.

De acordo com pesquisas realizadas pelo “Standish Group”, grupo de pesquisa

sobre falhas e sucessos em projetos de desenvolvimento de software, em 2009,

verificaram que aproximadamente 24% dos projetos falharam, tendo apenas 32%

dos projetos sendo entregues no prazo correto e outros 44% tiveram de ser

alterados para redução do escopo por que estavam atrasados e com estouro de

orçamento. Uma das maiores causas apontadas para as falhas nos projetos são as

mudanças nos requisitos, o que conseqüentemente é uma das maiores causas de

estimativas imprecisas. O prognóstico para 2011 prevê um aumento da margem de

projetos finalizados com sucesso.

Page 15: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

14

Uma boa prática para ter estimativas mais precisas é o uso de históricos de

projetos anteriores, evitando as estimativas por impulso ou baseadas em

experiências próprias. O ideal seria que a cada projeto suas características e dados

pertinentes a todo o processo de desenvolvimento fossem coletados e guardados

para serem utilizados nos próximos projetos como apoio a tomada de decisão para

novas estimativas (Pressman, 2009).

Porém, analisar grandes quantidades de dados e extrair alguma informação útil

e com isso gerar estimativas ou predizer um evento que poderá ocorrer se torna

uma tarefa extremamente difícil se não auxiliada por uma ferramenta. Desta forma,

para auxilio na elaboração de estimativas de software já foram estudados diversos

modelos e ferramentas, todas utilizando métricas distintas, e muitas vezes de alta

complexidade. Todavia, tratando-se de uma tarefa árdua e em meio a um ambiente

de muita incerteza, as ferramentas que fazem uso de Redes Bayesianas parecem as

mais indicadas para auxiliar o gerente de projetos nessas situações, uma vez que

são normalmente utilizadas em modelos que envolvem incerteza e ainda tem a

capacidade de aprendizado contínuo para aperfeiçoar suas predições.

2.2 Redes Bayesianas

Pode ser descrita como uma tabela de conjunção de probabilidades do

universo de um problema. Segundo Russel e Norving (2006) as redes bayesianas

são representadas de forma gráfica mostrando as relações de causalidade entre

variáveis de um sistema, como exemplifica a figura 2. Em termos técnicos, são

grafos acíclicos dirigidos que representam dependências entre variáveis ou

diagramas que organizam o conhecimento entre causas e efeitos.

Segundo Charniak (1991), a principal vantagem de raciocínio probabilístico

sobre raciocínio lógico é o fato de que agentes podem tomar decisões racionais

mesmo quando não existe informação suficiente para se provar que uma ação

funcionará.

Normalmente utilizadas em modelos que necessitam de raciocínios baseados

em incerteza contendo nós que representam as variáveis e arcos que denotam as

conexões entre elas (Korb; Nicholson, 2003). Basicamente, uma rede bayesiana é

formada por um conjunto de variáveis e arcos as ligando. Cada variável possui um

conjunto de estados sendo estes mutuamente exclusivos e para cada variável que

Page 16: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

15

possui certo pai, existe uma tabela de probabilidades. Matematicamente uma Rede

Bayesiana pode ser representada por uma tabela de probabilidades que envolvem o

universo de um problema.

Figura 2 - Exemplo de grafo e tabelas de probabilidade de Redes Bayesianas. Fonte: Russel e Norving, 2006.

2.2.1 Tipos de Probabilidade em Redes Bayesianas

As Redes Bayesianas possuem dois tipos de probabilidade: a priori e a

posterior. A priori significa que, mesmo sem referencial de informações sobre o

universo do problema, a Rede Bayesiana consegue extrair algum conhecimento

probabilístico de seu modelo. Após a rede ser executada uma primeira vez, novas

informações podem ser atribuídas a seus nodos e então executa-se a rede

novamente obtendo-se a probabilidade a posterior, também conhecida como

probabilidade condicional (Russel; Norving, 2006).

2.2.2 Aprendizagem em Redes Bayesianas

Segundo Carneiro (1999), a aprendizagem de redes bayesianas envolve o

processo de construção de uma rede que represente uma distribuição de

probabilidades em um determinado domínio de aplicação, sendo que a

aprendizagem pode ser:

Page 17: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

16

• Supervisionada: quando um especialista participa de praticamente todas as

etapas da construção da rede bayesiana, aplicando sua própria experiência

na construção.

• Não Supervisionada: Aprendizagem automatizada, divididas em duas partes:

aprendizagem da estrutura e a dos parâmetros numéricos, onde a construção

da rede bayesiana se da através de uma base de dados e tem participação

dos especialistas para coleta de dados e testes. Segundo Koehler (2002)

esse processo de aprendizagem se divide em algumas etapas. Por Exemplo,

gerar a rede bayesiana que ira representar as relações entre as variáveis de

um problema e então se especifica como a distribuição de probabilidades ira

ser representada em cada nó e finalmente se extrai as estimativas das

probabilidades (treinadas com a base de dados).

Os algoritmos de aprendizagem em Redes Bayesianas podem ser divididos em

dois tipos:

• Aprendizagem Paramétrica: faz uso de distribuições de probabilidade

condicional (Castelo; Kocka, 2003).

• Aprendizagem da Estrutura: Define quais arestas devem ser adicionadas ao

grafo, levando em conta as ligações dos vértices (Cheng; Greiner, 2001).

2.2.3 Discretização

Algumas ferramentas utilizadas nesse estudo como o GENIE utilizam técnicas

de discretização para aprendizagem de Redes Bayesianas, assim fica mais fácil de

serem definidos os limites (intervalos) de valores de cada variável, para analises da

Rede Bayesiana. A discretização de dados pode ser definida como transformar uma

variável continua em uma variável discreta (CERQUIDES, 1997). O uso desse tipo

de variável torna o processo de aprendizagem e inferência mais eficientes, fazendo

muitas vezes com que a Rede Bayesiana fique mais adequada ao domínio do

problema.

Algumas vantagens para o uso da discretização são:

• Muitos algoritmos para aprendizagem ou inferência não conseguem

trabalhar com variáveis contínuas (LUDL; WIDMER, 2000).

Page 18: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

17

• Os classificadores resultantes de um processo de discretização são

significativamente menos complexos e algumas vezes mais precisos que os

classificadores obtidos com dados contínuos (FRANK; WITTEN, 1999).

• Ao aplicar algoritmos de indução de variáveis discretas em variáveis

continuas podem gerar muitos relacionamentos e pouco poder preditivo

(WANG; LIU, 1998).

O uso de aprendizagem automatizada em Redes Bayesianas com bases de

dados históricas é importante para dar a Rede maior conhecimento sobre o domínio

do problema e suas características, podendo fazer com que as predições sejam

ainda mais precisas. Contudo, é necessário que tais dados tenham o máximo de

qualidade e o mínimo de ruído possível, até mesmo sendo conveniente o uso de

técnicas de mineração de dados, afim de que esse processo de aprendizado não se

volte contra o especialista que irá consultá-lo.

2.3 Mineração de Dados

Avanços rápidos na tecnologia de coleta e armazenamento permitiram que as

organizações acumulassem uma vasta quantidade de dados. Entretanto, a extração

de informação útil desses armazéns de dados não se mostra uma tarefa simples,

uma vez que a complexidade dos conjuntos de dados ou o tamanho excessivamente

grande pode requerer técnicas não tradicionais de análise de dados (Tan; Steinbach;

Kumar, 2009).

A mineração de dados é uma tecnologia que combina métodos tradicionais

com algoritmos sofisticados de processamento de dados. Suas técnicas são

organizadas a fim de analisar e processar grandes volumes de dados e tem como

intuito a descoberta automática de informação e padrões úteis que, de outra forma,

poderiam passar despercebidos, além de poder fornecer uma capacidade de

previsão de uma observação futura.

Ela pode apoiar uma ampla gama de aplicações de inteligência de negócios

como criação de perfis de usuários, vendas direcionadas entre outros. A exemplo

também pode ser aplicada na engenharia de software, onde pode ser utilizada para

análise de dados de projetos de software.

Muitas áreas cientificas contribuem para o avanço da mineração de dados

como computação paralela para processamentos de alto desempenho, banco de

Page 19: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

18

dados com o armazenamento, Inteligência artificial com o aprendizado de máquina e

reconhecimento de padrões e estatísticas.

Nem todas tarefas de recuperação de dados podem ser consideradas

mineração de dados, como por exemplo o uso de um gerenciador de banco de

dados para que seja recuperado registros individuais através de uma consulta

simples ou uma busca por paginas web, pois essas tarefas baseiam-se em técnicas

tradicionais da ciência da computação e em recursos óbvios dos dados para criar

estruturas de índice para organizar e recuperar de forma eficiente as informações.

Contudo, a mineração de dados vem sendo utilizada para aprimorar sistemas de

recuperação de dados (Tan; Steinbach; Kumar, 2009).

2.3.1 Desafios que levam ao uso da mineração de dados

Conforme mencionado anteriormente, em alguns casos as técnicas tradicionais

de análise de dados, não conseguiam na prática vencer os desafios impostos pelos

novos conjuntos de dados, entre esses desafios estão:

• Escalabilidade: Devido ao aumento da coleta e armazenamento de dados,

alguns conjuntos de dados têm tamanhos gigantescos. Os algoritmos de

mineração de dados empregam técnicas de escalabilidade em suas buscas

e empregam estratégias especiais ao fazerem buscas exponenciais.

• Alta Dimensionalidade: Podem haver conjuntos de dados com milhares de

atributos. Normalmente as técnicas de análise de dados tradicionais foram

desenvolvidas para conjuntos de baixa dimensionalidade e por isso não

funcionam bem com altas dimensionalidades, além da complexidade

computacional que aumenta conforme o numero de dimensões.

• Dados Complexos e Heterogêneos: Primeiramente os conjuntos de dados

eram contínuos ou categorizados e continham atributos do mesmo tipo,

porém isso mudou drasticamente. Atualmente há diversos dados

heterogêneos como dados complexos que requerem um nível maior de

análise, uma vez que para analisar esse tipo de dado deve ser levado em

consideração seus relacionamentos entre dados, como auto-correlação

temporal e espacial, relacionamento pais e filhos entre outros.

• Propriedade de distribuição de dados: As vezes os dados de uma análise

não estão todos no mesmo local ou até mesmo são propriedades de uma

Page 20: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

19

organização, podem estar distribuídos de forma aleatória geograficamente e

pertencentes a múltiplas entidades. O que requer que técnicas de análise

distribuídas sejam utilizadas.

• Análises não Tradicionais: A abordagem tradicional é baseada em hipótese-

e-teste, assim uma hipótese é uma proposta e são juntados dados para que

sejam analisados em cima dessa proposta. Contudo, esse processo é

trabalhoso e, nos tempos atuais, esse processo requer a geração e a

avaliação de milhares de hipóteses, então para contornar isso com isso há

o desenvolvimento de novas técnicas para agilizar o e automatizar o

processo de geração de propostas.

2.3.2 O Processo de Descoberta de Conhecimento em Banco de Dados

A mineração de dados é parte integral da descoberta de conhecimento que é a

transformação de dados encontrados nas bases de dados em informações úteis, ou

seja, encontrar dados padrões que sejam válidos para certos objetivos, visando

assim melhorar o entendimento de um problema ou tomada de decisão. Para que

isso ocorra há diversas etapas de transformação dos dados que são descritas a

seguir:

Figura 3 - Etapas da descoberta do conhecimento. Fonte: Tan, Steinbach e Kumar, 2009.

Page 21: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

20

• Entendimento do Domínio do Problema: Define o tipo de conhecimento a

descobrir, o que pressupõe uma compreensão do domínio bem como tal

decisão que tal conhecimento pode ajudar a melhorar.

• Selection: Criação do conjunto de dados alvo, selecionando um conjunto de

dados ou focando em um subconjunto, onde os padrões e informações serão

encontrados.

• Pré-processamento: Tem como objetivo transformar dados brutos em um

formato apropriado para análises subseqüentes, onde é feita a limpeza dos

dados e a eliminação de ruídos, podendo também estimar os ruídos, escolha

de estratégias para manipular campos de dados ausentes, adequando os

dados as ferramentas de mineração. Essa etapa do processo tem-se como a

mais custosa, mais trabalhosa e demorada no processo geral de descoberta

do conhecimento (Tan; Steinbach; Kumar, 2009).

• Redução de dados e projeção (Transformation): Localização de

características úteis para representar os dados dependendo do objetivo da

tarefa, visando a redução do número de variáveis ou instâncias a serem

consideradas e com isso também há um enriquecimento semântico das

informações.

• Mineração de dados (Data Mining): Selecionar os métodos a serem utilizados

para localizar padrões nos dados, seguida da efetiva busca por padrões de

interesse numa forma particular de representação ou conjunto de

representações; busca pelo melhor ajuste dos parâmetros do algoritmo para a

tarefa em questão.

• Pós-processamento: Seu principal objetivo é assegurar que apenas

resultados validos sejam integrados com o sistema de apoio a decisão. Nessa

etapa podem ser utilizadas técnicas como a visualização onde uma

diversidade de pontos de vista será utilizado para explorar os dados,

medições estatísticas ou testes de hipóteses. Após esse passo estar

completo podemos dizer que “Fechamos o Laço”, que é uma expressão

freqüentemente utilizada para referir ao processo de integrar as informações

a um sistema de auxílio a tomada de decisões (Tan; Steinbach; Kumar,

2009).

Page 22: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

21

2.3.3 Tarefas de Mineração de dados

As tarefas de mineração de dados consistem na especificação do que estamos

querendo buscar nos dados, e estão divididas em duas categorias principais:

• Tarefas de Previsão: O objetivo desta tarefa é prever o valor de um

determinado atributo baseado nos valores de outros atributos. O atributo a

ser previsto é conhecido como variável dependente ou alvo , enquanto os

atributos utilizados para fazer a previsão são conhecidos como as variáveis

independentes ou explicativas .

• Tarefas Descritivas: Tem como objetivo derivar padrões (correlações,

tendências, grupos, trajetórias e anomalias) que resumem os

relacionamentos subjacentes nos dados. As tarefas descritivas da

mineração de dados são muitas vezes exploratórias em sua natureza e

freqüentemente requerem técnicas de processamento para validar e

explicar seus resultados (Tan; Steinbach; Kumar, 2009).

Dentro dessas categorias há 4 tarefas centrais da mineração de dados:

o Modelagem de Previsão: Tem como objetivo construir um modelo para a

variável alvo como função das variáveis explicativas. Há dois tipos de

tarefas de modelagem de previsão que são classificação e regressão .

A classificação é usada para variáveis alvo discretas, por exemplo,

prever se um usuário web irá comprar em uma livraria online pois a

variável alvo é binária e na regressão são usadas variáveis alvo

contínuas, por exemplo prever o futuro preço de um produto, afinal a

variável alvo preço é contínua (Tan; Steinbach; Kumar, 2009).

o Analise de associação: Utilizada para descobrir padrões altamente

associados dentro dos dados. Esses padrões são normalmente

representados como regras de implicação ou subconjunto de

características. Devido ao tamanho da busca o objetivo principal da

análise de associação é extrair os padrões mais interessantes de uma

forma mais eficiente.

o Análise de grupo: Procura encontrar grupos de observações

intimamente relacionadas de modo que as observações que pertençam

ao mesmo grupo sejam mais semelhantes entre si do que de outros

grupos. Com isso o algoritmo de agrupamento tem como meta identificar

Page 23: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

22

semelhanças entre dados e dispor estes em grupos de acordo com o

seu grau de similaridade. Sendo assim os dados ficam organizados em

subconjuntos homogêneos, o que torna a visualização pelo usuário mais

simples e compreensível.

o Detecção de anomalias: É a tarefa de reconhecer e identificar

observações que são diferentes do resto dos dados. Essas observações

são conhecidas como anomalias ou fatores estranhos. Ou seja, de uma

base ou conjunto de dados de diversas informações todas terão um

padrão para aquele grupos de informações e as que apresentarem uma

diferença desse padrão podem ser consideradas anômalas.

2.3.4 Qualidade de Dados

Com as coletas de dados em alta escala, muitos dos dados que são coletados

não tem serventia imediata para quem esta acessando a base e manipulando os

dados. Com isso essas bases ficam cada vez mais recheadas de uma diversidade

imensa de dados que depois poderão ser utilizados com diversas finalidades. Em

razão disso muitas vezes as técnicas de mineração de dados são aplicadas a dados

que foram coletados com outros propósitos, por isso quase sempre a mineração de

dados não pode se valer da qualidade da fonte de dados, sendo assim a mineração

de dados enfoca a correção de problemas relacionados a qualidade dos dados e

também especificando o nível de baixa qualidade de dados se necessário (Tan;

Steinbach; Kumar, 2009). Normalmente esse passo de detecção e correção é

chamado de “Limpeza de Dados”.

Não se pode esperar que os dados sejam perfeitos, sempre há a possibilidade

de haverem erros nos dados que se esta manipulando e esses erros podem ter

diversas origens tais como: erro humano, limitações no dispositivo de medição,

falhas no processo de coleta de dados, a falta de valores, ou ate mesmo objetos

duplicados, além de quando os dados parecem perfeitos, porém são inconsistentes.

Segue abaixo alguns dos erros mais comuns encontrados em dados:

• Erros de medição e Coleta de Dados: Refere-se a qualquer problema

resultante do processo de medição. Um exemplo comum é o valor

registrado diferente do valor real em alguma extensão. Para atributos

contínuos essa diferença é chamada de erro. Já o termo coleção de dados

Page 24: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

23

se refere a erros como a omissão de objetos de dados. Tanto erros de

medição quanto de coleta podem ser sistemáticos ou aleatórios. Um

“Ruído ” é um componente aleatório de um erro de medição, ele pode

envolver a distorção de um valor ou a adição de valores ou objetos não

legítimos. Esses “ruídos” podem atrapalhar as análises a serem feitas nos

dados coletados, porém há técnicas para diminuir os ruídos mesmo sendo

uma tarefa muitas vezes onerosa e de alta dificuldade. Essas técnicas

muitas vezes nem mesmo tentam retirar os ruídos, mas simplesmente

tentam encontrar padrões que possam estar perdidos no meio dos ruídos.

Isso se deve a tamanha dificuldade de eliminar os ruídos, algumas

técnicas já trabalham permitindo a existência de ruídos porem apenas se

preocupando que o resultado seja o mínimo aceitável, chamamos essas

técnicas de “Algoritmos Robustos”.

• Precisão, Foco e Exatidão: Há casos onde a qualidade do processo de

medição e os dados são medidos pela precisão e foco, onde precisão

seria a proximidade de medições repetidas e foco a variação sistemática

de medições em relação a quantidade medida. A precisão muitas vezes é

medida pelo desvio padrão de determinados valores, enquanto o foco

pega-se a diferença media do conjunto de valores. Há também a exatidão

que esta diretamente ligada ao foco e a precisão, a exatidão é a

proximidade das medições em relação ao valor real da quantidade a ser

medida.

• Externos: São objetos que tem características diferentes da maioria dos

outros objetos em um conjunto ou valores incomuns de atributos com

relação a valores mais normais. Porém devemos deixar claro que há

diferença entre externos e ruídos apesar de ambos representarem

anomalias, os externos podem ser valores ou objetos legítimos.

• Valores Faltando: É muito comum objetos terem valores faltando, ora por

que não foram coletados, ou os valores não são aplicáveis a todos os

objetos. Enfim, há diversos motivos para falta de valores, porém esses

valores devem ser levados em conta na análise de dados, há diversas

estratégias a serem seguidas quando há falta de valores como:

o Eliminar Objetos ou Atributos: Uma das estratégias mais simples e

eficaz é eliminar os objetos com valores faltando, contudo deve-se

Page 25: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

24

ter bastante cuidado ao se eliminar um objeto, porque mesmo

parcialmente preenchido de dados esse objeto pode ter alguma

informação pertinente dentro de si. Talvez uma boa saída para esse

outro problema seria eliminar apenas atributos de objetos que

tiverem valores faltando.

o Eliminar Valores Faltando: Muitas vezes os valores faltando podem

ser estimados de maneira confiável, usando-se valores restantes.

Se os valores forem contínuos então os valores de seus vizinhos

mais próximos podem ser utilizados para estimar o valor faltando,

se forem categorizados utiliza-se mais comum.

o Ignorar Valores Faltando: Muitas vezes se ignora valores faltando.

O uso dessa técnica pode se dar quando há um comportamento em

comum entre os objetos e seus valores faltando, ou seja, na maioria

ou totalidade dos objetos o valor faltando é o mesmo.

o Valores Inconsistentes: Algo comum de ocorrer é que dados podem

ter valores inconsistentes e é de suma importância detectar e

corrigir essas inconsistências se possível.

o Dados Duplicados: Vários objetos podem se apresentar de forma

duplicada ou semi-duplicada (quase aparentemente iguais).

Primeiramente devem ser verificadas as inconsistências em ambos

os objetos duplicados e então se deve ter o cuidado de não fundir

objetos semelhantes e sim apenas os exatamente duplicados.

Podemos chamar esse processo de desduplicação.

2.3.5 Técnicas de análise de dados

Enquanto as tarefas especificam o que estamos querendo buscar nos dados,

os padrões ou regularidades, a técnica de mineração consiste na especificação de

métodos que nos garantam como descobrir os padrões que nos interessam. As

técnicas em mineração de dados são aplicadas as tarefas, em geral cada técnica

têm o seu tipo de tarefa a qual se adéqua melhor. A seguir podemos conferir

algumas técnicas de mineração de dados:

• Técnicas de Redução de Dimensionalidade: Conjuntos de dados podem

ter milhares de atributos, se for feita uma análise onde cada palavra ou

Page 26: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

25

dados contenha milhares de atributos, sua dimensionalidade tende a

crescer cada vez mais e na maioria das vezes fica difícil analisar tais

dados, pois os dados se tornam mais dispersos no espaço que ocupam.

O maior beneficio para a redução de dimensionalidade é que as analises

funcionam melhor se a dimensionalidade for menor, além de levar o

modelo a ser mais compreensível e permitir que dados sejam visíveis

mais facilmente. Normalmente para esse tipo de problema são aplicadas

técnicas de álgebra linear, como a Análise de Componentes

Principais (PCA) que atua sobre atributos contínuos que encontram

novos atributos que sejam combinações lineares aos originais, sejam

ortogonais entre si e capturem a quantidade máxima de variações de

dados. Além dessa técnica temos a Decomposição de Valor Único

(SVD) que é uma técnica relacionada a PCA onde em conjunto com o

conceito de valores únicos e vetores únicos, capturam uma estrutura de

matriz permitindo assim que essa seja fatorada e decomposta e assim

seja expresso em formato padrão.

• Técnicas de Visualização: Essas técnicas variam bastante de acordo

com o tipo de dados que esta sendo analisado e podem ser

classificados de acordo com o número de atributos envolvidos ou

características especiais. As técnicas variam entre Gráfico de tronco e

folhas, histogramas, histogramas bidimensionais, gr áficos de

caixas, gráficos de dispersão e relatórios textuais .

• Técnicas de Descoberta de regras de associação: Estabelece como

correlação entre certos itens de dados em um conjunto. Um exemplo

desse regra seria que se 90% dos dados tem um certo comportamento

“T”, também poderiam ter um comportamento “P”, os 90% seriam o que

se chama de confiança da regra. Um algoritmo que implementa regras

de associação é o algoritmo de Apriori que segue o seguinte principio

“Se um conjunto de itens é freqüente seu subconjunto também deve ser

freqüente”. Essas técnicas são utilizadas para diminuir o conjunto de

itens candidatos e assim se chegar a um número ideal de itens

candidatos, explorados durante a criação de itens freqüentes. Se não

aplicada essa técnica o conjunto de itens a ser explorado pode ser

exponencialmente grande.

Page 27: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

26

• Árvores de Decisão: É uma árvore onde cada nodo não terminal

representa uma decisão ou teste (Goebel; Gruenwald, 1999), com

objetivo principal de separar as classes, como é demonstrado na figura

4, retirada do relatório de resultados do algoritmo J48 (algoritmo de

árvores de decisão, encontrado na ferramenta WEKA). Tuplas de

classes diferentes tendem a serem alocadas em subconjuntos

diferentes, cada um descrito por uma regra simples. As regras podem

ser expressas como declarações lógicas, em linguagens como SQL,

podendo assim ser aplicadas diretamente a novas tuplas. Normalmente

são aplicadas a tarefas de regressão e classificação. Um importante

recurso das árvores de decisão é a poda dos nodos que contém erros

de classificação, esse processo verifica o montante de erro baseado nas

heurísticas de classificação da árvore antes e depois da poda e então

decide de acordo com o nível de erro máximo configurado para a árvore

se executa o processo ou não. Tradicionalmente esse processo começa

pelas folhas da árvore e vai subindo até a raiz.

Figura 4 - Exemplo de árvore de decisão em modo gráfico. Fonte: Autoria própria.

Page 28: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

27

• Raciocínio Baseado em Casos: Tem por base o vizinho mais próximo,

pegando seus valores e combinando para atribuir valores de classificação

ou de previsão, conhecido também como MBR (Memory-Based Reasoning

– raciocínio baseado em memória), Segundo Dias (2006) é uma técnica de

mineração de dados que usa exemplos conhecidos como modelos para

fazer previsões sobre exemplos desconhecidos.

Na aplicação do MBR, segundo Dias (2006), existem quatro passos

importantes:

1. Escolher o conjunto de dados de treinamento;

2. Determinar a função de distância;

3. Escolher o número de vizinhos mais próximos;

4. Determinar a função de combinação.

• Algoritmos Genéticos: São métodos generalizados de busca e otimização

que simulam os processos naturais de evolução. Trata-se de um

procedimento iterativo para evoluir uma população de organismos e é

utilizado em mineração de dados para formular hipóteses sobre

dependências entre variáveis com certo formalismo, usando operadores de

seleção, cruzamento e mutação gerando sucessivas gerações de soluções.

Após varias iterações o algoritmo vai evoluindo e somente as soluções de

maior poder de previsão sobrevivem ate que haja convergência entre os

organismos (Harrison, 1998).

• Redes Neurais Artificiais: As redes neurais são uma classe especial de

sistemas modelados seguindo analogia com o funcionamento do cérebro

humano e são formadas de neurônios artificiais conectados de maneira

similar aos neurônios do cérebro humano (Goebel; Gruenwald, 1999).

Segundo Goebel e Gruenwald (1999), como no cérebro humano, a

intensidade de interconexões dos neurônios pode alterar (ou ser alterada

por algoritmo de aprendizagem) em resposta a um estímulo ou uma saída

obtida que permite a rede aprender. Uma das principais vantagens das

redes neurais é sua variedade de aplicação, mas os seus dados de entrada

são difíceis de serem formados e os modelos produzidos por elas são

difíceis de entender (Harrison, 1998). A técnica de redes neurais é

apropriada às seguintes tarefas: classificação, estimativa e segmentação.

Page 29: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

28

• K-Means: Trata-se de um algoritmo clássico para classificação (cluestering)

e segmentação de dados de acordo com categorias. Esta classificação é

baseada em análise e comparações entre os valores numéricos dos dados.

Desta maneira, o algoritmo automaticamente vai fornecer uma classificação

automática sem a necessidade de nenhuma supervisão humana, ou seja,

sem nenhuma pré-classificação existente. Por causa desta característica, o

K-Means é considerado como um algoritmo de mineração de dados não

supervisionado (Pang-Ning Tan, Michael S, Vipin Kumar, 2009). O algoritmo

define classes e valores que são os centróides e vai determinar a qual

classe cada linha pertence, para isso faz-se uma comparação entre os

valores da linha e a distância deles para o centróide. Normalmente esse

cálculo da distância é feito pela distância euclidiana, que leva em conta a

execução repetidas vezes do teorema de Pitágoras.

Basicamente o algoritmo de K-means é composto pelas seguintes etapas:

1. Selecionar um número K de pontos como centróides;

2. Associar todos os pontos para o centróide mais próximo;

3. Recalcular a centróide para cada cluster;

4. Repetir as etapas 2 e 3 até que os centróides não mudem (ou

mudem pouco de acordo com um limite).

Figura 5 - Exemplo gráfico das etapas do algoritmo de K-means. Fonte: MacQueen, 1967.

Page 30: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

29

• Validação Cruzada (CrossValidationFoldMaker): Técnica amplamente

utilizada quando o objetivo do modelo é a predição e quando se quer ter

certeza da precisão do modelo utilizado para análise de dados. Essa técnica

verifica como os resultados de uma análise estatística irão generalizar para

uma base de dados independente. O principal conceito do algoritmo de

validação cruzada é o particionamento do conjunto de dados, dividindo-o em

conjunto de treinamento (traininig-set) e conjunto de testes (test-set), onde o

conjunto de testes serve para validar o conjunto de treinamento criado. Isso

ocorre devido uma função de aproximação que é utilizada para verificar os

dados de saída dos conjuntos. Ela se adapta aos dados do conjunto de

treinamento e posteriormente é testada pelos dados do conjunto de teste. No

método K-Fold de validação cruzada esse particionamento pode ser feito

diversas vezes (k vezes), a cada teste feito em uma das partições maior se

torna a precisão do conjunto de dados.

2.4 Trabalhos Relacionados

Até o momento não foi encontrado nenhuma publicação que apresentasse um

estudo sobre o impacto da análise de dados em estimativas de software geradas

através de Redes Bayesianas.

A pesquisa que mais se assemelha é um artigo apresentado por Gernot

Liebchende, Bheki Twala, Martin Shepperd e Michelle Cartwright através da

publicação “Assessing the Quality and Cleaning of a Software Project Dataset: An

Experience Report“ em 2006, que se trata de um relatório sobre uma experiência

usando três técnicas de eliminação de ruídos em bases de dados de projetos de

software, com o intuito de verificar qual técnica qualificaria melhor os dados para uso

posterior em ferramentas de auxilio a tomada de decisão.

Outra publicação semelhante em alguns aspectos principalmente por testes

com Redes Bayesianas é o artigo “Bayesian Network Models for Web Effort

Prediction: A Comparative Study”, de Emilia Mendes e Nile Mosley em 2008 que

surge como uma importante fonte de referencia na área de Redes Bayesianas, pois

propõe comparar, usando um conjunto de dados cruzados, vários modelos de Redes

Bayesianas para estimar esforço. Ao longo do artigo é apresentado os motivos da

Page 31: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

30

utilização das redes bayesianas bem como todo o desenvolvimento e comparativo

das oito redes utilizadas, sendo quatro delas geradas automaticamente através da

utilização das ferramentas Hugin e PowerSoft. Destaca-se que foram utilizados

dados de 130 projetos web para realizar o estudo.

Outro estudo possível de ser citado é o artigo de Jhonas Bonfante Guinzani,

Priscyla Waleska Targino de Azevedo Simões, Merisandra Co�rtes de Mattos, Jane

Bettiol através da publicação “Mineração de Dados em Redes Bayesianas Utilizando

a API da Shell Belief Network Power Constructor (BNPC)”. Esta pesquisa tem como

objetivo a integração de softwares de apoio a tomada de decisões com base de

dados históricos, com a finalidade de auxiliar o gerente de projetos de software na

sua tomada de decisões. Para concretizar esse objetivo o modelo proposto utiliza

técnicas de mineração de dado em conjunto com redes bayesianas, oferecendo

assim recursos de aprendizagem automatizada. Tendo como intuito que essas

regras sejam integradas ao uma interface gráfica intuitiva para o gerente de projetos.

Page 32: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

31

3 ESTUDO DA ANÁLISE DO IMPACTO DA MINERAÇÃO DE DADO S EM

ESTIMATIVAS ATRAVÉS DE REDES BAYESIANAS

Neste capitulo será descrito as etapas do desenvolvimento realizado nesta

pesquisa, bem como as ferramentas e as técnicas utilizadas para a análise do

impacto que a mineração de dados exerce em estimativas geradas através de uma

Rede Bayesiana. O resultado desse experimento consiste em uma análise das

mudanças comportamentais da Rede Bayesiana quando treinada com uma base

normal, que nunca passou por um processo de mineração de dados, e quando

treinada com a base resultante de um processo de mineração de dados.

Nesse experimento foram utilizados dois algoritmos para classificação dos

dados: J48 (Arvores de decisão) e SimpleKMeans (K-means), afim de atestar que o

processo de analise de dados e eliminação de ruídos em bases de dados históricos,

tem um impacto significativo nas predições geradas através de Redes Bayesianas.

Além desses resultados foram analisados outros aspectos envolvendo as técnicas

de mineração de dados, relativo a performance e a taxa de erros corrigidos em cada

algoritmo.

Para atingir esse objetivo, devemos seguir uma serie de passos os quais

compreendem: a modelagem de um processo de desenvolvimento de software, a

construção de uma base de dados históricos de projetos sintética para simulação, a

utilização de ferramentas e técnicas para mineração de dados, além de ferramentas

para auxilio à tomada de decisões que fazem predições através de redes

bayesianas. O objetivo é demonstrar o impacto que a analise de dados exerce sobre

estimativas geradas através de Redes Bayesianas, levando em consideração um

workflow de atividades que o gerente de projetos sempre deveria executar que

exemplifica o modelo proposto de uso de bases históricas de projetos, análise de

dados e ferramentas de apoio a tomada de decisão (Redes Bayesianas).

As ferramentas utilizadas neste experimento foram Weka (Mineração de

dados), Genie (Redes Bayesianas) e WebApsee (Ferramenta para Gerencia de

Projetos), que serão detalhadas ao decorrer deste capítulo.

Page 33: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

32

3.1 Ferramentas para gerência de projetos

Para simular um projeto atual foi utilizada uma ferramenta para gerenciar

projetos. Nela foi definido um processo de desenvolvimento simulando um projeto de

software real, também foram definidas algumas variáveis contidas em qualquer

projeto de software, como definição de atividades, numero de participantes, tempo

estimado de cada atividade, entre outras. Esse processo e suas variáveis são

importantes para a simulação, pois definem vários aspectos da base dados histórica

e simulam o comportamento de um gerente de projetos. A ferramenta selecionada

para esse estudo foi o WebApsee.

3.1.1 WebApsee – Gerenciador de Projetos de Software

Centrado em processo de software, a ferramenta WebApsee foi desenvolvido

pelo LABES-UFPA em 2003 a partir de um projeto de pesquisa sobre problemas

críticos relacionados a gerencia de projetos. Em um ambiente fácil e intuitivo o

gerente de projetos pode facilmente gerenciar qualquer projeto. Dentre as suas

funcionalidades destacam-se:

• Modelar um processo de desenvolvimento de Software.

• Definir tarefas para cada etapa do projeto.

• Criar atores, identificar suas experiências e habilidades.

• Alocação de recursos dentro do projeto de software.

• Atribuir tarefas ao atores.

• De uma forma geral, o gerente de projetos pode acompanhar e monitorar

todo o processo de desenvolvimento de um projeto de software.

O WebApsee foi desenvolvido em JAVA e tem seus dados guardados em base

de dados relacionais e seu fonte é open source (código fonte aberto).

3.1.2 Processo de desenvolvimento de software

Para esta pesquisa foi modelado um processo de desenvolvimento de software

na ferramenta WebApsee, baseado no “RUP for small projects”, que trata-se de um

processo de desenvolvimento focado em projetos pequenos. Segundo o RUP

Page 34: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

33

(Rational Unified Project), que pode ser definido como um framework para boas

praticas de gerência de software, esse processo possui sete etapas bases. No

entanto, para este estudo foram utilizadas apenas seis, descritas a seguir:

• Requisitos: Etapa onde são coletados os requisitos principais do projeto e

definidos seus limites, ou seja, onde o projeto é mensurado. Nesse ponto,

os itens elencados servem principalmente para dar uma margem de custo e

para fazer uma linha de entendimento entre o desejo do cliente e

desenvolvedores. Podemos ainda mensurar o projeto em termos de

funcionalidades e definir a interface de usuários. Para o sucesso dessa

etapa é extremamente necessário a participação de todos os envolvidos no

projeto (stakeholders). Trata-se, portanto de uma das mais importantes

etapas de um projeto, pois possui influência direta nas demais etapas como

análise, testes, gerenciamento de mudanças e gerência do projeto.

• Análise: Etapa onde os requisitos serão interpretados e definidos em

termos do sistema a ser desenvolvido. Pode ser feita a modelagem e

definição da arquitetura do sistema, além da identificação de seus

elementos, prototipação e revisão da interface dos usuários, construção de

diagramas de classe e diagramas de caso de uso. Todos os artefatos

gerados nessa etapa têm como principal objetivo facilitar a tarefa dos

desenvolvedores de abstrair as funcionalidades inseridas nos requisitos e

transformá-las em um sistema.

• Implementação: Essa etapa propõe definir, criar e organizar o código fonte

do sistema, construindo objetos e todos os arquivos pertinentes ao

funcionamento do mesmo. Também prevê a execução de testes orientados

aos desenvolvedores como testes de unidade.

• Testes: Nesta etapa é atestada a qualidade do projeto. Com base nos

testes é possível se ter certeza do correto funcionamento do software

desenvolvido e se atende a todos os requisitos listados pelos stakeholders.

Algumas atividades executadas nessa etapa são: documentação de erros

encontrados, descrição de melhorias em módulos do sistema, validar a

correta execução das rotinas do software dentre outras. Diversas pesquisas

dizem que a etapa de testes em um projeto de software condiz com 30 a 50

Page 35: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

por cento do seu custo, no entanto, se houverem testes rigorosamente

aplicados, os riscos e custo do projeto final t

• Gerência de Mudança:

e objetos que são criados ou atualizados no projeto atual, contribuindo para

que não haja conflitos com os artefatos e códigos gerados. Pode

idéia de quem criou ou atualizou cada pequeno pedaço do projeto, além de

que a gerência de mudança dispõe de todos os artefatos para a completa

execução do projeto.

• Gerência de Projeto:

segue uma linha (framework) pr

desenvolvimento de software. Nessa etap

gerência de risco, planejamento das iterações, execução e monitoria do

projeto. Essa etapa para o RUP não visa gerenciar pessoas (contratações e

alocações), orçamentos ou

descrita nesse processo do RUP tem como influê

Figura 6 - Esquema

O processo ainda possui algumas características variáveis que foram definidas

como padrões e estão em todos os projetos

eventualmente estão espalhadas nas s

• Tarefas: Foram de

conforme mostra o quadro

por cento do seu custo, no entanto, se houverem testes rigorosamente

aplicados, os riscos e custo do projeto final tendem a ser menores.

Gerência de Mudança: Nesta etapa são controladas as inúmeras versões

e objetos que são criados ou atualizados no projeto atual, contribuindo para

que não haja conflitos com os artefatos e códigos gerados. Pode

criou ou atualizou cada pequeno pedaço do projeto, além de

que a gerência de mudança dispõe de todos os artefatos para a completa

execução do projeto.

Gerência de Projeto: Etapa que ocorre em todo o ciclo de vida do projeto e

egue uma linha (framework) pré-definido para a maioria dos projetos de

desenvolvimento de software. Nessa etapa podemos ter o controle da

ncia de risco, planejamento das iterações, execução e monitoria do

projeto. Essa etapa para o RUP não visa gerenciar pessoas (contratações e

ocações), orçamentos ou contratos e fornecedores. A gerê

processo do RUP tem como influência o PMBOK.

Esquema gráfico do Processo de desenvolvimento.Fonte: Autoria própria.

O processo ainda possui algumas características variáveis que foram definidas

como padrões e estão em todos os projetos que o utilizam, essas características

eventualmente estão espalhadas nas seis etapas contidas no processo

Foram definidas tarefas de suma importância para o processo

conforme mostra o quadro abaixo. Essas atividades estão divididas entre as

34

por cento do seu custo, no entanto, se houverem testes rigorosamente

endem a ser menores.

Nesta etapa são controladas as inúmeras versões

e objetos que são criados ou atualizados no projeto atual, contribuindo para

que não haja conflitos com os artefatos e códigos gerados. Pode-se ter uma

criou ou atualizou cada pequeno pedaço do projeto, além de

que a gerência de mudança dispõe de todos os artefatos para a completa

todo o ciclo de vida do projeto e

definido para a maioria dos projetos de

a podemos ter o controle da

ncia de risco, planejamento das iterações, execução e monitoria do

projeto. Essa etapa para o RUP não visa gerenciar pessoas (contratações e

contratos e fornecedores. A gerência de projetos

ncia o PMBOK.

desenvolvimento.

O processo ainda possui algumas características variáveis que foram definidas

, essas características

eis etapas contidas no processo e são elas:

de suma importância para o processo

Essas atividades estão divididas entre as

Page 36: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

35

etapas já definidas do processo, algumas atividades podem ser não

executadas em alguns projetos de menor porte.

Tarefas - Processo

Etapas Tarefas Tempo

Otimista Médio Pessimista

Análise

Definição da Arquitetura 1 2 4

Design da base de dados 2 4 6

Design de Interfaces de usuário 3 7 9

Estruturar Casos de Uso 2 5 8

Gerenciamento

de

Mudanças

Revisar as requisições de mudanças

1 3 7

Submeter as Requisições de mudança

2 5 9

Gerenciamento

do

Projeto

Identificar e avaliar riscos 1 2 5

Planejar fases e iterações 2 4 7

Programar e atribuir atividades 1 3 6

Implementação

Estruturar modelo de Implementação

1 3 5

Implementar design dos elementos

1 3 5

Planejar integração dos sistemas

2 4 8

Revisar Código 2 3 5

Requisitos

Descobrir atores e caso de uso 2.5 5 7

Detalhar Requisitos 4 8 10

Elencar Stakeholders 0.5 1 2

Testes

Determinar os resultados dos testes

3 6 8

Estruturar a abordagem dos testes

2 5 7

Executar o conjunto de testes 3 7 9

Implementar conjunto de testes 2 4 6

Quadro 1 - Relação das tarefas do processo de desenvolvimento. Fonte: Autoria própria.

• Tempo Estimado para Execução: Cada tarefa definida no processo e que

seja executada em determinado projeto tem pré-definidos intervalos de

Page 37: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

36

tempos estimados para sua execução que vão de “Otimista, Médio e

Pessimista”, conforme é possível ver no quadro 1.

• Participantes: Foi definido um número de participantes mínimo e máximo

para cada etapa do processo, sendo que esse número pode variar de

acordo com os projetos.

• Coeficientes de Experiência: Foram definidos valores de experiência para

cada um dos participantes do projeto, também há uma variação dos

participantes de cada etapa, nem sempre todos os participantes possíveis

tomam parte nas tarefas de uma determinada etapa.

3.2 Base de dados sintética

Para a pesquisa foi criada uma base de dados sintética simulando dados

históricos de projetos de software. A amostragem da base de dados é de cem

projetos de software. Cada projeto é formado por um conjunto de quarenta e sete

variáveis. Para criação da base de dados foi levado em consideração projetos que

seguissem os padrões do “RUP-for small projects” em seu processo de

desenvolvimento, cada projeto da base de dados é formando pelas seis etapas

conforme definido no processo de software descrito (Requisitos, Análise,

Implementação, Testes, Gerencia de Mudanças e Gerencia de Projetos), além de

variáveis com valores parciais e finais. Algumas variáveis são dependentes, assim

como podem exercer influência sobre outras. Como principal semente para os

valores aleatórios que compõe as variáveis da base de dados, foi utilizado intervalos

de valores possíveis para as mais diversas características (número mínimo e

máximo de participantes em determinadas etapas, experiência mínima e máxima,

entre outras características) do projeto modelado no WebApsee, que também segue

os moldes do “RUP-for small projects”.

Os cálculos utilizados para geração dos dados simulados são, em sua maioria,

misturas de fórmulas empíricas que resumem as possibilidades de comportamento

de um projeto ao longo de seu ciclo de vida. Esses elementos visam a aleatoriedade

dos eventos nos projetos da base e também um relacionamento lógico entre os itens

da base de acordo com seus valores, como por exemplo, a relação de experiência

da equipe e o esforço real em uma determinada etapa (relação inversamente

proporcional uma vez que uma equipe experiente tende a ter um esforço menor para

Page 38: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

37

a conclusão da etapa), de forma que alguns conceitos e heurísticas foram levados

em conta para cálculos de algumas variáveis.

A base de dados esta dividida em três grupos de variáveis para cada projeto:

Identificação do projeto , Etapas do processo e Valores finais do projeto . A

seguir um resumo com as principais definições das variáveis utilizadas, separadas

por grupos de variáveis explicando as fórmulas que as compreendem e influências

que exercem ou sofrem em relação a outras variáveis:

• Identificação do Projeto: Grupo onde estão variáveis que identificam os

projetos listados.

o Name (nome do projeto): Nome dado ao projeto serve para facilitar a

visualização e comparação de valores. É formado por uma palavra

“Projeto-“ mais o número do projeto (1-100).

o Started Date (data de início): É a data de inicio do projeto, é

importante para fixar uma linha temporal dos projetos, mas tem cunho

meramente informativo. As datas são geradas de forma aleatória com

um algoritmo que seleciona um intervalo de data entre (08/1997 –

08/2011).

�������08/1997 , 08/2011�

• Etapas do Processo: Grupo de variáveis que quantificam os resultados de

cada etapa de um projeto, são parciais de cada projeto, simulam os valores

obtidos pelo grupo de atividades que formam a etapa. As variáveis que

constituem esse grupo são:

o Staff Number (Número de Participantes): O número de participantes

de uma determinada etapa do projeto. Esse número é definido por uma

função aleatória que define um valor em um intervalo de participantes

possíveis para determina etapa.

����������_�������������, ���_������������� �

o Staff Experience (Experiência do grupo): Após definido o número de

participantes da etapa, são definidas as experiências dos participantes

daquela etapa do projeto. Essa experiência é definida como um total da

Page 39: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

38

experiência de todos participantes e é calculada por uma função

aleatória que pega valores possíveis dentro de um intervalo da

experiência do grupo de participantes. Esse valor pode variar bastante

uma vez que nem sempre todos os possíveis participantes irão atuar

em uma determinada etapa.

����������_�����������, ���_������������

o Novelty (Novidade): Variável aleatória para classificar o nível de

inovação de uma etapa do projeto, ou seja, se as tarefas que fazem

parte de determinada etapa abordam assuntos inovadores e nunca

antes explorados pela equipe de desenvolvimento do projeto. Esse

nível vai do menor (1) ao maior (10).

������� , !�

o Complexity (Complexidade): Variável aleatória para classificar o nível

de complexidade de uma etapa do projeto, semelhante a “novelty”,

refere-se ao nível de complexidade das atividades de uma etapa. Seus

valores variam aleatoriamente do nível menor de complexidade (1) ao

nível maior (10).

������� , !�

o Difficulty (Dificuldade): Variável que indica o nível de dificuldade de

uma etapa do projeto, levando em consideração a dificuldade

encontrada no conjunto de tarefas que formam essa etapa. O cálculo

da dificuldade para as etapas dos projetos é feito de acordo com uma

média da complexidade com o nível de novidade de cada etapa.

"�#$�%�%� & '#��(���%�%�) *

Page 40: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

39

o Time (days) (Tempo em dias): Tempo total que uma etapa do projeto

levou para ser finalizada. Calculado em dias, o tempo total é obtido

através de uma formula que aleatoriamente retorna um tempo dentro

de um intervalo definido pelo gerente de projetos, que vai do mais

otimista ao mais pessimista para o grupo de atividades da etapa. Esse

tempo também leva em consideração o coeficiente

“experiência/dificuldade”, calculado por uma media da experiência dos

participantes pela dificuldade da etapa em questão, conforme

demonstra a seguinte formula:

+� ,-�+��.. ���������� & ��..��/(�0�) 1 2 345546789:; ���ã# �#�.. > ���%#��!. ), !. ?�

���ã# �#�.. > ���%#� �!. @, �

Juntando esse coeficiente ao calculo do tempo é possível criar-se um

cenário de aleatoriedade no tempo total entre os projetos e as

diferentes etapas que os envolvem, tendo em vista que dificilmente um

projeto será igual à outro em todos os aspectos que o envolve. Dessa

forma, a formula do tempo de uma etapa é:

�����������##������� A �#�.. , ����#���������� A �#�.. �

o Real Effort (Esforço Real): É o esforço real necessário para o

desenvolvimento do projeto. Esta distribuído entre as etapas do

projeto, quantificando o esforço real de cada uma. Para este cálculo,

conforme mostra a equação abaixo, foi utilizado o cálculo de esforço

que é a divisão entre os participantes de uma determinada etapa pelo

total de tempo necessário para execução dessa etapa. No caso da

base de dados em questão o esforço esta calculado em horas por isso

a equação é multiplicada por seis, que seriam o número de horas

produtivas em um dia de trabalho.

"+��.. �/�B��C��� �%�0�� * A @

Page 41: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

40

o Estimated Effort (Esforço Estimado): Representa o esforço estimado

para cada etapa do projeto. Esse valor é definido no planejamento do

projeto e nem sempre é cumprido a risca. Desta forma este valor varia

dependendo da dificuldade da etapa e também do seu conjunto de

tarefas definidas. Esse valor é calculado por uma função randômica

que seleciona um valor dentro de um intervalo definido que vai dos

possíveis tempos “otimistas” a “normais” para cada etapa do projeto e

também leva em conta o numero de participantes possíveis para essa

etapa, também é calculada em termos de horas conforme a formula

que segue abaixo.

-����������_%���_����.��, ���_%���_����.���� �/�������������� 1 A @

• Valores finais do projeto: Onde são informados os valores finais de cada

projeto, já somados com cada etapa. Serão as variáveis utilizadas no

processo de mineração de dados e posteriormente nas Redes

Bayesianas, elas são:

o Scenario (Cenários): Cenários são status finais dos projetos que

representam o inicio e fim do projeto. Nesses cenários são informadas

as condições que o projeto foi iniciado e como terminou em relação ao

tempo estimado para finalização do projeto. A geração de valores

desse campo baseia-se em uma função aleatória para definir o inicio

do projeto entre os possíveis valores (“Começou em Tempo”,”Começou

Atrasado”) e para os valores finais do projeto referente ao seu termino

leva em consideração se o esforço estimado foi maior que o esforço

real (Requerido) do projeto, ou seja, se o esforço estimado for maior ou

igual ao real então significa que o projeto terminou a tempo, caso

contrario, o projeto terá atrasado.

o Scenario ID: Identificador numérico dos cenários.

o Size – Nominal / Size (Tamanho por classificação): Apenas

classifica os projetos de acordo com seu tamanho em termos de

numero total de pontos por função.

Page 42: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

41

o Size – PF (Tamanho em pontos por função): Define o tamanho total

de um determinado projeto em termos de funcionalidades produzidas.

Para o calculo dessa variável foi utilizado uma função randômica para

trazer entre os limites mínimos e máximos definidos como tamanhos de

projetos possíveis.

�������D!, ?!!!�

o Accuary (Precisão): Valor que representa a precisão das informações

do projeto como um todo (requisitos, funcionalidades...). Esse valor é

definido com base em uma função randômica.

������� , !�

o Total Staff Experience (Total Experiência do Grupo) : Representa o

total de experiência dos participantes dos projetos. É calculado em

função da soma das experiências dos participantes de cada etapa.

EF +��.. ����������G

o Total Difficulty (Dificuldade do projeto) : Representa o total de

dificuldade das etapas dos projetos. É calculado em função da soma

das dificuldades de cada etapa e dividido pelo numero de etapas.

EF %�..��/(�0G /@

o Novelty (Novidade): Representa o valor total de novidade de um

determinado projeto. É calculado pela soma dos valores do nível de

novidade de cada etapa e por fim divido por 6.

EF �#$�(�0G /@

Page 43: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

42

o Complexity (Complexidade): Representa o valor total de

complexidade de um determinado projeto. É calculado pela soma dos

valores do nível de complexidade de cada etapa e por fim divido por 6.

EF �#��(����0G /@

o Total Staff (Numero total de participantes): Representa o valor total

de participantes de um determinado projeto. É calculado pela soma do

numero de participantes de cada etapa.

EF �/� ���..G

o Estimated Effort (Esforço total estimado): Representa o valor total

do esforço estimado de um determinado projeto. É calculado pela soma

dos valores de esforço estimado para cada etapa.

EF ���. �..#��G

o Real Effort (Esforço real do projeto): Representa o valor total do

esforço real necessário para finalizar um determinado projeto. É

calculado pela soma dos valores de esforço real para cada uma de

suas etapas.

EF ���( �..#��G

o Total time (hours) (Total em horas): Representa o valor total de

horas necessárias para finalizar um determinado projeto. É calculado

pela soma dos valores de dias que cada etapa levou para ser finalizada

vezes o número de horas produtivas definidas para cada projeto por dia

(6).

EF ����G A @

Page 44: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

43

o Total time (days) (Total em dias): Representa o valor total de dias

necessários para finalizar um determinado projeto. É calculado pela

soma dos valores de dias que cada etapa levou para ser finalizada.

EF ����G

A base de dados contém uma série de informações sobre os projetos, porém

como a coleta de dados nem sempre é bem definida, padronizada e executada,

além de dados também são inseridos ruídos. Dessa forma para melhorar a

qualidade dos dados foi aplicada técnicas de mineração de dados.

3.3 Ferramentas para mineração de dados

Para aumentar a qualidade dos dados históricos de projetos de software foi

necessário estudar e selecionar uma ferramenta de mineração de dados. Neste tipo

de ferramenta é possível ser definido um conjunto de dados e aplicar uma série de

técnicas para eliminação de ruídos e descoberta de padrões. Com esse objetivo

foram estudadas as seguintes ferramentas Weka, Rapidminer, PolyAnalyst. A

ferramenta Weka se mostrou a mais vantajosa para uso, devido a ser uma

ferramenta aberta (open source), com API de desenvolvimento totalmente

disponível, o que para trabalhos futuros possibilita a construção de um modelo igual

ao executado nesse estudo, porém de forma totalmente automatizada, além das

facilidades de uso e do manual disponível.

3.3.1 Weka

Weka (Waikato Environment for Knowledge Analysis) é um pacote

desenvolvido pela Universidade de Waikato, em 1993, com o intuito de agregar

algoritmos para mineração de dados na área de inteligência artificial. O software é

licenciado pela General Public License sendo, assim, possível a alteração do seu

código-fonte.

Possui uma série de heurísticas para mineração de dados relacionada à

classificação, regressão, clusterização, regras de associação e visualização, entre

Page 45: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

44

elas: J48 (Decision Tree), K-means, NaiveBayes, Linear Regression, IB1, Bagging,

LogistBoot, Part, Ridor, ID3 e LMT.

O Weka tem como objetivo agregar algoritmos provenientes de diferentes

abordagens/paradigmas na subárea da inteligência artificial dedicada ao estudo da

aprendizagem por parte de máquinas. Essa subárea pretende desenvolver

algoritmos e técnicas que permitam a um computador "aprender" (no sentido de

obter novo conhecimento) de forma indutiva ou dedutivamente.

O Weka procede à análise computacional e estatística dos dados fornecidos

recorrendo a técnicas de data-mining tentando indutivamente a partir dos padrões

encontrados gerar hipóteses para soluções e nos extremos inclusive teorias sobre

os dados em questão.

O processo de extração do conhecimento do Weka segue praticamente o

processo seguido pelos conceitos de mineração de dados e é composto por cinco

etapas:

• Seleção : etapa de escolha da base de dados a ser analisada.

• Pré-processamento : etapa de “limpeza” dos dados, ou seja, reduzir

discrepâncias de valores com ruídos e corrigir inconsistências.

• Transformação : transformação de dados, estes são modificados ou

transformados em formatos apropriados à mineração, que pode por

agregação, generalização, normalização, construção de atributos ou

redução de dados.

• Mineração de dados : etapa de utilização de técnicas e algoritmos. É nesta

etapa que os testes realizados com o Weka são obtidos.

• Interpretação : etapa de análise dos resultados obtidos por meio da

mineração dos dados, e a partir dos quais se adquire o conhecimento.

Weka possui uma ferramenta própria que contem diversas opções de

manipulação de dados, essa ferramenta também já demonstra os resultados das

analises, tendo apenas como requisito que se configure uma base de dados para

que a ferramenta possa acessar. Weka é desenvolvido em linguagem Java, sendo

assim possível através de sua API incorporar suas ferramentas e algoritmos em

qualquer sistema.

O Weka também conta com uma opção chamada “KnowledgeFlow”, conforme

mostra a figura 7, onde é possível que seja montado um fluxo de mineração dados.

Page 46: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

Figura 7 – Fluxo de mineração de dados na ferramenta WEKA

Nessa opção é possível

uma serie de algoritmos e técnicas de mineração de dados

as mais diversas técnicas e algoritmos no mesmo fluxo. Esse painel

algoritmos de classificação, clusterização, associação, filtragem e avali

conta com uma serie de relatórios e gráficos onde pode ser

dos dados resultantes. Para as experiências realizadas nesse estudo foram

utilizados esse tipo de fluxos de mineração de dados.

O primeiro passo para a construção d

carregamento da base de dados para o fluxo, então após essa definição deve

atrás de quais nodos (técnicas e algoritmos) serão utilizados.

técnicas e algoritmos serão utilizados o usuário deve adicionar os nodos

selecionados no quadro

conexão dos nodos é sempre

passados de um nodo

sequência de execução para que a mineração de dados seja aplicada corretamente.

Depois de terminada a construção do “

Fluxo de mineração de dados na ferramenta WEKA Fonte: Autoria própria.

possível ao usuário acessar a um painel onde

uma serie de algoritmos e técnicas de mineração de dados, podendo ser misturadas

as mais diversas técnicas e algoritmos no mesmo fluxo. Esse painel

algoritmos de classificação, clusterização, associação, filtragem e avali

conta com uma serie de relatórios e gráficos onde pode ser atestada a qualidade

. Para as experiências realizadas nesse estudo foram

utilizados esse tipo de fluxos de mineração de dados.

O primeiro passo para a construção do fluxo de mineração de dados, é o

carregamento da base de dados para o fluxo, então após essa definição deve

atrás de quais nodos (técnicas e algoritmos) serão utilizados. Após

técnicas e algoritmos serão utilizados o usuário deve adicionar os nodos

selecionados no quadro e ligá-los como um workflow comum

conexão dos nodos é sempre realizada informando quais tipos de dados serão

passados de um nodo para outro, de forma que os nodos precisam seguir uma

ncia de execução para que a mineração de dados seja aplicada corretamente.

terminada a construção do “KnowledgeFlow” o usuário precisa iniciar o

45

(KnowledgeFlow).

onde estão distribuídos

, podendo ser misturadas

as mais diversas técnicas e algoritmos no mesmo fluxo. Esse painel, além de conter

algoritmos de classificação, clusterização, associação, filtragem e avaliação, ainda

atestada a qualidade

. Para as experiências realizadas nesse estudo foram

o fluxo de mineração de dados, é o

carregamento da base de dados para o fluxo, então após essa definição deve-se ir

Após decidido quais

técnicas e algoritmos serão utilizados o usuário deve adicionar os nodos

comum de dados. Essa

informando quais tipos de dados serão

, de forma que os nodos precisam seguir uma

ncia de execução para que a mineração de dados seja aplicada corretamente.

o usuário precisa iniciar o

Page 47: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

46

processo de mineração, acompanhar pelo log os status de execução e ao final do

processo coletar os dados nos relatórios inseridos no fluxo.

3.4 Organização dos dados

Para o correto uso do conjunto de dados é necessário que haja uma

organização, dessa forma fazendo com que os dados possam ser utilizados com as

diferentes ferramentas selecionadas. Como neste estudo são utilizadas as

ferramentas Weka e Genie, e ambas aceitam como entrada um arquivo no formato

excel/csv, esse é o formato padrão de transporte de dados para a análise.

3.5 Aplicando análise de dados em dados históricos de projetos

Com o objetivo de qualificar os dados da base de dados histórica executando

uma limpeza dos dados e eliminando ruídos, a fim de atestar o impacto que análise

de dados exerce em estimativas através de Redes Bayesianas, foram criados dois

fluxos (processos) de mineração de dados utilizando a opção “KnowledgeFlow” da

ferramenta Weka. Cada um dos fluxos criados utilizam diferentes técnicas de

mineração de dados, as técnicas selecionadas foram os algoritmos j48 e

SimpleKMeans . Os algoritmos em questão foram escolhidos devido a serem

bastante referenciados na literatura como boas opções para classificação de dados

e eliminação de ruídos em grandes conjuntos de dados.

3.5.1 J48 – Árvores de Decisão

O algoritmo J48 utilizado para mineração de dados foi configurado para

construir uma árvore de nodos binários, cada folha contendo no máximo dois

elementos. Foi utilizado um coeficiente de confiança baixo para evitar o alto número

de ruídos que possam passar despercebidos pelo algoritmo, com isso também

temos um número elevado de podas na árvore o que diminui bastante a amostragem

final da base de dados a ser analisada.

Para criação do fluxo de mineração de dados utilizando o algoritmo de J48,

conforme mostra a figura 8, foram utilizadas os seguintes nodos no KnowledgeFlow:

Page 48: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

47

• CSVLoader: Onde deve ser selecionada o arquivo da base de dados a

ser utilizado. Quando executado o fluxo irá carregar e preparar a base.

• ClassAssigner: É o classificador geral de qualquer conjunto de dados

utilizado no algoritmo, ele obrigatoriamente deve ser nominal. No caso

da base de dados utilizada, foi selecionado o atributo “Scenario” da base

de dados.

• CrossValidationFoldMaker: Serve para analisar o conjunto de dados e

atestar sua validade, faz isso usando uma equação para calcular o valor

do erro médio de seus testes. Neste experimento foi configurado que

esse teste deveria ser repetido dez vezes. A cada repetição a precisão

dos dados aumenta.

• J48: Após as classificações e testes, os dados são enviados para o

algoritmo J48, que irá classificá-los utilizando o algoritmo de árvore de

decisão. Esse nodo irá gerar três saídas: uma do tipo “graph” e duas

saídas do tipo “batchClassifier” que são

“ClassifierPerformanceEvaluator” e “PredictionAppender”.

• Graph: Nodo que possibilita que sejam analisados de forma gráfica os

nodos da árvore de decisão.

• ClassifierPerformanceEvaluator: É um nodo que tem como objetivo

analisar a performance do algoritmo executado. Disponibiliza diferentes

formas para que isso seja analisado tanto em texto como modo gráfico.

• PredictionAppender: Nodo que reuni os dados analisados pelo algoritmo

possibilitando uma análise prévia dos mesmos de forma gráfica ou que

eles sejam salvos em um outro arquivo, para serem utilizados

posteriormente.

Page 49: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

Figura

3.5.2 SimpleKMeans – K

O algoritmo SimpleKMeans

cálculo de distância euclidiana

faltantes por valores melhores qualificados pela

relação ao centroide, o n

por fim foram limitados três

Para a criação do fluxo de mineração de dados utilizando o algoritmo

SimpleKMeans, conforme mostra a figura 9,

• CSVLoader: Onde deve ser selecionada o arquivo da base de dados

utilizado. Quando executado o fluxo irá carregar e preparar a base.

• CrossValidationFoldMaker:

atestar sua validade, faz isso usando uma equação para calcular o valor do

erro médio de seus testes. Em nosso exp

teste deveria ser repetido dez vezes. A cada repetição a precisão dos dados

aumenta.

• SimpleKMeans:

algoritmo SimpleKMeans que ir

means com distâ

Figura 8 - Fluxo de mineração de dados com J48.Fonte: Autoria própria.

K-means

SimpleKMeans utilizado no experimento foi configurado

ncia euclidiana, também foi definido que o algoritmo substitua valores

faltantes por valores melhores qualificados pelas médias de sua

o ao centroide, o número de iterações para o algoritmo foi definido em 5

três clusters.

Para a criação do fluxo de mineração de dados utilizando o algoritmo

conforme mostra a figura 9, foram utilizados os seguintes nodos:

CSVLoader: Onde deve ser selecionada o arquivo da base de dados

Quando executado o fluxo irá carregar e preparar a base.

CrossValidationFoldMaker: Serve para analisar o conjunto de dados e

atestar sua validade, faz isso usando uma equação para calcular o valor do

erro médio de seus testes. Em nosso experimento foi configurado que esse

teste deveria ser repetido dez vezes. A cada repetição a precisão dos dados

SimpleKMeans: Após os dados serem validados, são enviados para o

algoritmo SimpleKMeans que irá classificá-los utilizando o algoritmo

means com distância euclidiana. Esse nodo irá gerar três

48

Fluxo de mineração de dados com J48.

foi configurado usando o

, também foi definido que o algoritmo substitua valores

suas proximidades em

mero de iterações para o algoritmo foi definido em 500 e

Para a criação do fluxo de mineração de dados utilizando o algoritmo

foram utilizados os seguintes nodos:

CSVLoader: Onde deve ser selecionada o arquivo da base de dados a ser

Quando executado o fluxo irá carregar e preparar a base.

Serve para analisar o conjunto de dados e

atestar sua validade, faz isso usando uma equação para calcular o valor do

erimento foi configurado que esse

teste deveria ser repetido dez vezes. A cada repetição a precisão dos dados

os, são enviados para o

los utilizando o algoritmo de K-

três saídas, uma “text”

Page 50: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

e duas saídas para o “

“ClassifierPerformanceEvaluator

• ClassifierPerformanceEvaluator:

a performance do algoritmo executado. Disponibiliza diferentes formas para

que isso seja analisado tanto em texto como modo gráfico.

• PredictionAppender:

possibilitando uma an

sejam salvos em um outro arquivo, para

Figura 9 - Fluxo de mineração de dados com algoritmo K

3.6 Ferramentas para utilização de R

Para uso e manipulação

ferramenta Genie. A escolha

uma versão bastante robusta em termos de funcionalidade de form

também possui uma API

construção de Redes Bayesianas via có

Outro fator importante que ajudou na escolha foi a fácil interface

modelagem de Redes Bayesianas.

Laboratory, o Genie se mostra uma das melhores opções gratuitas para modelagem

de Redes Bayesianas.

e duas saídas para o “batchCluster” que vão para os nodos

ClassifierPerformanceEvaluator” e “PredictionAppender

ClassifierPerformanceEvaluator: É um nodo que tem como

a performance do algoritmo executado. Disponibiliza diferentes formas para

que isso seja analisado tanto em texto como modo gráfico.

PredictionAppender: Nodo que reuni os dados analisados pelo algoritmo

possibilitando uma análise previa dos mesmo de forma gráfica ou que eles

sejam salvos em um outro arquivo, para consulta posterior

Fluxo de mineração de dados com algoritmo KFonte: Autoria própria.

Ferramentas para utilização de R edes Bayesianas

Para uso e manipulação de Redes Bayesianas para este estudo foi utilizado a

A escolha dessa ferramenta se deu principalmente por possuir

uma versão bastante robusta em termos de funcionalidade de form

ma API (SMILE) para desenvolvimento que é muito intuitiva na

Bayesianas via código.

utro fator importante que ajudou na escolha foi a fácil interface

modelagem de Redes Bayesianas. Criado em 1998, pela

o Genie se mostra uma das melhores opções gratuitas para modelagem

49

vão para os nodos

PredictionAppender”.

É um nodo que tem como objetivo analisar

a performance do algoritmo executado. Disponibiliza diferentes formas para

que isso seja analisado tanto em texto como modo gráfico.

Nodo que reuni os dados analisados pelo algoritmo

os mesmo de forma gráfica ou que eles

consulta posterior.

Fluxo de mineração de dados com algoritmo K-Means.

para este estudo foi utilizado a

se deu principalmente por possuir

uma versão bastante robusta em termos de funcionalidade de forma gratuita,

para desenvolvimento que é muito intuitiva na

utro fator importante que ajudou na escolha foi a fácil interface para a

pela Decision Systems

o Genie se mostra uma das melhores opções gratuitas para modelagem

Page 51: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

50

3.6.1 Treinando as Redes Bayesianas

Para treinar as Redes Bayesianas com diferentes bases de dados históricas,

foram necessários alguns passos na ferramenta Genie:

• Carregar a Rede Bayesiana: É o primeiro passo, deve ser selecionada

qual Rede será utilizada para os testes.

• Carregar os dados: Então se deve carregar os dados da base de dados

para dentro da ferramenta Genie.

• Discretização dos dados: Primeiramente os dados devem ser

discretizados, assim facilita o treinamento das Redes. Na própria

descritização a Rede reconhece os intervalos que cada valor ira fazer

parte, podendo ser configurado mais ou menos intervalos de valores

para um nodo da rede, nesse estudo foram utilizados três intervalos de

valores.

• Associar valores e treinar: O último passo após definir os intervalos de

cada nodo da Rede Bayesiana é associar as colunas da base de dados

aos nodos que existem na Rede Bayesiana e então treinar as Redes.

3.7 Definindo a Rede Bayesiana para análise

A Rede Bayesiana utilizada no experimento foi incorporada dos modelos

propostos pelo MODIST (Models of Uncertainty and Risk for Distributed Software

Development), que é um método e ferramenta para ajudar os gerentes de projetos a

tomarem decisões mais efetivas em relação a qualidade e risco dos projetos. A

Rede Bayesiana utilizada visa agrupar alguns aspectos importantes para o

desenvolvimento de projeto de software, principalmente em termos de estimativas

como esforço, experiência necessária, tamanho do projeto dentre outros, a fim de

auxiliar o gerente de projetos na sua tomada de decisão no início de cada projeto.

Conforme se pode ver na figura 10 a Rede Bayesiana é composta por oito nodos.

Page 52: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

Figura 10

3.8 Projeto p ara testes de predição em Redes Bayesianas

Para esta análise,

Primeiramente treinada

tipo de tratamento de dados, então

dados que passou pelo processo de mineração de dados com uso do algoritmo

e por fim a mesma Rede

processo de mineração com o uso do algoritmo SimpleKMeans

Depois do processo de treinamento da Rede Bayesiana

bases de dados, foi selecionado um projeto

análise na Rede Bayesiana,

Bayesiana em seus diferentes treinamentos

impacto que a análise de dados exerce sobre as Redes Bayesianas para diferentes

tipos de predições, como esforço requer

equipe e sobre o cenário de dificuldade do projeto.

O projeto escolhido para ser analisado na Rede Bayesiana,

forma aleatória. Levou-se

escolher ou estar vivenciando qualquer tipo de projeto e seu desejo seria obter ajuda

10 - Representação gráfica da Rede Bayesiana.Fonte: Autoria própria.

ara testes de predição em Redes Bayesianas

, a Rede Bayesiana foi testada em diferentes estágios

rimeiramente treinada com uma base de dados pura, que nunca sofreu qualquer

tipo de tratamento de dados, então posteriormente foi treinada

processo de mineração de dados com uso do algoritmo

e por fim a mesma Rede Bayesiana foi treinada com uma base resultante do

processo de mineração com o uso do algoritmo SimpleKMeans.

processo de treinamento da Rede Bayesiana

selecionado um projeto de uma base de dados histórica, para

yesiana, a fim de comparar os resultados obtidos pela Rede

Bayesiana em seus diferentes treinamentos. Desta forma foi possível atestar o

lise de dados exerce sobre as Redes Bayesianas para diferentes

tipos de predições, como esforço requerido, nível de experiência necessário da

equipe e sobre o cenário de dificuldade do projeto.

O projeto escolhido para ser analisado na Rede Bayesiana,

se em consideração que um gerente de projetos poderia

escolher ou estar vivenciando qualquer tipo de projeto e seu desejo seria obter ajuda

51

Representação gráfica da Rede Bayesiana.

testada em diferentes estágios.

que nunca sofreu qualquer

treinada com uma base de

processo de mineração de dados com uso do algoritmo J48

uma base resultante do

processo de treinamento da Rede Bayesiana com as diferentes

de uma base de dados histórica, para

comparar os resultados obtidos pela Rede

. Desta forma foi possível atestar o

lise de dados exerce sobre as Redes Bayesianas para diferentes

ido, nível de experiência necessário da

O projeto escolhido para ser analisado na Rede Bayesiana, foi escolhido de

em consideração que um gerente de projetos poderia

escolher ou estar vivenciando qualquer tipo de projeto e seu desejo seria obter ajuda

Page 53: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

52

a estimar esse projeto, fazendo uso de sua base de dados histórica juntamente com

um processo de análise de dados e Redes Bayesianas. O projeto selecionado tem

as seguintes características que serão analisadas pela rede:

Propriedade Valor

Nome Projeto-39

Numero de etapas 6

Cenário Começou em tempo - terminou atrasado

Accurary (precisão) 1

Total Experiência 36

Dificuldade Média

Complexidade Média

Novidade Média

Esforço Estimado 183

Esforço Real 258

Tamanho (Pontos por Função) 4869

Tamanho Grande

Quadro 2 - Características do projeto selecionado para testes na Rede Bayesiana. Fonte: Autoria própria.

3.9 Analisando o impacto de mineração de dados em e stimativas geradas

através de Redes Bayesianas

Para a análise foi necessário simular o comportamento de um gerente de

projetos na primeira fase do projeto, o planejamento. Onde uma das suas principais

preocupações é a geração de estimativas, dessa forma procurando auxilio a tomada

de decisões em ferramentas de Redes Bayesianas. Levando em conta testes

realizados nos três tipos de bases de dados já mencionadas, os testes visam avaliar

o nível de precisão que as estimativas são geradas em relação a um projeto já

finalizado. Isso quer dizer que já sabemos os dados do projeto a ser testado. Porém

para a nossa análise o mais importante é atestar o comportamento da rede com

diferentes bases de dados na geração de estimativas e quais delas têm um índice

maior de precisão para o gerente de projetos. Com esse objetivo realizamos três

tipos de testes na Rede Bayesiana.

Page 54: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

3.9.1 Rede Bayesiana –

Essa Rede Bayesiana foi treinada

qualquer tipo de manipulação, seus dados foram carregados na re

seguintes resultados para os testes propostos

• Estimando o esforço Requerido

esforço segundo os dados informados do projeto

de precisão baixa em

Rede marcou que provavelmente o projeto teria um esfor

alto como foi o que ocorreu.

enquanto os projetos de médio esforço foram a maioria com 43% conforme

mostra a figura abaixo.

Figura 11 - Predição da Rede Bayesiana para Esforço Requerido.

• Estimando nível de experiência

do projeto: A Rede

necessário para

seria necessário uma equipe experiente

estar incorreto, os resultados podem ser vistos na figura abaixo

– Treinada com base de dados pura

Rede Bayesiana foi treinada com uma base de dados que nunca sofreu

qualquer tipo de manipulação, seus dados foram carregados na re

seguintes resultados para os testes propostos:

sforço Requerido: A Rede Bayesiana na hora de esti

ndo os dados informados do projeto de testes

o baixa em relação ao que realmente aconteceu no projeto. A

Rede marcou que provavelmente o projeto teria um esfor

alto como foi o que ocorreu. A taxa de projetos com esforço alto foi de 38%

os projetos de médio esforço foram a maioria com 43% conforme

mostra a figura abaixo.

Predição da Rede Bayesiana para Esforço Requerido.Fonte: Autoria própria.

nível de experiência necessário em relação a p

to: A Rede Bayesiana quando estimando o ní

rio para um projeto com o nível de precisão baix

rio uma equipe experiente, o que o projeto de teste mostra

, os resultados podem ser vistos na figura abaixo

53

com uma base de dados que nunca sofreu

qualquer tipo de manipulação, seus dados foram carregados na rede e tiveram os

: A Rede Bayesiana na hora de estimar o

de testes, teve uma taxa

ao que realmente aconteceu no projeto. A

Rede marcou que provavelmente o projeto teria um esforço médio e não

projetos com esforço alto foi de 38%

os projetos de médio esforço foram a maioria com 43% conforme

Predição da Rede Bayesiana para Esforço Requerido.

relação a precisão (accurary)

quando estimando o nível de experiência

baixo, estimou que não

o que o projeto de teste mostra

, os resultados podem ser vistos na figura abaixo.

Page 55: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

Figura 12 - Predição da Rede Bayesiana para Experiência necessária.

• Estimando nível

Quando definido uma equipe experiente, a

todos os projetos ser

difícil e ter esforço alto, o que mais uma vez o projeto

incorreto, conforme

Figura 13 - Estimando a dificuldade estimada de um projeto em uma base pura

Predição da Rede Bayesiana para Experiência necessária.Fonte: Autoria própria.

nível de dificuldade de um projeto com equipe experiente:

Quando definido uma equipe experiente, a rede estimou que praticamente

todos os projetos serão fáceis, ignorando a possibilidade de um projeto se

difícil e ter esforço alto, o que mais uma vez o projeto

, conforme pode ser observado na figura 13.

Estimando a dificuldade estimada de um projeto em uma base puraFonte: Autoria própria.

54

Predição da Rede Bayesiana para Experiência necessária.

de dificuldade de um projeto com equipe experiente:

rede estimou que praticamente

, ignorando a possibilidade de um projeto ser

de teste mostra ser

Estimando a dificuldade estimada de um projeto em uma base pura.

Page 56: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

Os testes com esse tipo de base de dados (pura,

demonstraram estimativas pouco confiáveis para o gerente de projetos, se

margem de acerto muito pequena e predições bastante imprecisas.

3.9.2 Rede Bayesiana –

Esta Rede em questão foi treinada com uma base que passou por um processo

de mineração de dados com técni

baixa confiança (mais podas)

treinamento, foram aplicados os

• Estimando esforço r

base também

incorreta o esforço real necessário par

precisão das es

indicou esforço

Figura

• Estimando o nível

(accurary) do projeto:

Os testes com esse tipo de base de dados (pura,

demonstraram estimativas pouco confiáveis para o gerente de projetos, se

margem de acerto muito pequena e predições bastante imprecisas.

– Treinada com base de dados tratada com o algoritmo J48.

Rede em questão foi treinada com uma base que passou por um processo

de mineração de dados com técnicas de arvores de decisão (J48) e

baixa confiança (mais podas) para evitar um numero alto de ruídos.

foram aplicados os testes com os seguintes resultados:

Estimando esforço requerido: A aplicação deste teste

também demonstrou que a Rede Bayesiana

incorreta o esforço real necessário para o projeto do tipo selecionado

das estimativas não foram satisfatórias uma vez que também

indicou esforço requerido como médio e não alto.

Figura 14 - Estimando esforço com algoritmo J48.Fonte: Autoria própria.

nível de experiência necessário em relação a Precisã

(accurary) do projeto: Configurando a rede para estimar

55

Os testes com esse tipo de base de dados (pura, sem tratamento)

demonstraram estimativas pouco confiáveis para o gerente de projetos, sendo a

margem de acerto muito pequena e predições bastante imprecisas.

Treinada com base de dados tratada com o algoritmo J48.

Rede em questão foi treinada com uma base que passou por um processo

cas de arvores de decisão (J48) e coeficiente de

para evitar um numero alto de ruídos. Após o

testes com os seguintes resultados:

teste com esse tipo de

demonstrou que a Rede Bayesiana estimou de forma

a o projeto do tipo selecionado. A

timativas não foram satisfatórias uma vez que também

Estimando esforço com algoritmo J48.

necessário em relação a Precisão

onfigurando a rede para estimar a experiência

Page 57: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

necessária em um projeto

estimativa um pouco mais precisa em

ainda pouco precisa e relevante para

estimativa mais

possível observar que h

relação a base anterior

nesse quesito.

Figura 15 - Es

• Estimando dificuldade de um projeto

estimativa sobre a dific

estimado médio,

base, acertando com 95% de precis

dificuldade enfrentada

na figura 16.

em um projeto com baixa precisão, foi

um pouco mais precisa em relação ao projeto de teste

ecisa e relevante para o gerente de projetos

estimativa mais aproximada era a de experiência média

possível observar que houve uma melhora na precisão da estimativa

relação a base anterior, se aproximando mais de uma estimativa

Estimando a experiência necessária de um projeto.Fonte: Autoria própria.

dificuldade de um projeto com equipe experiente: A precisã

estimativa sobre a dificuldade de um projeto de tamanho grande e esfor

dio, com uma equipe experiente, foi o teste mais preciso dessa

acertando com 95% de precisão a estimativa para

dificuldade enfrentada nesse tipo de projeto. Conforme pode ser observado

56

foi possível ver uma

o projeto de testes. Porém

o gerente de projetos, uma vez que a

de experiência média e não alta. É

ouve uma melhora na precisão da estimativa com

mais de uma estimativa ideal

de um projeto.

com equipe experiente: A precisão da

uldade de um projeto de tamanho grande e esforço

foi o teste mais preciso dessa

o a estimativa para possível

Conforme pode ser observado

Page 58: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

Figura

Os testes com a base de dados usando tratamento com algoritmos J48

obtiveram uma margem de precisão maior em relação a base de dados pura,

mostrando estimativas mais próximas as características do projeto de teste.

ainda não se mostraram estimativas

3.9.3 Rede Bayesiana

Means.

Os testes a seguir foram aplicado

fluxo de mineração de dados usando algoritmo K

euclidiana, para classificação

podem ser conferidos a seguir:

• Estimando esfor

considerável na precisã

base. Informando

retornou esforço requerido alto como estimativa

estar mais aproximada das características do projeto de teste

Figura 16 - Estimando a dificuldade em projetos.Fonte: Autoria própria.

Os testes com a base de dados usando tratamento com algoritmos J48

obtiveram uma margem de precisão maior em relação a base de dados pura,

mostrando estimativas mais próximas as características do projeto de teste.

ainda não se mostraram estimativas confiáveis para um gerente de projetos.

Rede Bayesiana – Treinada com base de dados tratada com

Os testes a seguir foram aplicados a uma base de dados que passou por um

fluxo de mineração de dados usando algoritmo K-Means, fazendo uso

para classificação e eliminação de ruídos. Os resultados dos testes

podem ser conferidos a seguir:

esforço requerido: Foi verificado que houve

na precisão desse tipo de estimativa quando

nformando as configurações do projeto de teste a Rede Bayesiana

o requerido alto como estimativa mais provável

mais aproximada das características do projeto de teste

57

Estimando a dificuldade em projetos.

Os testes com a base de dados usando tratamento com algoritmos J48

obtiveram uma margem de precisão maior em relação a base de dados pura,

mostrando estimativas mais próximas as características do projeto de teste. Porém

confiáveis para um gerente de projetos.

tratada com algoritmo K-

a uma base de dados que passou por um

fazendo uso de distância

Os resultados dos testes

o que houve um aumento

quando gerada com essa

de teste a Rede Bayesiana

provável, mostrando

mais aproximada das características do projeto de teste.

Page 59: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

Figura 17 - Estimativa de esforço mais precisa com uso algoritmo de K

• Estimando nível

do projeto: Novamente foi verificado que a rede teve

estimar o nível de

precisão em relação as duas bases anteriores com o mesmo teste

aumento na precisão foi considerável

Estimativa de esforço mais precisa com uso algoritmo de KFonte: Autoria própria.

nível de experiência necessário em relação a p

Novamente foi verificado que a rede teve uma

estimar o nível de experiência necessário para este tipo de

em relação as duas bases anteriores com o mesmo teste

aumento na precisão foi considerável.

58

Estimativa de esforço mais precisa com uso algoritmo de K-Means.

o a precisão (accurary)

uma precisão maior ao

este tipo de projeto de baixa

em relação as duas bases anteriores com o mesmo teste. O

Page 60: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

Figura 18 -

• Estimando dificuldade de um projeto com equipe experiente: A precis

estimativa de

características do projeto de testes,

sendo a dificuldade

- Estimando nível de experiência para o projetoFonte: Autoria própria.

dificuldade de um projeto com equipe experiente: A precis

estimativa de dificuldade a ser enfrentada em um projeto com as

do projeto de testes, foi altamente precisa

dificuldade média a mais provável.

59

Estimando nível de experiência para o projeto.

dificuldade de um projeto com equipe experiente: A precisão da

a ser enfrentada em um projeto com as

altamente precisa definindo como

Page 61: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

Figura 19 -

Os testes com a base de dados tratada com o algoritmo de K

que obtiveram maior sucesso para geração de estimativas tendo um nível maior de

acerto e precisão nas estimativas geradas

outras bases de dados, conforme demonstra o quadro comparativo abaixo.

Testes

Base de dados pura sem uso de análise de dados

Estimando Esforço

Estimando Experiência

Estimando Dificuldade

Base de dados minerada com

Estimando Esforço

Estimando Experiência

Estimando Dificuldade

Base de dados minerada com algoritmo K

Estimando Esforço

Estimando Experiência

Estimando Dificuldade

Quadro 3 - D

Estimando a dificuldade para o projeto de testeFonte: Autoria própria.

Os testes com a base de dados tratada com o algoritmo de K

que obtiveram maior sucesso para geração de estimativas tendo um nível maior de

nas estimativas geradas em relação aos testes anteriores com

conforme demonstra o quadro comparativo abaixo.

Testes Executados na Rede Bayesiana

Correto Predição Rede B.

Base de dados pura sem uso de análise de dados

- Médio

- Baixa

- Fácil

Base de dados minerada com algoritmo J48

- Médio

- Médio

SIM Médio

Base de dados minerada com algoritmo K -Means

SIM Alto

SIM Alta

SIM Média

Demonstrativo do resultado dos testes aplicados.Fonte: Autoria própria.

60

para o projeto de teste.

Os testes com a base de dados tratada com o algoritmo de K-Means foram os

que obtiveram maior sucesso para geração de estimativas tendo um nível maior de

em relação aos testes anteriores com

conforme demonstra o quadro comparativo abaixo.

Executados na Rede Bayesiana

Predição Rede B. Status do projeto

Alto

Alta

Médio

Alto

Alta

Médio

Alto

Alta

Média

emonstrativo do resultado dos testes aplicados.

Page 62: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

61

Além do teste com o projeto demonstrado acima, foi realizado mais nove testes

exatamente iguais, porém utilizando outros projetos também selecionados de forma

aleatória da base de dados históricos de projetos de software. Os outros projetos

utilizados possuíam as mais diversas características conforme pode ser visto na

tabela abaixo:

Quadro 4 - Demonstrativo dos projetos de testes utilizados. Fonte: Autoria própria.

Os resultados obtidos em todos os testes seguem representados no quadro

abaixo:

Resultados - 10 projetos de testes (N° Acertos das Predições)

Estimando

Esforço Estimando Experiência Estimando Dificuldade

Rede Bayesiana com

base de dados - original 4 1 3

Rede Bayesiana com

Base de dados - J48 7 4 4

Rede Bayesiana com

Base de dados – K-

means

9 7 9

Quadro 5 - Demonstrativo dos resultados gerais dos testes aplicados. Fonte: Autoria própria.

Page 63: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

62

4 CONCLUSÃO

Tendo em vista o estudo realizado atesta-se que é de extrema importância que

as empresas incentivem seus gerentes de projetos a sempre guardarem um

histórico detalhado de todos os projetos os quais participem. Todavia apenas utilizar

essa base em conjunto a um sistema de apoio a tomada de decisão (Redes

Bayesianas) não configura estimativas mais precisas para o gerente de projetos,

afinal não é possível atestar com 100% de certeza a qualidade dos dados inseridos

na base. Provavelmente haverá ruídos inseridos na base que podem gerar

estimativas imprecisas.

Conclui-se que é extremamente importante aplicar um processo de análise de

dados à base de dados históricos com o objetivo de melhorar a qualidade para os

sistemas de apoio a tomada de decisão e que a analise de dados tem um impacto

bastante alto em estimativas geradas através de Redes Bayesianas aumentando

aproximadamente 70% as chances de estimativas mais precisas. Pode-se ainda

atestar que o uso do algoritmo K-means se mostrou mais apto em questões de

eliminação de ruídos e em relação à classificação de dados, superando a precisão

das estimativas da Rede Bayesiana em relação ao algoritmo J48. Isto se deve

provavelmente devido ao comportamento de poda e redução de amostras que o J48

apresenta em sua execução.

Como trabalhos futuros podemos considerar o estudo comparativo de

diferentes técnicas de mineração de dados para fins de analisar quais técnicas

teriam melhor desempenho no treinamento de Redes Bayesianas, podendo ser

desenvolvido um catalogo de técnicas e suas características.

Outra sugestão seria a coleta e utilização de uma base de dados de projetos

reais em conjunto a dados reais de um projeto em andamento para realização dos

mesmos experimentos.

Page 64: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

63

REFERÊNCIA

BOEHMA, Barry; ABTS, Chris; CHULANI, Sunita. Software development cost estimation approaches. University of Southern California. Annals of Software Engineering 10. Los Angeles, CA, USA. 2000. CARNEIRO, Alexandre Lênin; Aprendizado automático em redes bayesianas , Dissertação (Mestrado em Ciência da Computação) – Universidade de Brasília, Brasília, Brasil. 1999. CASTELO, Robert; KOCKA, Tomás. On inclusion-drive learning of bayesian networks. Machine Learning Research Vol.4. 2003. CERQUIDES, J.; MANTARAS, R. L. Proposal and empirical comparison of a parallelizable distance-based discretization method . INTERNATIONAL CONFERENCE ON KNOWLEDGE DISCOVERY AND DATA MINING. 1997. CHARNIAK, Eugene. Bayesians networks without tears . IA Magazine. 1991. CHENG, Jie; GREINER, Russel. Learning bayesian belief network classifiers: algorithms and system. Proceedings of the 14 Biennial Conference of the Canadian Society on Computational Studies of Intelligence: Advances in Artificial Intelligence. Ottawa, Canada. 2001. CLEMENTS, P.; Northrop, L.M. Software product lines - practices and patterns. Addison-Wesley. 2001. DEMARCO, Tom. Controle de projetos de software . Editora Campus. Rio de Janeiro, Brasil. 1991. DIAS, Maria Madalena. Estudo e análise de técnicas e ferramentas de mineração de dados. Universidade Federal de Santa Catarina, UFSC. Santa Catarina, Brasil. 2006. FERNANDES, Anita Maria da Rocha, Inteligência artificial: noções gerais – 2 imp . VisualBooks. Florianopolis, Brasil. 2005. FRANK, E.; WITTEN, I. H. Making better use of global discretization . INTERNATIONAL CONFERENCE ON MACHINE LEARNING. Bled, Slovenia, 1999. GENIE. Disponível em: <http://genie.sis.pitt.edu/about.html>. Acesso em nov., 2011. GOEBEL, M.; GRUENWALD, L.; A survey of data mining and knowledge discovery software tools . SIGKDD Explorations. 1999. GUINZANI, Jonas Bonfante; SIMÕES, Priscila W. T.; MATTOS, Merisandra Côrtes de; BETTIOL, Jane. Mineração de dados em redes bayesianas utilizando a API da shell belief network power constructor (BNPC). Curso de Ciência da Computação – Universidade do Extremo Sul Catarinense (UNESC). Criciúma, SC, Brasil. 2006.

Page 65: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

64

HALL, Mark; FRANK, Eibe; HOLMES, Geoffrey; PFAHRINGER, Bernhard; REUTEMANN, Peter; WITTEN, Ian H. The weka data mining software: an update . SIGKDD Explorations, Volume 11, Issue 1. 2009. HARRISON, T.H. Intranet data warehouse . Berkeley. 1998. HOLMES, Geoffrey; ANDREW, Donkin; WITTEN, Ian H. WEKA: a machine learning workbench . Department of Computer Science University of Waikato, Hamilton, New Zealand. 2002. JAIN, Sapna; AALAM, M Afshar; DOJA, M. N. K-Means clustering using weka interface. Proceedings of the 4th National Conference. INDIACom-2010. 2010. KOEHLER, Cristiane; NASSAR, Sílvia Modesto. Modelagem de redes bayesianas a partir de base de dados médicas . SIMPOSIO DE INFORMÁTICA EN SALUD. 2002. KOHAVI, R. A. Study of cross-validation and bootstrap for accurac y estimation and model selection . International joint Conference on artificial intelligence. 1995. KORB, K.; NICHOLSON, A. E. Bayesian artificial intelligence . CRC Press. Boca Raton, FL, USA. 2003. KREMER, R. Sistema de apoio à decisão para previsões genéricas utilizando técnicas de data mining. Trabalho de Conclusão de Curso – Centro e Ciências Exatas. Universidade Regional de Blumenau, Blumenau. 1999. LEHMAN, M.M. Process models, process programs, programming suppo rt. Proceedings of the 9th International Conference on Software Engineering. Monterey, CA. 1987. LEHMAN, M.M. Uncertainty in computer applications and its contro l through the engineering of software. Journal of Software Maintenance 1. 1989. LIEBCHEN, Gernot; TWALA, Bheki; SHEPPERD, Martin. Assessing the quality and cleaning of a software project dataset: an expe rience report. Brunel University, UK – EASE. 2006. LIU, Qin; MINTRAM, Robert C. Preliminary data analysis methods in software estimation . Software Quality Journal. 2005. LUDL, M.; WIDMER, G. Relative unsupervised discretization for regression problems . EUROPEAN CONFERENCE ON MACHINE LEARNING. Barcelona. 2000. MACQUEEN. J. B. Some methods for classification and analysis of mul tivariate observations. 5-th Berkeley Symposium on Mathematical Statistics and Probability. Berkeley, University of California Press, 1967.

Page 66: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

65

MATSUURA, Jackson Paul. Discretização para aprendizagem bayesiana: aplicação no auxílio à validação de dados em proteção ao vôo. ITA - Instituto Tecnológico de Aeronáutica. São José dos Campos, SP, Brasil. 2003. MCCONNELL, Steve. Software estimation, demystifying the black art - m icrosoft press. 2006. MODIST Method and Tool User Manual ; MODIST Models of Uncertainty and Risk for Distributed Software Development IST-2000-28749. Deliverable 7.1. WP7/AGENA/TECH/DEL/1, Version 3. 2004. MODIST. Disponível em: <http://www.agenarisk.com/resources/MODIST.shtml>. Acesso em nov. Software development cost estimation approaches 2011. NÄRMAN, Per; PONTUS, Johnson; LAGERSTRÖM, Robert; FRANKE, Ulrik; EKSTEDT, Mathias. Data collection prioritization for system quality a nalysis . Electronic Notes in Theoretical Computer Science. 2009. NASCIMENTO JR, C. L.; YONEYAMA, T. Inteligência artificial em controle e automação . São Paulo. 2000. PIFER, A. C.; GUEDES, L. A. Aprendizagem estrutural de redes bayesianas utilizando métrica MDL modificada . IEEE LATIN AMERICA TRANSACTIONS, VOL. 5. 2007. PRESSMAN, Roger S. Engenharia de software . São Paulo: Pearson Makron Books. 1995. ROHDEN, Rafael Barasuol. A importância da engenharia de software na computação nos dias atuais. Universidade Regional do Noroeste do Estado do Rio Grande do Sul (UNIJUI), Departamento de Tecnologia – DETEC. Brasil. 2009. RUP – for small projects. Disponível em: <http://www.wthreex.com/rup/smallprojects/ index.htm>. Acesso em nov. 2011. RUSSEL, J. Stuart; NORVING, Peter. Artifical Intelligence: a modern approach. Prentice Hall. 2006. SHEPPERD, Martin; SCHOFIELD, Chris. Estimating software project effort using analogies . IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 23, NO. 12. 1997. SOMMERVILLE, I. Engenharia de software. Addison Wesley, 6a edição. 2003. STEINBACH, Michael; TAN, Pang-Ning; KUMAR, Vipin; KLOOSTER, Steven; POTTER, Christopher; TORREGROSA, Alicia. Clustering earth science data: goals, issues and results; department of computer science and engineering. Army HPC Research Center. University of Minnesota. 2002. TAN, Pang-Ning; STEINBACH, M.; KUMAR, V. Introdução ao data mining mineração de dados. Rio de Janeiro: CIENCIA MODERNA. 2009.

Page 67: O IMPACTO DO USO DE ANÁLISE DE DADOS NA GERAÇÃO DE ... · Desta forma são estudados conceitos de mineração de dados, como técnicas, algoritmos, seu processo de coleta de conhecimento,

66

The Standish Group International. Boston, Massachussets. Disponível em: <www. standishgroup.com>. Acesso em nov. 2011. VASQUEZ, Carlos E; SIMÕES, Guilherme S. Albert. Análise de pontos de função. Erica. 2005. WANG, K.; LIU, B. Concurrent discretization of multiple attributes . THE PACIFIC RIM INTERNATIONAL CONF. ON ARTIFICIAL INTELLIGENCE. 1998. WEBAPSEE (2003). Disponível em: http://www.webapsee.com.br. 2003. Acesso em nov. 2011.