• Nenhum resultado encontrado

Introdução ao Data Mining

N/A
N/A
Protected

Academic year: 2021

Share "Introdução ao Data Mining"

Copied!
13
0
0

Texto

(1)

Introdução ao Data Mining

Instituto Nacional de Estatística 21-24 de Abril de 2009

André Falcão (afalcao@di.fc.ul.pt) Graça Gaspar (gg@di.fc.ul.pt)

Módulo 1 (p)

Introdução ao R

-Sumário

• História do S e do R

• Princípios básicos

• Manipulação de dados

• Operações estatísticas básicas

– Estatísticas essenciais

– Gráficos

(2)

© DI/FCUL

3

História do S e do R

• A linguagem S foi desenvolvida nos Bell Labs por John Chambers et al.

• O S é um ambiente e linguagem de alto nível para análise de dados e produção de gráficos

– O S existe como um sistema comercial (S-PLUS) (http://www.insightful.com)

• O R (http://www.r-project.org) é uma implementação livre da linguagem S (versão 4) com um ambiente gráfico de trabalho.

– Criado em 1997 na Universidade de Auckland (NZ) mas tem contribuições de muitas pessoas e organizações

– Grande parte dos módulos criados para o S e S-PLUS correm sem grandes modificações em R

– Quase todos os módulos e bibliotecas do R foram escritos em R!

O R é open source

• O que significa código aberto?

– Acesso completo aos algoritmos e ás implementações dos mesmos

– Liberdade total para correção de erros e estender o sistema com novas funcionalidades

• Sistema muito estável, robusto e com enorme precisão

– Resultados reproduciveis, uma vez que todos têm acesso ao software

(3)

© DI/FCUL

5

Vantagens e Desvantagens

• Rápdo e aberto

• Contém o estado da arte em estatística e data-mining (grande input por parte dos investigadores na área)

• Gráficamente excelente • Continuamente em

desenvolvimento (+de 800

packages)

• Dados têm que caber todos na RAM do computador

• É mais complicado

preparar e limpar os dados para análise

• Não é muito user friendly (se bem que o rattle e outros são um enorme passo em frente) • Não tem suporte

comercial

Como funciona o R...

• Pode ser iniciado como qualquer programa através do sistema operativo apropriado

• O R funciona através de instruções que são escritas em linha de comandos:

– Podem-se criar dados ou objectos e usar funções > a<-5

> b<-sqrt(a) > x<-c(1,2,3,4,5) > y<-sqrt(x)

• Tem um sistema de ajuda muito completo:

> help(função) > ?função

(4)

© DI/FCUL

7

Tipos de dados essenciais (I)

• Escalares > valor <- 42 > codigo<-"E325" • Vectores > serie<-c(1.0, 1.2, 1,5, 1.8, 2.1) • Listas

> prod1<-list(codigo="E325", nome="lapis", valor=42)

Tipos de dados essenciais (II)

• Matrizes e arrays

> mat<-matrix(1:12, 3, 4) > arr<-array(1:12, c(2,3,2))

• Data frames

> letras <- c("aleph", "beth", "guimel") > valores<-c(1,2,3)

(5)

© DI/FCUL

9

Entrada directa de dados

Entrada de dados para uma matriz

> mmat <- matrix(c(1, 0, 1, 4, 5, 6, 0, 2, 2), 3,3) > mmat <- t(mmat) #transposta

> inv.mmat<-solve(mmat) #inversa

Leitura directa

> y <- scan(what="") #vector de caracteres

Ambiente visual para inserção e manipulação

> dat <- data.frame(x=0., y=0., z=0.) > fix(dat)

Uso de dados de teste

O R tem disponível um conjunto de dados de teste:

> data() # lista todos os dados de teste disponíveis no R

> ?iris # descreve as características do conjunto de dados

> data(iris) #selecciona um determinado conjunto de dados

> attach(iris) # as variáveis passam a pertencer ao espaço de trabalho

> detach(iris) # remove as variáveis do espaço de trabalho

(6)

© DI/FCUL

11

Importação de dados

• Leitura de ficheiros de texto:

– mydat <- read.table("myfile")

– A primeira linha deve ter um nome para cada coluna. – Cada linha subsequente tem uma etiqueta a identificar cada

linha

• Importação directa do Excel

– Converter tabela para CSV e ler a data frame com

mydat <- read.csv("ficheiro.csv")

– Usar read.xls("ficheiro.xls")

> install.packages(xlsReadWrite) > library(xlsReadWrite)

> dat <-read.xls("ficheiro.xls")

Importação de Base de Dados

• Biblioteca RODBC – permite ligação a bases de dados

locais ou remotas através de ODBC

• Exemplo:

library(RODBC)

> #abrir a ligação odbc

> channel <- odbcConnect(dsn="BD_ORACLE", uid="utilizador", pwd="secreta", case = "oracle")

> #executar a interrogação > dat<- sqlQuery(channel,

(7)

© DI/FCUL

13

Manipulação de dados

A leitura de um ficheiro excel cria sempre um data frame (um conjunto de colunas com nomes

> dat <- read.csv("teste.csv")

Para aceder à informação de cada variável do data frame pode-se usar o '$':

> dat$x

Os dados podem ser manipulados em bloco.

> sq_x <- sqrt(dat$x) #vector com raízes quadradas > m.x <- mean(dat$x) # escalar com a média de x

Manipulação de dados (II)

Selecções dos dados podem ser feitas utilizando '[ ]'' Exemplos:

> dat<- data.frame(x,y,z) quais as linhas com y>0.5

> dat_best<- dat[dat$y>0.5,] só os xx cujo y correspondente é >0.5 > x_best<- dat[dat$y>0.5,]$x fazer a média dos valores de 'x' com tipo = 'A' > mean(dat[dat$tipo=='A',1])

(8)

© DI/FCUL

15

Função plot()

• a função plot é genérica e pode ser usada numa enorme variedade de contextos. Por exemplo:

> plot(iris[1:4], main="Dados da Iris", pch=21)

• O plot de vários objectos pode comportamentos específicos

Função plot()

> plot(iris[1:4], main="Dados da Iris", pch=21, bg = c("red", "green3", "blue") [unclass(iris$Species)])

(9)

© DI/FCUL

17

Gráficos

(todas as imagens provenientes de http://www.r-project.org)

Exemplo de sessão em R (I)

Teste de amostras > A<-c(5.3, 6.8, 8.1, 5.9, 7.3, 6.5) > B<-c(5.1, 6.3, 5.8, 4.9, 5.2, 5.1, 5.4) > boxplot(A,B) > t.test(A,B) > var.test(A,B) > wilcox.test(A,B) (Venables et al. 2004) Funções Utilizadas: • c() – concatenação de valores

• boxplot() – faz diagrama de "caixas de bigodes" • t.test() executa o teste t para comparação de amostras • var.test() - teste F para comparação de variâncias

(10)

© DI/FCUL

19

Exemplo de sessão em R (II)

> library(MASS) > x<-rnorm(500) > y<-rnorm(500) > truehist(c(1.5*y+3),nbins=25) > contour(dd<-kde2d(x,y)) > persp(dd, theta= 120, phi=35, expand=0.5)

De Venables and Ripley(2000)

Funções Utilizadas:

• rnorm() cria um vector de dados aleatórios com distribuição normal • truehist() - faz histograma com área =1

• kde2d() faz estimação das densidades em 2D (gera uma superfície) • contour() - define um mapa de contornos para a superfície gerada • persp() - permite a visualização em 3D das densidades

Estatística univariada (I)

> data(airquality) > attach(airquality)

> hist(Wind,seq(0,22,3),prob=TRUE, main="Vento")

> rug(Wind)

Exemplo de uso de histogramas

Funções Utilizadas:

• hist() – faz um histograma, podendo receber uma sequência que define os intervalos

• seq(a,b,s) – faz uma sequência de 'a' a 'b', com passo 's' • rug – representa o 'tapete dos dados' na base do

(11)

© DI/FCUL

21

Estatística univariada (II)

plot(ecdf(Wind),do.points=FALSE, verticals=TRUE) x<-seq(0,22,0.1) lines(x,pnorm(x, mean=mean(Wind), sd=sqrt(var(Wind)))) ks.test(Wind,"pnorm",mean=mean(Wind), sd=sqrt(var(Wind))) Funções Utilizadas:

• ecdf() – gera uma função de distribuição cumulativa • seq(a,b,s) – faz uma sequência de 'a' a 'b', com passo 's' • lines() – junta pontos com linhas

• ks.test() – teste Kolmogorov-Smirnov

Exemplo de uso de Funçoes de distribuição

Interrogações OLAP em R

Matrizes de contingência (contagens por classe) são executadas através da função table)

> dat <-read.xls("adult.data.xls") > table(dat$race, dat$sex) Female Male Amer-Indian-Eskimo 119 192 Asian-Pac-Islander 346 693 Black 1555 1569 Other 109 162 White 8642 19174

(12)

© DI/FCUL

23

Interrogações OLAP em R (II)

Para utilizar outras funções (max, min, soma ou média) pode-se usar o tapply que aplica uma função a uma lista de dados

:

> tapply(dat$age, list(dat$race, dat$sex), mean) Female Male Amer-Indian-Eskimo 37.11765 37.20833 Asian-Pac-Islander 35.08960 39.07359 Black 37.85402 37.68260 Other 31.67890 34.65432 White 36.81162 39.65250

Interrogações OLAP em R (III)

Para fazer drill-down sobre os dados, uma solução é executar selecções prévias e depois fazer table ou tapply:

> datp <- dat[dat$Rend==" <=50K",] > datr <- dat[dat$Rend==" >50K",] > table(datp$race, datp$sex) > table(datr$race, datr$sex) Female Male Amer-Indian-Eskimo 107 168 Asian-Pac-Islander 303 460 Black 1465 1272 Other 103 143 White 7614 13085 Female Male Amer-Indian-Eskimo 12 24 Asian-Pac-Islander 43 233 Black 90 297 Other 6 19 White 1028 6089

(13)

© DI/FCUL

25

Bibliografia

• Venables, WN, Ripley DM (2002) Modern Applied

Statistics with S. Springer Verlag. New York

• R Development Core Team (2005) R Users Manual -http://www.r-project.org

• Venables, WN, Smith, Ripley DM and the R Development Core Team (2004). An introduction to R

Referências

Documentos relacionados

Processo de se examinar, em conjunto, os recursos disponíveis para verificar quais são as forças e as fraquezas da organização.

A resposta passa por preços maiores para quem estiver disposto a pagar por melhores serviços, e com essa margem adicional financiando o mercado de preços baixos para mais

Nossos olhos se arregalaram por um momento, até que alguém resolveu, corajosamente, questionar: “Mas por quê?” E a resposta veio pronta: “Porque, meu filho, por mais que nós

Se nesse período crítico, ela encontra alguém que, ignorante e inescrupulosamente, lhe fornece exercícios respiratórios, e se ela segue as instruções fidedignamente na esperança

Há amplo espaço para preocupação quanto às dificuldades para aprovação de reformas necessárias à contenção do déficit público, peça crucial para o sucesso

Em vez de testar separadamente as duas hip´ oteses, no entanto, Sunshine e Tyler elaboraram um modelo de equa¸c˜ oes estruturais com uma an´ alise de caminhos para

Pensar a questão ética que perpassa o tratamento da obesidade, colocando em pauta os modos como isso circula no senso comum e na ciência, favorece abordar a obesidade não

Benetton (1999) apresenta o caráter de funcionalidade na Terapia Ocupacional como tendo sido assumido por muitos autores, pelos precurssores da profissão (Meyer, Simon e Schneider)