Your SlideShare is downloading. ×
0
Apresentação Introdução Classificação Regressão Dúvidas
Machine Learning
Com Python e scikit-learn
Christian S. Perone
chr...
Apresentação Introdução Classificação Regressão Dúvidas
Parte I
Apresentação
Apresentação Introdução Classificação Regressão Dúvidas
Apresentação
▸ Christian S. Perone
▸ Trabalha como desenvolvedor
▸...
Apresentação Introdução Classificação Regressão Dúvidas
Roteiro
Apresentação
Apresentação
Introdução
O que é Machine Learn...
Apresentação Introdução Classificação Regressão Dúvidas
Parte II
Introdução
Apresentação Introdução Classificação Regressão Dúvidas
O que é Machine Learning ?
Machine Learning (ou Aprendizado de Máq...
Apresentação Introdução Classificação Regressão Dúvidas
O que é Machine Learning ?
Machine Learning (ou Aprendizado de Máq...
Apresentação Introdução Classificação Regressão Dúvidas
O que é Machine Learning ?
Machine Learning (ou Aprendizado de Máq...
Apresentação Introdução Classificação Regressão Dúvidas
O que é Machine Learning ?
Machine Learning (ou Aprendizado de Máq...
Apresentação Introdução Classificação Regressão Dúvidas
O que é Machine Learning ?
Machine Learning (ou Aprendizado de Máq...
Apresentação Introdução Classificação Regressão Dúvidas
O que é Machine Learning ?
Machine Learning (ou Aprendizado de Máq...
Apresentação Introdução Classificação Regressão Dúvidas
O problema
O problema de aprendizado geralmente considera um conju...
Apresentação Introdução Classificação Regressão Dúvidas
Supervisionado vs Não-supervisionado
No Aprendizado Supervisionado...
Apresentação Introdução Classificação Regressão Dúvidas
Supervisionado vs Não-supervisionado
No Aprendizado Supervisionado...
Apresentação Introdução Classificação Regressão Dúvidas
Aprendizado Supervisionado
No Aprendizado Supervisionado, temos do...
Apresentação Introdução Classificação Regressão Dúvidas
Aprendizado Supervisionado
No Aprendizado Supervisionado, temos do...
Apresentação Introdução Classificação Regressão Dúvidas
Aprendizado Supervisionado
No Aprendizado Supervisionado, temos do...
Apresentação Introdução Classificação Regressão Dúvidas
Aprendizado Supervisionado
Figura: Diagrama de aprendizado supervi...
Apresentação Introdução Classificação Regressão Dúvidas
Scikit-Learn
Scikit-learn (sklearn) é um framework open-source de ...
Apresentação Introdução Classificação Regressão Dúvidas
Scikit-Learn
Scikit-learn (sklearn) é um framework open-source de ...
Apresentação Introdução Classificação Regressão Dúvidas
Scikit-Learn
Scikit-learn (sklearn) é um framework open-source de ...
Apresentação Introdução Classificação Regressão Dúvidas
Scikit-Learn
Scikit-learn (sklearn) é um framework open-source de ...
Apresentação Introdução Classificação Regressão Dúvidas
Scikit-Learn
Scikit-learn (sklearn) é um framework open-source de ...
Apresentação Introdução Classificação Regressão Dúvidas
Scikit-Learn
Scikit-learn (sklearn) é um framework open-source de ...
Apresentação Introdução Classificação Regressão Dúvidas
Parte III
Classificação
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - Hiperplano
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - Hiperplano
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - Hiperplano
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - Reconhecimento de Caracteres
Para demonstrar um pr...
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - Reconhecimento de Caracteres
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - Reconhecimento de Caracteres
O pacote scikit-learn...
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - Reconhecimento de Caracteres
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - Reconhecimento de Caracteres
>> digitos.data[0]
ar...
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - Support Vector Machines
Para classificar as imagen...
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - Support Vector Machines
Figura: Support Vector Mac...
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - scikit-learn
Figura: API para Aprendizado Supervis...
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - scikit-learn + SVM
from sklearn import svm, datase...
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - scikit-learn + SVM
from sklearn import svm, datase...
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - scikit-learn + SVM
from sklearn import svm, datase...
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - scikit-learn + SVM
>>> classe_esperada[25:35]
arra...
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - Matriz de Confusão
Uma das maneiras avaliar o quão...
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - Matriz de Confusão
Apresentação Introdução Classificação Regressão Dúvidas
Parte IV
Regressão
Apresentação Introdução Classificação Regressão Dúvidas
Regressão
Para ilustrar como uma regressão funciona, utilizaremos ...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão
Para ilustrar como uma regressão funciona, utilizaremos ...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear - Dados de Imóveis
Para ilustrar como a Regressão...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear - Dados de Imóveis
Figura: Scatter plot de imóvei...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear - Dados de Imóveis
Figura: Scatter plot de imóvei...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear - Dados de Imóveis
Figura: Scatter plot de imóvei...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear
Para realizar a Regressao Linear, usaremos apenas...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear
Para realizar a Regressao Linear, usaremos apenas...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear - Overfitting
Se em tudo o mais forem
idênticas a...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear - Overfitting
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear
>>> from sklearn import linear_model
>>> from skl...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear
>>> from sklearn import linear_model
>>> from skl...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear
>>> from sklearn import linear_model
>>> from skl...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear
>>> from sklearn import linear_model
>>> from skl...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear
import matplotlib.pyplot as plt
plt.scatter(area,...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear
import matplotlib.pyplot as plt
plt.scatter(area,...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear - Múltiplas features
No modelo anterior, utilizam...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear - Múltiplas features
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear - Múltiplas features
features, preco = imobiliari...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear - Múltiplas features
features, preco = imobiliari...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear - Múltiplas features
features, preco = imobiliari...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear - Múltiplas features
features, preco = imobiliari...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear - Múltiplas features
Utilizando o modelo de regre...
Apresentação Introdução Classificação Regressão Dúvidas
Regressão Linear - Múltiplas features
Utilizando o modelo de regre...
Apresentação Introdução Classificação Regressão Dúvidas
Parte V
Dúvidas
Apresentação Introdução Classificação Regressão Dúvidas
Dúvidas ?
Junte-se ao PyTchê ! Acesse http://pytche.org
Upcoming SlideShare
Loading in...5
×

Machine Learning com Python e Scikit-learn

634

Published on

Uma introdução a Machine Learning utilizando Python e Scikit-learn.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
634
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
24
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Machine Learning com Python e Scikit-learn"

  1. 1. Apresentação Introdução Classificação Regressão Dúvidas Machine Learning Com Python e scikit-learn Christian S. Perone christian.perone@gmail.com 5 de junho de 2014
  2. 2. Apresentação Introdução Classificação Regressão Dúvidas Parte I Apresentação
  3. 3. Apresentação Introdução Classificação Regressão Dúvidas Apresentação ▸ Christian S. Perone ▸ Trabalha como desenvolvedor ▸ Colaborador e mantenedor open-source ▸ Blog ▸ http://pyevolve.sourceforge.net/wordpress ▸ Projetos ▸ https://github.com/perone ▸ Twitter @tarantulae
  4. 4. Apresentação Introdução Classificação Regressão Dúvidas Roteiro Apresentação Apresentação Introdução O que é Machine Learning ? O problema Supervisionado vs Não-supervisionado Aprendizado Supervisionado Classificação Introdução OCR Support Vector Machines Classificação no scikit-learn Regressão Introdução Imóveis de Porto Alegre Regressão Linear Dúvidas Dúvidas
  5. 5. Apresentação Introdução Classificação Regressão Dúvidas Parte II Introdução
  6. 6. Apresentação Introdução Classificação Regressão Dúvidas O que é Machine Learning ? Machine Learning (ou Aprendizado de Máquina) é uma sub-área da Inteligência Artificial que estuda sistemas que podem aprender com dados. Alguns exemplos:
  7. 7. Apresentação Introdução Classificação Regressão Dúvidas O que é Machine Learning ? Machine Learning (ou Aprendizado de Máquina) é uma sub-área da Inteligência Artificial que estuda sistemas que podem aprender com dados. Alguns exemplos: ▸ Classificador de Emails
  8. 8. Apresentação Introdução Classificação Regressão Dúvidas O que é Machine Learning ? Machine Learning (ou Aprendizado de Máquina) é uma sub-área da Inteligência Artificial que estuda sistemas que podem aprender com dados. Alguns exemplos: ▸ Classificador de Emails ▸ Reconhecedor de caracteres (OCR)
  9. 9. Apresentação Introdução Classificação Regressão Dúvidas O que é Machine Learning ? Machine Learning (ou Aprendizado de Máquina) é uma sub-área da Inteligência Artificial que estuda sistemas que podem aprender com dados. Alguns exemplos: ▸ Classificador de Emails ▸ Reconhecedor de caracteres (OCR) ▸ Sistemas de Recomendação
  10. 10. Apresentação Introdução Classificação Regressão Dúvidas O que é Machine Learning ? Machine Learning (ou Aprendizado de Máquina) é uma sub-área da Inteligência Artificial que estuda sistemas que podem aprender com dados. Alguns exemplos: ▸ Classificador de Emails ▸ Reconhecedor de caracteres (OCR) ▸ Sistemas de Recomendação ▸ Retenção de clientes
  11. 11. Apresentação Introdução Classificação Regressão Dúvidas O que é Machine Learning ? Machine Learning (ou Aprendizado de Máquina) é uma sub-área da Inteligência Artificial que estuda sistemas que podem aprender com dados. Alguns exemplos: ▸ Classificador de Emails ▸ Reconhecedor de caracteres (OCR) ▸ Sistemas de Recomendação ▸ Retenção de clientes ▸ Análise de Sentimento
  12. 12. Apresentação Introdução Classificação Regressão Dúvidas O problema O problema de aprendizado geralmente considera um conjunto de n amostras e tenta prever dados de uma amostra desconhecida. As propriedades de uma amostra são geralmente chamadas de features. São categorizados em: ▸ Aprendizado Supervisionado (Supervised Learning) ▸ Aprendizado Não-supervisionado (Unsupervised Learning) Nota Existem também outras categorias (inclusive híbridas) que não serão abordadas.
  13. 13. Apresentação Introdução Classificação Regressão Dúvidas Supervisionado vs Não-supervisionado No Aprendizado Supervisionado, os algoritmos são treinados com dados rotulados. Exemplo: Reconhecimento de Caracteres (OCR), onde o treino é realizado com várias amostras de caracteres onde cada imagem contém também um rótulo de qual caractere aquela imagem representa.
  14. 14. Apresentação Introdução Classificação Regressão Dúvidas Supervisionado vs Não-supervisionado No Aprendizado Supervisionado, os algoritmos são treinados com dados rotulados. Exemplo: Reconhecimento de Caracteres (OCR), onde o treino é realizado com várias amostras de caracteres onde cada imagem contém também um rótulo de qual caractere aquela imagem representa. No Aprendizado Não-supervisionado, os algoritmos operam em dados não rotulados. Um exemplo de algoritmo não-supervisionado é o clustering, em que amostras são agrupadas conforme o nível de similaridade (ex: agrupar imagens semelhantes em um banco de imagens).
  15. 15. Apresentação Introdução Classificação Regressão Dúvidas Aprendizado Supervisionado No Aprendizado Supervisionado, temos dois tipos de problemas:
  16. 16. Apresentação Introdução Classificação Regressão Dúvidas Aprendizado Supervisionado No Aprendizado Supervisionado, temos dois tipos de problemas: Classificação As amostras pertencem a duas ou mais classes (ex: spam/não-spam) e o objetivo é aprender através de dados já rotulados qual a classe de um dado novo não rotulado. A classificação pode também ser vista como um aprendizado de valores discretos.
  17. 17. Apresentação Introdução Classificação Regressão Dúvidas Aprendizado Supervisionado No Aprendizado Supervisionado, temos dois tipos de problemas: Classificação As amostras pertencem a duas ou mais classes (ex: spam/não-spam) e o objetivo é aprender através de dados já rotulados qual a classe de um dado novo não rotulado. A classificação pode também ser vista como um aprendizado de valores discretos. Regressão Se a saída esperada do algoritmo é uma ou mais variáveis contínuas, o problema é chamado de regressão. Um exemplo de regressão é prever o preço de um imóvel levando em consideração suas features (características) como o tamanho, número de quartos, número de garagens, etc.
  18. 18. Apresentação Introdução Classificação Regressão Dúvidas Aprendizado Supervisionado Figura: Diagrama de aprendizado supervisionado (por Olivier Grisel)
  19. 19. Apresentação Introdução Classificação Regressão Dúvidas Scikit-Learn Scikit-learn (sklearn) é um framework open-source de Machine Learning escrito em Python utilizando as plataformas Numpy/Scipy e Matplotlib.
  20. 20. Apresentação Introdução Classificação Regressão Dúvidas Scikit-Learn Scikit-learn (sklearn) é um framework open-source de Machine Learning escrito em Python utilizando as plataformas Numpy/Scipy e Matplotlib. ▸ Ótima documentação
  21. 21. Apresentação Introdução Classificação Regressão Dúvidas Scikit-Learn Scikit-learn (sklearn) é um framework open-source de Machine Learning escrito em Python utilizando as plataformas Numpy/Scipy e Matplotlib. ▸ Ótima documentação ▸ Inúmeros exemplos
  22. 22. Apresentação Introdução Classificação Regressão Dúvidas Scikit-Learn Scikit-learn (sklearn) é um framework open-source de Machine Learning escrito em Python utilizando as plataformas Numpy/Scipy e Matplotlib. ▸ Ótima documentação ▸ Inúmeros exemplos ▸ Licença permissiva (BSD)
  23. 23. Apresentação Introdução Classificação Regressão Dúvidas Scikit-Learn Scikit-learn (sklearn) é um framework open-source de Machine Learning escrito em Python utilizando as plataformas Numpy/Scipy e Matplotlib. ▸ Ótima documentação ▸ Inúmeros exemplos ▸ Licença permissiva (BSD) ▸ Utilizado por grandes empresas
  24. 24. Apresentação Introdução Classificação Regressão Dúvidas Scikit-Learn Scikit-learn (sklearn) é um framework open-source de Machine Learning escrito em Python utilizando as plataformas Numpy/Scipy e Matplotlib. ▸ Ótima documentação ▸ Inúmeros exemplos ▸ Licença permissiva (BSD) ▸ Utilizado por grandes empresas ▸ Grande comunidade e muitos workshops
  25. 25. Apresentação Introdução Classificação Regressão Dúvidas Parte III Classificação
  26. 26. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Hiperplano
  27. 27. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Hiperplano
  28. 28. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Hiperplano
  29. 29. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Reconhecimento de Caracteres Para demonstrar um problema de classificação, vamos utilizar um conjunto de dados de dígitos escritos à mão para treinar um modelo que irá posteriormente reconhecer imagens de caracteres escritos a mão. O conjunto de dados que vamos utilizar contém: ▸ 1.797 imagens rotuladas de caracteres escritos a mão ▸ Aproximadamente 180 caracteres por classe ▸ Cada imagem tem o tamanho 8x8 (64 pixels) ▸ Cada pixel tem a intensidade de 0 à 16 (tons de cinza)
  30. 30. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Reconhecimento de Caracteres
  31. 31. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Reconhecimento de Caracteres O pacote scikit-learn (sklearn) já vem com o dataset de dígitos: >>> from sklearn import datasets >>> digitos = datasets.load_digits() >>> digitos.data.shape (1797L, 64L) >>> digitos.target.shape (1797L,) Nota Como pode-se notar pelo formato dos dados do atributo data, o dataset contém 1.797 amostras de caracteres contendo 64 pixels em cada uma das amostras. Além dos dados temos os rótulos dos dados no atributo target.
  32. 32. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Reconhecimento de Caracteres
  33. 33. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Reconhecimento de Caracteres >> digitos.data[0] array([ 0., 0., 5., 13., 9., 1., 0., 0., 0., 15., 10., 15., 5., 0., 0., 3., 15., 2., 8., 0., 0., 4., 12., 0., 0., 8., 8., 5., 8., 0., 0., 9., 8., 0., 0., 4., 1., 12., 7., 0., 0., 2., 14., 5., 10., 0., 0., 0., 6., 13., 10., 0., 0., 0.]) >>> digitos.target[0] 0
  34. 34. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Support Vector Machines Para classificar as imagens de caracteres vamos utilizar um método muito conhecido em Machine Learning, este método é chamado de Support Vector Machine. SVM é uma técnica de classificação (ou regressão) que procura encontrar um modelo onde a separação entre as classes tenha a maior margem possível.
  35. 35. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Support Vector Machines Figura: Support Vector Machines (wikipedia)
  36. 36. Apresentação Introdução Classificação Regressão Dúvidas Classificação - scikit-learn Figura: API para Aprendizado Supervisionado do sklearn (por Olivier Grisel)
  37. 37. Apresentação Introdução Classificação Regressão Dúvidas Classificação - scikit-learn + SVM from sklearn import svm, datasets digitos = datasets.load_digits() modelo = svm.SVC(gamma=0.001) num_amostras = len(digitos.data)
  38. 38. Apresentação Introdução Classificação Regressão Dúvidas Classificação - scikit-learn + SVM from sklearn import svm, datasets digitos = datasets.load_digits() modelo = svm.SVC(gamma=0.001) num_amostras = len(digitos.data) modelo.fit(digitos.data[:num_amostras / 2], digitos.target[:num_amostras / 2])
  39. 39. Apresentação Introdução Classificação Regressão Dúvidas Classificação - scikit-learn + SVM from sklearn import svm, datasets digitos = datasets.load_digits() modelo = svm.SVC(gamma=0.001) num_amostras = len(digitos.data) modelo.fit(digitos.data[:num_amostras / 2], digitos.target[:num_amostras / 2]) classe_esperada = digitos.target[num_amostras / 2:] classe_descoberta = modelo.predict(digitos.data[num_amostras / 2:])
  40. 40. Apresentação Introdução Classificação Regressão Dúvidas Classificação - scikit-learn + SVM >>> classe_esperada[25:35] array([8, 9, 0, 1, 2, 3, 4, 9, 6, 7]) >>> classe_descoberta[25:35] array([8, 9, 0, 1, 2, 3, 4, 5, 6, 7])
  41. 41. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Matriz de Confusão Uma das maneiras avaliar o quão bem um modelo se comporta, é utilizando uma Matriz de Confusão: >>> from sklearn import metrics >>> metrics.confusion_matrix(classe_esperada, ... classe_descoberta) [[87 0 0 0 1 0 0 0 0 0] [ 0 88 1 0 0 0 0 0 1 1] [ 0 0 85 1 0 0 0 0 0 0] [ 0 0 0 79 0 3 0 4 5 0] [ 0 0 0 0 88 0 0 0 0 4] [ 0 0 0 0 0 88 1 0 0 2] [ 0 1 0 0 0 0 90 0 0 0] [ 0 0 0 0 0 1 0 88 0 0] [ 0 0 0 0 0 0 0 0 88 0] [ 0 0 0 1 0 1 0 0 0 90]]
  42. 42. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Matriz de Confusão
  43. 43. Apresentação Introdução Classificação Regressão Dúvidas Parte IV Regressão
  44. 44. Apresentação Introdução Classificação Regressão Dúvidas Regressão Para ilustrar como uma regressão funciona, utilizaremos o método de Regressão Linear em um conjunto de dados reais. O método de Regressão Linear é um dos métodos mais simples para se realizar uma regressão. Ele funciona traçando uma reta sobre os dados de forma que esta reta tenha a soma de residuais com o menor valor possível.
  45. 45. Apresentação Introdução Classificação Regressão Dúvidas Regressão Para ilustrar como uma regressão funciona, utilizaremos o método de Regressão Linear em um conjunto de dados reais. O método de Regressão Linear é um dos métodos mais simples para se realizar uma regressão. Ele funciona traçando uma reta sobre os dados de forma que esta reta tenha a soma de residuais com o menor valor possível. Figura: Regressao Linear
  46. 46. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear - Dados de Imóveis Para ilustrar como a Regressão Linear funciona, utilizaremos o método em um conjunto de dados reais de imóveis da cidade de Porto Alegre / RS. Este conjunto de dados foi extraído 1 em Março de 2014 do site de uma imobiliária e contém dados de aproximadamente 6.800 imóveis a venda. Figura: Alguns imóveis do bairro Bela Vista. 1 Utilizando BeautifulSoup
  47. 47. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear - Dados de Imóveis Figura: Scatter plot de imóveis do bairro Bela Vista.
  48. 48. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear - Dados de Imóveis Figura: Scatter plot de imóveis do bairro Centro.
  49. 49. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear - Dados de Imóveis Figura: Scatter plot de imóveis do Centro (vermelho) e Bela Vista (azul).
  50. 50. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear Para realizar a Regressao Linear, usaremos apenas 1 feature (para facilitar a visualização da regressão).
  51. 51. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear Para realizar a Regressao Linear, usaremos apenas 1 feature (para facilitar a visualização da regressão). Como entrada utilizaremos o dado da área do imóvel (em mts quadrados) e como saída esperada (valor que queremos prever baseado na área) utilizaremos o valor do imóvel em reais.
  52. 52. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear - Overfitting Se em tudo o mais forem idênticas as várias explicações de um fenômeno, a mais simples é a melhor. —Guilherme de Ockham (1288-1347)
  53. 53. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear - Overfitting
  54. 54. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear >>> from sklearn import linear_model >>> from sklearn.cross_validation import train_test_split >>> model = linear_model.LinearRegression()
  55. 55. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear >>> from sklearn import linear_model >>> from sklearn.cross_validation import train_test_split >>> model = linear_model.LinearRegression() >>> area, preco = imobiliaria.load_data("Bela Vista") >>> area_train, area_test, preco_train, preco_test = train_test_split(area, preco, test_size=0.20) >>> model.fit(area_train, preco_train)
  56. 56. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear >>> from sklearn import linear_model >>> from sklearn.cross_validation import train_test_split >>> model = linear_model.LinearRegression() >>> area, preco = imobiliaria.load_data("Bela Vista") >>> area_train, area_test, preco_train, preco_test = train_test_split(area, preco, test_size=0.20) >>> model.fit(area_train, preco_train) >>> model.predict(56) 247882.22260541
  57. 57. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear >>> from sklearn import linear_model >>> from sklearn.cross_validation import train_test_split >>> model = linear_model.LinearRegression() >>> area, preco = imobiliaria.load_data("Bela Vista") >>> area_train, area_test, preco_train, preco_test = train_test_split(area, preco, test_size=0.20) >>> model.fit(area_train, preco_train) >>> model.predict(56) 247882.22260541 >>> model.score(area_test, preco_test) 0.77655417131351878
  58. 58. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear import matplotlib.pyplot as plt plt.scatter(area, preco, alpha=0.5) plt.plot(area, model.predict(area), color="red")
  59. 59. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear import matplotlib.pyplot as plt plt.scatter(area, preco, alpha=0.5) plt.plot(area, model.predict(area), color="red") Figura: Regressão Linear e dados de treino.
  60. 60. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear - Múltiplas features No modelo anterior, utilizamos apenas uma feature (área do imóvel) para criar um modelo, mas ainda temos um dado com um ótimo valor preditivo. Podemos incorporar este novo dado em uma nova feature do nosso modelo para reduzir o erro do nosso modelo.
  61. 61. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear - Múltiplas features
  62. 62. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear - Múltiplas features features, preco = imobiliaria.load_data("Bela Vista") features_train, features_test, preco_train, preco_test = train_test_split(features, preco, test_size=0.20)
  63. 63. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear - Múltiplas features features, preco = imobiliaria.load_data("Bela Vista") features_train, features_test, preco_train, preco_test = train_test_split(features, preco, test_size=0.20) model.fit(features_train, preco_train)
  64. 64. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear - Múltiplas features features, preco = imobiliaria.load_data("Bela Vista") features_train, features_test, preco_train, preco_test = train_test_split(features, preco, test_size=0.20) model.fit(features_train, preco_train) model.score(features_test, preco_test) 0.81960426250252283
  65. 65. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear - Múltiplas features features, preco = imobiliaria.load_data("Bela Vista") features_train, features_test, preco_train, preco_test = train_test_split(features, preco, test_size=0.20) model.fit(features_train, preco_train) model.score(features_test, preco_test) 0.81960426250252283 Melhora no score de 0.77 para 0.81.
  66. 66. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear - Múltiplas features Utilizando o modelo de regressão que treinamos, podemos fazer perguntas como por exemplo, qual seria a estimativa de preço para um imóvel de 56 m2 com apenas 1 dormitório localizado no bairro Bela Vista ?
  67. 67. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear - Múltiplas features Utilizando o modelo de regressão que treinamos, podemos fazer perguntas como por exemplo, qual seria a estimativa de preço para um imóvel de 56 m2 com apenas 1 dormitório localizado no bairro Bela Vista ? linear_model.predict([56, 1]) array([ 216157.98252844]) Ou seja: um imóvel de 1 dormitório com 56 m2 no bairro Bela Vista em Porto Alegre custaria aproximadamente R$216.157,00.
  68. 68. Apresentação Introdução Classificação Regressão Dúvidas Parte V Dúvidas
  69. 69. Apresentação Introdução Classificação Regressão Dúvidas Dúvidas ? Junte-se ao PyTchê ! Acesse http://pytche.org
  1. A particular slide catching your eye?

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

×