Escolar Documentos
Profissional Documentos
Cultura Documentos
DataMinig em R
DataMinig em R
Data Mining em R
(Projecto N 5)
campalexandre@iol.pt
hasv@mail.pt
lbulhoes@iol.pt
NDICE
1. INTRODUO ............................................................................................... 4
1. INTRODUO ............................................................................................... 4
2. FUNDAMENTOS TERICOS........................................................................ 7
2.1 Data Mining............................................................................................... 7
2.1.1 Processo de Descoberta de Conhecimento ....................................... 7
2.1.2 Data Mining ........................................................................................ 8
2.1.3 Tarefas de Data Mining ...................................................................... 9
2.1.4 Metodologia Data Mining.................................................................. 10
2.2 Introduo ao R ...................................................................................... 12
2.2.1 Comear a usar o R ......................................................................... 13
2.2.2 Packages ......................................................................................... 15
2.2.3 Documentao de apoio .................................................................. 16
3. CASO DE ESTUDO ..................................................................................... 18
4. ESTUDO ...................................................................................................... 21
4.1. rvores de Deciso................................................................................ 21
4.2 Regresso Linear ................................................................................... 26
4.3 rvores de regresso.............................................................................. 27
4.4 Redes Neuronais .................................................................................... 29
4.5 LDA......................................................................................................... 31
5. CONCLUSO .............................................................................................. 33
BIBLIOGRAFIA ............................................................................................... 36
ANEXOS .......................................................................................................... 38
3
1. INTRODUO
Para a anlise das diversas tcnicas foi escolhida uma base de dados com o
objectivo de criar um sistema de forma a prever o nvel de qualidade da gua
de uma albufeira. Utilizou-se a ferramenta R com o objectivo de permitir obter
uma ideia genrica sobre o tipo de funcionamento da ferramenta em questo e
qual a sua potencialidade.
4
Para alm da introduo o relatrio composto por mais quatro captulos. No
segundo captulo constitudo por fundamentos tericos tanto de Data Mining
como de ferramenta em questo. Assim, sobre Data Mining, abordmos os
temas relacionados com o processo de descoberta de conhecimento, Data
Mining, tarefas de Data Mining e metodologias de Data Mining. Quanto teoria
relacionada com o R falmos sobre como obter e instalar a ferramenta, bem
como aspectos bsicos da sua utilizao. No captulo trs analisamos o caso
de estudo referente a uma base de dados de uma albufeira. No que diz
respeito ao quarto captulo abordamos o estudo do problema de classificao
atravs de comandos em R. A finalizar o relatrio temos a concluso com os
aspectos positivos e negativos do trabalho.
5
O plano previsto para o trabalho foi o seguinte:
6
2. FUNDAMENTOS TERICOS
7
uma tabela. Isto significa que para cada caso existe um modelo de dados que
mais se adequa ao problema.
Linguagem Query:
A linguagem query actua como um interface entre o utilizador, o conhecimento
e a base de dados. Permite ao utilizador processar dados e conhecimento e
controlar o processo de descoberta de conhecimento.
8
2.1.3 Tarefas de Data Mining
Processamento de Dados:
Dependendo dos objectivos e dos requisitos do processo de descoberta de
conhecimento em bases de dados (KDD), analistas podem seleccionar, filtrar,
agregar, retirar amostras, limpar ou transformar dados.
Previso:
Dados um conjunto de dados e um modelo de previso, prev o valor para um
atributo especfico do respectivo conjunto de dados.
Regresso:
Dado um conjunto de dados, regresso a anlise da dependncia do valor de
alguns atributos sobre os valores de outros atributos no mesmo conjunto, e a
produo automtica de um modelo que consegue prever os valores dos
atributos para outros registos.
Classificao:
Dado um conjunto de classes predefinidas, determina para qual destas classes,
um dado especfico pertence.
Clustering:
Dado um conjunto de dados, parte esse conjunto num conjunto de classes,
para que dados com caractersticas semelhantes sejam agrupados.
Visualizao do modelo:
Tcnicas de visualizao ajudam a melhor compreender o problema. Tcnicas
como a visualizao de grficos, histogramas, filmes 3D, etc.
9
Anlise exploratria de dados (EDA):
Anlise exploratria de dados a explorao interactiva de um conjunto de
dados sem grandes dependncias em suposies preconcebidas ou modelos,
como a tentativa de identificar padres interessantes.
Mtodos estatsticos:
Aproximaes estatsticas, usualmente, assentam num modelo probabilstico
explcito. Estatsticas so candidatas gerao de hipteses ou modelos.
Redes Neuronais:
So formadas de largos nmeros de neurnios simulados, conectados uns aos
outros, de uma maneira similar aos neurnios cerebrais. A fora das
interligaes dos neurnios podem mudar (ou ser mudadas pelo algoritmo de
aprendizagem) em resposta a um dado estmulo ou a um output obtido, que
fora a rede a aprender.
rvores de Deciso:
uma rvore em que cada nodo no terminal representa um teste ou deciso
em relao a um determinado dado.
Regras de induo:
Regras que determinam uma correlao estatstica entre a ocorrncia de
determinados atributos num conjunto de dados.
10
Algoritmos genticos / Programao Evolutiva:
So estratgias de optimizaes algortmicas que so inspiradas pelos
princpios observados na evoluo natural. Dado um conjunto de potenciais
solues para determinado problema, estas competem entre si. As melhores
solues so seleccionadas e combinadas umas com as outras.
11
2.2 Introduo ao R
12
Uma vez efectuado o download do ficheiro dever proceder-se a instalao do
R, bastando para isso executar o ficheiro.
13
Esta janela apresenta o prompt do R (> ), com o cursor sua frente. aqui
que vamos introduzir os comandos que pretendemos que o R execute.
Por exemplo, para saber qual a verso do R que estamos a utilizar basta
utilizar o comando R.version e premir Enter.
14
Se escolhermos guardar o estado actual, o R vai criar um ficheiro .Rhistory.
Este ficheiro gravado no directrio actual onde o programa est a funcionar.
Para saber o directrio actual basta fazer no prompt,
2.2.2 Packages
15
Outra maneira de instalar packages aceder directamente atravs da Internet
usando, tambm no menu Packages a opo Install Packages(s) from CRAN.
Ir, ento, aparecer uma caixa com os packages existentes no CRAN como
demonstra a figura seguinte.
Neste caso est a ser seleccionado o package RODBC que um pacote que,
por defeito no instalado quando a instalada a ferramenta.
16
funcionamento do programa atravs da funo de ajuda integrada na
ferramenta. O R vem com uma funo de ajuda muito til para compreender e
saber utilizar os comandos disponveis. Essa opo de ajuda tambm fornece,
na maioria dos casos, alguns exemplos do modo como utilizar determinado
comando. Por exemplo, se pretendido obter ajuda sobre a funo sd usamos:
> help(sd)
ou, em alternativa,
>?sd
>help.start()
17
3. CASO DE ESTUDO
Para o estudo desta ferramenta foi utilizada uma base de dados j existente.
Esta base de dados encontra-se disponvel no url
http://piano.dsi.uminho.pt/disciplinas/LIGIA/20032004/ia20022003.htm. Este
repositrio de dados BDALBUFEIRA4 contm informao sobre o nvel da
qualidade da gua de uma albufeira. de salientar que esta base de dados se
encontrava no formato Excel e foi tratada onde optmos por descartar algumas
variveis por estas terem valores muito dspares, no se mantendo ao longo do
tempo. Posteriormente convertida em formato Access.
Podemos concluir que, dependendo dos valores existentes em cada uma das
variveis que afectam a qualidade da gua, esta pode atingir cinco nveis
diferentes (1, 2, 3, 4 ou 5).
18
1 qualidadeagua Qualidade da gua da albufeira com captao
superfcie (CS). Pode ser classificada em 1, 2, 3, 4 e
5.
2 Est trofico Estado trfico com CS
3 Nvel alb Nvel da albufeira em metros
4 Vol arma Volume armazenado na albufeira em dam3
5 Transparencia Transparncia da gua em metros
6 Temp Amostra CS Temperatura da amostra com CS em C
7 ph Ph com captao superfcie
8 Condut 20 C CS Condutividade a 20C com CS
9 SST CS SST em mg dm-3 com CS
10 Cloretos CS Cloretos em mg dm-3 com CS
11 Oxigenio dissCAMP CS Oxignio dissolvido (CAMP) com CS
12 Oxigenio diss AB CS Oxignio dissolvido (LAB) com CS
13 Oxidabilidade CS Oxidabilidade em mg dm-3 com CS
14 CBO5 CS CBO5 em mg dm-3 com CS
15 Azoto amoniacal CS Azoto amoniacal em mg dm-3 com CS
16 Azoto Azoto kjeldahl em mg dm-3 com CS
17 Nitratos CS Nitratos em mg dm-3 com CS
18 Fosfato CS Fosfato total em mg dm-3 com CS
19 Cobre CS Cobre total em mg dm-3 com CS
20 Coliformes CS Coliformes totais com CS
21 Temp ar 3m Temperatura mdia do ar a 3m em C
22 Temp max 3m Temperatura mxima mdia do ar a 3m em C
23 Temp max elevada 3m Temperatura mxima mais elevada do ar a 3m em C
24 Temp max baixa 3m Temperatura mxima mais baixa do ar a 3m em C
25 Temp min 3m Temperatura mnima mdia do ar a 3m em C
26 Temp min elevada 3m Temperatura mnima mais elevada do ar a 3m em C
27 Temp min baixa 3m Temperatura mnima mais baixa do ar a 3m em C
28 Precip media Precipitao mdia / mm m-2
29 Vel do vento 3m Velocidade mdia do vento a 3m em m.s-1
30 Direc vento Direco mdia do vento
31 Humidade 3m Humidade relativa mdia a 3m
32 Radiacao solar Radiao solar mdia em W m-2
33 Balano radiacao Balano mdio da radiao em W m-2
19
O aspecto da base de dados em Access representado na figura seguinte.
20
4. ESTUDO
O R possui uma gama bastante variada de mtodos que podem ser usados
para obter modelos para problemas de classificao. Um desses mtodos
conhecido como rvores de deciso.
21
Deste modo, obtemos dois dataframes diferentes que dizem respeito a
amostras complementares da base de dados original.
Resultados:
22
modelo para obter a deciso. Esta lista pode ser substituda pelo smbolo .
(como no exemplo acima), querendo significar que se podem usar todas as
outras variveis existentes nos dados fornecidos a funo. Os dados a usar na
obteno do modelo so fornecidos no segundo argumento da funo e devem
ser um dataframe com as colunas com nomes que estejam de acordo com os
nomes de variveis referidos na forma do modelo.
23
Determinao da Percentagem de Erro do modelo
Neste caso concreto a funo predict produz uma dataframe com tantas linhas
quantos casos de teste.
24
A matriz de confuso quantifica quantos exemplos da base de dados utilizada
seriam classificados bem pelo modelo construdo (representado na diagonal
principal) sendo que os outros seriam mal classificados.
25
4.2 Regresso Linear
Nesta seco vamos ver como podemos obter modelos de regresso linear
mltipla, usando o R. Este tipo de modelos so frequentemente usados para
problemas de regresso. Sem entrarmos em detalhes tcnicos referentes s
condies de aplicabilidade deste tipo de modelos.
26
4.3 rvores de regresso
Como optmos por ser uma varivel numrica (qualidadeagua) no nosso caso
as rvores vo ser iguais. Podemos ento concluir que se trata de uma rvore
de regresso.
27
da rvore de regresso so mais precisas do que as do modelo linear, uma vez
que obtm um erro absoluto mdio mais baixo. de salientar que depois de
vrios testes os resultados foram sempre parecidos, ou seja, atravs dos
resultados obtidos as rvores de regresso foram sempre mais precisas
28
4.4 Redes Neuronais
wts: Um vector com os valores iniciais dos pesos das conexes. Se ausente os
pesos sero escolhidos aleatoriamente.
29
softmax: Se verdadeiro utiliza a funo log-linear com funo de activao e o
mtodo da mxima verosimilhana no algoritmo de minimizao dos erros.
Linout, entropy e softmax so mutuamente exclusivos.
rang: valor que vai determinar o intervalo de valores para inicializao aleatria
dos pesos [-rang,rang]
De forma a obter uma matriz com os valores previstos pela rede temos a
funo predict.
> rede.previsao<-predict(rede,dados.teste)
30
4.5 LDA
> analise.linear
Call:
lda(qualidadeagua ~ ., data = dados.treino)
31
Proportion of trace:
LD1 LD2 LD3
0.7709 0.1458 0.0833
> prev.lda
$class
[1] 2 3 3 3 3 2 1 4 2 2 2 1 3 2 2 2 3 3 3 3 3 4 3 3 3 2 2 2 3 3 3 3 3 3 1 1
Levels: 1 2 3 4
$posterior
1 2 3 4
2 6.796902e-18 9.859305e-01 1.406948e-02 9.312405e-12
4 2.975280e-18 2.014205e-01 7.985777e-01 1.747715e-06
8 1.193400e-22 3.004930e-02 9.699503e-01 3.657084e-07
$x
32
5. CONCLUSO
33
elas so sobejamente aliciantes, de acordo com o que pudemos constatar,
atravs da consulta da documentao fruto da pesquisa conseguida.
O nico factor que, partida, poder ser considerado como negativo o facto
do interface com o utilizador ser efectuado atravs de linhas de cdigo e no
por meio de ambiente grfico. Isso obriga a uma familiarizao com o nome
das funes e os seus parmetros, bem como a conhecimentos avanados da
estrutura dos dados que as funes recebem como argumentos, para assim se
poder evitar, ou pelo menos diminuir, o aparecimento de erros. precisamente
esta razo que faz com que o processo de adaptao ferramenta seja mais
lento do que uma outra aplicao em que o interface grfico seja por objectos.
No entanto, aquilo que nos afigura afirmar a este propsito, que medida
que ganhamos experincia com o uso da ferramenta, a sua utilizao torna-se
mais intuitiva e simples, e essa barreira acaba por se atenuar ou mesmo
desaparecer.
34
verso do R que conseguimos pr o package a funcionar. J no foi mau de
todo.
35
BIBLIOGRAFIA
Brown, M.L., Kros, J.F. (2003) Data Mining and the Impact of Missing Data.
Mitra, S., Sankar, K., Mitra, P. (2002) Data Mining in Soft Computing
Framework: A Survey, IEEE Transactions on Neural Networks, Vol. 13, N 1,
01/02
36
Venables W.N., Ripley B.D. (1999) Modern Applied Statistics With S-Plus, Third
Edition, Springer.
Venables, W. and Smith, D.M. and the R Development Core Team (2004). An
Introduction to R Version. Notes on R: A Programming Environment for Data
Analysis and Graphics.
Widener, T. (1996) The KDD Process for Extracting Useful Knowledge from
Volumes of Data, Communications of The ACM, Vol. 39, N 11, 11/96.
37
ANEXOS
38
Cdigo R
library(RODBC)
lig<-odbcConnectAccess("BDALBUFEIRA4.mdb")
fix(bd)
#-----------------------------arvores de decisao--------------------------
library(rpart)
arvore<-rpart(qualidadeagua ~ .,bd)
fix(dados.treino)
#teinar a arvore
arvore1<-rpart(qualidadeagua ~.,dados.treino)
fix(dados.teste)
#testar a arvore
previsoes.modelo<-predict(arvore1,dados.teste)
#matriz de confusao
matriz.confusao<-table(dados.teste$qualidadeagua,previsoes.modelo)
#percentagem de erro
perc.erro<-
100*(matriz.confusao[1,2]+matriz.confusao[1,3]+matriz.confusao[1,4]+
matriz.confusao[2,1]+matriz.confusao[2,3]+matriz.confusao[2,4]+
39
matriz.confusao[3,1]+matriz.confusao[3,2]+matriz.confusao[3,4]+
matriz.confusao[4,1]+matriz.confusao[4,2]+matriz.confusao[4,3])/sum(ma
triz.confusao)
avalia.arvore<-function(arv,dados.teste,objectivo=ncol(dados.teste)){
prevs<-predict(arv,dados.teste)
#previsoes.modelo<-predict(arv,dados.teste)
#matriz.confusao<-
table(dados.teste$qualidadeagua,previsoes.modelo)
matriz.confusao<-
table(dados.teste[,objectivo],predict(arv,dados.teste))
erro<-
100*sum(matriz.confusao[col(matriz.confusao)!=row(matriz.confusao)])/sum(ma
triz.confusao)
list(previsoes=prevs,matriz.confusao=matriz.confusao,perc.erro=erro)
}
resultados<-avalia.arvore(arvore1,dados.teste,objectivo=2)
(mad.lm<-mean(abs(previsoes.modelo-dados.teste$qualidadeagua)))
#-----------------------------Regressao Linear---------------------------
modelo.linear<-lm(qualidadeagua ~ .,dados.treino)
prev.lm<-predict(modelo.linear,dados.teste)
#matriz de confusao
matriz.confusao2<-table(dados.teste$qualidadeagua,prev.lm)
#percentagem de erro
erro2<-
100*sum(matriz.confusao2[col(matriz.confusao2)!=row(matriz.confusao2)])/sum
(matriz.confusao2)
(mad.lm<-mean(abs(prev.lm-dados.teste$qualidadeagua)))
#-----------------------------Anlise linear-----------------------------
library(MASS)
analise.linear<-lda(qualidadeagua ~ .,dados.treino)
prev.lda<-predict(analise.linear,dados.teste)
#matriz de confusao
#matriz.confusao3<-table(dados.teste$qualidadeagua,prev.lda)
#percentagem de erro
#erro3<-
100*sum(matriz.confusao3[col(matriz.confusao3)!=row(matriz.confusao3)])/sum
(matriz.confusao3)
#(mad.lm<-mean(abs(analise.linear-dados.teste$qualidadeagua)))
40
#-----------------------------Redes Neuronais----------------------------
library(nnet)
#dados de entrada
entradas<-cbind(bd[2],bd[3],bd[4],bd[5],bd[6],bd[7],bd[8],bd[9],bd[10],
bd[11],bd[12],bd[13],bd[14],bd[15],bd[16],bd[17],bd[18],bd[19],bd[20],
bd[21],bd[22],bd[23],bd[24],bd[25],bd[26],bd[27],bd[28],bd[29],bd[30],
bd[31],bd[32],bd[33])
#dados de saida
saidas<-bd[1]
#matriz de confusao
matriz.confusao4<-table(dados.teste$qualidadeagua,rede.previsao)
#percentagem de erro
erro4<-
100*sum(matriz.confusao4[col(matriz.confusao4)!=row(matriz.confusao4)])/sum
(matriz.confusao4)
41