Programando a Inteligência Coletiva

O livro Programando a Inteligência Coletiva: Desenvolvendo Aplicativos Inteligentes Web 2.0 escrito por Toby Segaran talvez seja um dos materiais mais práticos e didáticos já publicados na área de Inteligência Artificial! E o motivo disso é que o autor aborda em cada capítulo exemplos práticos de aplicações que podem ser utilizadas no mundo real, todos escritos em Python. O livro foi traduzido do inglês e recebeu a recomendação de Dan Russell e Paul Tyma, responsável pelas tecnologias de ponta do Google e engenheiro de software senior também do Google, respectivamente.

Antes de mostrar o que tem em cada um dos 12 capítulos, primeiro precisamos entender algumas definições sobre o termo “inteligência coletiva”. Em resumo, a inteligência coletiva trata de coletar dados de grupos de pessoas, combiná-los e analisá-los para conseguir tomar algum tipo de decisão ou encontrar algum tipo de padrão. Por exemplo, o preço de ações não é determinado somente por uma pessoa, mas pelo comportamento de compra e venda de muitas pessoas que possuem seus próprios interesses. Desta forma, o objetivo dessa área é analisar esse grande volume de dados e extrair padrões úteis que podem ser utilizados para tomada de decisão. E para que isso seja possível, são necessárias técnicas de aprendizagem de máquina e algoritmos eficientes para analisar esse montante de dados em busca de padrões úteis. Todo esse conteúdo é apresentado no Capítulo 1, que aborda uma introdução à essa área e cita vários exemplos de aplicações do mundo real.

O Capítulo 2 é sobre os sistemas de recomendação e é apresentado um algoritmo de filtragem colaborativa para recomendação de filmes, muito similar ao utilizado pela Netflix para recomendar os próximos filmes que um usuário pode ter interesse em assistir. É mostrado passo a passo o código em Python para chegar nesse objetivo, o que torna o capítulo muito interessante e fácil para compreender! Em praticamente todos os capítulos, o autor mostra como extrair dados da Internet para construir as bases de dados, e nesta seção é abordado sobre o site MovieLens para avaliação de filmes. Com relação a esse tema da filtragem colaborativa, escrevemos um artigo para a revista SQL Magazine baseado nesse algoritmos, que você pode ver na imagem abaixo.

O Capítulo 3 trata do algoritmo k-means para agrupamento de dados, sendo mostrado um exemplo para agrupar blogs pelo seu conteúdo. O Capítulo 4, por sua vez, apresenta passo a passo como construir um sistema de busca completo, juntamente com as explicações sobre o funcionamento do algoritmo Page Rank que foi criado pelo Google!  O autor mostra como calcular a importância de uma página, utilizando recursos como: frequência de palavras, posição no documento, distância entre palavras e links externos. Além disso, uma rede neural é construída para que o algoritmo aprenda com os cliques que os usuários dão em cada link para determinar a sua importância.

O Capítulo 5 trata do tópico otimização, mostrando como utilizar o algoritmo de subida da encosta e têmpera simulada para encontrar as melhores soluções. É apresentado um exemplo prático de uma família que pretende planejar uma viagem em grupo, sendo que o algoritmo deve escolher a melhor solução em termos de custos de viagem e tempo de espera no aeroporto para cada membro da família. Para complementar, existe também o código para extrair dados de vôos utilizando a API da Kayak, que permite que seja feito o download de dados reais! Além disso, são mostrados também testes para otimização de vagas em dormitórios e visualização de grafos!

No Capítulo 6 é mostrado passo a passo como construir um filtro de spam utilizando o algoritmo Naive Bayes, enquanto que o Capítulo 7 é focado no desenvolvimento de modelos com árvores de decisão. Neste contexto, o autor utiliza um exemplo para prever inscrições de novos usuários em um site e previsão de preços de casas utilizando a API da Zillow, que é um serviço que procura preços de residências para criar estimativas para outras casas. Além disso, é também mostrado um exemplo muito interessante sobre relacionamentos, para saber se duas pessoas podem dar certo em um namoro, por exemplo!

O Capítulo 8 é dedicado a construção de modelos de preços utilizando o algoritmo k-nn (k vizinhos mais próximos), sendo utilizado o cenário de precificação de vinhos e a API do eBay. O Capítulo 9 é voltado aos conceitos teóricos das máquinas de vetores de suporte e exemplos práticos de como extrair dados do Facebook. O Capítulo 10 aborda o tópico sobre características independentes e fatoração de matrizes não negativas, utilizando o cenário de blogs e o mercado de ações para exemplificar.

Por fim, o Capítulo 11 trata da Inteligência Evolutiva, bem como da programação genética. É construído um exemplo que gera a população inicial, e por meio dela, criar “programas mutantes” e cruzamento entre programas. O exemplo prático aborda a criação de um jogo de tabuleiro chamado Batalha do Tabuleiro, no qual o algoritmo aprende e se desenvolve a cada partida! Fechando o livro, o Capítulo 12 apresenta um resumo de cada um dos algoritmos que foram vistos no livro.

Este livro é altamente recomendável, seja para quem está iniciando em Inteligência Artificial ou para quem já possui alguma experiência na área. De todos os livros de IA que eu já li até agora, talvez esse seja o que apresenta a maior quantidade de exemplos práticos da aplicação dos algoritmos, sendo que muitas ideias apresentadas podem ser facilmente aplicadas por empresas dos mais variados segmentos! Como o livro é de 2008, alguns códigos em Python precisam de alguns ajustes devido à mudanças em algumas bibliotecas e APIs, porém, não são necessárias tantas modificações. Inclusive no site da editora você pode baixar todos os fontes e bases de dados! Abaixo estão os dados completos do livro

Título: Programando a Inteligência Coletiva: Desenvolvendo Aplicativos Inteligentes Web 2.0
Autor: Toby Segaran
Editora: Alta Books
Ano: 2008
Páginas: 286

Até o próximo review!

Sê o primeiro

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *