Introdução ao Data Mining
Instituto Nacional de Estatística20-24 de Abril de 2009
André Falcão (afalcao@di.fc.ul.pt) Graça Gaspar (gg@di.fc.ul.pt)
Módulo 5 (p)
Visualização de Informação
Tópicos complementares em R
-Sumário
• Visualização em R
– Função plot()
– Exemplos de uso
• Exercícios de visualização multidimensional
– Análise em componentes principais
– Análise em coordenadas principais
– Escalamento multidimensional
© DI/FCUL
3
Função plot()
• Função polimórfica que se adapta aos vários objectos mostrados
• A função plot é ideal para fazer vários plots 2 a 2 em data frames: > plot(iris[1:4], main="Dados da Iris", pch=21, bg=c("red","green3","blue") [unclass(iris$Species)]) © DI/FCUL 4
Análise em Componentes
principais
• Pode ser feita de várias formas:
– Forma algébrica:
• Cálculo da matriz das covariâncias (cov())
• Cálculo dos valores e vectores próprios (eigen())
– Uso da função princomp()
– Uso da função princo
© DI/FCUL
5
Análise em componentes
principais
• função prcomp() - faz ACP
– muito precisa numericamente – permite várias configurações
• função princomp() faz ACP
– usa a inversa da covariância - menor qualidade numerica – compatível com S
> dat<-read.xls("housing.data.xls") > pc <- prcomp(dat)
> summary(pc) > plot(pc)
> biplot(princomp(dat, cor = TRUE))
Análise em Componentes
Principais (II)
> t<-read.table("aa1.txt") > t.pca<-princomp(t, cor=TRUE) > plot(t.pca) > summary(t.pca) > plot(predict(t.pca), pch=" ") > text(predict(t.pca),labels=dimnames(t)[[1]]) > t.pca.loads<-loadings(t.pca) > plot(t.pca.loads, pch=" ") > text(t.pca.loads[,1:2],•predict() - transforma os dados nas respectivas componentes •loadings() - recupera os factores de dada componente •biplot() mostra os dados transformados e os factores
© DI/FCUL 7
Resultados PCA
Standard deviation 2.250 1.359 1.243 1.056 0.5403 0.3283 Proportion of Variance 0.506 0.185 0.154 0.112 0.0292 0.0108 Cumulative Proportion 0.506 0.691 0.845 0.957 0.9861 0.9968 © DI/FCUL 8Análise em Coordenadas
Principais
• função cmdscale() realiza a ACooP
• Função dist() calcula matriz de distâncias
> hou <- read.xls("housing.data.xls") > houd <- dist(hou)
> loc <- cmdscale(houd) > x <- loc[,1]
> y <- loc[,2]
> plot(x, y, type="n", xlab="Coord 1", ylab="Coord 2", main="PCooA")
© DI/FCUL
9
Escalagem multidimensional
• função cmdscale() faz escalagem multidimensional usando o métodode Kruskal
– permite definir o nº de componentes – necessita de inicializador
– permite controlar o stress
> library(MASS) > win<-read.csv("wine.csv") > wind<-dist(win[,2:14]) > mds<-isoMDS(wind,cmdscale(wind,5),5,maxit=10) > x = mds$points[,1] > y = mds$points[,2] > plot(x,y,main="Escalagem Multidimensional") > text(x,y,win$Class)
Mapas auto organizados (SOM)
É necessário importar a biblioteca "som"
> library(som)> dat<-read.table("aa1.txt") > my_som<-som(dat,3,3)
> my_som <- som(dat, topol="hexa", 3,3) > plot(som)
© DI/FCUL
11
Scripts em R
• O R como ambiente de programação permite
o armazenamento dos scripts criados
– Um script pode ser criado e salvo em separado e executado quando for necessário
– Há editores muito evoluidos como o Tinn-R que permitem programação profissional de módulos sofisticados em R © DI/FCUL 12
Mecanismos de controle de
programas
• if
if (condicao) {se verdadeiro} else {se falso}
• for
for(var in sequence) { instruções}
• while
© DI/FCUL
13
Funções
• Um script pode ser composto por um número arbitrário de funções
• Funções podem ser definidas através de function(). Exemplo:
normalize<-function(dat) {
med<-mean(dat) #calcula a media stdev<-sd(dat) # e o devio padrão
(dat-med)/stdev # retorna os dados normalizados }
• Pode ser chamada esta função como:
> normalize(dados)
• Funções podem ser editadas individualmente através da função fix()
– é possível ver qualquer função feita em R!
Programação em R
• Leitura de scripts – comando source()
> source("/home/afalcao/myscript.R", chdir=T)
– Pode ser chamado através do menu do R
• Execução através da linha de comandos:
R CMD BATCH [ficheiro]
• Desenvolvimento de módulos e bibliotecas:
– c.f. Venables and Ripley "S Programming" Springer Verlag
© DI/FCUL
15
Exercício
•
Fazer uma função mypca(dat) que faça a análise
em componentes principais usando a matriz das
covariâncias (ou correlações)
a) de acordo com o tipo ('r' ou 'v') assim fará a matriz das correlações ou covariãncias
b) poderá escalar os valores para reportarem a percentagem de variãncia explicada por cada componente
c) faça um plot dos valores (pode usar a função line())
© DI/FCUL
16
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