1. Python e Aprendizagem
de Máquina
A cobra também é inteligente!
Marcel P. Caraciolo
@marcelcaraciolo
2. Quem é Marcel ?
Marcel Pinheiro Caraciolo - @marcelcaraciolo
Sergipano, porém Recifense.
Mestrando em Ciência da Computação no CIN/UFPE na área de mineração de dados
Diretor de Pesquisa e Desenvolvimento na Orygens
Membro e Moderador da Celúla de Usuários Python de Pernambuco (PUG-PE)
Minhas áreas de interesse: Computação móvel e Computação inteligente
Meus blogs: http://www.mobideia.com (sobre Mobilidade desde 2006)
http://aimotion.blogspot.com (sobre I.A. desde 2009)
Jovem Aprendiz ainda nas artes pythonicas.... (desde 2007)
4. “Aprendizagem de Máquina é um sub-campo da inteligência artificial
dedicado ao desenvolvimento de técnicas que permitam o
computador aprender baseado em dados empíricos.”
5. Dados de Saída Algoritmo Dados de Entrada
Processamento
Machine Learning e I.A na Academia
e como geralmente é ensinado...
6. Dados de Saída Algoritmo Dados de Entrada
Processamento
Machine Learning e I.A no mundo real
ou o que as tendências vem mostrando...
7. Dados de Saída Algoritmo Dados de Entrada
Processamento
Processamento
Processamento
Processamento
Processamento
Processamento é sempre uma limitação
que muitas vezes na academia se abstraem.
8. Dados de Saída Algoritmo Dados de Entrada
Dados de Entrada
Dados de Entrada
Dados de Entrada
Dados de Entrada
Processamento
Processamento
Processamento
Processamento
Processamento
Dados, geralmente não são escarsos.
Muitas fontes de dados espalhados por aí e poucos sabem...
9. ?
Processamento
Processamento Dados de Entrada
Dados de Entrada
Processamento
Processamento Dados de Entrada
Dados de Entrada
Processamento Dados de Entrada
Mais dados, mais problemas ...
Requer mais processamento e como eliminar ?
10. Dados de Saída Algoritmo Dados de Entrada
Dados de Entrada
Dados de Entrada
Dados de Entrada
Dados de Entrada
Processamento
Processamento
Processamento
Processamento
Processamento
O Algoritmo ainda é muito importante!
11. Se conseguirmos identificar os padrões relevantes dentro de uma
base de dados então podemos representar uma larga base com
poucos bits
Aprendizagem de Máquina
Se nós podemos representar nossos dados com poucos bits
(comprimir nossos dados) então realmente “detectamos” os conceitos
mais relevantes!
Aprendizado vs Compressão
12. Sem reforço Com reforço
Aprendizado Supervisionado
17. 1.0 2.0
Fonte de Informação Fluxo Contínuo de Informação
VI Encontro do PUG-PE
VI Encontro do PUG-PE
18. Intelligence from
Mining Data
User
User
User User
User
Um usuário influencia outros
por resenhas, notas, recomendações e blogs
Um usuário é influenciado por outros
por resenhas, notas, recomendações e blogs
19. reconhecimento de faces
classificação
identificação de escrita
análise de sentimentos recomendações
tradução Inteligência Coletiva
otimização
Sua aplicação
busca
previsão
detecção de fraudes
diagnósticos
processamento de linguagem natural
agrupamentos filtragem
30. “A lot of times, people don’t know what
they want until you show it to them.”
Steve Jobs
“We are leaving the Information age, and
entering into the Recommendation age.”
Chris Anderson, from book Long Tail
32. Recomendações Sociais
Família/Amigos
Amigos/ Família
O Que eu
deveria ler ?
Ref: Flickr-BlueAlgae
“Eu acho que
você deveria ler
Ref: Flickr photostream: jefield estes livros.
33. Recomendações por Interação
Entrada: Avalie alguns livros
O Que eu
deveria ler ?
Saída:
“Livros que você
pode gostar
são …”
36. Netflix
- 2/3 dos filmes alugados vêm de recomendação
Google News
- 38% das notícias mais clicadas vêm de recomendação
Amazon
- 38% das vendas vêm de recomendação
Fonte: Celma & Lamere, ISMIR 2007
38. O que os sistemas de recomendação
realmente fazem ?
1. Prediz o quanto você pode gostar de um certo
produto ou serviço
2. Sugere um lista de N items ordenada de acordo
com seu interese
3. Sugere uma lista de N usuários ordernada
para um produto/serviço
4. Explica a você o porque esses items foram
recomendados
5. Ajusta a predição e a recomendação baseado em
seu feedback e de outros.
39. Filtragem baseada por Conteúdo
Similar
Duro de O Vento Toy
Armagedon Items
Matar Levou Store
recomenda
gosta
Marcel Usuários
40. Filtragem Colaborativa
O Vento Toy
Thor Armagedon Items
Levou Store
gosta
recomenda
Marcel Rafael Amanda Usuários
Similar
45. PyML is focused on kernel-methods for classification and regression, including
Support Vector Machines (SVM).
Muito Legal !!! -- > Feature selection
>>> from PyML.classifiers.composite import FeatureSelect
>>> featureSelector = FeatureSelect(svm.SVM(), featsel.RFE())
http://pyml.sourceforge.net/
PyML
“Machine Learning in Python”
46. import numpy as np
import milk
features = np.random.rand(100,10)
labels = np.zeros(100)
features[50:] += .5
labels[50:] = 1
learner = milk.defaultclassifier()
model = learner.train(features, labels)
# Now you can use the model on new examples:
example = np.random.rand(10)
print model.apply(example)
example2 = np.random.rand(10)
example2 += .5
print model.apply(example2)
http://luispedro.org/software/milk
milk
“Machine Learning Toolkit for Python”
49. Acha um hiperplano que divide o espaço dos documentos em dois
?
language
Support Vector Machines Python-LibSvm
gemstone
50. http://pyevolve.sourceforge.net
Criado por um brasileiro!
from pyevolve import G1DList
from pyevolve import GSimpleGA
def eval_func(chromosome):
score = 0.0
# iterate over the chromosome
for value in chromosome:
if value==0:
score += 1
return score
genome = G1DList.G1DList(20)
genome.evaluator.set(eval_func)
ga = GSimpleGA.GSimpleGA(genome)
ga.evolve(freq_stats=10)
print ga.bestIndividual()
PyEvolve
Algoritmos Genéticos com Python
53. >>> text = nltk.word_tokenize("And now for something
completely different")
>>> nltk.pos_tag(text)
[('And', 'CC'), ('now', 'RB'), ('for', 'IN'), ('something',
'NN'),
('completely', 'RB'), ('different', 'JJ')]
http://www.nltk.org/
NLTK
Processamento de Textos
54. Concept Tagging
Name Entity Extraction
Language Detection
http://www.alchemyapi.com/
REST API’s
Asynchoronous training
Data on the fly
http://code.google.com/apis/predict/ Support on App Engine
http://recdaynow.appspot.com
API’s prontas!
55. Ubigraph 3D
http://networkx.lanl.gov/
Visualização
56. Mapa dos concurseiros no Brasil (Atepassar)
http://aimotion.blogspot.com/2011/03/atepassar-social-network-friendship.html