domingo, 16 de novembro de 2008

Meu dentista, a Wikipedia, o numero pi e a fé em probabilidades

Eu sempre tive um pé atras com probabilidade - sempre pensei se era realmente um bom modelo para se tomar decisoes. As vezes nos guiamos por ela e acabamos nos dando mal. O tempo de espera na sala do meu dentista nunca foi uma distribuição exponencial. Nunca acreditei também naqueles fittings que a gente fazia de dados no Laboratório de Fisica ou dos nossos experimentos com paquimetro na escola e nos primeiros anos de faculdade. Eram cheios de erros grosseiros e no fim, sempre tínhamso que ajustar um pouco os dados pra obter algum resultado interessante. A culpa não era nossa, era do Teorema Central do Limite. Em termos bem básicos, se você tem um processo complicado mas cuja soma são vários processoszinhos simples você obtém no final, uma distribuição gaussiana. O problema é que nós em geral esperamos que vamos jogar 20 moedas para cima e, puf! uma gaussiana. Não é bem assim que funciona, o que leva a gente a se desencantar com probabilidade e estatística. Esse artigo é para que você não fique ranzinza e descrente.

Ok, queremos achar coisas bonitas, como aquelas distribuição dos livros. Com poucas moedas, a nossa experiencia diz que isso não é possível - mas e com muitas moedas? Eu sempre tive vontade de analisar quantidades imensas de dados - como o banco de dados de compra da Amazon, a rede de relacionamento do MSN ou faturas de cartão de crédito. Infelizmente essas são todas informações proprietárias. Existem informações livres - como o grafo da web, que são muito interessantes, mas grandes demais para se analisar (pelo menos no meu computador). Há, no entanto, um grafo muito interessate e aberto: o da Wikipedia:http://download.wikimedia.org/

E você nem precisa fazer um crawler, já tem tudo bonitinho, em xml. E vc pode processar ele durante a noite no seu computador. Ele tem aproximadamente 2*10^6 nos. Os datasets tem todos os dados historicos - o que é muito interessante, porquê você pode ver como grafos evoluem no tempo. Abaixo tem um log-log plot do histograma de frequencia dos graus dos vertices da wikipedia (in-degree de um artigo é quantas páginas linkam ele, e e out-degree é o número de links ele tem pra outras páginas):

Achei impressionante como de cara você obtém (sem truques, modificações, filtros, ... ou seja, sem roubar) uma curva de uma distribuição bonitinha. A linha reta nos graficos log-log (também chamados logscale) é característica de distribuições como power-laws e log-normals. Essas distribuições aparecem de forma bastante ubiqua em fenomenos socias, como tamanho de cidades, frequencias de palavras em textos, distribuição de grau pelos vértices de um grafo do mundo real (Web, redes sociais, paginas da Wikipedia, ...). Aqui tem um ótimo survey sobre isso.

Mas voltando a falar do dataset - eu fiquei emolgado de processar dados desse tamanho (o arquivo descomprimido tem 300GB e não, eu não tenho HD pra isso - tem que processar comprimido - quer dizer, ir processando a medida que você vai descomprimindo). Isso claro, ocupou meu computador por uma noite inteira - mas ok, ele não tinha nada mais interessante pra fazer. Todo esse processamento me deixou preocupado em estourar a memória RAM, então eu fiquei olhando o que acontecia no System Monitor. Eu aviso logo: abrir o SystemMonitor é que nem colocar um aquário ou uma lava lamp no seu escritório - você vai perder um certo tempo de trabalho babando na frente daquelas curvas coloridas e tentando colocar alguam ordem naquele caos.

A primeira coisa que me deixou feliz foi descobrir pelo System Monitor que meu computador tinha 2 processadores. O mais interessante foi ver o uso dos processadores: eu tinha esse grande processo de analise da Wikipedia que era muito pesado e vários processos mais leves abertos - Firefox, editor de texto, ... Pelo screenshot da direita do meu System Monitor, parece que esse processo grande ficava toda hora trocando de processador. Achei isso interessante. Eu nunca parei pra olhar como o escalonador do Linux funcionava, mas fiquei curioso depois dessa.


Para fechar: se você ainda não recuperou sua fé na probabilidade, tente calcular o número pi jogando agulhas no chão de ladrilhos (siga o link pra ver do que eu estou falando). Isso foi outra coisa que me ajudou a crer. Ainda estou procurando algo que vá me fazer crer na regra de Bayes.

Nenhum comentário: