Modelagem de Resultado

Neste post do Paul Mineiro (um dos mais reflexivos autores da blogosfera de Analytics) ele coloca em questão os custos e benefícios do trabalho de pesquisa e como o pesquisador profissional deve deixar o seu empregador informado sobre especialmente desses benefícios.

Esse trecho abaixo diz muito sobre o fato de que nós pesquisadores e entusiastas da análise de dados, e principalmente Data Mining não somos tão bons em divulgar os nossos resultados:

Recent events have me thinking again about the viability of privately funded basic research. In my opinion, the history of Xerox PARC is deeply troubling. What?! At it’s peak the output of Xerox PARC was breathtaking, and many advances in computation that became widespread during my youth can be traced to Xerox PARC. Unfortunately, Xerox did not benefit from some of the most world-changing innovations of their R&D department. Now a generation of MBAs are told about the Cisco model, where instead of having your own research department, you wait for other firms to innovate and then buy them.

… it continues to buy small, innovative firms rather than develop new technology from scratch …

To be clear my employer, Microsoft, still shows a strong commitment to basic research. Furthermore, recent research layoffs at Microsoft were not related to research quality, or to the impact of that research on Microsoft products. This post is not about Microsoft, it is about the inexorable power of incentives and economics.

Quite simply, it is irrational to expect any institution to fund an activity unless that organization can realize sufficient benefit to cover the costs. That calculation is ultimately made by people, and if those people only hear stories about how basic research generates benefits to other firms (or even, competitors!), appetite will diminish. In other words, benefits must not only be real, they must be recognizable to decision makers. This is, of course, a deep challenge, because the benefits of research are often not recognizable to the researchers who perform it. Researchers are compelled to research by their nature, like those who feel the need to scale Mount Everest. It so happens that a byproduct of their research obsession is the advancement of humanity.

A discussão poderia ir para o caminho de questões orçamentárias e tudo mais; mas o cerne da questão é que devido a esse péssimo marketing pessoal (sic.) que faz parte de todo o jogo (teatro) corporativo reflete em que técnicas e competências extremamente ultrapassadas estejam reinando; mais especificamente as ferramentas de Business Intelligence e seus analistas que promovem mais entropia nas organizações com a avalanche de relatórios sobre o… passado.

A mineração de dados e a modelagem preditiva como um todo entram em uma arena de complexidade e análise diferente do exemplo citado acima; na qual ao invés de realizar diversas análises conjecturais que muitas das vezes desconsideram os dados e estão literalmente ancoradas e vieses cognitivos (ou cacoetes corporativos para a manutenção do status quo) elas são pautadas em tecnologias que vão segmentam, classificam e recomendam usando informações de bases de dados em problemas tipicamente não lineares no qual um analista humano teria extrema dificuldade de agir.

Uma das soluções para que a Mineração de Dados seja vista como uma alternativa real, face a esta crescente entropia no ambiente de negócios transvestida de ‘Inteligência’ (e principalmente dando dinheiro a charlatães, mas isso será assunto de outro post) as análises devem ter ligação direta com os resultados, sejam financeiros ou mesmo de outra natureza.

O melhor programa de marketing sempre foi, e sempre será a entrega de resultados e superação de metas. Ponto.

Sendo assim quais são as formas de se realizar isso com a mineração de dados? Algumas sugestões aleatórias seriam (i) a utilização de Uplift Modeling para comparar  o a) Status Quo, b) outras análises que estão sendo performadas sem a Mineração de Dados,  c) usando a Mineração de Dados e o posterior contraste dos métodos mostrando tempo empregado, custos e receita líquida final; (ii) estruturação de uma metodologia para a aplicação da Mineração dado que este é o ponto mais sensível quando vai se explicar esse tipo de trabalho para audiência não-técnica; e (iii) ter em mente a seguinte equação “Realidade = Modelo – Erro”; em outras palavras, isso significa que você sempre estará olhando o intangível, isto é, informações que estão aquém da modelagem de dados; e por último (iv) estruture uma apresentação efetiva desses resultados, um ótimo recurso é o livro Real Leaders Don’t Do Power Point que mostra que até o analista mais técnico pode realizar uma apresentação excelente.

Etiquetado , ,

Pedindo ajuda sobre o Weka

Como alguns sabem o Weka é uma GUI de código aberto e ao contrário de algumas empresas que ostentam títulos de líderes de mercado (cof, cof, cof) tem uma comunidade ativa em volta da aplicação.

Há duas maneiras de pedir ajuda:

1) Cadastrando-se na lista e enviando a solicitação em e-mail em inglês (sim, o inglês é o novo latim como eu coloquei aqui em 2012) que é algo extremamente rápido.

ou

2) Buscando nos arquivos da lista. Aqui é a melhor chance de achar algo para sanar uma dúvida. E o melhor de tudo: Dá para fazer download de tudo de graça!!!

Agora acabaram-se as desculpas para ficar travado naquele probleminha com a LMT ou com o Naive Bayes.

