SlideShare a Scribd company logo
1 of 68
Download to read offline
Python e Aprendizagem
     de Máquina
    A cobra também é inteligente!

                             Marcel P. Caraciolo
                                    @marcelcaraciolo
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)
Aprendizagem de máquina é _______
                             Falem !
“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.”
Dados de Saída     Algoritmo                 Dados de Entrada




                 Processamento




                     Machine Learning e I.A na Academia
                                 e como geralmente é ensinado...
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...
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.
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...
?
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 ?
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!
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
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, MovieLens, AWS, KDD, etc.
WEB
1.0                       2.0




Fonte de Informação   Fluxo Contínuo de Informação
                                 VI Encontro do PUG-PE
                                  VI Encontro do PUG-PE
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
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
Minha área de pesquisa
    Sistemas de Recomendação
WEB SITES
WEB APPLICATIONS
 WEB SERVICES
                   3.0            SEMANTIC WEB




                   USERS
                           antes...
                             VI Encontro do PUG-PE
                              VI Encontro do PUG-PE
Atualmente
estamos sobrecarregados
     de informações
muitas vezes inúteis
às vezes
procuramos
   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 Jobs

“We are leaving the Information age, and
entering into the Recommendation age.”
                  Chris Anderson, from book Long Tail
Sistemas de Recomendação
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.
Recomendações por Interação

                  Entrada: Avalie alguns livros

   O Que eu
  deveria ler ?




                                                  Saída:
                                                  “Livros que você
                                                    pode gostar
                                                       são …”
Sistemas desenhados para sugerir algo para mim do meu
                       interesse!
Por que Recomendação ?
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
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
                 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.
Filtragem baseada por Conteúdo

                  Similar




Duro de           O Vento                         Toy
                               Armagedon                    Items
 Matar             Levou                         Store


                                     recomenda
          gosta

                            Marcel                       Usuários
Filtragem Colaborativa




                 O Vento                         Toy
Thor                             Armagedon               Items
                  Levou                         Store

gosta
                                  recomenda


        Marcel        Rafael           Amanda           Usuários




                       Similar
Frameworks em Python
http://orange.biolab.si/
                                 Orange
                           “Data Mining Tool For Python”
Crab



userID = 'Maria Gabriela'
recSys = UserRecommender(self.model,self.similarity,self.neighbor,False)
recSys.recommend(userID,4)


https://github.com/muricoca/crab

                                                    Crab
                                            “Recommendation Engine For Python”
>>> 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”
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”
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”
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”
>>
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
Acha um hiperplano que divide o espaço dos documentos em dois




                   ?




                                                   language
Support Vector Machines                  Python-LibSvm
                                                   gemstone
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
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")

                       >>> nltk.pos_tag(text)

                       [('And', 'CC'), ('now', 'RB'), ('for', 'IN'), ('something',
                       'NN'),

                       ('completely', 'RB'), ('different', 'JJ')]




http://www.nltk.org/




                                                                    NLTK
                                        Processamento de Textos
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!
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]), array([4,7]))
array([12, 42])                                          http://matplotlib.sourceforge.net/




                                                    Canivetes essenciais!
Análise
Analisar um classificador
somente por sua acurácia é
          errado
Classe real

                 p                 n
            Verdadeiro       Falso
          p
Classe       Positivo       Positivo
predita        Falso       Verdadeiro
          n
              Negativo      Negativo
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 ROC
http://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
                                marcel@orygens.com
                                marcel@recday.com

More Related Content

What's hot

Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquicorosimaracorsino
 
Aula Inicial - disciplina Multimidia
Aula Inicial - disciplina MultimidiaAula Inicial - disciplina Multimidia
Aula Inicial - disciplina Multimidiarenatofrigo
 
O substantivo e sua construção de sentidos nos textos.
O substantivo e sua construção de sentidos nos textos.O substantivo e sua construção de sentidos nos textos.
O substantivo e sua construção de sentidos nos textos.AdrianaQueiroz43
 
Aula 5 - Modelo de Entidade e Relacionamento - MER
Aula 5 - Modelo de Entidade e Relacionamento - MER Aula 5 - Modelo de Entidade e Relacionamento - MER
Aula 5 - Modelo de Entidade e Relacionamento - MER Vitor Hugo Melo Araújo
 
Introdução à Aprendizagem de Máquina
Introdução à Aprendizagem de MáquinaIntrodução à Aprendizagem de Máquina
Introdução à Aprendizagem de MáquinaFernando Palma
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercíciosGuilherme
 
Sistemas Multimídia - Aula 02 - Introdução
Sistemas Multimídia - Aula 02 - IntroduçãoSistemas Multimídia - Aula 02 - Introdução
Sistemas Multimídia - Aula 02 - IntroduçãoLeinylson Fontinele
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebDaniel Brandão
 
Fundamentos do desenvolvimento mobile - Daniel da cruz do amaral rocha
Fundamentos do desenvolvimento mobile - Daniel da cruz do amaral rochaFundamentos do desenvolvimento mobile - Daniel da cruz do amaral rocha
Fundamentos do desenvolvimento mobile - Daniel da cruz do amaral rochaDanielAmaral70
 
Desenvolvendo modelos de negócios com o business model canvas
Desenvolvendo modelos de negócios com o business model canvasDesenvolvendo modelos de negócios com o business model canvas
Desenvolvendo modelos de negócios com o business model canvasRafael Clemente
 
Sistemas de organização e rotulação
Sistemas de organização e rotulaçãoSistemas de organização e rotulação
Sistemas de organização e rotulaçãoInstituto Faber-Ludens
 
Sistemas Multimídia - Aula 04 - O Que é Multimídia (Ambientes Multimídia e Pr...
Sistemas Multimídia - Aula 04 - O Que é Multimídia (Ambientes Multimídia e Pr...Sistemas Multimídia - Aula 04 - O Que é Multimídia (Ambientes Multimídia e Pr...
Sistemas Multimídia - Aula 04 - O Que é Multimídia (Ambientes Multimídia e Pr...Leinylson Fontinele
 
Escola Funcionalista
Escola  FuncionalistaEscola  Funcionalista
Escola FuncionalistaOmec
 

What's hot (20)

Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquico
 
Aula Inicial - disciplina Multimidia
Aula Inicial - disciplina MultimidiaAula Inicial - disciplina Multimidia
Aula Inicial - disciplina Multimidia
 
6 estruturas de dados heterogêneas
6  estruturas de dados heterogêneas6  estruturas de dados heterogêneas
6 estruturas de dados heterogêneas
 
Web Design > Aula 00
Web Design > Aula 00Web Design > Aula 00
Web Design > Aula 00
 
Análise de discurso
Análise de discursoAnálise de discurso
Análise de discurso
 
Programacao para Web I Plano de Ensinodoc
Programacao para Web I Plano de EnsinodocProgramacao para Web I Plano de Ensinodoc
Programacao para Web I Plano de Ensinodoc
 
O substantivo e sua construção de sentidos nos textos.
O substantivo e sua construção de sentidos nos textos.O substantivo e sua construção de sentidos nos textos.
O substantivo e sua construção de sentidos nos textos.
 
Aula 06 comandos linux
Aula 06   comandos linuxAula 06   comandos linux
Aula 06 comandos linux
 
Aula 5 - Modelo de Entidade e Relacionamento - MER
Aula 5 - Modelo de Entidade e Relacionamento - MER Aula 5 - Modelo de Entidade e Relacionamento - MER
Aula 5 - Modelo de Entidade e Relacionamento - MER
 
Introdução à Aprendizagem de Máquina
Introdução à Aprendizagem de MáquinaIntrodução à Aprendizagem de Máquina
Introdução à Aprendizagem de Máquina
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
 
Use a Cabeça - PHP.pdf
Use a Cabeça - PHP.pdfUse a Cabeça - PHP.pdf
Use a Cabeça - PHP.pdf
 
Sistemas Multimídia - Aula 02 - Introdução
Sistemas Multimídia - Aula 02 - IntroduçãoSistemas Multimídia - Aula 02 - Introdução
Sistemas Multimídia - Aula 02 - Introdução
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
 
Fundamentos do desenvolvimento mobile - Daniel da cruz do amaral rocha
Fundamentos do desenvolvimento mobile - Daniel da cruz do amaral rochaFundamentos do desenvolvimento mobile - Daniel da cruz do amaral rocha
Fundamentos do desenvolvimento mobile - Daniel da cruz do amaral rocha
 
Desenvolvendo modelos de negócios com o business model canvas
Desenvolvendo modelos de negócios com o business model canvasDesenvolvendo modelos de negócios com o business model canvas
Desenvolvendo modelos de negócios com o business model canvas
 
Sistemas de organização e rotulação
Sistemas de organização e rotulaçãoSistemas de organização e rotulação
Sistemas de organização e rotulação
 
Sistemas Multimídia - Aula 04 - O Que é Multimídia (Ambientes Multimídia e Pr...
Sistemas Multimídia - Aula 04 - O Que é Multimídia (Ambientes Multimídia e Pr...Sistemas Multimídia - Aula 04 - O Que é Multimídia (Ambientes Multimídia e Pr...
Sistemas Multimídia - Aula 04 - O Que é Multimídia (Ambientes Multimídia e Pr...
 
Revisão - ENEM 2020 - PPT
Revisão - ENEM 2020 - PPTRevisão - ENEM 2020 - PPT
Revisão - ENEM 2020 - PPT
 
Escola Funcionalista
Escola  FuncionalistaEscola  Funcionalista
Escola Funcionalista
 

Similar to Python ML introdução

Sistemas de Recomendação e Inteligência Coletiva
Sistemas de Recomendação e Inteligência ColetivaSistemas de Recomendação e Inteligência Coletiva
Sistemas de Recomendação e Inteligência ColetivaMarcel Caraciolo
 
Machine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceMachine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceLuca Bastos
 
Skynet - Do It Yourself (workshop de Inteligência Artificial)
Skynet - Do It Yourself (workshop de Inteligência Artificial)Skynet - Do It Yourself (workshop de Inteligência Artificial)
Skynet - Do It Yourself (workshop de Inteligência Artificial)Letícia Pedroso
 
Intensivo 80h - Arquitetura de informação e usabilidade
Intensivo 80h - Arquitetura de informação e usabilidadeIntensivo 80h - Arquitetura de informação e usabilidade
Intensivo 80h - Arquitetura de informação e usabilidadeEscola do Marketing Digital
 
Analise de Projeto de Sistemas EEEP.pptx
Analise de Projeto de Sistemas EEEP.pptxAnalise de Projeto de Sistemas EEEP.pptx
Analise de Projeto de Sistemas EEEP.pptxALLYSONALVESCARVALHO
 
Detecção facial e autenticação de segundo fator
Detecção facial e autenticação de segundo fatorDetecção facial e autenticação de segundo fator
Detecção facial e autenticação de segundo fatorYan Borowski Machado
 
Workshop Design, UX and Eye-Tracking
Workshop Design, UX and Eye-TrackingWorkshop Design, UX and Eye-Tracking
Workshop Design, UX and Eye-TrackingEDGE GROUP
 
Deep Learning e o Futuro da Inteligência Artificial
Deep Learning e o Futuro da Inteligência ArtificialDeep Learning e o Futuro da Inteligência Artificial
Deep Learning e o Futuro da Inteligência ArtificialSandro Moreira
 
20161006cognitivelinkvidsmall
20161006cognitivelinkvidsmall20161006cognitivelinkvidsmall
20161006cognitivelinkvidsmallAlberto Miyazaki
 
Teoria do Processamento da Informação no Design
Teoria do Processamento da Informação no DesignTeoria do Processamento da Informação no Design
Teoria do Processamento da Informação no DesignUTFPR
 
Inteligência Artificial : desafios na sociedade do conhecimento
Inteligência Artificial : desafios na sociedade do conhecimentoInteligência Artificial : desafios na sociedade do conhecimento
Inteligência Artificial : desafios na sociedade do conhecimentoPierre GUILLOU
 
Os Rumos do Teste de Software
Os Rumos do Teste de SoftwareOs Rumos do Teste de Software
Os Rumos do Teste de Softwareandrevdrodrigues
 
analise-de-sistemas-aula-01-bcc-noturno-ema908915a.pptx
analise-de-sistemas-aula-01-bcc-noturno-ema908915a.pptxanalise-de-sistemas-aula-01-bcc-noturno-ema908915a.pptx
analise-de-sistemas-aula-01-bcc-noturno-ema908915a.pptxMoysesOliveira3
 
Microsoft Cognitive Services, Construindo Aplicativos Inteligentes
Microsoft Cognitive Services, Construindo Aplicativos InteligentesMicrosoft Cognitive Services, Construindo Aplicativos Inteligentes
Microsoft Cognitive Services, Construindo Aplicativos InteligentesWilliam S. Rodriguez
 
Aula11-12 TESI UFS - Explroracao e Gestao de SI nas Empresas Digitais
Aula11-12 TESI UFS - Explroracao e Gestao de SI nas Empresas DigitaisAula11-12 TESI UFS - Explroracao e Gestao de SI nas Empresas Digitais
Aula11-12 TESI UFS - Explroracao e Gestao de SI nas Empresas DigitaisRogerio P C do Nascimento
 
Aprendizagem de máquina aplicada na neurociência
Aprendizagem de máquina aplicada na neurociênciaAprendizagem de máquina aplicada na neurociência
Aprendizagem de máquina aplicada na neurociênciaWalter Hugo Lopez Pinaya
 

Similar to Python ML introdução (20)

Sistemas de Recomendação e Inteligência Coletiva
Sistemas de Recomendação e Inteligência ColetivaSistemas de Recomendação e Inteligência Coletiva
Sistemas de Recomendação e Inteligência Coletiva
 
Machine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceMachine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ce
 
Skynet - Do It Yourself (workshop de Inteligência Artificial)
Skynet - Do It Yourself (workshop de Inteligência Artificial)Skynet - Do It Yourself (workshop de Inteligência Artificial)
Skynet - Do It Yourself (workshop de Inteligência Artificial)
 
Intensivo 80h - Arquitetura de informação e usabilidade
Intensivo 80h - Arquitetura de informação e usabilidadeIntensivo 80h - Arquitetura de informação e usabilidade
Intensivo 80h - Arquitetura de informação e usabilidade
 
Analise de Projeto de Sistemas EEEP.pptx
Analise de Projeto de Sistemas EEEP.pptxAnalise de Projeto de Sistemas EEEP.pptx
Analise de Projeto de Sistemas EEEP.pptx
 
Detecção facial e autenticação de segundo fator
Detecção facial e autenticação de segundo fatorDetecção facial e autenticação de segundo fator
Detecção facial e autenticação de segundo fator
 
Introducao aos servicos de AI na AWS
Introducao aos servicos de AI na AWSIntroducao aos servicos de AI na AWS
Introducao aos servicos de AI na AWS
 
Workshop Design, UX and Eye-Tracking
Workshop Design, UX and Eye-TrackingWorkshop Design, UX and Eye-Tracking
Workshop Design, UX and Eye-Tracking
 
Deep Learning e o Futuro da Inteligência Artificial
Deep Learning e o Futuro da Inteligência ArtificialDeep Learning e o Futuro da Inteligência Artificial
Deep Learning e o Futuro da Inteligência Artificial
 
AI na jornada do usuário de ecommerce
AI na jornada do usuário de ecommerceAI na jornada do usuário de ecommerce
AI na jornada do usuário de ecommerce
 
20161006cognitivelinkvidsmall
20161006cognitivelinkvidsmall20161006cognitivelinkvidsmall
20161006cognitivelinkvidsmall
 
Teoria do Processamento da Informação no Design
Teoria do Processamento da Informação no DesignTeoria do Processamento da Informação no Design
Teoria do Processamento da Informação no Design
 
Introdução a IA no Azure
Introdução a IA  no AzureIntrodução a IA  no Azure
Introdução a IA no Azure
 
Inteligência Artificial : desafios na sociedade do conhecimento
Inteligência Artificial : desafios na sociedade do conhecimentoInteligência Artificial : desafios na sociedade do conhecimento
Inteligência Artificial : desafios na sociedade do conhecimento
 
Os Rumos do Teste de Software
Os Rumos do Teste de SoftwareOs Rumos do Teste de Software
Os Rumos do Teste de Software
 
analise-de-sistemas-aula-01-bcc-noturno-ema908915a.pptx
analise-de-sistemas-aula-01-bcc-noturno-ema908915a.pptxanalise-de-sistemas-aula-01-bcc-noturno-ema908915a.pptx
analise-de-sistemas-aula-01-bcc-noturno-ema908915a.pptx
 
Arquitetura da informação
Arquitetura da informaçãoArquitetura da informação
Arquitetura da informação
 
Microsoft Cognitive Services, Construindo Aplicativos Inteligentes
Microsoft Cognitive Services, Construindo Aplicativos InteligentesMicrosoft Cognitive Services, Construindo Aplicativos Inteligentes
Microsoft Cognitive Services, Construindo Aplicativos Inteligentes
 
Aula11-12 TESI UFS - Explroracao e Gestao de SI nas Empresas Digitais
Aula11-12 TESI UFS - Explroracao e Gestao de SI nas Empresas DigitaisAula11-12 TESI UFS - Explroracao e Gestao de SI nas Empresas Digitais
Aula11-12 TESI UFS - Explroracao e Gestao de SI nas Empresas Digitais
 
Aprendizagem de máquina aplicada na neurociência
Aprendizagem de máquina aplicada na neurociênciaAprendizagem de máquina aplicada na neurociência
Aprendizagem de máquina aplicada na neurociência
 

More from Marcel Caraciolo

Como interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com PythonComo interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com PythonMarcel Caraciolo
 
Joblib: Lightweight pipelining for parallel jobs (v2)
Joblib:  Lightweight pipelining for parallel jobs (v2)Joblib:  Lightweight pipelining for parallel jobs (v2)
Joblib: Lightweight pipelining for parallel jobs (v2)Marcel Caraciolo
 
Construindo softwares de bioinformática para análises clínicas : Desafios e...
Construindo softwares  de bioinformática  para análises clínicas : Desafios e...Construindo softwares  de bioinformática  para análises clínicas : Desafios e...
Construindo softwares de bioinformática para análises clínicas : Desafios e...Marcel Caraciolo
 
Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2Marcel Caraciolo
 
Como Python pode ajudar na automação do seu laboratório
Como Python pode ajudar na automação do  seu laboratórioComo Python pode ajudar na automação do  seu laboratório
Como Python pode ajudar na automação do seu laboratórioMarcel Caraciolo
 
Python on Science ? Yes, We can.
Python on Science ?   Yes, We can.Python on Science ?   Yes, We can.
Python on Science ? Yes, We can.Marcel Caraciolo
 
Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Marcel Caraciolo
 
Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Marcel Caraciolo
 
Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?Marcel Caraciolo
 
Benchy, python framework for performance benchmarking of Python Scripts
Benchy, python framework for performance benchmarking  of Python ScriptsBenchy, python framework for performance benchmarking  of Python Scripts
Benchy, python framework for performance benchmarking of Python ScriptsMarcel Caraciolo
 
Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Marcel Caraciolo
 
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...Marcel Caraciolo
 
Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Marcel Caraciolo
 
Construindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com PythonConstruindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com PythonMarcel Caraciolo
 
Python, A pílula Azul da programação
Python, A pílula Azul da programaçãoPython, A pílula Azul da programação
Python, A pílula Azul da programaçãoMarcel Caraciolo
 
Construindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduceConstruindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduceMarcel Caraciolo
 
Como Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no BrasilComo Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no BrasilMarcel Caraciolo
 
Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?Marcel Caraciolo
 
Aula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursosAula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursosMarcel Caraciolo
 

More from Marcel Caraciolo (20)

Como interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com PythonComo interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com Python
 
Joblib: Lightweight pipelining for parallel jobs (v2)
Joblib:  Lightweight pipelining for parallel jobs (v2)Joblib:  Lightweight pipelining for parallel jobs (v2)
Joblib: Lightweight pipelining for parallel jobs (v2)
 
Construindo softwares de bioinformática para análises clínicas : Desafios e...
Construindo softwares  de bioinformática  para análises clínicas : Desafios e...Construindo softwares  de bioinformática  para análises clínicas : Desafios e...
Construindo softwares de bioinformática para análises clínicas : Desafios e...
 
Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2
 
Como Python pode ajudar na automação do seu laboratório
Como Python pode ajudar na automação do  seu laboratórioComo Python pode ajudar na automação do  seu laboratório
Como Python pode ajudar na automação do seu laboratório
 
Python on Science ? Yes, We can.
Python on Science ?   Yes, We can.Python on Science ?   Yes, We can.
Python on Science ? Yes, We can.
 
Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3
 
Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)
 
Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?
 
Big Data com Python
Big Data com PythonBig Data com Python
Big Data com Python
 
Benchy, python framework for performance benchmarking of Python Scripts
Benchy, python framework for performance benchmarking  of Python ScriptsBenchy, python framework for performance benchmarking  of Python Scripts
Benchy, python framework for performance benchmarking of Python Scripts
 
Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?
 
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
 
Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks
 
Construindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com PythonConstruindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com Python
 
Python, A pílula Azul da programação
Python, A pílula Azul da programaçãoPython, A pílula Azul da programação
Python, A pílula Azul da programação
 
Construindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduceConstruindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduce
 
Como Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no BrasilComo Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no Brasil
 
Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?
 
Aula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursosAula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursos
 

Python ML introdução

  • 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)
  • 3. Aprendizagem de máquina é _______ Falem !
  • 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
  • 14. De onde vem os dados ?
  • 15. http://archive.ics.uci.edu/ml/ Repositórios de Dados UCI, MovieLens, AWS, KDD, etc.
  • 16. WEB
  • 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
  • 20. Minha área de pesquisa Sistemas de Recomendação
  • 21. WEB SITES WEB APPLICATIONS WEB SERVICES 3.0 SEMANTIC WEB USERS antes... VI Encontro do PUG-PE VI Encontro do PUG-PE
  • 23. estamos sobrecarregados de informações
  • 29. eeeeuuuu... google? midias sociais?
  • 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 …”
  • 34. Sistemas desenhados para sugerir algo para mim do meu interesse!
  • 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
  • 37. E como funciona a recomendação ?
  • 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
  • 42. http://orange.biolab.si/ Orange “Data Mining Tool For Python”
  • 43. Crab userID = 'Maria Gabriela' recSys = UserRecommender(self.model,self.similarity,self.neighbor,False) recSys.recommend(userID,4) https://github.com/muricoca/crab Crab “Recommendation Engine For Python”
  • 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. 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”
  • 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”
  • 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
  • 51. Processo Evolutivo “As espécies evoluem pelo principio da seleção natural e sobrevivência do mais apto.”
  • 52. https://github.com/Yelp/mrjob Computação Distribuída
  • 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
  • 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!
  • 59. Analisar um classificador somente por sua acurácia é errado
  • 60. Classe real p n Verdadeiro Falso p Classe Positivo Positivo predita Falso Verdadeiro n Negativo Negativo
  • 61. Acurácia = (VP + VN) / (VP + VN + FP + FN)
  • 62. A acurácia esconde potenciais falso positivos ou falso negativos
  • 63. Use precision e recall
  • 66. http://aimotion.blogspot.com/ Livros e Referências
  • 67. http://conference.scipy.org/scipy2011/ Conferência de Python em Computação Científica
  • 68. Python e Aprendizagem de Máquina A cobra também é inteligente! Marcel P. Caraciolo marcel@orygens.com marcel@recday.com