Python e Aprendizagem     de Máquina    A cobra também é inteligente!                             Marcel P. Caraciolo     ...
Quem é Marcel ?Marcel Pinheiro Caraciolo - @marcelcaraciolo   Sergipano, porém Recifense.   Mestrando em Ciência da Comput...
Aprendizagem de máquina é _______                             Falem !
“Aprendizagem de Máquina é um sub-campo da inteligência artificial     dedicado ao desenvolvimento de técnicas que permitam...
Dados de Saída     Algoritmo                 Dados de Entrada                 Processamento                     Machine Le...
Dados de Saída     Algoritmo               Dados de Entrada                 Processamento                    Machine Learn...
Dados de Saída     Algoritmo               Dados de Entrada                 Processamento                  Processamento  ...
Dados de Saída     Algoritmo                 Dados de Entrada                                              Dados de Entrad...
?Processamento Processamento                   Dados de Entrada                                  Dados de Entrada  Process...
Dados de Saída     Algoritmo         Dados de Entrada                                      Dados de Entrada               ...
Se conseguirmos identificar os padrões relevantes dentro de uma  base de dados então podemos representar uma larga base com...
Sem reforço              Com reforço              Aprendizado Supervisionado
Aprendizado Não Supervisionado
De onde vem os dados ?
http://archive.ics.uci.edu/ml/                                 Repositórios de Dados                                   UCI...
WEB
1.0                       2.0Fonte de Informação   Fluxo Contínuo de Informação                                 VI Encontr...
Intelligence from                    Mining Data                                                     User                 ...
reconhecimento de faces                                            classificação    identificação de escrita análise de sent...
Minha área de pesquisa    Sistemas de Recomendação
WEB SITESWEB APPLICATIONS WEB SERVICES                   3.0            SEMANTIC WEB                   USERS              ...
Atualmente
estamos sobrecarregados     de informações
muitas vezes inúteis
às vezesprocuramos   isso...
e encontramos isso!
google?
google?midias sociais?
eeeeuuuu...    google?midias sociais?
“A lot of times, people don’t know what they want until you show it to them.”                                     Steve Jo...
Sistemas de Recomendação
Recomendações Sociais                                      Família/Amigos                                    Amigos/ Famíl...
Recomendações por Interação                  Entrada: Avalie alguns livros   O Que eu  deveria ler ?                      ...
Sistemas desenhados para sugerir algo para mim do meu                       interesse!
Por que Recomendação ?
Netflix - 2/3 dos filmes alugados vêm de recomendaçãoGoogle News - 38% das notícias mais clicadas vêm de recomendaçãoAmazon ...
E como funciona a recomendação ?
O que os sistemas de recomendação        realmente fazem ? 1. Prediz o quanto você pode gostar de um certo                ...
Filtragem baseada por Conteúdo                  SimilarDuro de           O Vento                         Toy              ...
Filtragem Colaborativa                 O Vento                         ToyThor                             Armagedon      ...
Frameworks em Python
http://orange.biolab.si/                                 Orange                           “Data Mining Tool For Python”
CrabuserID = Maria GabrielarecSys = UserRecommender(self.model,self.similarity,self.neighbor,False)recSys.recommend(userID...
>>> from scikits.learn import svm>>> clf = svm.SVC()>>> clf.fit(digits.data[:-1], digits.target[:-1])SVC(kernel=rbf, C=1.0...
PyML is focused on kernel-methods for classification and regression, includingSupport Vector Machines (SVM).        Muito L...
import numpy as npimport milkfeatures = np.random.rand(100,10)labels = np.zeros(100)features[50:] += .5labels[50:] = 1lear...
http://pybrain.org/>>> from pybrain.tools.shortcuts import buildNetwork>>> n = buildNetwork(2, 3, 1, fast=True)>>> n.activ...
>>
from
libsvm
import
*>>
prob
=
svm_problem([1,‐1],[[1,0,1],[‐1,0,‐1]])>>
param
=
svm_parameter(kernel_type
=
LINEAR,
C
=...
Acha um hiperplano que divide o espaço dos documentos em dois                   ?                                         ...
http://pyevolve.sourceforge.net           Criado por um brasileiro!from pyevolve import G1DListfrom pyevolve import GSimpl...
Processo Evolutivo“As espécies evoluem pelo principio da seleção natural e sobrevivência do mais apto.”
https://github.com/Yelp/mrjob                  Computação Distribuída
>>> text = nltk.word_tokenize("And now for something                       completely different")                       >>...
Concept Tagging                                       Name Entity Extraction                                       Languag...
Ubigraph 3D    http://networkx.lanl.gov/         Visualização
Mapa dos concurseiros no Brasil (Atepassar)http://aimotion.blogspot.com/2011/03/atepassar-social-network-friendship.html
http://numpy.scipy.org/                            http://www.scipy.org/>>> from numpy import *>>> multiply(array([3,6]), ...
Análise
Analisar um classificadorsomente por sua acurácia é          errado
Classe real                 p                 n            Verdadeiro       Falso          pClasse       Positivo       Po...
Acurácia = (VP + VN) / (VP + VN + FP + FN)
A acurácia esconde potenciais   falso positivos ou falso          negativos
Use precision e recall
Recomendações Precision -Recall Diagram
Curva ROChttp://code.google.com/p/pyplotmining/
http://aimotion.blogspot.com/                                Livros e Referências
http://conference.scipy.org/scipy2011/        Conferência de Python em Computação Científica
Python e Aprendizagem     de Máquina    A cobra também é inteligente!                             Marcel P. Caraciolo     ...
Upcoming SlideShare
Loading in...5
×

Python e Aprendizagem de Máquina (Inteligência Artificial)

7,813

Published on

Keynote lecture at IFPE (Instituto Federal de Pernambuco ) about Python and Machine Learning 25.05.2011 at I Information Technology Symposium.

Published in: Technology, Education

Python e Aprendizagem de Máquina (Inteligência Artificial)

  1. 1. Python e Aprendizagem de Máquina A cobra também é inteligente! Marcel P. Caraciolo @marcelcaraciolo
  2. 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)
  3. 3. Aprendizagem de máquina é _______ Falem !
  4. 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. 5. Dados de Saída Algoritmo Dados de Entrada Processamento Machine Learning e I.A na Academia e como geralmente é ensinado...
  6. 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. 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. 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. 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. 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. 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. 12. Sem reforço Com reforço Aprendizado Supervisionado
  13. 13. Aprendizado Não Supervisionado
  14. 14. De onde vem os dados ?
  15. 15. http://archive.ics.uci.edu/ml/ Repositórios de Dados UCI, MovieLens, AWS, KDD, etc.
  16. 16. WEB
  17. 17. 1.0 2.0Fonte de Informação Fluxo Contínuo de Informação VI Encontro do PUG-PE VI Encontro do PUG-PE
  18. 18. Intelligence from Mining Data User UserUser 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. 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ósticosprocessamento de linguagem natural agrupamentos filtragem
  20. 20. Minha área de pesquisa Sistemas de Recomendação
  21. 21. WEB SITESWEB APPLICATIONS WEB SERVICES 3.0 SEMANTIC WEB USERS antes... VI Encontro do PUG-PE VI Encontro do PUG-PE
  22. 22. Atualmente
  23. 23. estamos sobrecarregados de informações
  24. 24. muitas vezes inúteis
  25. 25. às vezesprocuramos isso...
  26. 26. e encontramos isso!
  27. 27. google?
  28. 28. google?midias sociais?
  29. 29. eeeeuuuu... google?midias sociais?
  30. 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, andentering into the Recommendation age.” Chris Anderson, from book Long Tail
  31. 31. Sistemas de Recomendação
  32. 32. Recomendações Sociais Família/Amigos Amigos/ Família O Que eudeveria ler ? Ref: Flickr-BlueAlgae “Eu acho que você deveria ler Ref: Flickr photostream: jefield estes livros.
  33. 33. Recomendações por Interação Entrada: Avalie alguns livros O Que eu deveria ler ? Saída: “Livros que você pode gostar são …”
  34. 34. Sistemas desenhados para sugerir algo para mim do meu interesse!
  35. 35. Por que Recomendação ?
  36. 36. Netflix - 2/3 dos filmes alugados vêm de recomendaçãoGoogle News - 38% das notícias mais clicadas vêm de recomendaçãoAmazon - 38% das vendas vêm de recomendação Fonte: Celma & Lamere, ISMIR 2007
  37. 37. E como funciona a recomendação ?
  38. 38. O que os sistemas de recomendação realmente fazem ? 1. Prediz o quanto você pode gostar de um certo produto ou serviço2. Sugere um lista de N items ordenada de acordo com seu interese3. Sugere uma lista de N usuários ordernada para um produto/serviço4. Explica a você o porque esses items foram recomendados5. Ajusta a predição e a recomendação baseado em seu feedback e de outros.
  39. 39. Filtragem baseada por Conteúdo SimilarDuro de O Vento Toy Armagedon Items Matar Levou Store recomenda gosta Marcel Usuários
  40. 40. Filtragem Colaborativa O Vento ToyThor Armagedon Items Levou Storegosta recomenda Marcel Rafael Amanda Usuários Similar
  41. 41. Frameworks em Python
  42. 42. http://orange.biolab.si/ Orange “Data Mining Tool For Python”
  43. 43. CrabuserID = Maria GabrielarecSys = UserRecommender(self.model,self.similarity,self.neighbor,False)recSys.recommend(userID,4)https://github.com/muricoca/crab Crab “Recommendation Engine For Python”
  44. 44. >>> from scikits.learn import svm>>> clf = svm.SVC()>>> clf.fit(digits.data[:-1], digits.target[:-1])SVC(kernel=rbf, C=1.0, probability=False, degree=3, coef0=0.0, eps=0.001, cache_size=100.0, shrinking=True, gamma=0.000556792873051)>>> clf.predict(digits.data[-1])array([ 8.]) http://scikit-learn.sourceforge.net/ Scikits-learn “Machine Learning in Python”
  45. 45. PyML is focused on kernel-methods for classification and regression, includingSupport 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. 46. import numpy as npimport milkfeatures = np.random.rand(100,10)labels = np.zeros(100)features[50:] += .5labels[50:] = 1learner = 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 += .5print model.apply(example2) http://luispedro.org/software/milk milk “Machine Learning Toolkit for Python”
  47. 47. http://pybrain.org/>>> from pybrain.tools.shortcuts import buildNetwork>>> n = buildNetwork(2, 3, 1, fast=True)>>> n.activate((2, 3))array([-0.20781205]) PyBrain “The Python Machine Learning Toolkit”
  48. 48. >>
from
libsvm
import
*>>
prob
=
svm_problem([1,‐1],[[1,0,1],[‐1,0,‐1]])>>
param
=
svm_parameter(kernel_type
=
LINEAR,
C
=
10)

##
training

the
model>>
m
=
svm_model(prob,
param)#testing
the
model>>
m.predict([1,
1,
1])http://www.csie.ntu.edu.tw/~cjlin/libsvm/ Python-LibSvm
  49. 49. Acha um hiperplano que divide o espaço dos documentos em dois ? languageSupport Vector Machines Python-LibSvm gemstone
  50. 50. http://pyevolve.sourceforge.net Criado por um brasileiro!from pyevolve import G1DListfrom pyevolve import GSimpleGAdef eval_func(chromosome): score = 0.0 # iterate over the chromosome for value in chromosome: if value==0: score += 1 return scoregenome = 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
  51. 51. Processo Evolutivo“As espécies evoluem pelo principio da seleção natural e sobrevivência do mais apto.”
  52. 52. https://github.com/Yelp/mrjob Computação Distribuída
  53. 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. 54. Concept Tagging Name Entity Extraction Language Detection http://www.alchemyapi.com/ REST API’s Asynchoronous training Data on the flyhttp://code.google.com/apis/predict/ Support on App Engine http://recdaynow.appspot.com API’s prontas!
  55. 55. Ubigraph 3D http://networkx.lanl.gov/ Visualização
  56. 56. Mapa dos concurseiros no Brasil (Atepassar)http://aimotion.blogspot.com/2011/03/atepassar-social-network-friendship.html
  57. 57. http://numpy.scipy.org/ http://www.scipy.org/>>> from numpy import *>>> multiply(array([3,6]), array([4,7]))array([12, 42]) http://matplotlib.sourceforge.net/ Canivetes essenciais!
  58. 58. Análise
  59. 59. Analisar um classificadorsomente por sua acurácia é errado
  60. 60. Classe real p n Verdadeiro Falso pClasse Positivo Positivopredita Falso Verdadeiro n Negativo Negativo
  61. 61. Acurácia = (VP + VN) / (VP + VN + FP + FN)
  62. 62. A acurácia esconde potenciais falso positivos ou falso negativos
  63. 63. Use precision e recall
  64. 64. Recomendações Precision -Recall Diagram
  65. 65. Curva ROChttp://code.google.com/p/pyplotmining/
  66. 66. http://aimotion.blogspot.com/ Livros e Referências
  67. 67. http://conference.scipy.org/scipy2011/ Conferência de Python em Computação Científica
  68. 68. Python e Aprendizagem de Máquina A cobra também é inteligente! Marcel P. Caraciolo marcel@orygens.com marcel@recday.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×