sábado, 16 de outubro de 2010

É possível aprender com os dados?

Tudo começou com a leitura de um post num blog, sobre Online Learning [1], sugestão de um amigo do estágio.
Nos comentários tinha um link para um site com vídeo aulas [2].
Chegando lá, já no primeiro link no topo da página [3] me interessei e comecei a assistir uma aula de uma hora sobre aprendizado semi-supervisionado.

Existem métodos de inferir/formular modelos a partir de um conjunto de dados no qual temos como entrada pares de entrada+saída. São os chamados métodos supervisionados.
Por exemplo, podemos ter como entrada 1000 emails e saber se cada um deles é um spam ou não.

Seria interessante agora inferir coisas a partir dos dados não classificados, classificação não-supervisionada.
Este é o caso quando queremos por exemplo encontrar grupos através de uma função de similaridade.

O aprendizado semi-supervisionado é quando temos alguns dados classificados, e outros não classificados. Ou seja, temos 1000 emails que sabemos distinguir entre spam e não-spam, mais digamos 9000 emails que não sabemos a classificação.

Esses 9000 emails podem ajudar substancialmente a desenvolver um modelo que dado um novo email ele seja classificado corretamente como spam ou não-spam.
Na aula são mostradas duas categorias de problemas, e que tipo de conjunto de dados funcionam bem usando as técnicas apresentadas.
  • Expectation Maximization (EM) [4]
  • Co-training [5]
Essas técnicas me deram uma idéia de como posso classificar tweets como positivos ou negativos a respeito de algum candidato nas eleições 2010 [6], bastando ter algumas amostras de mensagens classificadas positivamente e outras classificadas negativamente.

Fica a sugestão a todos para visitar o videolectures.net e passar algumas horas assistindo a aulas muito interessantes.


[1] http://mark.reid.name/sap/online-learning-in-clojure.html
[2] http://videolectures.net
[3] http://videolectures.net/mlas06_mitchell_sla/
[4] http://en.wikipedia.org/wiki/Expectation-maximization_algorithm
[5] http://en.wikipedia.org/wiki/Co-training
[6] http://www.eleitorando.com.br

Post original

quinta-feira, 7 de outubro de 2010

PMML

Introdução à PMML

Se alguém lhe perguntasse se você usou analítica preditiva hoje, provavelmente você responderia que não. Entretanto, a verdade é que talvez você a use diariamente sem saber. Sempre que você passa o seu cartão de crédito ou o usa on-line, um modelo de analítica preditiva verifica a probabilidade de que a transação seja fraudulenta. Se você aluga DVDs on-line, é bem possível que um modelo de analítica preditiva tenha recomendado um determinado filme para você. A verdade é que a analítica preditiva já faz parte da sua vida e a sua aplicação irá ajudá-lo ainda mais no futuro.

À medida que os sensores em pontes, prédios, processos industriais e maquinaria geram dados, as soluções preditivas geram dados para proporcionar um ambiente mais seguro onde as previsões o alertam sobre possíveis falhas e problemas antes que aconteçam de fato. Sensores também são usados para monitorar pessoas, como acontece com os pacientes em Unidades de Terapia Intensiva. A IBM® e o University of Ontario Institute of Technology estão trabalhando juntos atualmente para implementar uma solução preditiva e de análise de dados para monitorar bebês prematuros, na qual leituras biomédicas podem ser usadas para detectar infecções potencialmente fatais até 24 antes do tempo em que seriam observadas normalmente.

Porém, a analítica preditiva, isoladamente, pode processar tudo isso? Depende. Os padrões abertos devem necessariamente estar envolvidos nesse processo. Para que você aproveite totalmente as soluções preditivas e a análise de dados, os sistemas e aplicativos devem ser capazes de trocar informações facilmente, seguindo normas. A PMML permite que os modelos analíticos preditivos sejam compartilhados entre aplicativos e sistemas.

