Para os cientistas de Big-Data “Trabalho de Limpeza dos Dados” é principal obstáculo para Insights

Essa matéria do NYT fala a respeito do principal gargalo que os “analistas de Big Data” enfrentam que é a parte de limpeza dos dados.

Quem está acompanhando, estudando ou mesmo comentando a mais de 2 anos sobre as áreas de Mineração de Dados, Machine Learning, e KDD sabe que o trabalho de tratamento dos dados representa 80% de todo esforço em análise de dados.

Por tanto, falando em termos computacionais, aplicar 80% de esforço em uma tarefa não é um problema mas sim uma característica tratando-se de processos sérios de KDD.

Com o fenômeno do “Big Data” muitos dos “analistas de dados” esqueceram-se de que uma das partes mais significativas de todo trabalho de análise está por trás do fato que gerou aquela informação, e não a análise por sí só. Isto é, quem compreende a estrutura e a conceitualização na qual aquele aquela informação é criada e posteriormente persistida, tem por definição lógica mais conhecimento sobre o dado do que quem apenas está fazendo o quarteto Treino – Cross Validation – Teste – Validação.

Realizando um exercício de alegoria, se realizássemos uma transposição de Big Data para Big Food  com os mesmos 3V (Volume, Velocidade, e Variedade), seria algo como falássemos somente sobre as características nutricionais dos alimentos (quantidade proteínas, carboidratos, gorduras) com todo o academicismo para passarmos uma ilusão de erudição; mas esquecendo que essas concentrações estão estritamente relacionadas a forma de criação/plantio desses insumos (e.g. esteroides para bovinos e aves, modificações genéticas para as sementes, etc.) o que obviamente pode indicar que a métrica final de análise (no caso as informações nutricionais) não passam de uma ilusão.

 Para saber mais sobre o porque o Big Data está criando analistas iludidos (como alguns do NYT) leiam essas referências aqui, aqui, aqui, aqui, aqui, aqui, e finalmente aqui.

Etiquetado , ,

Aprendizado de Máquina não é uma competição do Kaggle

Neste post da Julia Evans ela faz um paralelo entre um trabalho real de aprendizado de máquina que envolve conceitualização do projeto, escolha de métricas de desempenho, e alguns aspectos de pré-processamento de dados que são responsáveis pelos 80% do trabalho em análise de dados/aprendizado de máquina; com as competições do Kaggle que muitas vezes os competidores apenas escolhem uma técnica, fazem Cross-Validation e o problema está resolvido.

Etiquetado ,

Planilha de Aplicações de Aprendizado de Máquina

Diretamente do excelente site do Emanuel Ferm, ele trás uma planilha de estudos pessoais que ele usa para ver o determinado contexto de aplicação de alguma técnica de aprendizado de máquina.

cheat3

 

Etiquetado ,

Os perigos da segmentação racial na criação de modelos

Essa á uma nota mais pessoal do que um post propriamente dito, então relevem o âmbito personalista do que será escrito abaixo.

No blog Mathbabe,é apontada uma questão interessante sobre a reportagem da Gillian Tett no Financial Times sobre o fato de que a modelagem preditiva realizada pelo departamento de policia de Chicago dos EUA foi construída através de uma base de dados baseada onde as pessoas estiveram presas no passado.

Até aí nada de interessante, como em qualquer modelo de mineração de dados tem-se as etapas de Treinamento – Teste – Validação.

No entanto o problema é ético, o qual o aprendizado indutivo realizado pelos algoritmos levam a seguinte consideração ética:

“Se um modelo de aprendizado de máquina que realiza uma segmentação baseada em atributos raciais, mostra-se muito efetivo na questão de redução da criminalidade (em especial a taxa de homicídios), vale a pena defender este modelo em face dos potenciais benefícios? ”

A resposta é um sonoro NÃO!

Erros do Tipo I (mandar para a cadeia algum inocente) tem um peso muito maior do que um erro Tipo II (deixar a solta um ‘potencial’ homicida).

Mas a resposta da Cathy foi simplesmente sensacional, dado que a autora do post no FT é também é mulher:

“Se nós permitíssemos um modelo que fosse utilizado para admissão na universidade com dados em 1870, nós teríamos ainda 0.7% de mulheres indo para a universidade. Agradeça a Deus que nós não tínhamos um Big Data para isto”

Fica claro que a questão da modelagem preditiva ainda tem algumas ‘questões em aberto’ quando trata-se do assunto ética, no entanto deve-se ter um cuidado se variáveis que qualifiquem os registros (características religiosas e raciais por exemplo) pois esse tipo de incorporação de dados ao modelo podem trazer vieses de análise no minimo ruins.

Etiquetado ,

Experimento do Facebook e Gatos Felizes

Direto do KDNuggets.

 

cartoon-facebook-data-science-experiment

Homem: “Eu estava para escrever um post agressivo sobre o estudo de manipulação emocional do Facebook, mas então eu me distraí com todas as fotos de gatos felizes que eles me mostraram.”

Para quem não entendeu esse é o artigo da Forbes que mostra um pouco sobre o estudo de manipulação de sentimentos, e aqui é o artigo original.

Para quem quiser realizar o download do artigo original, o link está abaixo.

PNAS-2014-Kramer-8788-90

 

Etiquetado , , ,

Não terceirize a Normalização/Padronização dos Dados

Na literatura de mineração de dados muitos autores afirmam que o pré-processamento é uma fase que ocupa 80% do tempo e que os algoritmos são as grandes estrelas com as suas inúmeras formas de descoberta de padrões, regras e associações; e que por isso detêm os 20% mais importantes no que diz respeito à mineração de dados.

Baseado em experiências empíricas acredito que o pré-processamento ocupa 90% do tempo, e que também é responsável por 95% do resultado; dentro da perspectiva da mineração de dados no qual:

Resultado = Custo Computacional  + Consistência dos Resultados + Reprodutibilidade

Onde o custo computacional é definido como:

 Custo Computacional = Custo Espacial + Custo Temporal

Dito isso, vejo que em fóruns e até mesmo palestras que devido ao grau de dificuldade de trabalhar com os dados, ocorre a famosa terceirização da normalização/padronização dos dados. Isso se dá na forma em que os algoritmos/soluções de análise de dados pegam todos os dados e simplesmente ‘fazem a mágica acontecer’ (acreditem, eu vi um ‘Sales Engineer’  de uma das top 3  ferramentas de Business Intelligence (pela Gartner) falar isso).

No entanto, em alguns pré-experimentos com MARS (Multivariate Adaptive Regression Splines) no Statistica 10 e MLPRegression no Weka observei que muitos valores das variáveis de resposta (i.e. valores para realizar o teste e/ou checagem matemática do algoritmo) estavam com números que não faziam sentido algum, e pior: não davam a reprodutibilidade necessária para exercer um simples hindcast (não confundam com backtesting).

Vejamos dois casos práticos a respeito disso.

Neste primeiro caso vejam o resultado do RBF Regressor no Weka que está abaixo:

=== Run information === 
Scheme:       weka.classifiers.functions.RBFClassifier -N 2 -R 0.01 -L 1.0E-6 -C 1 -G -A -P 1 -E 1 -S 1 
 Relation:     WekaExcel-weka.filters.unsupervised.attribute.Remove-R8-weka.filters.unsupervised.attribute.Remove-R1,
6-weka.filters.unsupervised.attribute.Remove-R5 
 Instances:    671 
 Attributes:   5 
               Var1 
               Var2 
               Var3 
               Var4 
               Paid 
 Test mode:    evaluate on training data 
 
 === Classifier model (full training set) === 
 
 Output weights for different classes: 
 -0.658867061591664 0.7268781531574563 
 
 Unit center: 
 1.103191478913074 0.3187908580844808 1.339867551710916 -2.348360195617461 
 
 Output weights for different classes: 
 7.294836535867017 -7.294947917203681 
 
 Unit center: 
 0.001306958680758934 -0.001914844611731498 6.641791379162694E-4 1.0009616503748857 
 
 Scale: 
 0.7556789838127707 
 
 Attribute weights: 
 1.2177544598559824 1.0557440195728327 1.6425390340750194 3.7580013072113965 
 
 Bias weights for different classes: 
 -1.1716428958295801 1.171406635309079 
 
 Time taken to build model: 0.33 seconds

 

Até aí nada demais, basta ver qual é o teste dos coeficientes regressores e substituir os coeficientes para posteriormente realizar o cálculo, certo?

Até aí perfeito, mas tem um pequeno problema: todas as variáveis do modelo são nominais e o classificador já fez a normalização os dados. Ou seja, neste exato momento você transformou o modelo em black box, mesmo com todos os coeficientes expostos. Ou seja, a transparência do modelo foi trocada pelo fato da não normalização dos dados.

Neste segundo exemplo vamos ver o resultado de uma RBFNetwork no Weka.

=== Classifier model (full training set) ===
 Radial basis function network
(Linear regression applied to K-means clusters as basis functions):
 Linear Regression Model
 Dummy_Paid =
      -0.2146 * pCluster_0_0 +
      0.2148 * pCluster_0_1 +
      0.612

