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

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

Palantir e a simbiose entre Governo e Empresas

Esse artigo do Andy Greenberg o autor faz um panorama muito útil sobre a história da Palantir e a simbiose  governo americano em relação aos casos de vazamento de informações sobre o maior programa de Data Gathering em curso da história da humanidade.

Palantir e a simbiose entre Governo e Empresas

A Tecnologia que Protege o Presidente dos EUA

Essa matéria do Adam Popescu, mostra que o serviço secreto do Estados Unidos  – encarregado da segurança do presidente Barack Hussain Obama  – está utilizando o uReveal  para realização de mineração de dados multiplataforma para identificação de potenciais ameaças  à segurança do presidente.

Em geral a idéia é de realizar um imenso Data Gathering e através de filtros semânticos parametrizáves, realizar a identificação dentre as mais diversas bases de dados como sites, blogs, e demais registros na web.

A Tecnologia que Protege o Presidente dos EUA

Mineração de Dados X Senado

Esse embate está em vias de entrar na FTC (Federal Trade Comission, algo como o nosso Conselho de Administração Econômica (CADE) que tem como função auditar e verificar questões relativas as atividades comerciais no Estados Unidos) e tem como objeto uma dúvida do senador John Rockfeller na qual ele questiona os trabalhos de Data Gathering e comercialização de dados seja de birôs de cobrança; comércio de dados e agregadores diversos. É uma questão que merece uma atenção especial e que tem impacto direto dentro da mineração de dados.

O documento original está aqui.

John Rockfeller – Letter in FTC Commision

Mineração de Dados X Senado

Mineração de Dados em Mídias Sociais

Esse artigo mostra que é possível realizar análise de mídias sociais utilizando mineração de dados. Apenas a forma de Data Gathering não está bem clara, nem mesmo a consolidação desses dados, mas no geral parece ser bem promissor.

Mineração de Dados em Mídias Sociais

Livro – Sports Data Mining: SCHUMAKER, Robert P.; CHEN , Hsinchun; SOLIEMAN, Osama K.

Fazia um bom tempo que o site não trazia algumas novidades sobre livros e tem cerca de 40 papers a serem comentados e uns 12 livros a serem resenhados; mas essa obra é especial porque une dois temas muito interessantes (e de gosto pessoal do moderador do site) que são Mineração de Dados e Esportes.

Esse livro tem como abordagem central a intersecção entre esportes, data collection (ou data gathering), e a mineração de dados aplicada a diversos domínios esportivos, que vão desde Baseball, passando pelo Basquete e Futebol e chegando no Curling.

A forma de linguagem que o livro é escrito e o seu desenvolvimento são bem agradáveis para leitura (literatura) técnica, na qual os autores trabalharam bem a simplicidade das colocações, seja na esfera esportiva ou na mineração de dados; o que torna a leitura bem dinâmica e principalmente instrutiva.

O livro saí do lugar comum entre os livros de mineração de dados aplicada, o qual apresenta a definição e a construção dos conceitos por trás da mineração de dados esportivos bem como os trade-offs dentro de cada esporte de forma bem honesta e transparente.

A obra tem um leve viés para o Baseball, o que é plenamente compreensível já que é o esporte que tem o maior volume de dados estudados atualmente. Entretanto, há o excelente caso do Milan que vale a pena a leitura. Ainda há indicações de ferramentas para data gathering e fontes de dados, além da apresentação de alguns aplicativos.

O ponto fonte sem dúvidas é o capitulo Research in Sports Statistics o qual mostra os primórdios dos estudos sobre as formas de metrificações de atributos esportivos, e claro, faz referência em grande parte do que foi proposto por Bill James (Sabermetrics) em seus abstracts. A forma da conceituação e construção de métricas esportivas já vale o preço do livro devido a simplicidade e a forma de raciocínio por trás dessa elaboração.

Os pontos fracos dessa obra são 1) a falta de maiores exemplos sobre as formas de métricas erradas em outros esportes além do basquete e do baseball, 2) a ausência de datasets de exemplos para quem deseja realizar uma abordagem mais hands-on, e 3) a parte de análise preditiva ficou um pouco vaga; e em esportes com uma alta competitividade e rotatividade de vencedores (atletismo, esportes automotores) pode não se aplicar de fato na forma em que é proposta no livro.

Em geral o livro é ótimo, e mostra que a abordagem data-driven aplicada aos esportes tem muito a evoluir, principalmente no futebol (soccer) e em outros esportes, e que a mineração de dados pode sim ser fator de desequilíbrio no campo estratégico de um time.

Este livro é indicado para: Estudantes de Ciência da Computação, professores de mineração de dados, especialistas em Banco de Dados, estudantes de Educação Física, e educadores físicos.

Não recomendado para: Quem não gosta de esportes.

Livro – Sports Data Mining: SCHUMAKER, Robert P.; CHEN , Hsinchun; SOLIEMAN, Osama K.

O curioso caso da aplicação da mineração de dados no setor de seguros pessoais

A mineração de dados com o advento do data gathering cada vez mais integrado das empresas de seguros e cartão de crédito estão utilizando esses dados para análises cada vez mais apuradas sobre o comportamento do consumidor, bem como predizer se ele é um bom ou mau cliente em relação a contratação de um seguro.

Isso porque as empresas de seguros estão cada vez mais empenhadas em realizar o cruzamento de informações sobre os hábitos de consumo e realizando o trabalho de predição e metrificação da ocorrência de acidentes fatais e de acordo com essas métricas determinar o quanto o coeficiente de risco de segurar cliente em questão.

Esse cruzamento de informações ocorre no momento em que há o pagamento do prêmio pela morte de um segurado por infarto, no qual a empresa de seguros vai até o mercado para o enriquecimento das informações sobre o segurado para construção de métricas de risco sob aquele determinado tipo de persona.
Feita a solicitação (geralmente a empresas de cartão de crédito) há o retorno dos hábitos de consumo do portador do cartão: Gastos acima de R$ 200 em farmácias, pagamento de plano de saúde, idas constantes a churrascarias, e bares. Com posse desses dados sobre as informações de consumo do cliente, a seguradora faz uma espécie de backtracking avaliando quais foram os hábitos de consumos que levaram aquele cliente em especial a ter uma parada cardiaca. Se levarmos em consideração que uma gama alta de dados médicos podem ser adquiridos esse tracking pode ser muito mais efetivo.

Feito isso, o segurado que faleceu tem um score no qual ele pode auxiliar no desenvolvimento de métricas, e posteriormente na construção de personas; as quais podem ter preço diferenciado em relação a aquisição de novos seguros.

É contra a lei? Não, pois não há legislação pertinente a respeito de aquisição e venda de dados pessoais entre provedores de informações; e as malas diretas de empresas de marketing são prova cabal disso. É errado e anti-ético? Não, pois em seguro existe uma regra bem explicita: O valor da fraude é rateado por todos os usuários, sem exceção; ou seja, quanto menos democratizar as perdas, os ganhos individuais serão maiores; e consequentemente as apólices mais em conta.

É um tema controverso e que mexe com questões éticas muito recentes como privacidade digital, e venda de informações; mas que seguramente irá ser o futuro da análise de risco de seguros pessoais. Na dúvida, pague em dinheiro!

O curioso caso da aplicação da mineração de dados no setor de seguros pessoais

Identificação de Pacientes com Hipertensão: Um caso de auditoria em Registros Médicos Eletrônicos

Este artigo da Health Information Management escrito por  Adam Baus, Michael Hendryx, e Cecil Pollard coloca em plano o estudo relacionado a utilização de dados médicos para análise e descoberta de conhecimento sobre pacientes com hipertensão.

O estudo mostra de maneira muito estruturada a forma em que os pesquisadores realizaram todo o processo de KDD (Knowledge Discovery in Databases – Descoberta de Conhecimento em Bases de Dados) através do Data Gathering, tratamento e cleasing de informações, análise,  resultados e discussão. Em si o artigo não apresenta muitos termos técnicos em mineração de dados, mas coloca em perspectiva o método que é bastante interessante para projetos desse domínio.