Etiquetado ,

Resenha: Predictive Analytics: The Power to Predict Who Will Click, Buy, Lie, or Die

Uma pequena mea culpa antes da resenha: Tenho lido inúmeros livros de Analytics, Data Mining, e afins no entanto por mera obra de exibicionismo barato acabei postando todos os mini-reviews no meu instagram ao invés de colocar esforço em uma audiência mais apropriada/qualificada que está neste espaço. Sendo assim até o final do mês teremos muitos reviews que estavam represados.

- – -

51xwlO0bTlL

Comprei esse livro para ler de acordo com o a recomendação do KDNuggets que eu postei aqui.

E ao final do livro eu tive uma sensação estranha, mas que eu vou explicar adiante que é não gostei, mas recomendo.

Pode parecer estranho essa ultima frase, mas por incrível que pareça é a mais pura verdade.

O livro é muito bem editorado e tem uma fluência no texto que causa inveja em muitos autores da área, dado que não é um livro estritamente técnico; e tem como principal trunfo consolidar diversas pesquisas e consolidação de diversos cases que saíram ao longo desses últimos dois anos em um material único.

A maior vantagem nesse livro em especial é que o autor tenta colocar um pouco de ordem do que é Análise Preditiva e o que não é, coloca uma coleção de cases que se lidos com atenção, principalmente por diretores/gerentes que estão sentados em uma mina de ouro de dados podem motivar a adoção de programas dessa natureza.

No entanto essa coleção de cases (que para o público com um background mais gerencial pode ser ótimo) é o ponto fraco do livro dentro da perspectiva do Data Miner ou analistas de dados.

Em alguns momentos do livro parece que o autor teve somente o trabalho de copiar o trabalho de alguém e colar no livro como uma maneira de referenciar o trabalho. Contudo, o erro mais grave é o que o autor tenta vender como preditivo na ideia de prever o futuro, mesmo com um disclaimer informando que o autor leu os trabalhos do Nassim Taleb  ele ainda considera a hipótese de previsão, seja lá o que isso signifique em seu plano semântico.

Mesmo assim para quem deseja conhecer como a modelagem preditiva está sim moldando o mundo esse livro é uma boa pedida, mas vamos nas indicações.

É indicado para: Gerentes, Gestores, Diretores, estudantes que não sabem o que é Data Mining, e demais analistas de dados/negócios que desejam saber como a modelagem preditiva vem talhando o mundo e nos influencia na maneira de tomar as nossas decisões (mesmo em um plano de uma pseudo-aleatoriedade)

Não é indicado para: Quem deseja detalhes de implementação dessa modelagem preditiva, cases com detalhes técnicos, quem se interessa por aspectos técnicos, quem acha que Big Data é uma buzz-word de mal gosto, e quem busca um livro técnico.

Etiquetado , ,

Introdução às Técnicas Modernas de Regressão

Por mais que as técnicas de aprendizado de máquina tenham evoluído muito nos últimos tempos, é inegável que as técnicas de regressão ainda têm uma aderência muito grande por parte dos Data Miners, estatísticos, e demais analistas de dados; seja devido à versatilidade ou mesmo por permitir uma abordagem semi-White Box (sic.).

Neste webnar da Salford Systems, há dois vídeos que vale a pena ter no HD sobre a aplicação das técnicas modernas de regressão.

Para quem não conseguir baixar o material no site, basta clicar no link no final do post que o download será iniciado automaticamente.

2014_Modern_Regression_CTW_web

Etiquetado , , ,

Uplift Modeling

Lendo o Predictive Analytics em meados de Maio (que será resenhado aqui no MD) resgatei um dos tópicos mais interessantes quando se fala de aderência de modelos preditivos que é o uplift modeling.

 O Lift pode-se dizer que é a medida (ou índice) da eficácia do modelo em relação os resultados obtidos através do modelo, e se o modelo não fosse aplicado.

Esse conceito é importado da medicina baseada em evidências no qual é conhecido como ensaio clínico randomizado, que tem como principal característica a separação dos grupos de experimento para verificar a eficácia de uma abordagem clínica/medicamentosa.

 Você utiliza essa métrica de aderência de modelo preditivo da seguinte forma:

 1) Criam-se dois grupos, um de (i) tratamento (onde o modelo será aplicado) e (ii) outro de controle (onde o modelo não será aplicado) sempre levando em consideração a randomização das amostras;

2) Aplica diretamente a técnica de classificação ou modelagem preditiva no grupo de tratamento;

3) Realiza o follow-up dos dois grupos anotando os efeitos primários (indicações mais severas após a intervenção), e comportamentos semelhantes e/ou efeitos secundários; e

4) De acordo com o response rate (%) do uplift modeling  você consegue uma análise mais fiel em relação aos impactos da intervenção e se você tiver ‘saco metodológico’ você consegue observar o decay do modelo, ou mesmo realizar ajustes.

Etiquetado , ,

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 , , , , , , , , , , , , , , , ,
%d blogueiros gostam disto: