Pré-processamento de Dados
|
|
|
- Evelyn Prada de Sousa
- 8 Há anos
- Visualizações:
Transcrição
1 Pré-processamento de Dados Fabrício Olivetti de França Universidade Federal do ABC
2 Pré-Processamento dos Dados
3 Tópicos 1. Pré-Processamento dos Dados 2. Conceitos Básicos 3. Representação Textual 4. Padrões Recorrentes 5. Padronizando e Normalizando os Atributos 6. Paralelizando o Pré-Processamento 1
4 Conceitos Básicos
5 Data Sets Conjunto de objetos de dados. Objeto de dados é uma entidade: funcionário de uma empresa medições da atividade cerebral em um paciente descrição de uma ocorrência policial 2
6 Objetos de Dados Idade Local Valor do impulso elétrico etc. 3
7 Tipos de Atributos Categóricos: Nominal Binário Ordinal Numéricos: Intervalar Razão 4
8 Atributos Nominais Símbolos ou nomes descritivos: Descreve uma característica Não apresentam relação de ordem, apenas igualdade Ex.: ocupação, cor dos olhos, etc. 5
9 Atributos Binários Atributo nominal com apenas dois valores possíveis: 0 ou 1. Ex.: resultado de um exame, gênero, etc. 6
10 Atributos Ordinais Valores que apresentam ordem, mas não possuem relação de magnitude. Ex.: {péssimo, ruim, regular, bom, ótimo} 7
11 Atributos Intervalares Atributo numérico com relação de ordem e magnitude. Ex.: Temperatura de 20 C é 10 unidades mais quente do que 10 C. Não podemos dizer que 20 C é duas vezes mais quente do que 10 C. 8
12 Atributos Intervalares O 0 absoluto em Celsius está em C. 20 C está a de nenhum calor, o dobro desse calor seria ou C. 9
13 Atributos de Razões Atributos numéricos com a mesmas propriedades do intervalar, mas com um ponto-zero. Altura Contagem de palavras Temperatura em Kelvin 10
14 Representando Objetos Precisamos de uma representação numérica. Dados numéricos: ok! (ou quase sempre ok) Dados nominais: vetor binário Dados ordinais: rank 11
15 Representando Objetos Tabela 1: Base de Dados. Profissão Conceito Nota Engenheiro A 9.5 Professor B 8.4 Engenheiro A 7.3 Gerente D
16 Atributos Categóricos Binários Tabela 2: Base de Dados. Engenheiro Professor Gerente Conceito Nota A B A D
17 Atributos Ordinais Numéricos # conceitos = 5 Rank: 5, 4, 3, 2, 1 z = (rank 1) # 1 Tabela 3: Base de Dados. Engenheiro Professor Gerente Conceito Nota
18 Leitura da Base de Dados data Profissao = Engenheiro Professor Gerente Estudante deriving (Show, Read, Eq, Enum, Bounded) data Conceito = F D C B A deriving (Show, Read, Enum) type Nota = Double type Objeto = (Profissao, Conceito, Nota) type Objeto = [Double] 15
19 Leitura da Base de Dados parsefile :: String -> [Objeto] parsefile file = map parseline (lines file) where parseline l = toobj (words l) toobj [w1, w2, w3] = (read w1 :: Profissao, read w2 :: Conceito, read w3 :: Nota) A função words separa uma string em uma lista de strings cortando nos caracteres de espaço. 16
20 Leitura da Base de Dados transformdata :: [Objeto] -> [Objeto ] transformdata data = map parseobj data where parseobj (prof, conc, nota) = (binariza prof) ++ [rank conc, nota] 17
21 Leitura da Base de Dados binariza :: Profissao -> [Double] binariza p = map bool2double [p == p p <- profissoes] where profissoes = [minbound..] :: [Profissao] bool2double True = 1.0 bool2double _ =
22 Leitura da Base de Dados rank :: Conceito -> Double rank co = (fromenum co) / (fromenum A) where fromenum = fromintegral. fromenum 19
23 Fluxo dos Dados A leitura e transformação dos dados segue um fluxo bem definido. É fácil perceber que, enquanto uma linha do arquivo está sendo processada pela função transformdata, outra pode ser processada pela função parsefile. Arquivo parsefile transformdata 20
24 Representação Textual
25 Mineração de Textos Documentos de textos: Não possuem representação vetorial Interdependência dos atributos Tamanho variável 22
26 Textos como conjuntos Se representarmos os documentos de textos como o conjunto de suas palavras: D1 = Estou assistindo a uma aula de Big Data, mas tudo que aprendi foi Haskell durante a aula! D2 = Hoje aprendi Haskell na aula, será que o que aprendi será útil na minha vida? 23
27 Textos como conjuntos Se representarmos os documentos de textos como o conjunto de suas palavras: D1 = {Estou, assistindo, a, uma, aula, de, Big, Data, mas, tudo, que, aprendi, foi, Haskell, durante, aula!} D2 = {Hoje, aprendi, Haskell, na, aula, será, que, o, útil, minha, vida?} 24
28 Textos como conjuntos Calculando a similaridade de Jaccard, temos: D1 D2 = {que, aprendi, Haskell} D1 D2 = {Estou, assistindo, a, uma, aula, de, Big, Data, mas, tudo, que, aprendi, foi, Haskell, durante, aula!, Hoje, na, aula, será, o, útil, minha, vida?} J(D1, D2) = 3 24 = Essa representação é conhecida como Bag-of-Words, em que geramos os atributos do texto como atributos categóricos. 25
29 Normalização do Texto Pode ser interessante padronizar a forma do texto para termos serem considerados como um elemento único do conjunto independente de como é escrito. Por exemplo: Estou, estou, estou, aula!, aula, aula?, útil, util. D1 = {estou, assistindo, a, uma, aula, de, big, data, mas, tudo, que, aprendi, foi, haskell, durante, aula} D2 = {hoje, aprendi, haskell, na, aula, sera, que, o, util, minha, vida} J(D1, D2) = 4 23 =
30 Eliminação de atributos irrelevantes Podemos eliminar palavras que não apresentam significado sozinhas: D1 = {estou, assistindo, aula, big, data, tudo, aprendi, haskell, durante, aula} D2 = {hoje, aprendi, haskell, aula, sera, util, minha, vida} J(D1, D2) = 4 14 =
31 Bag-of-Words type Doc = String type Token = String bagofwords :: [Doc] -> [[Token]] bagofwords docs = naovazio $ map tokeniza docs where tokeniza doc = nub $ filter maisde2 $ map normaliza (words doc) normaliza palavra = map tolower $ filter isalphanum palavra maisde2 palavra = (length palavra) > 2 naovazio xs = filter (not. null) xs 28
32 Bag-of-Words A função tolower converte um caractere maiúsculo para minúsculo, e a função isalphanum retorna verdadeiro se o caractere é uma letra do alfabeto ou um número. 29
33 Fluxo dos Dados O fluxo dos dados pode ser descrito com o seguinte fluxograma: map tokeniza words map normaliza filter isalphanum map tolower naovazio nub filter maisde2 30
34 Term-Frequency Se um termo aparece repetidas vezes em um documento, isso significa que ele pode ter uma importância maior do que os outros termos. No nosso exemplo, a repetição do termo Haskell indica um dos temas dos nossos documentos. 31
35 Term-Frequency A informação de frequência pode ser importante para a representação de nossos documentos. Podemos fazer então: fn(t, d) = f (t, d), d com f (t, d) sendo a frequência do termo t no documento d e d a quantidade de termos no documento d. 32
36 Term-Frequency A ideia para computar os vetores TF é primeiro representar cada documento como uma lista (token, 1.0) e, em seguida: Ordenar essa lista pelo token Agrupar os itens com mesmo token Somar os valores em cada grupo Dividir os valores pelo número de tokens 33
37 TF type Freq = Double tf :: [Doc] -> [[(Token, Freq)]] tf docs = naovazio $ map tokeniza docs where tokeniza doc = fn $ map normtupla (words doc) normtupla w = (normaliza w, 1.0) 34
38 TF fn :: [(Token, Double)] -> [(Token, Freq)] A partir desse momento trabalharemos frequentemente com bases de dados representadas como listas de tuplas. Essas tuplas devem ser encaradas como chave e valor, respectivamente. Para tornar o código mais legível, vamos definir as funções mapbykey, foldbykey, groupbykey, sortbykey 35
39 mapbykey mapbykey aplica a função g apenas no valor da tupla, deixando a chave intacta: mapbykey g = map (\(k,v) -> (k, g v)) 36
40 foldbykey foldbykey assume uma lista de tuplas chave-valor em que todas as chaves são iguais. Essa função aplica foldl1 apenas nos valores das tuplas, resultando em uma tupla (k, v) em que k é a chave de todas as tuplas e v o resultado da operação fold: foldbykey g = foldl1 (\(k1,v1) (k2,v2) -> (k1, g v1 v2)) 37
41 sortbykey sortbykey ordena uma lista de tuplas pela chave: sortbykey = sortby ordenatupla ordenatupla :: (Ord a) => (a, t) -> (a, t) -> Ordering ordenatupla (a1,b1) (a2,b2) a1 < a2 = LT a1 > a2 = GT a1 == a2 = EQ 38
42 groupbykey groupbykey agrupa uma lista ordenada de tuplas gerando uma lista de listas, com cada lista agrupando as tuplas de mesma chave: groupbykey = groupby agrupatupla agrupatupla :: (Eq a) => (a, t0) -> (a, t0) -> Bool agrupatupla (a1, b1) (a2, b2) = a1==a2 groupbykey [(1,0.1), (1,0.2), (2,0.1)] == [ [(1,0.1),(1,0.2)], [2,0.1] ] 39
43 TF fn :: [(Token, Double)] -> [(Token, Freq)] fn tokens = mapbykey (/n) $ map (foldbykey (+)) $ groupbykey $ sortbykey tokens where n = length tokens 40
44 Fluxo dos Dados O fluxo dos dados pode ser descrito com o seguinte fluxograma: map tokeniza words map normaliza sortbykey groupbykey mapbykey map foldbykey 41
45 Inverse Document Frequency Algumas palavras aparecem com uma frequência muito superior as demais, como: e, que, ou, etc. Essas palavras não costumam apresentar um significado discriminatório e, portanto, podem ter um peso menor. Para isso podemos multiplicar o TF por: idf (t) = log D {d D : t D} 42
46 TF-IDF Como veremos mais adiante, é possível pensar no vetor IDF como uma matriz associativa. Para isso utilizaremos o HashMap do Haskell. idf :: [[(Token, Freq)]] -> M.HashMap Token Freq idf corpus = M.fromList $ mapbykey (\v -> log (n/v)) $ map (foldbykey (+)) $ groupbykey $ sortbykey $ map (\ (k,v) -> (k,1)) $ concat corpus where n = length corpus 43
47 HashMap -- importa a biblioteca HashMap.Strict apelidade de M import qualified Data.HashMap.Strict as M -- cria um mapa M.HashMap Integer Double da lista de tuplas mapa = M.fromList [(1, 0.1), (2, 0.3), (3, 0.04)] mapa M.! 2 -- retorna 0.3 concat [ [1,2], [3,4] ] = [1,2,3,4] 44
48 TF-IDF tfidf :: [[(Token, Freq)]] -> M.HashMap Token Freq -> [[(Token, Freq)]] tfidf tf idf = map multidf tf where multidf = mapbykey (\(k,v) -> (k, v * (idf M.! k)) ) 45
49 Fluxo dos Dados O fluxo dos dados pode ser descrito com o seguinte fluxograma: map multidf mapbykey concat map sortbykey fromlist mapbykey map foldbykey groupbykey 46
50 Padrões Recorrentes
51 Padrões de sequência de funções Nos exemplos anteriores, podemos perceber um padrão recorrente de chamada de funções utilizadas em diversas soluções: map (foldbykey (+)) $ groupbykey $ sortbykey Esse padrão precede a chamada de uma função map que transforma um valor em uma tupla chave-valor (k, v). 49
52 Padrões de sequência de funções Basicamente esse padrão combina os valores das tuplas com a mesma chave utilizando uma função (nos exemplos utilizamos (+)). É interessante, então, criar a função: combine :: Ord k => (v -> v -> v) -> [(k, v)] -> [(k, v)] combine f xs = map (foldbykey f) $ groupbykey $ sortbykey xs Com isso, muitas funções se tornam sequências de combine. map. 50
53 fn fn :: [(Token, Double)] -> [(Token, Freq)] fn tokens = mapbykey (/n) $ combine (+) tokens where n = length tokens 51
54 idf Como veremos mais adiante, é possível pensar no vetor IDF como uma matriz associativa. Para isso utilizaremos o HashMap do Haskell. idf :: [[(Token, Freq)]] -> M.HashMap Token Freq idf corpus = M.fromList $ mapbykey (\v -> log (n/v)) $ combine (+) $ mapbykey (\v -> 1) $ concat corpus where n = length corpus 52
55 Padronizando e Normalizando os Atributos
56 Padronização Muitos algoritmos de Aprendizado de Máquina supõem que os valores dos atributos seguem N(0, 1). Se um atributo não segue esse padrão, pode dominar a função-objetivo e se tornar importante demais. 53
57 Padronização Dado uma matriz de dados X, podemos padronizar os valores de cada um de seus elementos como: ˆX i,j = X i,j X i,j σ j 54
58 Padronização padroniza :: [[Double]] -> [[Double]] padroniza x = mapcolunas padroniza x padroniza :: [Double] -> [Double] padroniza x = devmedia./ sigma where media xs = (sum xs) / n devmedia = x.- (media x) sigma = sqrt $ media $ devmedia.** 2 n = length x 55
59 Fluxo dos Dados O fluxo dos dados pode ser descrito com o seguinte fluxograma: mapcolunas padroniza media devmedia./.** 2 media 56
60 Escalonamento Algoritmos baseados em métodos de gradiente tendem a se beneficiar quando os atributos estão entre [0, 1]. ˆX i,j = X i,j min X :,j max X :,j min X :,j 57
61 Padronização maxminscale :: [[Double]] -> [[Double]] maxminscale x = mapcolunas maxminscale x maxminscale :: [Double] -> [Double] maxminscale x = map scale x where scale xi = (xi - minimum x) / (maximum x - minimum x) 58
62 Normalização Finalmente podemos normalizar cada amostra da base utilizando a normalização de vetores: X i,j ˆX i,j = X i p 59
63 Padronização normaliza :: [[Double]] -> [[Double]] normaliza x = map normaliza x where normaliza xi = xi./ (norma xi) norma xi = sqrt. sum $ xi.^ 2 60
64 Paralelizando o Pré-Processamento
65 Paralelizando chunks Conforme vimos na aula anterior, ao paralelizar um programa objetivamos minimizar o número de sparks e tentar distribuir a tarefa de forma homogênea entre as threads. 62
66 Paralelizando chunks Para isso adotamos a estratégia de dividir nossos dados em pedaços (denominados chunks), processar cada chunk em paralelo e, em seguida, juntar os resultados. 63
67 Paralelizando chunks Vamos continuar utilizando o tipo ChunksOf definido anteriormente para representar nossos arquivos distribuídos entre diversas máquinas. 64
68 Paralelizando Leitura dos Dados Com isso, nossa função de processamento dos dados em paralelo simplesmente aplica a função transformdata em cada um dos chunks em paralelo. transformdatapar :: ChunksOf [Objeto] -> ChunksOf [Objeto ] transformdatapar chunks = (map transformdata chunks using parlist rdeepseq) Note que nenhuma alteração é necessária para a função transformdata que continuará recebendo o tipo [Objeto] e retornando [Objeto ]. 65
69 Paralelizando a Padronização Na padronização, não podemos calcular as três partes da equação em paralelo. Além disso, temos um outro desafio, recebemos pedaços de linhas, mas temos que trabalhar com as colunas: padroniza :: [[Double]] -> [[Double]] padroniza x = mapcolunas padroniza x padroniza :: [Double] -> [Double] padroniza x = (x.- media)./ sigma where media = (sum x) / n sigma = sqrt $ sum $ (x.- media).** 2 n = fromintegral $ length x 66
70 Paralelizando a Padronização Primeiro, vamos alterar a assinatura da função para sabermos onde queremos chegar: padronizapar :: ChunksOf [[Double]] -> ChunksOf [[Double]] padronizapar chunks = parmap padroniza chunks where padroniza = map (\xi -> (xi.-. media)./. desvio) media = mapreduce id (.+.) chunks desvio = map (\x -> sqrt (x/n)) $ mapreduce desvquad (.+.) chunks desvquad xi = (xi.-. media).**2 n = sum $ map length chunks 67
71 Paralelizando a Normalização A implementação paralela de normaliza pode ser feita diretamente aplicando a versão sequencial em cada chunk. normalizapar :: ChunksOf [[Double]] -> ChunksOf [[Double]] normalizapar chunks = parmap normaliza chunks normaliza :: [[Double]] -> [[Double]] normaliza x = map normaliza x where normaliza xi = xi./ (norma xi) norma xi = sqrt. sum $ xi.^ 2 68
72 Paralelizando o TF Da forma que organizamos o algoritmo de TF, utilizando map e combine, basta aplicar a função tf em cada chunk. tfpar :: ChunksOf [Doc] -> ChunksOf [[(Token, Freq)]] tfpar chunks = parmap tf chunks tf :: [[Token]] -> [[(Token, Freq)]] tf docs = map normfreq docs where normfreq doc = fn $ map (\w -> (w, 1.0)) doc 69
73 Paralelizando a o IDF Para paralelizar o IDF, precisamos calcular a contagem de quantos documentos contém cada token em cada chunk. Em seguida, é necessário combinar os resultados de cada chunk para então calcular o idf. idfpar :: ChunksOf [[(Token, Freq)]] -> M.HashMap Token Freq idfpar chunks = M.fromList $ mapbykey (\v -> log (n/v)) $ combine (+) $ concat $ (map idf chunks using parlist rdeepseq) where n = sum $ map length chunks idf :: [[(Token, Freq)]] -> [(Token, Freq)] idf corpus = combine (+) $ map (\(k,v) -> (k,1) ) $ concat corpus 70
74 Padrão de paralelismo Note que o padrão de paralelismo do cálculo do IDF difere dos anteriores pois é necessário o uso do combine no lugar de foldl1 e a aplicação de concat na saída do map. 71
75 Padrão de paralelismo Uma função genérica pode ser escrita da seguinte forma e aplicada em muitas situações em que trabalhamos com lista de tuplas: mapreducebykey :: (NFData k, NFData v, Ord k) => (a -> (k, v)) -> (v -> v -> v) -> ChunksOf [a mapreducebykey f g xs = combine g $ concat $ (map f xs using parlist rdeepseq) where f xi = combine g $ map f xi 72
76 Padrão de paralelismo Nossa função idfpar ficaria: idfpar :: ChunksOf [[(Token, Freq)]] -> M.HashMap Token Freq idfpar chunks = M.fromList $ mapbykey (\v -> log (n/v)) $ mapreducebykey (\(k,v) -> (k,1)) (+) $ parmap concat chunks where n = sum $ map length chunks 73
Pré-processamento dos Dados e Análise Exploratória
Pré-processamento dos Dados e Análise Exploratória Prof. Fabrício Olivetti de França Universidade Federal do ABC Processando os dados Data Sets Conjunto de objetos de dados. Objeto de dados é uma entidade:
Sumarizando Dados. Fabrício Olivetti de França. Universidade Federal do ABC
Sumarizando Dados Fabrício Olivetti de França Universidade Federal do ABC Sumarizando os dados Sumarização Antes de extrair informações da base de dados, é importante entender seu conteúdo. Sumarização:
Programação Paralela. com Haskell. Fabrício Olivetti de França. Universidade Federal do ABC
Programação Paralela com Haskell Fabrício Olivetti de França Universidade Federal do ABC Trabalhando com Vetores e Matrizes Vetores Em muitos algoritmos de Mineração de Dados, trabalharemos com vetores
MapReduce Mapeando e reduzindo
MapReduce Mapeando e reduzindo Prof. Fabrício Olivetti de França Universidade Federal do ABC Motivação Vimos até então que nosso maior problema é a quantidade de dados. O processamento não pode ser distribuído
Paradigmas de Programação
Paradigmas de Programação Fabrício Olivetti de França 21 de Junho de 2018 1 Listas 2 Listas Uma das principais estruturas em linguagens funcionais. Representa uma coleção de valores de um determinado tipo.
Aula 7 Medidas de Distância. Profa. Elaine Faria UFU
Aula 7 Medidas de Distância Profa. Elaine Faria UFU - 2017 Agradecimentos Este material é baseado No livro Tan et al, 2006 Nos slides do prof Andre C. P. L. F. Carvalho Agradecimentos Ao professor André
Programação Funcional em Haskell
Funções Genéricas sobre Listas Junho - 2009 1 Funções Genéricas 2 Introdução Em Haskell, como em qualquer linguagem funcional, funções são objetos de primeira classe, em que funções não avaliadas podem
Aprendizado de Máquina (Machine Learning)
Ciência da Computação (Machine Learning) Aula 02 Representação dos dados Pré-processamento Max Pereira Tipo de Dados Os atributos usados para descrever objetos de dados podem ser de diferentes tipos: Quantitativos
Aula 6 Mineração Streams Representação dos Dados. Profa. Elaine Faria UFU
Aula 6 Mineração Streams Representação dos Dados Profa. Elaine Faria UFU - 2017 Agradecimentos Este material é baseado No livro Tan et al, 2006 Nos slides do prof. Andre C. P. L. F. Carvalho Agradecimentos
Funções de Ordem Superior
Programação Funcional UFOP DECOM 2014.1 Aula prática 15 Funções de Ordem Superior Sumário Resumo Uma função é conhecida como função de ordem superior quando ela tem uma função como argumento ou resulta
Programação Funcional Capítulo 3 Tipos e Classes
Programação Funcional Capítulo 3 Tipos e Classes José Romildo Malaquias 2012.1 Departamento de Computação Universidade Federal de Ouro Preto 1 / 68 1 Valores, expressões e tipos 2 Listas 3 Tuplas 4 Funções
Pedro Vasconcelos DCC/FCUP. Programação Funcional 2 a Aula Tipos e classes
Programação Funcional 2 a Aula Tipos e classes Pedro Vasconcelos DCC/FCUP 2014 Tipos Um tipo é um nome para uma coleção de valores relacionados. Por exemplo, o tipo Bool True contém dois valores lógicos:
Pedro Vasconcelos DCC/FCUP. Programação Funcional 4 a Aula Listas
Programação Funcional 4 a Aula Listas Pedro Vasconcelos DCC/FCUP 2014 Listas Listas são coleções de elementos: em que a ordem é significativa; possivelmente com elementos repetidos. Listas em Haskell Uma
Pedro Vasconcelos DCC/FCUP. Programação Funcional 2 a Aula Tipos e classes
Programação Funcional 2 a Aula Tipos e classes Pedro Vasconcelos DCC/FCUP 2012 Tipos Um tipo é um nome para uma coleção de valores relacionados. Por exemplo, o tipo Bool True contém dois valores lógicos:
Programação Funcional Aulas 5 & 6
Programação Funcional Aulas 5 & 6 Sandra Alves DCC/FCUP 2016/17 Definições usando outras funções Podemos definir funções usando outras previamente definidas (por exemplo: do prelúdio-padrão). Exemplo:
Programação Funcional
Programação Funcional Lucília Camarão de Figueiredo Universidade Federal de Ouro Preto [email protected] Aula 07: Funções de Ordem Superior 1 INTRODUÇÃO Uma função é chamada função de ordem superior
Funções de Ordem Superior
Programação Funcional Capítulo 7 Funções de Ordem Superior José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2013.2 1/37 1 Funções de Ordem Superior 2 Composição de funções
MINERAÇÃO DE DADOS. Thiago Marzagão MINERAÇÃO DE TEXTOS. [email protected]. Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 1 / 25
MINERAÇÃO DE DADOS Thiago Marzagão [email protected] MINERAÇÃO DE TEXTOS Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 1 / 25 transformando textos em dados Documento 1: "Não trabalho para ter clientes;
Algoritmos - 3. Alexandre Diehl. Departamento de Física - UFPel
Algoritmos - 3 Alexandre Diehl Departamento de Física - UFPel Estrutura sequencial Estrutura condicional Estrutura de repetição PCF2017 2 Estrutura sequencial As ações ao longo do algoritmo são executadas
Programação de Computadores III
Programação de Computadores III Introdução ao FORTRAN Professor Leandro Augusto Frata Fernandes [email protected] Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.1/tcc-00.157
Programação Funcional. Capítulo 21. Parsers. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2018.
Programação Funcional Capítulo 21 Parsers José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2018.2 1/51 1 Parsers 2 Definindo um tipo para parsers 3 Parsers básicos 4
Programação de Computadores III
Programação de Computadores III Introdução ao FORTRAN Professor Hugo de Oliveira Barbalho [email protected] Material produzido pelo professor: Leandro Augusto Frata Fernandes ([email protected])
Organização de Computadores I
Organização de Computadores I Aula 5 Material: Diego Passos http://www.ic.uff.br/~debora/orgcomp/pdf/parte5.html Organização de Computadores I Aula 5 1/21 Tópicos Representação de números negativos: Sinal-magnitude.
Aula prática 14. Expressão Lambda
Programação Funcional UFOP DECOM 2014.1 Aula prática 14 Expressão Lambda Sumário Resumo Expressões lambdas são funções anônimas que podem ser usadas como qualquer outro valor de primeira classe. Nesta
Programação de Computadores:
Instituto de C Programação de Computadores: Introdução ao FORTRAN Luis Martí Instituto de Computação Universidade Federal Fluminense [email protected] - http://lmarti.com Introdução ao FORTRAN Cinco aspectos
Lista de Exercício de Linguagens de Programação Prog. Funcional
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE CIÊNCIA E TECNOLOGIA CURSO DE CIÊNCIA DA COMPUTAÇÃO Lista de Exercício de Linguagens de Programação Prog. Funcional 1) Construa uma função del_posicao_n ::
Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.
Computação L2 Linguagem C++ [email protected] Observação: Material Baseado na Disciplina Computação Eletrônica. Alfabeto São os símbolos ( caracteres ) permitidos na linguagem: Letras (maiúsculas e minúsculas);
Pedro Vasconcelos DCC/FCUP. Programação Funcional 18 a Aula Plataforma Haskell
Programação Funcional 18 a Aula Plataforma Haskell Pedro Vasconcelos DCC/FCUP 2014 A plataforma Haskell Compilador e interpretador (GHC/GHCi) Ferramentas de desenvolvimento Um conjunto de módulos de base:
Estruturas de Dados Estruturas de Dados Fundamentais
Estruturas de Dados Estruturas de Dados Fundamentais Prof. Eduardo Alchieri Estruturas de Dados Fundamentais Todos os tipos abstratos de dados (pilhas, filas, deques, etc.) podem ser implementados usando
Expressões Lambda. Programação Funcional. Capítulo 7. José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto
Programação Funcional Capítulo 7 Expressões Lambda José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2012.1 1/64 1 Valores de primeira classe 2 Expressão lambda 3 Aplicação
Linguagens de Programação. Programação Funcional e Haskell Programação Interativa Thiago Alves
Linguagens de Programação Programação Funcional e Haskell Programação Interativa Thiago Alves 1 Introdução Vimos como Haskell pode ser usado para escrever programas batch que recebem todas suas entradas
Aula 2: Resumo de Dados
Aula 2: Resumo de Dados Professor: José Luiz Padilha da Silva email: [email protected] Departamento de Estatística Universidade Federal do Paraná Curitiba, 2018 José Luiz Padilha da Silva (UFPR) ce003
SCC0173 Mineração de Dados Biológicos
SCC073 Mineração de Dados Biológicos Análise Exploratória de Dados Parte A: Revisão de Estatística Descritiva Elementar Prof. Ricardo J. G. B. Campello SCC / ICMC / USP Tópicos Análise Exploratória de
Listas em Haskell. Listas. Linguagem Haskell. Maria Adriana Vidigal de Lima. Faculdade de Computação - UFU. Setembro
em Haskell Linguagem Haskell Faculdade de Computação - UFU Setembro - 2009 em Haskell 1 em Haskell Noções sobre Construção de por Compreensão Funções Sobre Processamento de Fundamentos em Haskell Noções
Pedro Vasconcelos DCC/FCUP. Programação Funcional 13 a Aula Definição de tipos
Programação Funcional 13 a Aula Definição de tipos Pedro Vasconcelos DCC/FCUP 2014 Declarações de sinónimos Podemos dar um nome novo a um tipo existente usando uma declaração de sinónimo. Exemplo (do prelúdio-padrão):
Informática para Ciências e Engenharias 2013/14. Teórica 7
Informática para Ciências e Engenharias 2013/14 Teórica 7 Na aula de hoje... Controlo de execução ciclos condicionais while end Exemplos raiz quadrada histograma fórmula química while while e matrizes
Métodos Computacionais em Física
Métodos Computacionais em Física Tatiana G. Rappoport [email protected] 214-2 Variáveis indexadas (arrays) Diversos problemas requerem o uso de vetores ou matrizes: Um conjunto de dados do mesmo tipo
Conceitos de Linguagens de Programação
Conceitos de Linguagens de Programação Aula 09 Programação Funcional (Haskell) Edirlei Soares de Lima Programação Funcional A programação funcional modela um problema computacional
Algoritmos e Estrutura de Dados Aula 02 Listas em Python
Algoritmos e Estrutura de Dados Aula 02 Listas em Python Profa. Alana Oliveira e Prof. Davi Viana [email protected] e [email protected] Se não entender, pergunte! 2 1 Dados e Tipos de Dados Um dado
Extraindo atributos de textos. Prof. Fabrício Olivetti de França
Extraindo atributos de textos Prof. Fabrício Olivetti de França Configuração Faça o download do Anaconda Python: https://www.continuum.io/downloads E do notebook: http://folivetti.github.io/courses/lcon2016/
Haddop, MapReduce e Spark
Haddop, MapReduce e Spark Fabrício Olivetti de França Universidade Federal do ABC Tópicos 1. Conceitos Básicos 2. MapReduce 3. Spark 4. Transformações Básicas 5. Ações Básicas 1 Conceitos Básicos Hadoop
Arquitetura de Computadores Sistema de Numeração. Apresentado por Prof. Fred Sauer Mat. Elaborado por Prof. Ricardo Quintão
Arquitetura de Computadores Sistema de Numeração Apresentado por Prof. Fred Sauer Mat. Elaborado por Prof. Ricardo Quintão A base de representação numérica de um número está relacionada com a quantidade
MATRIZES - PARTE Definição e Manipulação de Matrizes AULA 21
AULA 21 MATRIZES - PARTE 1 21.1 Definição e Manipulação de Matrizes Sabemos como definir variáveis de um novo tipo de dados, denominado vetor, que representam seqüências de valores de um mesmo tipo. Por
Redes Neurais Artificiais
Redes Neurais Artificiais Fabrício Olivetti de França Universidade Federal do ABC Tópicos 1. Redes Neurais Biológicas 2. Neurônio Artificial 3. Rede Neural Artificial 4. Keras 1 Redes Neurais Biológicas
Manipulação básica de dados no PDI
Manipulação básica de dados no PDI Conjunto de steps para transformação Categoria Transform Criação de novos campos Uso de expressões Adição de constantes Cálculo de valores Conversão de formatos Correspondência
Programação Funcional
Programação Funcional com Haskell Fabrício Olivetti de França Universidade Federal do ABC Paradigma Funcional Paradigmas Em muitos cursos de Computação e Engenharia iniciam com paradigma imperativo. Exemplo
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Funções 1. Crie uma função que recebe como parâmetro um número inteiro
Jarley Nóbrega
1 Jarley Nóbrega [email protected] Pentaho Data Integration Agenda Manipulação de dados no PDI Controlando o fluxo de dados Transformações no rowset Tratamento de erros e validação de dados Manipulação
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python Exercícios: Funções 1. Crie uma função que recebe como parâmetro um número
Regressão Polinomial e Simbólica
Regressão Polinomial e Simbólica Fabrício Olivetti de França Universidade Federal do ABC Tópicos 1. Variáveis Não-Lineares 2. Regressão Simbólica 1 Variáveis Não-Lineares Variáveis Não-Lineares Considere
Pedro Vasconcelos DCC/FCUP. Programação Funcional 14 a Aula Um verificador de tautologia
Programação Funcional 14 a Aula Um verificador de tautologias Pedro Vasconcelos DCC/FCUP 2014 Proposições lógicas Uma proposição lógica é construida apartir de: constantes T, F (verdade e falsidade) variáveis
Ficha 1 Noções de sequência e decisão em algoritmia
Ficha 1 Noções de sequência e decisão em algoritmia 1. Ler uma temperatura em Celsius e converter para Fahrenheit. Elabore o algoritmo e especifique as estruturas de dados necessárias para a resolução
Prof. MSc. David Roza José 1/39
1/39 Eliminação de Gauss Objetivos: Saber resolver pequenos sistemas de equações com o método gráfico e regra de Cramer; Compreender como implementar a eliminação progressiva e substituição regressiva;
Capítulo 1 - Lógica e Algoritmos
1. Introdução à Lógica de Programação Capítulo 1 - Lógica e Algoritmos A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir
Introdução à Programação uma Abordagem Funcional
Universidade Federal do Espírito Santo Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres [email protected] CT VII - Sala 34 Departamento de Informática Centro Tecnológico
Profª Ana Lúcia Lima Marreiros Maia Profª Fabiana Cristina Bertoni
Profª Ana Lúcia Lima Marreiros Maia Profª Fabiana Cristina Bertoni Motivação e Objetivos Etapas do Desenvolvimento de um Sistema de Recuperação de Informações (SRI): Pré-processamento; Representação; Extração
Marina Andretta. 10 de outubro de Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis.
Solução básica viável inicial Marina Andretta ICMC-USP 10 de outubro de 2016 Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis. Marina Andretta (ICMC-USP) sme0211
Pedro Vasconcelos DCC/FCUP. Programação Funcional 7 a Aula Funções de ordem superior
Programação Funcional 7 a Aula Funções de ordem superior Pedro Vasconcelos DCC/FCUP 2013 Funções de ordem superior Uma função é de ordem superior se tem um argumento que é uma função ou um resultado que
Introdução à Ciência da Computação II
Introdução à Ciência da Computação II 2semestre/200 Prof Alneu de Andrade Lopes Apresentação com material gentilmente cedido pelas profas Renata Pontin Mattos Fortes http://wwwicmcuspbr/~renata e Graça
Programação Funcional. Aula 6. Listas. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2011.
Programação Funcional Aula 6 Listas José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011.2 1/104 1 Listas 2 Strings 3 Seqüências aritméticas 4 Casamento de padrão com
Interpolação polinomial
Quarto roteiro de exercícios no Scilab Cálculo Numérico Rodrigo Fresneda 8 de abril de 0 Guia para respostas: Entregue suas respostas às tarefas contidas no roteiro de cada uma das quatro atividades, incluindo
Tipos Algébricos. Programação Funcional. Capítulo 11. José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto
Programação Funcional Capítulo 11 Tipos Algébricos José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2012.1 1/33 1 Tipos Algébricos 2/33 Tópicos 1 Tipos Algébricos 3/33
Python + Spark = PySpark. Prof. Fabrício Olivetti de França Universidade Federal do ABC
Python + Spark = PySpark Prof. Fabrício Olivetti de França Universidade Federal do ABC Spark Plataforma para processamento de dados em larga escala. Baseado em transformações preguiçosas dos dados. Estende
Álgebra Linear Semana 03
Álgebra Linear Semana 3 Diego Marcon de Abril de 27 Conteúdo Dependência e independência linear 2 Independência linear e sistemas lineares 3 3 Transformações lineares 4 4 Matriz de uma transformação linear
Primeiro Exercício programa: Como o Google ordena páginas. MAP-2121 para EPUSP
Primeiro Exercício programa: Como o Google ordena páginas MAP-2121 para EPUSP 1 Instruções gerais Os exercícios computacionais pedidos na disciplina Cálculo Numérico têm por objetivo fundamental familiarizar