Em geral, pensando em projeto de mineração de dados para instituições públicas que poderia utilizar esse domínio (Ministério da Saúde, Secretarias Estaduais e Municipais de Saúde, Hospitais e outros) o artigo é bem completo nesse sentido, não só pelos ótimos resultados encontrados, mas também pelo fato de elencar as principais dificuldades encontradas nesse tipo de projeto.

Identificação de Pacientes com Hipertensão: Um caso de auditoria em Registros Médicos Eletrônicos

Mineração de Dados, Inversão de valores, e o episódio Pokerstars

Algumas rápidas palavras sobre as ações da Poker Starts contra a PokerTableRatings…

Nos dias atuais, com o desenvolvimento de novas técnicas para aquisição e consolidação de dados em diversos segmentos da vida moderna; um dos pontos levantados em Data Management e da ética em relação à utilização de mineração de dados e seus limites de utilização no que diz respeito à privacidade.

A principal motivação desse ensaio é sem dúvidas as ações tomadas pela PokerStars contra a PokerTableRatings, na qual a primeira acusa a outra de utilizar métodos de Mienração de Dados e vender estatísticas sobre jogadores, seus padrões de jogo, mãos disputadas, estilo de jogo, entre outros.

Hoje está mais do que provado que a diferença entre quem ganha e quem perde em diversos segmentos que envolvam dinheiro e jogos é a assimetria da informação, na qual quase sempre um jogador/investidor que tem mais informações vence contra um adversário com menos informações sobre a atividade em questão. Quer um exemplo básico disso? Compre U$ 1000 em açoes e experimente entrar no mercado acionário sem saber a variação das ações, taxa de retorno, curva de evolução e análises técnicas e fundamentalistas e veja em quanto tempo os investidores vão demorar para ganhar o seu dinheiro. Não há anjos ou demônios há apenas uma definição de que os ganhos dos informados vêm do prejuízo dos desinformados.

Para se ter uma idéia do que está em jogo, e de como os valores relacionados à privacidade estão investidos em tempos de internet, vejamos alguns exemplos clássicos e triviais de mineração de dados que estão em corrente utilização, e que são quase invisíveis aos olhos dos leigos: a) Marketing dirigido, b) Criação de “personas” para classificação de clientes e definições de taxas e crédito, c) Vendas de dados de redes sociais para empresas de informações e localizações (ou alguém acha que os lucros e o valor de mercado do Facebook vem de anúncios e visualização de propagandas? Come on!). Vejam que são 3 exemplos simples, mas que tem um grau de alcance muito maior do que jogos de poker online.

Está mais do que claro que a privacidade digital é um sonho muito distante, e que provavelmente nesse exato momento tem pessoas trabalhando para buscar mais e mais informações específicas de cada um dos usuários da rede, estes que por sua vez estão quase em estado de torpor mental devido a avalanche de entretenimento por trás dos reais interesses das empresas.

A PokerStarts se pronunciou que irá proibir a prática, e blah, blah, blah; porém, é pouco provável que irá resultar em algo de fato (já existem indícios que a PTR já esteja operando em outros servidores) e mais: esse tipo de atitude irá reforçar somente a questão que o Poker Online não está imune ao Data Gathering.

As coisas se inverteram… As mesmas pessoas que não ligam em deixar os seus rastros e dados no Facebook; agoram vêm com a história que é errado Data Gathering e estatísticas sobre sites de Poker… Come on!

Declaração da PokerStars – Retirado de PokerStrategy

Visão geral

“Há alguns anos nós da PokerStars temos nos preocupado com os efeitos que sites de datamining, como o PokerTableRatings, podem ter sobre o bom funcionamento do ecossistema do poker online. Tais sites oferecem grandes base de dados, que permitem a um jogador conhecer um grande número de informações sobre um adversário específico na primeira vez que eles jogam um pote juntos. Temos muitas preocupações sobre o datamining:

