domingo, 12 de dezembro de 2010

BIOINFORMÁTICA

Desde o início até meados do século passado os geneticistas e químicos se questionaram sobre a natureza química do material genético. Das pesquisas desenvolvidas, surgiu a conclusão de que o DNA era a molécula que armazenava a informação genética e, em 1953, sua estrutura química foi desvendada no clássico trabalho de Watson e Crick.

Na segunda metade da década de 90, com o surgimento dos seqüenciadores automáticos de DNA, houve uma explosão na quantidade de seqüências a serem armazenadas, exigindo assim recursos computacionais cada vez mais eficientes. Além do armazenamento acontecia, paralelamente, a necessidade de análise desses dados, o que tornava indispensável à utilização das referidas plataformas computacionais para a interpretação dos resultados obtidos.

Como na evolução da genética também houve a evolução da informática o que fez com que surgissem diferentes áreas de estudo e técnicas. Foram criados inúmeros grupos de pesquisas para serem usadas na bioinformática nas mais variadas aplicações como: Simulação em ambientes virtuais de organismos semelhantes aos reais analisando o seu comportamento e obtendo resultados antes só adquiridos através de testes feitos com organismos reais.

O estudo do seqüenciamento genético foi o grande propulsor da bioinformática, surgiu da necessidade da integração de varias ciências dentre elas a informática que desempenha função fundamental nessa ciência. Na bioinformática são utilizadas técnicas de inteligência artificial tanto para fazer analises de dados quanto para tomadas de decisões.

Figura 1: O Dogma Central da Biologia Molecular


Uma das características mais deslumbrantes ocorrida nos últimos 10 anos, de projetos e consórcios destinados a compor o genoma completo dos mais diversos organismos, foi o estabelecimento de abordagens e tecnologias que permitiram um estilo “linha-de-montagem” na obtenção, em tempos cada vez mais curtos, de quantidades industriais de seqüências de ácidos nucleicos (DNA e RNA).


Bioinformática no Brasil

No Brasil a bioinformática teve o seu inicio com a vinda de Neshich de origem sérvia, segundo Gerhardt (2001), que foi o idealizador do projeto BBNet (BrazilianBioNet), uma rede de usuários da bioinformática, formada em 1992, que propiciou os primeiros contatos de cientistas brasileiros a programas de análise de seqüência de DNA de forma gratuita, por intermédio de um servidor da Embrapa Recursos Genéticos e Biotecnologia.

O elevado número de informações geradas todos os dias pelo mapeamento de genes necessitam ser armazenadas de forma sistemática em bancos de dados computacionais, servindo de base para estudos médicos e biológicos através da Bioinformática.


Referências

[1] AB3C, Associação Brasileira de Bioinformática e Biologia Computacional. Incentivo a Compreensão da importância da Biologia Computacional no Brasil e na América Latina. Disponível em: < http://www.ab3c.org/>.

[2] http://www.cnptia.embrapa.br/files/agrinforma04_06.pdf

[3] http://www.biotecnologia.com.br/revista/bio29/bioinf.pdf

[4] Programa para o alinhamento múltiplo de seqüências

Acesso on line - http://www.ebi.ac.uk/clustalw/

Download do clustal X para diversas plataformas:

http://inn-prot.weizmann.ac.il/software/ClustalX.html

[5] Prosdocimi F et al. Clustering of Schistosoma mansoni mRNA sequences and analysis of the most transcribed genes: implications in metabolism and biology of different developmental stages. MemInst Oswaldo Cruz 97: 61-69. 2002.

quarta-feira, 1 de dezembro de 2010

GA e o problema do caixeiro viajante

Entrando no assunto de GA, achei um link muito interessante.

Nessa página, é proposto um programa que visa solucionar o problema do caixeiro viajante utilizando algoritmos genéticos.

Informações mais detalhadas em: http://www.lalena.com/AI/Tsp/

No final tem o link do código-fonte e também o programa em si para usar. Bem legal.

domingo, 14 de novembro de 2010

Moradores e Turistas - Onde eles tiram mais fotos?