A adoção da PMML por meio dos principais fornecedores de analítica é um grande exemplo de empresas que estão adotando a interoperabilidade. A IBM, SAS, Microstrategy, Equifax, NASA, e Zementis fazem parte do Data Mining Group (DMG), o comitê que está elaborando a PMML. As empresas de padrões abertos, como a KNIME e a Rapid-I, também fazem parte do comitê. A PMML existe para "moldar" a área de analítica preditiva e, portanto, fazer com que o mundo preditivo seja um lugar melhor para você.

Fundamentos da PMML

A PMML é a linguagem padrão de fato usada para representar os modelos de mineração de dados. Modelos de analítica preditiva e modelos de mineração de dados são termos usados para designar os modelos matemáticos que usam técnicas estatísticas para aprender padrões ocultos em grandes volumes de dados históricos. Os modelos de análise preditiva usam o conhecimento adquirido durante o treinamento para prever a existência de padrões conhecidos em dados novos. A PMML permite compartilhar facilmente modelos de análise preditiva entre aplicativos diferentes. Portanto, você pode treinar um modelo em um sistema, expressá-lo em PMML e movê-lo a outro sistema, no qual você pode usá-lo para prever, por exemplo, a probabilidade de falha em uma máquina.

A PMML é uma criação do Data Mining Group, um comitê liderado por fornecedores e composto por empresas de análise comerciais e de software livre. Consequentemente, a maioria das ferramentas atuais de mineração de dados pode exportar ou importar a PMML. A PMML, um padrão maduro que vem evoluindo nos últimos 10 anos, pode representar não só as técnicas estatísticas usadas para aprender padrões a partir dos dados — como as redes neurais artificiais e árvores de decisão — mas também o pré-processamento de dados brutos de entrada e o pós-processamento da saída do modelo (veja a Figura 1).


PMML incorporates data pre-processing and data post-processing as well as the predictive model itself

A estrutura de um arquivo de PMML segue as etapas usadas normalmente para criar uma solução preditiva que inclui:

  1. Dicionário de dados é um produto da fase de análise de dados que identifica os campos de dados de entrada que são mais úteis para resolver o problema em questão. Podem ser campos numéricos, ordinais e de categoria.
  2. Esquema de mineração define as estratégias para manipular valores ausentes e periféricos. Isso é extremamente útil, já que, muito frequentemente, sempre que os modelos são utilizados, alguns campos de dados obrigatórios de entrada podem estar vazios ou preenchidos incorretamente.
  3. Transformações de dados definem os cálculos necessários para pré-processar os dados brutos de entrada nos campos derivados. Os campos derivados (também chamados de detectores de recursos) combinam ou modificam os campos de entrada para obter informações mais relevantes. Por exemplo: para prever a pressão de frenagem usada para parar um carro, um modelo preditivo pode usar como entrada bruta a temperatura externa e a presença de água (choveu?). Um campo derivado pode combinar esses dois campos para detectar a existência de gelo na estrada. Em seguida, o campo sobre o gelo é usado como entrada direta para o modelo que prevê a pressão de frenagem necessária para parar.
  4. Definição de modelo define a estrutura e os parâmetros usados para construir o modelo. A PMML abrange uma variedade de técnicas estatísticas. Por exemplo: para representar uma rede neural, define todas as camadas neurais e os pesos de conexão entre os neurônios. Em uma árvore de decisão, define todos os nós da árvore e os predicados simples e compostos.
  5. Saídas definem as saídas esperadas do modelo. Em uma tarefa de classificação, as saídas podem incluir a classe prevista e as probabilidades associadas a todas as classes possíveis.
  6. Destinos definem as etapas de pós-processamento a ser aplicadas à saída do modelo. Em uma tarefa de regressão, essa etapa permite que as saídas sejam transformadas em pontuações (os resultados de predição) que as pessoas podem interpretar facilmente.
  7. Explicação do modelo define as métricas de desempenho obtidas ao passar os dados de teste pelo modelo (e não os dados de treinamento). Incluem as relações entre os campos, a matriz de confusão, os gráficos de ganho e levantamento e os gráficos de receiver operating characteristics (ROC).
  8. Verificação do modelo define um conjunto de amostra de registros dos dados de entrada juntamente com as saídas esperadas do modelo. É uma etapa muito importante, pois sempre que se passa um modelo de um aplicativo a outro, o modelo deve passar no teste de correspondência. Isso garante que o novo sistema produza as mesmas saídas do antigo quando tiver as mesmas entradas. Sempre que isso acontece, considera-se o modelo como verificado e pronto para ser colocado em funcionamento.

Considerando que a PMML permite que as soluções preditivas sejam expressas na sua totalidade (incluindo o pré-processamento e o pós-processamento dos dados e a técnica de modelagem), não é de se admirar que a estrutura e os elementos principais sejam um reflexo das oito etapas descritas acima.

Conclusão

A PMML possibilita a implementação instantânea de soluções preditivas. É o padrão de fato para representar modelos de análise preditiva e atualmente conta com o suporte de todas as principais ferramentas estatísticas comerciais e de software livre. À medida que mais sensores são implementados e mais dados são gerados, a analítica preditiva e os padrões abertos como a PMML se tornam fundamentais para entender todo esse contexto. Detecção de fraudes, recomendações de filmes, soluções médicas que salvam vidas e manutenção preditiva são alguns exemplos do que é possível fazer.

* Texto retirado de http://www.ibm.com/developerworks/br/industry/energy-util/ind-PMML1/index.html

sábado, 2 de outubro de 2010

Ontologia

É complicado achar uma definição exata sobre o que seria ontologia. Em ciências da computação e informação, ontologia pode ser entendida como uma representação formal do conhecimento, sendo um conjunto de conceitos, propriedades e atributos dentro de um domínio e as relações entre estes. O paper [1] contém uma definição de ontologia interessante: "é uma especificação explícita da conceitualização". Enquanto a conceitualização é definida como "uma abstração simplificada de uma visão do mundo que gostaríamos de representar para algum propósito".


O objetivo da ontologia é facilitar a comunicação e o intercâmbio de informações entre diferentes sistemas e entidades e são usadas para realizar inferências sobre os objetos do domínio. Ontologias são usadas em vários campos da computação tais como Inteligência Artificial, Web Semântica, Engenharia de Software e de Sistemas, como uma representação do conhecimento sobre o mundo ou de parte deste. Programas de computadores podem usar a ontologia para resolução de problemas de raciocínio indutivo e classificação por exemplo.

De acordo com [2], ontologias geralmente descrevem:

  • Indivíduos: os objetos básicos;
  • Classes: conjuntos, coleções ou tipos de objetos;
  • Atributos: propriedades, características ou parâmetros que os objetos podem ter e compartilhar;
  • Relacionamentos: as formas como os objetos podem se relacionar com outros objetos.



Desde a metade da década de 1970, pesquisadores no campo da Inteligência Artificial tem reconhecido que a captura do conhecimento é a chave para a construção de grandes e poderosos sistemas de IA. Estes pesquisadores argumentavam que poderiam criar novas ontologias como modelos computacionais que permitiriam certos tipos de raciocínio automatizado. Já na década de 1980, a comunidade de IA começou a usar o termo ontologia para se referir tanto à teoria de um mundo modelado quanto a um componente de um sistema de conhecimento. Alguns pesquisadores, inspirados pela ontologia filosófica, enxergaram a ontologia computacional como um tipo de filosofia aplicada.[3]


quinta-feira, 23 de setembro de 2010

Stunning data visualization in the AlloSphere

JoAnn Kuchera-Morin demonstra a AlloSphere, uma nova forma de ver e interpretar dados científicos, em cores e sons dentro de uma esfera de metal maciço.

sábado, 18 de setembro de 2010

Business Intelligence

O termo Business Intelligence (ou Inteligência de Negócios, ou ainda Inteligência Empresarial) pode ser entendido como o conjunto de estratégias, processos, metodologias, tecnologias e ferramentas enfocadas na administração e criação de conhecimento mediante o processo de coleta, organização, análise, compartilhamento monitoramento de dados de uma empresa para oferecer suporte à gestão de negócios. Ou seja, todas a informações relevantes (e até as aparentemente irrelevantes) de uma corporação são devidamente armazenadas e classificadas para que, lançando mão de dispositivos computacionais de mineração de dados e inteligência artificial, sejam gerados indicadores que servem de apoio à tomada das melhores decisões. [1][2]

