Atena: um sistema para suporte ao planejamento na área de Gestão de Projeto
Web Data Mining com R: pré-processamento de dados [no R]
1. Web Data Mining com R:
processamento de dados [no R]
Fabr´ Jailson Barth
ıcio
Faculdade BandTec e VAGAS Tecnologia
Junho de 2013
2. Sum´rio
a
• Projeto R
• O que s˜o dados?
a
• Raw data versus dado tratado.
• Representa¸˜o de dados no R.
ca
Web Data Mining com R: processamento de dados [no R] —
Sum´rio
a
2
3. Projeto R
• http://www.r-project.org/
• R Studio - http://www.rstudio.com/
´
• E free
´
• E a linguagem de programa¸˜o mais popular para
ca
an´lise de dados
a
• Script ´ melhor que clicar e arastar:
e
´
E mais f´cil de comunicar.
a
Reproduz´
ıvel.
´
E necess´rio pensar mais sobre o problema.
a
• Existe uma quantia grande de pacotes dispon´
ıveis
Web Data Mining com R: processamento de dados [no R] —
Projeto R
3
4. Defini¸˜o de dados
ca
”Data are values of qualitative or quantitative variables,
belonging to a set of items.”
http://en.wikipedia.org/wiki/Data
Web Data Mining com R: processamento de dados [no R] —
Defini¸˜o de dados
ca
4
5. ”Data are values of qualitative or quantitative variables,
belonging to a set of items.”
Set of items: conjunto de itens (objetos) de interesse.
Web Data Mining com R: processamento de dados [no R] —
Defini¸˜o de dados
ca
5
6. ”Data are values of qualitative or quantitative variables,
belonging to a set of items.”
variables: uma medida ou uma caracter´
ıstica de um item.
Web Data Mining com R: processamento de dados [no R] —
Defini¸˜o de dados
ca
6
7. ”Data are values of qualitative or quantitative variables,
belonging to a set of items.”
qualitative: cidade de origem, sexo, fez ou n˜o
a
tratamento.
quantitative: peso, altura, press˜o do sangue.
a
Web Data Mining com R: processamento de dados [no R] —
Defini¸˜o de dados
ca
7
8. Raw data versus dados processados
Raw data
• Fonte original dos dados
• Geralmente dif´ para fazer algum tipo de an´lise
ıcil
a
http://en.wikipedia.org/wiki/Raw Data
Web Data Mining com R: processamento de dados [no R] —
Raw data versus dados processados
8
9. Dados processados
• Dados que est˜o prontos para serem analisados
a
• O processamento pode incluir merging, subsetting,
transforming, etc...
• Todas as etapas devem ser registradas
http://en.wikipedia.org/wiki/Compute data processing
Web Data Mining com R: processamento de dados [no R] —
Raw data versus dados processados
9
11. Dados brutos
considera¸˜o o projeto da aprendizagem que pensa como didaticamente os cursos devem ser projetados com o
ca
uso da tecnologia adequada. Isso inclui levar em conta os aspectos sociais e culturais envolvidos. Deixo abaixo
algumas indica¸˜es de leitura que tratam isso. Assim, acho que dizer que tecnologia deve ser usada de forma
co
respons´vel, n˜o ´ discutir MOOCs. Outro ponto importante ´ destacar que os MOOCs aparecem no contexto
a
a e
e
da educa¸˜o aberta e Ciencia aberta e inclui REAs, que costumavam ser chamados de objetos de aprendizem e
ca
agora discutem-se as licen¸as, as perspectivas de reutiliza¸˜o e de localiza¸˜o; os peri´dicos abertos que
c
ca
ca
o
reagem aos altos valores de assinaturas dos peri´dicos tradicionais, as novas formas de publica¸˜o incluindo
o
ca
blogs; a educa¸˜o hibrida; os ambientes pessoais de aprendizagem, etc. No geral
ca
Web Data Mining com R: processamento de dados [no R] —
Dados brutos
11
12. Exemplo de dado processado
Table 1: Exemplo de tabela com as transa¸˜es dos usu´rios
co
a
usu´rio
a
categoria1
categoria2
categoria3
···
categoriam
user1
0
2
0
···
1
user2
1
1
0
···
0
user3
2
0
1
···
0
user4
0
1
0
···
0
···
···
···
···
···
···
usern
1
1
0
···
1
Web Data Mining com R: processamento de dados [no R] —
Exemplo de dado processado
12
13. Tiny data
• Cada vari´vel (atributo) forma uma coluna.
a
• Cada observa¸˜o (exemplo) forma uma linha.
ca
• Cada tabela ou arquivo armazena dados sobre uma
observa¸˜o (i.e., pessoas / hospitais)
ca
• http://vita.had.co.nz/papers/tidy-data.pdf
Web Data Mining com R: processamento de dados [no R] —
Tiny data
13
16. Tipos de dados importantes no R
• Classes: Character, Numeric, Integer, Logical
• Objetos: Vector, Matrices, Data frames, List, Factors,
Missing Values
• Operadores: Subsetting, Logical Subsetting
Representa¸˜o de dados no R —
ca
Tipos de dados importantes no R
16
21. Vectors
Um conjunto de valores da mesma classe.
pesos = c(76.2, 80.3, 90, 117.4)
pesos
## [1] 76.2 80.3 90 117.4
nomes = c("maria", "carlos", "pedro")
nomes
## [1] "maria" "carlos" "pedro"
Representa¸˜o de dados no R —
ca
Vectors
21
22. Lists
Um conjunto de valores que pode ser heterogˆneo.
e
pesosV = c(76.2, 80.3, 90, 117.4)
nomesV = c("maria", "carlos", "pedro", "ant^nio")
o
myList <- list(pesos = pesosV, nomes = nomesV)
myList
##
##
##
##
##
$pesos
[1] 76.2
80.3
$nomes
[1] "maria"
Representa¸˜o de dados no R —
ca
Lists
90.0 117.4
"carlos"
"pedro"
"ant^nio"
o
22
23. Lists
Um conjunto de valores que pode ser heterogˆneo.
e
pesosV = c(76.2, 80.3, 90, 117.4)
nomesV = c("maria", "carlos", "pedro", "ant^nio")
o
myList <- list(pesos = pesosV, nomes = nomesV)
myList
##
##
##
##
##
$pesos
[1] 76.2
80.3
$nomes
[1] "maria"
Representa¸˜o de dados no R —
ca
Lists
90.0 117.4
"carlos"
"pedro"
"ant^nio"
o
23
24. Matrizes
Vetores com m´ltiplas dimens˜es.
u
o
myMatrix = matrix(c(1, 2, 3, 4), byrow = T, nrow = 2)
myMatrix
## [,1] [,2]
## [1,] 1 2
## [2,] 3 4
Representa¸˜o de dados no R —
ca
Matrizes
24
25. Data frames
M´ltiplos vetores de classes diferentes, mas com o mesmo
u
tamanho.
vector1 = c(188.2, 181.3, 193.4)
vector2 = c("jeff", "roger", "andrew", "brian")
myDataFrame = data.frame(heights = vector1,
firstNames = vector2)
## Error: arguments imply differing number of rows: 3, 4
myDataFrame
## Error: object ’myDataFrame’ not found
Representa¸˜o de dados no R —
ca
Data frames
25
26. Data frames
> vector1 = c(188.2, 181.3, 193.4)
> vector2 = c("jeff", "roger", "andrew")
> myDataFrame = data.frame(heights = vector1,
firstNames = vector2)
> myDataFrame
heights firstNames
1
188.2
jeff
2
181.3
roger
3
193.4
andrew
Representa¸˜o de dados no R —
ca
Data frames
26
27. Factors
Vari´veis qualitativas que podem ser inclu´
a
ıdas no modelo.
smoker = c("yes", "no", "yes", "yes")
smokerFactor = as.factor(smoker)
smokerFactor
## [1] yes no yes yes
## Levels: no yes
Representa¸˜o de dados no R —
ca
Factors
27
28. Missing values
No R os valores faltantes s˜o codificados como NA
a
vector1 <- c(188.2, 181.3, 193.4, NA)
vector1
## [1] 188.2 181.3 193.4 NA
is.na(vector1)
## [1] FALSE FALSE FALSE TRUE
Representa¸˜o de dados no R —
ca
Missing values
28
29. Subsetting
vector1 = c(188.2, 181.3, 193.4, 192.3)
vector2 = c("jeff", "roger", "andrew", "brian")
myDataFrame = data.frame(heights = vector1,
firstNames = vector2)
vector1[1]
## [1] 188.2
vector1[c(1, 2, 4)]
## [1] 188.2 181.3 192.3
Representa¸˜o de dados no R —
ca
Subsetting
29
30. Subsetting
myDataFrame[1, 1:2]
## heights firstNames
## 1 188.2 jeff
myDataFrame$firstNames
## [1] jeff roger andrew brian
## Levels: andrew brian jeff roger
Representa¸˜o de dados no R —
ca
Subsetting
30
31. Logical subsetting
myDataFrame[myDataFrame$firstNames == "jeff", ]
## heights firstNames
## 1 188.2 jeff
myDataFrame[heights < 190, ]
##
##
##
##
heights
1 188.2
2 181.3
4 192.3
firstNames
jeff
roger
brian
Representa¸˜o de dados no R —
ca
Logical subsetting
31