O programador Eric Fischer criou pequenos softwares que analisam a localização de fotos tiradas em importantes cidades do mundo e chegou à resposta. Através da distribuição de cores no mapa, é possível ver em que parte da cidade os turistas fotografam mais e em quais são que os moradores mais tiram fotos. A figura acima mostra a cidade de Nova York. Os pontos vermelhos representam fotos tiradas por turistas, os pontos azuis representam as fotos tiradas por moradores e os pontos amarelos mostram locais onde não foi possível distinguir se a fotografia foi tirada por um turista ou um morador. Essa distinção é feita analisando-se o tempo em que uma pessoa permanece fotografando uma cidade. Uma pessoa que tirou retratos em uma cidade por menos de um mês é classificada como turista e uma que fez o mesmo por mais de um mês é classificada como moradora.

Essa visualização de dados foi realizada para diversas cidades, como Londres, Veneza, Las Vegas, São Francisco e as brasileiras Rio de Janeiro [1], São Paulo [2] e Brasília [3].

Trata-se de um exemplo de como dados facilmente acessíveis podem ser analisados e transformados em conhecimento. Prefeituras e agências de turismo podem oferecer roteiros turísticos baseados não só em cartões postais, mas também em locais bastante frequentados pelos próprios moradores.

Os mapas com todas as cidades do projeto de Fischer estão disponíveis aqui [4].


[1] http://www.flickr.com/photos/walkingsf/4686660261/in/set-72157624209158632
[2] http://www.flickr.com/photos/walkingsf/4671446659/in/set-72157624209158632
[3] http://www.flickr.com/photos/walkingsf/4687296132/in/set-72157624209158632
[4] http://www.flickr.com/photos/walkingsf/sets/72157624209158632

segunda-feira, 1 de novembro de 2010

OLAP

Neste post segue uma breve introdução aos sistemas OLAP.

OLAP é o acrônimo de On-Line Analytical Processing. É uma solução utilizada no campo da chamada Inteligência Empresarial (Businees Intelligence) cujo objetivo é facilitar e agilizar a consulta de grandes quantidades de dados sob diferentes perspectivas. Para isto, utiliza estruturas multidimensionais (Cubos OLAP) que contém dados resumidos de grandes bases de dados. Os dados de origem do OLAP são bancos de dado OLTP (Online Transactional Processing) que são comumente armazenados em depósitos de dados. Ferramentas OLAP são usadas em negócios de vendas, marketing, endereçamento e similares. Abaixo algumas razões para usar-se OLAP:

  • Simples e intuitivo
  • Fácil de gravar e interpretar
  • Projetado para alto desempenho nas consultas

No núcleo de muitos sistemas OLAP está o conceito de Cubo OLAP (também chamado de cubo multidimensional ou hypercubo). As bases de dados OLAP contêm dois tipos básicos de dados: medidas, que são dados numéricos, as quantidades e médias que você usa para tomar decisões comerciais estando bem informado; e dimensões , que são as categorias que você usa para organizar essas medidas ( uma dimensão pode ser qualquer visão do negócio que faça sentido para sua análise, como produto, departamento ou tempo). Os bancos de dados OLAP ajudam a organizar os dados por muitos níveis de detalhe, usando as mesmas categorias com as quais você está familiarizado para analisar os dados.


Em geral os sitemas OLAP se classificam em ROLAP (utiliza um banco de dados relacional), MOLAP (banco de dados multidimensional) ou HOLAP (sistema híbrido).

Para maiores informações visite os links abaixo pois são muito detalhados para quem tiver interesse nesta área que está se destacando no mercado de TI:

quarta-feira, 27 de outubro de 2010

O Algoritmo de Agrupamento k-means

O algoritmo k-means é um método não-supervisionado de classificação que tem como objetivo particionar n registros em k agrupamentos, onde k < n. Seu funcionamento é descrito a seguir:

Dado um valor inicial de k médias (k-means), os registros são separados em agrupamentos, onde esses pontos (k-means) representam o centro de cada agrupamento. Normalmente, as coordenadas iniciais desses centróides são determinadas de forma aleatória. Em seguida, cada registro é associado ao cluster cujo centro está mais próximo, seguindo uma métrica de distância. Existem diversas métricas de distância, como a Euclidiana [1] e a de Mahalanobis [2]. Quando todos os registros estiverem classificados, os k centros são recalculados como as médias aritméticas dos registros de cada cluster. Então, os registros são novamente associados a um agrupamento segundo sua distância à média do cluster e os centros são novamente calculados. Esse passo se repete até que as médias dos clusters não se desloquem consideravelmente.

Segue o link [3] de uma demonstração interativa do k-means.