Neste caso, estou ainda com as mesmas variáveis nominais.

Uma das propriedades da RBFNetwork no Weka, é que a grosso modo o algoritmo permite a escolha do número de clusters e porteriormente implementa uma função de base radial (i.e. realiza a atribuição de valores partindo do distanciamento de um centro) para realizar a classificação.

Abaixo a descrição do algoritmo:

NAME
weka.classifiers.functions.RBFNetwork
SYNOPSIS
Class that implements a normalized Gaussian radial basisbasis function network.
It uses the k-means clustering algorithm to provide the basis functions and learns either a logistic regression (discrete class problems)
or linear regression (numeric class problems) on top of that. Symmetric multivariate Gaussians are fit to the data from each cluster. 
If the class is nominal it uses the given number of clusters per class. It standardizes all numeric attributes to zero mean and unit variance.

OPTIONS
debug -- If set to true, classifier may output additional info to the console.
ridge -- Set the Ridge value for the logistic or linear regression.
maxIts -- Maximum number of iterations for the logistic regression to perform. Only applied to discrete class problems.
clusteringSeed -- The random seed to pass on to K-means.
minStdDev -- Sets the minimum standard deviation for the clusters.
numClusters -- The number of clusters for K-Means to generate.

A frase mais importante é “It standardizes all numeric attributes to zero mean and unit variance.”

Isso é, o algoritmo realiza a padronização (a re-escala) de todos os atributos numéricos dentro de um range numérico que supõe que os dados estejam em uma distribuição normal padrão que tem média zero e que a unidade variação tem como base a variância.

Sabendo isto, rodei o meu experimento com os seguintes parâmetros.

 RBFNetwork

Nesta imagem, como tinha controle do pré-processamento dos dados propositalmente coloquei a variável de decisão como a geradora dos centroides dos dois clusters. Após isso fiz uma pergunta ao Eibe Frank que é um dos desenvolvedores do Weka sobre o testes dos coeficientes do Output e obtive a seguinte resposta:

pCluster_0_0 and pCluster_0_1 are cluster membership probabilities. RBFNetwork internally uses clusters build using SimpleKMeans. They are not output, so you can’t manually reproduce the classifications generated by RBFNetwork

Cheers,
Eibe

Ou seja, se não tivesse inserido (ou mesmo a percepção do que o algoritmo fazia) a minha variável de decisão, jamais saberia como o algoritmo chegou ao resultado.

Neste caso o pré-processamento foi feito de uma maneira reprodutível, ou no mínimo rastreável o que ajudou na compreensão do modelo, e de quebra me permitiu ganhar um midset para trabalhar com problemas de função de base radial e clustering. Mais um item no cinto de utilidades do batman minerador de dados.

O grande aprendizado é que quem tem o controle do pré-processamento tem o controle do modelo, seja na velocidade de execução do algoritmo, como também exerce influência nos resultados do modelo. Então, não terceirize a normalização de dados.

 FONTES

http://stn.spotfire.com/spotfire_client_help/norm/norm_scale_between_0_and_1.htm

http://stats.stackexchange.com/questions/70801/how-to-normalize-data-to-0-1-range

Etiquetado , , , , , , , , , , , , , , , ,

Big Data e a Copa do Mundo

Diretamente do KDNuggets

cartoon-football-world-cup-big-data

Técnico: “Lembrem-se, outro time está contando com insights provenientes de Big Data baseados nos jogos anteriores. Então, chutem a bola com o outro pé.”

Etiquetado ,

Algumas coisas para saber sobre Aprendizado de Máquina

Neste trabalho do Pedro Domingos da Universidade de Washington é um manual mais do que completo para quem quer começar a entender o que é o Aprendizado de Máquina, disciplina esta tão ligada com a Mineração de Dados.

A Few Useful Things to Know about Machine Learning

 

Etiquetado

Medindo a Acurácia das Previsões

Neste paper do Rob Hyndman é apresentado algumas formas de medir a acurácia de modelos de predição. Obrigatório para quem trabalha/estuda modelos de classificação e regressão.

Measuring forecast accuracy

Etiquetado , , ,

Coeficiente de Determinação

No Econometrics Beat tem uma ótima explicação dessa métrica de ajustamento de modelos lineares. De extrema importância para quem deseja saber mais sobre regressão linear.

Etiquetado , ,

Decisões Data-Driven e suas implicações

Neste artigo do Dan Frieberg ele coloca um ponto importante na discussão sobre decisões apoiadas em dados versus contexto dos especialistas no que tange questões voltadas à agronomia e o plantio de milho:

Yet big data analytics is not the crystal ball that removes local context. Rather, the power of big data analytics is handing the crystal ball to advisors that have local context.

Real world agronomy is complex – very complex. It’s where soil science, soil supplied and applied fertility, plant pathology, entomology, weed science, soil and water conservation, all collide with your technology allowing to measure, analyze and deliver site-specific solutions.

Via Econometric Sense.

Etiquetado , , ,

10 coisas que a estatística pode nos ensinar sobre Big Data

De tempos em tempos vemos vendedores de software tentando empurrar ‘novidades’ como Big Data, Map Reduce, Processamento Distribuído, etc. Isso é muito bom no sentido de marketing e propaganda, mas dentro do aspecto técnico todos que trabalham com análise de dados devem no mínimo conhecer o básico, e este básico se chama estatística.

Entendam uma coisa, Big Data hoje nada mais é do que um jargão de marketing utilizado por todos os players do mercado para causar frisson em gerentes de tecnologia da informação, diretores, coordenadores, gerentes entre outros.

Análise de dados sempre houve desde quando Edgar Frank Codd começou os seus postulados sobre modelagem de bases de dados baseado no paradigma da álgebra relacional.

O que mudou foi que a Lei de Moore que se aplicava à capacidade de processamento (transistores nos chips) e que muitos acreditavam se também aplicava-se ao armazenamento simplesmente provou-se errada. Em outras palavras, descobrimos que podemos armazenar muito mais informação, a um custo extremamente baixo do que fazíamos a 40 anos atrás.

Veja no gráfico abaixo o que o mesmo Jeff Leek considera como a ‘revolução do big data’.

Big Data Revolution

Se isso aumentou a disponibilidade dos dados para a análise, por outro lado muito por culpa da ciência da computação que (na minha visão pessoal de momento) prostituiu a estatística com o advento dos algoritmos muitos cientistas da computação, bacharéis em Sistemas de Informação, entre outros que por ventura passaram a realizar análise de dados acharam que poderiam subestimar a estatística que está a muito tempo ajudando cientistas do mundo inteiro.

Um pequeno aforismo que eu tenho sobre essa questão é “não dá para pensar em Big Data, quando ainda não aprendemos os postulados sobre amostragem que a estatística nos oferece”.** Simples assim.

Com isso, seguem as 10 coisas que a estatística pode ajudar o Big Data elencadas pelo Jeff Leek:

1) If the goal is prediction accuracy, average many prediction models together
2) When testing many hypotheses, correct for multiple testing
3) When you have data measured over space, distance, or time, you should smooth
4) Before you analyze your data with computers, be sure to plot it
5) Interactive analysis is the best way to really figure out what is going on in a data set
6) Know what your real sample size is
7) Unless you ran a randomized trial, potential confounders should keep you up at night
8) Define a metric for success up front
9) Make your code and data available and have smart people check it
10) Problem first not solution backward

**Assim que eu finalizar algumas leituras importantes sobre o assunto vou falar mais um pouco dessa besteira de big data que estão vendendo, e algumas alternativas a respeito disso.

Etiquetado , , ,

A verdadeira razão porque a reprodutibilidade é importante

Explicada aqui por Roger Peng.

Basicamente ele usou o caso do livro do Piketty e fez uma afirmação que eu acho que diz tudo sobre o que é reprodutibilidade de fato:

Many people seem to conflate the ideas of reproducible and correctness, but they are not the same thing. One must always remember that a study can be reproducible and still be wrong. By “wrong”, I mean that the conclusion or claim can be wrong. If I claim that X causes Y (think “sugar causes cancer”), my data analysis might be reproducible, but my claim might ultimately be incorrect for a variety of reasons. If my claim has any value, then others will attempt to replicate it and the correctness of the claim will be determined by whether others come to similar conclusions.

Then why is reproducibility so important? Reproducibility is important because it is the only thing that an investigator can guarantee about a study.

Meus dois centavos a respeito do caso do livro do Piketty e que apesar de tudo que falaram, as refutações (especialmente do Financial Times e do Wall Street Journal) e os conflitos de escolas econômicas, é invejável a qualidade do trabalho em termos de reprodutibilidade. É inegável que erros metodológicos podem acontecer e nenhum pesquisador está imune a isso (especialmente aqui no Brasil no qual uma instituição como IPEA faz confusão de aspectos básicos de pesquisa como por exemplo manipulação de dados em Excel. Contudo, o estudo e a discussão a cerca do que o livro colocou em pauta serve como norte para quem deseja navegar na área acadêmica.

Etiquetado
%d blogueiros gostam disto: