Minerando dados com Python -
FTSL 2016
Visão Geral
Palestra apresentada no FTSL em 31 de agosto de 2016.
A palestra apresenta uma introdução aos conceitos de mineração de dados com exemplos em Python.
A mineração de dados é muito utilizada para identificar padrões e então recomendar e classificar informação.
Quando são apresentadas sugestões de livros, músicas ou produtos em sites de comércio eletrônico, são
utilizadas técnicas de mineração de dados.
Comunidades
Características da linguagem
Python é uma linguage de programação interpretada, com tipagem dinâmica e forte, interativa e muito
utilizada por pesquisadores, porque:
• Python é fácil
• Python é eficiênte
• Python é rápido
http://dataconomy.com/python-packages-for-data-mining/
Conhecendo o Python
Python possui um interpretador que pode ser usado de forma interativa ou para interpretar um módulo.
• Usando o interpretador.
• Função help(), type() e dir().
• Interpretador turbinado.
Exemplo de módulo
Os programas ou scripts escritos em Python são chamados de módulo.
1 #!/usr/bin/env python3
2 import webbrowser
3
4 links = ['http://www.python.org', 'http://www.python.org.br']
5 for link in links:
6 webbrowser.open_new_tab(link)
7 parar = input('Digite "parar" para interromper: ')
8 if parar == 'parar':
9 break
Bibliotecas científicas, extração e
mineração de dados
• numpy
• scipy
• matplotlib
• mlpy, Machine Learning Python
• pandas
• scikits-learn
• NLTK, Natural Language Toolkit
• Scrapy
http://www.kdnuggets.com/2012/11/best-python-modules-for-data-mining.html
A arte dos Numerati. Conceitos de Data
Mining
Projeto baseado no livro A Programmer's Guide to Data Mining.
• Extração de dados relevantes.
• Sistemas de recomendação.
• Filtros baseados em itens.
• Classificação
• Naïve Bayes
• Texto não estruturado
• Clustering
Sistemas de recomendação
Sistemas de recomendação são aqueles que sugerem algo o mais próximo possível do seu gosto pessoal.
• Como encontrar algo próximo?
• Distância de Manhattan (distância de motorista de taxi).
• Distância Euclideana.
• Cálculo N-dimensional. Métrica de distância de Minkowski.
• Correlação de Coeficiente de Pearson.
• Similaridade de Coseno.
• Vizinho K-nearest
Filtros baseados em itens
Algumas preferências são explicitas, joinha, carinha alegre/triste, estrelas, etc... Outras são implicitas, a
compra de um item indica que você gosta ou precisa dele.
• Preferências implicitas.
• Implicito ou explicito?
• Similaridade de itens.
• Similaridade de coseno ajustada. (subtraindo a média do usuário).
• Slope one. (desvio entre cada par de itens e predição com o peso ("Weighted") slope one).
Classificação
A recomendação colaborativa pode falhar pois começa a pesar a popularidade de um item. Uma alternativa é
classificar itens baseando-se em similaridade de seus atributos.
• O gene de um item.
• Problema de escalas.
• Normalização.
• Desvio padrão e score padronizado.
• Casos extremos, score padronizado modificado e desvio padrão absoluto.
• Avaliando sistemas de recomendação.
Naive Bayes
• Classificação probabilística.
• Aprendizado preguiçoso (vizinho mais próximo) e fominha (bayes).
• Probabilidade.
• Teorema de Bayes.
Classificando dados não estruturados
Nem sempre nossos dados irão possuir atributos, por exemplo um post no twitter ou facebook.
• Dados de treinamento.
• Teste de acertos.
Clustering
Quando não sabemos previamente quais são as classes ou nomes dos grupos.
• Descobrindo grupos.
• k-means clustering.
• hierarchical clustering.
• Single-linkage clustering
• Complete-linkage clustering
• Average-linkage clustering
Referências
Algoritimo de rankeamento de palavras. https://github.com/aneesha/RAKE
Python code for the free book A Programmer's Guide to Data Mining https://github.com/zacharski/pg2dm-
python
http://dataconomy.com/python-packages-for-data-mining/
http://www.kdnuggets.com/2012/11/best-python-modules-for-data-mining.html
Natural Language Toolkit http://www.nltk.org/
Machine Learning in Python http://scikit-learn.org/stable/
Scrapy, An open source web scraping framework for Python http://scrapy.org/
What are the best Python 2.7 modules for data mining? https://www.quora.com/What-are-the-best-
Python-2-7-modules-for-data-mining
Data mining and integration with Python https://www.youtube.com/watch?v=qWcas-OUE9I
Datamining for Hackers 28C3 - (Análise de VOIP) https://www.youtube.com/watch?v=__s45TTXxps
Practical Machine Learning in Python https://www.youtube.com/watch?v=mS4k0hFhPeQ

Minerando dados com Python

  • 1.
    Minerando dados comPython - FTSL 2016
  • 2.
    Visão Geral Palestra apresentadano FTSL em 31 de agosto de 2016. A palestra apresenta uma introdução aos conceitos de mineração de dados com exemplos em Python. A mineração de dados é muito utilizada para identificar padrões e então recomendar e classificar informação. Quando são apresentadas sugestões de livros, músicas ou produtos em sites de comércio eletrônico, são utilizadas técnicas de mineração de dados.
  • 3.
  • 4.
    Características da linguagem Pythoné uma linguage de programação interpretada, com tipagem dinâmica e forte, interativa e muito utilizada por pesquisadores, porque: • Python é fácil • Python é eficiênte • Python é rápido http://dataconomy.com/python-packages-for-data-mining/
  • 5.
    Conhecendo o Python Pythonpossui um interpretador que pode ser usado de forma interativa ou para interpretar um módulo. • Usando o interpretador. • Função help(), type() e dir(). • Interpretador turbinado.
  • 6.
    Exemplo de módulo Osprogramas ou scripts escritos em Python são chamados de módulo. 1 #!/usr/bin/env python3 2 import webbrowser 3 4 links = ['http://www.python.org', 'http://www.python.org.br'] 5 for link in links: 6 webbrowser.open_new_tab(link) 7 parar = input('Digite "parar" para interromper: ') 8 if parar == 'parar': 9 break
  • 7.
    Bibliotecas científicas, extraçãoe mineração de dados • numpy • scipy • matplotlib • mlpy, Machine Learning Python • pandas • scikits-learn • NLTK, Natural Language Toolkit • Scrapy http://www.kdnuggets.com/2012/11/best-python-modules-for-data-mining.html
  • 8.
    A arte dosNumerati. Conceitos de Data Mining Projeto baseado no livro A Programmer's Guide to Data Mining. • Extração de dados relevantes. • Sistemas de recomendação. • Filtros baseados em itens. • Classificação • Naïve Bayes • Texto não estruturado • Clustering
  • 9.
    Sistemas de recomendação Sistemasde recomendação são aqueles que sugerem algo o mais próximo possível do seu gosto pessoal. • Como encontrar algo próximo? • Distância de Manhattan (distância de motorista de taxi). • Distância Euclideana. • Cálculo N-dimensional. Métrica de distância de Minkowski. • Correlação de Coeficiente de Pearson. • Similaridade de Coseno. • Vizinho K-nearest
  • 10.
    Filtros baseados emitens Algumas preferências são explicitas, joinha, carinha alegre/triste, estrelas, etc... Outras são implicitas, a compra de um item indica que você gosta ou precisa dele. • Preferências implicitas. • Implicito ou explicito? • Similaridade de itens. • Similaridade de coseno ajustada. (subtraindo a média do usuário). • Slope one. (desvio entre cada par de itens e predição com o peso ("Weighted") slope one).
  • 11.
    Classificação A recomendação colaborativapode falhar pois começa a pesar a popularidade de um item. Uma alternativa é classificar itens baseando-se em similaridade de seus atributos. • O gene de um item. • Problema de escalas. • Normalização. • Desvio padrão e score padronizado. • Casos extremos, score padronizado modificado e desvio padrão absoluto. • Avaliando sistemas de recomendação.
  • 12.
    Naive Bayes • Classificaçãoprobabilística. • Aprendizado preguiçoso (vizinho mais próximo) e fominha (bayes). • Probabilidade. • Teorema de Bayes.
  • 13.
    Classificando dados nãoestruturados Nem sempre nossos dados irão possuir atributos, por exemplo um post no twitter ou facebook. • Dados de treinamento. • Teste de acertos.
  • 14.
    Clustering Quando não sabemospreviamente quais são as classes ou nomes dos grupos. • Descobrindo grupos. • k-means clustering. • hierarchical clustering. • Single-linkage clustering • Complete-linkage clustering • Average-linkage clustering
  • 15.
    Referências Algoritimo de rankeamentode palavras. https://github.com/aneesha/RAKE Python code for the free book A Programmer's Guide to Data Mining https://github.com/zacharski/pg2dm- python http://dataconomy.com/python-packages-for-data-mining/ http://www.kdnuggets.com/2012/11/best-python-modules-for-data-mining.html Natural Language Toolkit http://www.nltk.org/ Machine Learning in Python http://scikit-learn.org/stable/ Scrapy, An open source web scraping framework for Python http://scrapy.org/ What are the best Python 2.7 modules for data mining? https://www.quora.com/What-are-the-best- Python-2-7-modules-for-data-mining Data mining and integration with Python https://www.youtube.com/watch?v=qWcas-OUE9I Datamining for Hackers 28C3 - (Análise de VOIP) https://www.youtube.com/watch?v=__s45TTXxps Practical Machine Learning in Python https://www.youtube.com/watch?v=mS4k0hFhPeQ