[1] http://pt.wikipedia.org/wiki/Distância_euclidiana
[2] http://pt.wikipedia.org/wiki/Distância_de_Mahalanobis
[3] http://home.dei.polimi.it/matteucc/Clustering/tutorial_html/AppletKM.html

sábado, 16 de outubro de 2010

Aprendizado de máquina

Curso da Faculdade de Engenharia de Standford sobre Aprendizado de Máquina:

http://see.stanford.edu/see/lecturelist.aspx?coll=348ca38a-3a6d-4052-937d-cb017338d7b1

É 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

quarta-feira, 1 de setembro de 2010

Inteligência Computacional

A inteligência é uma capacidade inerentemente humana, diz-se que é a característica que nos diferencia dos outros animais. É muito difícil definir inteligência e (talvez por isso) o termo vem sendo empregado em diversos contextos diferentes. Freqüentemente, a palavra “inteligência” ou o adjetivo “inteligente” é utilizado para valorizar algum produto; de suspensão inteligente a forno de microondas, qualquer produto que contenha algum grau de automação torna-se “inteligente”.
Na ciência da Computação, o termo “inteligência artificial[1][2]” surgiu em meados da década de 1950 como uma proposta de estudo[3] para o desenvolvimento de máquinas capazes de utilizar a linguagem e executar tarefas como seres humanos. No final da década de 1960 surgiram os primeiros provadores de teoremas que evoluíram para os “sistemas especialistas[4]” em 1970. A tecnologia se tornou comercial em 1980 com as chamadas “shells” de sistemas especialistas[5]. Logo ficou claro que a aquisição de conhecimento e sua representação não era uma tarefa trivial. Entre o final da década de 1970 e meados da década de 1980 surgiram resultados do desenvolvimento de modelos de dados fora da estatística com o algoritmo “backpropagation[6]” para o ajuste de redes neurais e também os algoritmos de indução de árvores de decisão surgindo então o termo “aprendizado de máquina”[7]. Na década de 1990 os algoritmos genéticos[8][9] tornam-se amplamente conhecidos. Nesta época surgem também as redes neurais de base radial[10] e as máquinas de vetor de suporte[11] que fomentaram o desenvolvimento de diversos algoritmos baseados em “kernels”[12]. A integração destas técnicas passa a ser conhecida como “soft computing[13]” ou “computational intelligence[14]”. No Brasil a área ficou conhecida como “inteligência computacional[15]”. Em 1990 aparecem os primeiros algoritmos de regras de associação[16] que se tornaram conhecidos com o caso das fraldas e cervejas[17] Ao longo da década de 1990, o termo “mineração de dados[18]” começa a se difundir como um conjunto de técnicas que incluem estatística, aprendizado de máquina, inteligência computacional, bancos de dados, entre outras, para o desenvolvimento de modelos a partir de dados. Em 1997 surge a primeira plataforma de código livre de mineração de dados o Weka[19], desenvolvido na Universidade de Waikato, Nova Zelândia, tornando-se uma referência no mundo acadêmico. A partir de 2000, é cada vez maior o número softwares comerciais e de código aberto que implementam algoritmos de mineração de dados[20]. Ao longo da década de 2000, as plataformas de “mineração de dados” comerciais começam a se apresentar como ferramentas de “inteligência analítica[21]” cujo foco é a análise dos resultados gerados e o alinhamento dos resultados com os objetivos do negocio.
Desde o início da década de 2000 tem havido um grande esforço no desenvolvimento de algoritmos específicos para o tratamento de textos, que levou o surgimento de uma nova área chamada de mineração de textos[22]. O tratamento de documentos trouxe novos desafios para os pesquisadores e levou uma aproximação da área de mineração de dados à duas áreas clássicas da ciência da computação, de processamento de linguagem natural[23] e recuperação da informação[24]. Outros tipos de estruturas complexas como compostos químicos, estruturas de proteínas, redes biológicas e redes complexas como a internet. A pesquisa nesse nessa linha levou os pesquisadores de mineração de dados ao encontro da física estatística e ao estudo de redes complexas[25] [2][3]. Atualmente, com as tecnologias de web 2.0[26] e a popularização das redes sociais e do twitter, uma grande quantidade de informação é gerada diariamente por pessoas comuns, gerando informação potencialmente útil para as empresas. Diversas empresas têm incluído as redes sociais em suas estratégias de relacionamento com clientes abrindo um enorme potencial para as tecnologias de mineração de dados e textos.
Atualmente é possível ter uma estimativa qualitativa do interesse das pessoas por algum assunto através da ferramenta Google Trends[27] que mostra o número de buscas realizadas por alguma palavra no site de buscas Google. Com cerca de 65% do mercado de buscas, a amostra realizada pelo Google é bastante significativa. Algumas comparações interessantes são comentadas abaixo, todas as pesquisas foram realizadas em julho/2010.
A Figura 1 mostra a comparação entre o número de buscas realizadas pelo Google utilizando os termos “business ingelligence” e “data mining”. O gráfico mostra que o número de buscas por estes dois termos é parecido e tem se mantido estáveis nos últimos anos. A Figura 2 mostra a comparação entre “data mining” e “cloud computing”, o modelo de computação em que os aplicativos ficam na internet. Observa-se o grande aumento do número de buscas por “cloud computing”.

Figura 1: Google trends: “data mining” (em azul) e “business intelligence” (em vermelho)
Figura 2: Google trends: “data mining” (em azul) e “cloud computing” (em vermelho)
A Figura 3 mostra a comparação entre “text mining” e “business analytics”, mostrando o aumento da procura pelo segundo a partir de 2007. A Figura 4 mostra a comparação pelo Google Trends do volume de buscas dos termos “text mining” e “social networks”, observa-se um aumento da procura por redes sociais nos último anos.
 
Figura 3: Google trends: “text mining” (em azul) e “business analytics” (em vermelho)
Figura 4: Google trends: “text mining” (em azul) e “social networks” (em vermelho)
É importante observar que existe hoje uma grande quantidade de algoritmos e ferramentas para o desenvolvimento de modelos de dados. A apresentação exaustiva das diversas técnicas para desenvolvimento de modelos de dados seria, além de enfadonho, de pouca utilidade prática, uma vez que as interfaces gráficas das ferramentas mais modernas permitem que se execute um modelo sem conhecer os detalhes técnicos e, principalmente, as limitações do algoritmo. Por outro lado, sem o conhecimento dos fundamentos dos métodos e das principais características dos problemas um usuário desatento pode retirar conclusões totalmente falsas sobre o desempenho dos modelos. Neste sentido, o objetivo deste livro é apresentar elementos que permitam ao leitor interpretar e analisar corretamente os resultados dos modelos, conhecendo as limitações do que se pode obter em termos de resultados. Em outras palavras, a “inteligência” no processo deve estar no ser humano e não na ferramenta.


[1] http://en.wikipedia.org/wiki/Artificial_intelligence
[2] http://pt.wikipedia.org/wiki/Intelig%C3%AAncia_artificial
[3] http://www-formal.stanford.edu/jmc/history/dartmouth/dartmouth.html
[4] http://pt.wikipedia.org/wiki/Sistema_especialista
[5] http://www.kbsc.com/rulebase.html
[6] http://en.wikipedia.org/wiki/Backpropagation
[7] http://en.wikipedia.org/wiki/Machine_learning
[8] http://en.wikipedia.org/wiki/Genetic_algorithm
[9] http://www.obitko.com/tutorials/genetic-algorithms/
[10] http://en.wikipedia.org/wiki/Radial_basis_function_network
[11] http://en.wikipedia.org/wiki/Support_vector_machine
[12] http://www.kernel-machines.org/
[13] http://en.wikipedia.org/wiki/Soft_computing
[14] http://en.wikipedia.org/wiki/Computational_intelligence
[15] http://www.das.ufsc.br/gia/softcomp/
[16] http://en.wikipedia.org/wiki/Association_rule_learning
[17] http://web.onetel.net.uk/~hibou/Beer%20and%20Nappies.html
[18] http://en.wikipedia.org/wiki/Data_mining
[19] http://www.cs.waikato.ac.nz/ml/weka/
[20] http://www.kdnuggets.com/software/index.html
[21] http://en.wikipedia.org/wiki/Business_analytics
[22] http://en.wikipedia.org/wiki/Text_mining
[23] http://en.wikipedia.org/wiki/Natural_language_processing
[24] http://en.wikipedia.org/wiki/Information_retrieval
[25] http://portal.acm.org/citation.cfm?id=1132954
[26] http://pt.wikipedia.org/wiki/Web_2.0
[27] http://www.google.com/trends