• “Ele permite que um jogador de poker tenha informações e dados sobre oponentes contra quem ele nunca jogou. Mesmo reconhecendo as diferenças entre o poker online e ao vivo, nós acreditamos que isso contraria o espírito do jogo.

• “Jogadores novos e/ou fracos muitas vezes nem sequer sabem que eles estão sentados na mira de seus oponentes. Assim, os jogadores mais vulneráveis não tem consciência de que estão sendo alvejados.

• “Uma pequena minoria (mas notável) de jogadores diz rotineiramente aos jogadores fracos em suas mesas o quanto eles são ruins, baseados nestas estatísticas datamined. Isso cria um ambiente desagradável e é mau para os jogadores, mau para o jogo e mau para a comunidade. Sendo uma empresa líder na indústria, temos a responsabilidade de impedir este tipo de abuso.

“Além disso, não somos os únicos que veem dessa forma. Muitos profissionais da indústria do poker e (mais importante) a maioria dos jogadores da comunidade vê tal datamining como uma ameaça em potencial para a existência do poker online no mundo.”

As medidas da PokerStars para impedir o datamining

“A PokerStars sempre afirmou que se um jogador deseja compartilhar seus resultados dos jogos online em público, é uma questão entre ele e qualquer site que fornece tais dados. Mas se um jogador não deseja compartilhar estes resultados em público, então ele não precisa. Nós sistematizamos isso em nossos Termos de Serviço com relação aos programas proibidos.”

“Temos adotado uma estratégia em duas frentes contra o datamining de sites como o PTR.

“Primeiro, temos investido em tecnologia para prevenir que os sites façam datamining das nossas mãos. Sem entrar em detalhes, temos modificado o software várias vezes para tornar mais difícil que terceiros gravem os históricos de mãos das nossas mesas. Todas as vezes que fizemos isso, o PTR respondeu modificando seu software para neutralizar a nossa mudança. Podemos tomar medidas drásticas para vencer essa “corrida armamentista”, mas tais medidas poderiam prejudicar a experiência de jogo dos nossos jogadores legítimos. Obviamente preferimos não fazer isso.

“Nossa segunda frente tem sido através de medidas legais. Temos contactado repetidas vezes sites como o PTR para solicitar que parem de fornecer dados sobre os nossos jogadores, a menos que os jogadores optem por isso. O PTR nunca respondeu a esses pedidos. Houve algumas atualizações nas últimas 24 horas, das quais vamos falar até o fim deste documento.”
Conclusão

“A PokerStars é a maior empresa do mundo no poker online. Temos responsabilidades com nós mesmos, com a indústria e, mais importante, com a comunidade de jogadores de poker online para cuidar de todo o ecossistema do poker online. Fizemos todo o esforço para dar a chance ao PTR de “obedecer à lei do jogo”; eles nos ignoraram, e em todos os casos reagiram rápido às nossas tentativas de defesa. Mas estamos empenhados em fornecer aos nossos jogadores a privacidade que eles merecem e à indústria do poker online a proteção que ela necessita.

“No dia 18 de abril de 2012, o ISP (provedor de serviços de Internet) que hospeda o Poker Table Ratings (“PTR”) concordou com a “ordem de cessação” dada pela PokerStars e parou de fornecer serviços para o PTR. O ISP concordou que o PTR estava infringindo os direitos de propriedade intelectual da PokerStars. Pouco tempo depois, o PTR ressurgiu com um ISP diferente. No entanto, na noite de 18 de abril o PTR publicou um anúncio em seu blog que “[Nós] vamos cumprir integralmente a ordem de cessação dada pela PokerStars, embora não estejamos convencidos que sejamos um desserviço para a comunidade do poker online.”

“Nossa equipe jurídica está analisando a declaração do PTR e irá decidir como proceder. Nós vamos, é claro, continuar informando a mídia do poker e a comunidade de jogadores sobre este assunto.”

Mineração de Dados, Inversão de valores, e o episódio Pokerstars