As empresas que utilizam BI em seus planos de gestão estratégica, buscam encontrar padrões, "acumular inteligência", prever acontecimento futuros e tentam ganhar vantagens competitivas em cima de concorrentes. As tecnologias de BI funcionam geralmente em conjunto com sistemas de informação inteligentes que são baseados nos dados de produção, venda, consumo, marketing, indicadores de qualidade entre outras variáveis interessantes para a empresa, que são geralmente guardados em um armazém de dados (data warehouse). Através de técnicas de ETL (extrair, transformar, carregar) [3], se extraem os dados de distintas fontes, depois depuram e preparam (homogenização dos dados) para poder carregá-los em um armazém de dados.

A vida útil de um software de BI será ditada praticamente pelo nível de êxito de uma empresa, quando usado por esta. Em outras palavras, se a empresa é capaz de incrementar de alguma forma que a interesse seu lucro, suas estratégias de mercado ou de qualquer outra maneira melhoras suas decisões tomadas, então os sistema de BI será mantido por muito tempo na companhia. Do contrário, será substituído por um mais novo, melhor e mais preciso nos resultados.



No site da Siemens em um artigo rápido e curto é citado um exemplo clássico: não é à toa que nos supermercados, fraldas se encontram próximas à latas e garrafas de cerveja. "Não se trata de mera coincidência, e sim do resultado da análise de sofisticados programas capazes de estudar milhões de combinações cruzadas entre produtos e hábitos de consumo."[4]

Finalizando este post sobre Business Intelligence, sabemos que nos últimos trinta ou quarenta anos, o capitalismo evoluiu radicalmente da era industrial para a era do conhecimento (outros chamam de era da informação). O que para uma empresa, na nova realidade da conjuntura internacional dos negócios, importa não é simplismente a informação, e sim o conhecimento que pode ser extraído da informação. Um dos grandes pecados de muitas corporações é investir pesadas cifras em sistemas de data warehousing caríssimos, onde muitos dados variam de supérfulos a inúteis. E é aí que entra Business Intelligence!

terça-feira, 14 de setembro de 2010

Weka

Já que estamos trabalhando atualmente com o KNIME, a seguir posto um pouco sobre o Weka, outro software relacionado à Inteligência Computacional. O Weka é um software muito popular de aprendizagem de máquina (machine learning) e mineração de dados totalmente desenvolvida em Java e desenvolvida pela Universidade de Waikato na Nova Zelândia. O nome Weka é o acrônimo de "Waikato Environment for Knowledge Analysis" e também é o nome de uma espécie de pássaro neozelandês.



Uma breve história do Weka:
-Em 1993 pesquisadores da Universidade de Waikato começaram o desenvolvimento de um software que implementasse algoritmos de mineração de dados e machine learning. O Weka foi desenvolvido em C e TCL/TK.
-Em 1997 o Weka teve seu código totalmente reescrito, dessa vez em Java e com a implementação de alguns algoritmos de modelagem de dados.
-Em 2005 o Weka recebe o prêmio Data Mining and Knowledge Discovery Service do SIGKDD (Special Interest Group on Knowledge Discovery and Data Mining), que é um grupo especial da ACM. [1]

De acordo com o próprio site do Weka os objetivos do projeto são:
-Tornar geralmente disponíveis técnicas de ML (machine learning);
-Aplicá-las a problemas que interessem à indústria da Nova Zelândia;
-Desenvolver novos algoritmos de aprendizagem de máquina e entregá-los ao mundo;
-E contribuir para um framework teórico para o campo. [2]


Alguns motivos especiais fizeram com que o Weka possuísse boa aceitação entre aqueles envolvidos nesta área de aprendizagem de máquina, mineração de dados e inteligência artificial tais como o fato de estar distribuído sob licença GNU General Public License, ser implementado em Java (o que permite sua execução em quase todas as plataformas modernas) e sua interface gráfica agradável que facilita a utilização pelos iniciantes.

O Weka contém uma extensa coleção de técnicas de pré-processamento de dados e modelagem de dados, além de suportar várias tarefas comuns em mineração de dados como clusterização, classificação, regressão, vizualização e seleção. Uma área considerada importante que não é coberta pelo algoritmos do Weka é a de modelagem de sequências. [1]

Para mais informações:

sábado, 11 de setembro de 2010

A Importância dos Dados

A IBM possui um portal chamado Smarter Planet [1], onde disponibiliza diversas discussões e estudos de caso sobre como o nosso planeta está se tornando mais inteligente. Ele também apresenta soluções para transformarmos o trânsito, os meios de produção, as telecomunicações e diversos outros tópicos dos quais dependemos. Todas essas mudanças só foram e só serão possíveis devido ao avanço tecnológico.

Entre os tópicos abordados também está a ciência analítica [2]. Como estudo de caso, a IBM explica a eficiência com a qual os bombeiros de Nova York (FDNY - Fire Department of the City of New York) combatem os incêndios da cidade com ajuda de dados obtidos na inspeção de prédios. Esses dados, como os materiais utilizados na construção, por exemplo, são provenientes de diversas fontes autorizadas a inspecionar os edifícios da cidade, sejam elas federais, estaduais ou municipais. Reunida toda essa informação, o FDNY pode responder às emergências da maneira mais adequada, prevenir problemas durante a emergência e até previní-las em primeiro lugar. Para se ter uma ideia, no ano de 2009 o FDNY conduziu 259.150 inspeções em edifícios, protegendo 8.250.567 pessoas em uma área de 322 milhas quadradas, cerca de 834 quilômetros quadrados.

Essa é apenas uma amostra da importância dos dados para a humanidade. E é a essa importância que o vídeo a seguir se refere. Traduzi a transcrição disponível na descrição do vídeo, que está em inglês.



Hoje, a inteligência está sendo inserida em sistemas e processos que fazem o mundo funcionar. Em coisas que ninguém reconheceria como computadores: carros, eletrodomésticos, estradas, redes elétricas e até mesmo roupas e abastecimento de água. Trilhões de dispositivos digitais, conectados através da Internet, estão produzindo um oceano de dados. Toda essa informação, do fluxo dos mercados à pulsação das sociedades, pode ser transformada em conhecimento. Porque agora nós temos o poder computacional e analítica avançada para compreender isso. Com esse conhecimento, podemos reduzir custos. Cortar desperdícios. Melhorar a eficiência, produtividade e qualidade de qualquer coisa, das empresas às cidades. Os sinais de um planeta mais inteligente estão à nossa volta. Sistemas mais inteligentes estão agregando valor às grandes indústrias. Através de todas as regiões, seja em países desenvolvidos ou em desenvolvimento. Em mais de 400 cidades, no último ano, sistemas de tráfego inteligente reduziram o desperdício de tempo no trânsito em mais de 700.000 horas. Cada cidade economizando cerca de 15 milhões de dólares. Em Washington, redes elétricas e sistemas de medição inteligentes possibilitaram aos cidadãos a economia de 10% em suas contas de luz e o corte de 15% do consumo de energia. Hamburgo tem um sistema de saúde inteligente. Madri tem uma segurança pública inteligente. Galway tem abastecimento de água inteligente. Cadeias inteligentes de fornecimento estão cortando os custos dos varejistas em 30%. Reduzindo os níveis de inventário em 25%. Aumentando as vendas em 10%. Bancos e organizações financeiras ao redor do globo estão alcançando novos níveis de controle de risco. Um planeta mais inteligente não é uma metáfora. Ou uma visão. Ou uma proposta. Um planeta mais inteligente é um acontecimento. No alvorecer deste novo milênio, líderes com visão, ao redor do mundo, estão criando resultados tangíveis e benefícios. Eles estão aprendendo a cumprir seus papeis para o nosso planeta, de forma mais inteligente. Bem-vindo à década da inteligência. Vamos construir um planeta mais inteligente.


[1] http://www.ibm.com/smarterplanet
[2] http://www.ibm.com/smarterplanet/us/en/business_analytics