SlideShare uma empresa Scribd logo
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
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
▸ Colaborador e mantenedor open-source
▸ Blog
▸ http://pyevolve.sourceforge.net/wordpress
▸ Projetos
▸ https://github.com/perone
▸ Twitter @tarantulae
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
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áquina) é uma sub-área da
Inteligência Artificial que estuda sistemas que podem aprender com
dados. Alguns exemplos:
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
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)
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
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
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
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.
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.
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).
Apresentação Introdução Classificação Regressão Dúvidas
Aprendizado Supervisionado
No Aprendizado Supervisionado, temos dois tipos de problemas:
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.
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.
Apresentação Introdução Classificação Regressão Dúvidas
Aprendizado Supervisionado
Figura: Diagrama de aprendizado supervisionado (por Olivier Grisel)
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.
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
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
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)
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
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
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 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)
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 (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.
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]
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
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.
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - Support Vector Machines
Figura: Support Vector Machines (wikipedia)
Apresentação Introdução Classificação Regressão Dúvidas
Classificação - scikit-learn
Figura: API para Aprendizado Supervisionado do sklearn (por Olivier Grisel)
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)
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])
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:])
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])
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]]
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 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.
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
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
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.
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.
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).
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).
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.
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)
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 sklearn.cross_validation import train_test_split
>>> model = linear_model.LinearRegression()
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)
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
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
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")
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.
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.
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 = imobiliaria.load_data("Bela Vista")
features_train, features_test, preco_train, preco_test = 
train_test_split(features, preco, test_size=0.20)
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)
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
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.
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 ?
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.
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

Mais conteúdo relacionado

Mais procurados (20)

PPTX
Anatomia - Introdução a anatomia humana
Luis Antonio Cezar Junior
 
PDF
Sistema muscular 1º periodo
Rodrigo Bruno
 
PPTX
Ergonomia
BrunaPereira1996
 
PDF
Mapa de risco 120410
Hobedes Albuquerque
 
PPTX
Introdução a anatomia
Maxsuell Lopes
 
PDF
Antropometria medidas antropometricas
Cláudia Rosa
 
PDF
Aprendendo Kotlin na Prática
Felipe Pedroso
 
TXT
Exercicios resolvidos visuAlg
Willians Miyabara
 
PDF
Sist respiratorio
Marina Souza
 
PPTX
Sistema Nervoso - Prof Maria de Fátima
Tia Fátima Assis Lepesqueur
 
PPT
Aula 04 anatomia e fisiologia humana
LUCAS MENDES SILVA OLIVEIRA
 
PPTX
Aula de exame fisico do cotovelo e epicondilite
Mauricio Fabiani
 
PPTX
Ergonomia e Antropometria
LuisMagina
 
PPTX
Fisioterapia cardiorrespiratória
Luana Dias
 
PDF
Capítulo 1 Inteligência Artificial RUSSELL
Wellington Oliveira
 
PPT
Aula01 Introducao ao Estudo de Anatomia
Leonardo Delgado
 
PPTX
2019-2 - Algoritmos - Aula 06 A - Tomada de Decisão
Rodrigo Kiyoshi Saito
 
PDF
Aula 10 - Equivalência Java x Portugol Studio - parte 2
Pacc UAB
 
PDF
Python Orientação a Objeto
antonio sérgio nogueira
 
PDF
planos, eixos e movimentos.pdf
Ednaldo Junior Aragão
 
Anatomia - Introdução a anatomia humana
Luis Antonio Cezar Junior
 
Sistema muscular 1º periodo
Rodrigo Bruno
 
Ergonomia
BrunaPereira1996
 
Mapa de risco 120410
Hobedes Albuquerque
 
Introdução a anatomia
Maxsuell Lopes
 
Antropometria medidas antropometricas
Cláudia Rosa
 
Aprendendo Kotlin na Prática
Felipe Pedroso
 
Exercicios resolvidos visuAlg
Willians Miyabara
 
Sist respiratorio
Marina Souza
 
Sistema Nervoso - Prof Maria de Fátima
Tia Fátima Assis Lepesqueur
 
Aula 04 anatomia e fisiologia humana
LUCAS MENDES SILVA OLIVEIRA
 
Aula de exame fisico do cotovelo e epicondilite
Mauricio Fabiani
 
Ergonomia e Antropometria
LuisMagina
 
Fisioterapia cardiorrespiratória
Luana Dias
 
Capítulo 1 Inteligência Artificial RUSSELL
Wellington Oliveira
 
Aula01 Introducao ao Estudo de Anatomia
Leonardo Delgado
 
2019-2 - Algoritmos - Aula 06 A - Tomada de Decisão
Rodrigo Kiyoshi Saito
 
Aula 10 - Equivalência Java x Portugol Studio - parte 2
Pacc UAB
 
Python Orientação a Objeto
antonio sérgio nogueira
 
planos, eixos e movimentos.pdf
Ednaldo Junior Aragão
 

Destaque (20)

PPTX
Aplicações Práticas de Machine Learning
Luiz Costa
 
PDF
Python - Introdução Básica
Christian Perone
 
PDF
Machine Learning - Introdução e Aplicações
Dionisio Chiuratto Agourakis
 
PDF
Como ingressar no mercado de Machine Learning
Gabriel Cypriano Saca
 
PDF
Introdução ao Machine Learning para Hackers
Gabriel Cypriano Saca
 
PPTX
Webinar: Amazon Machine Learning
Amazon Web Services LATAM
 
PPTX
Azure Machine Learning
Leandro Guerra
 
PDF
Machine learning java ce conference 2012 - fortaleza ce
Luca Bastos
 
PDF
Bioestatistica
Keyla Christianne
 
PPT
Business Intelligence Open Source - Portuguese -
Stratebi
 
PDF
LaTeX Básico II
Rodrigo Smarzaro
 
ODP
Pentaho Weka latinoware
Marcos Vinicius Fidelis
 
PDF
Agrupamento espectral
Nicolau Werneck
 
PDF
Deep Learning
Rafael Pinto
 
PDF
C++0x :: Introduction to some amazing features
Christian Perone
 
PDF
Aprendizado de máquina
parasite
 
PPT
Aula de Gráficos - Bioestatistica
Fisio Unipampa
 
PDF
Reconhecimento automático de emoções
Adilmar Dantas
 
PPT
Critérios de validade
metodesenvolvimento
 
PDF
Business Intelligence
Future Press, E-Press, Presentations,
 
Aplicações Práticas de Machine Learning
Luiz Costa
 
Python - Introdução Básica
Christian Perone
 
Machine Learning - Introdução e Aplicações
Dionisio Chiuratto Agourakis
 
Como ingressar no mercado de Machine Learning
Gabriel Cypriano Saca
 
Introdução ao Machine Learning para Hackers
Gabriel Cypriano Saca
 
Webinar: Amazon Machine Learning
Amazon Web Services LATAM
 
Azure Machine Learning
Leandro Guerra
 
Machine learning java ce conference 2012 - fortaleza ce
Luca Bastos
 
Bioestatistica
Keyla Christianne
 
Business Intelligence Open Source - Portuguese -
Stratebi
 
LaTeX Básico II
Rodrigo Smarzaro
 
Pentaho Weka latinoware
Marcos Vinicius Fidelis
 
Agrupamento espectral
Nicolau Werneck
 
Deep Learning
Rafael Pinto
 
C++0x :: Introduction to some amazing features
Christian Perone
 
Aprendizado de máquina
parasite
 
Aula de Gráficos - Bioestatistica
Fisio Unipampa
 
Reconhecimento automático de emoções
Adilmar Dantas
 
Critérios de validade
metodesenvolvimento
 
Anúncio

Semelhante a Machine Learning com Python e Scikit-learn (20)

PDF
Machine learning - O que é isso?
Vinicius Mesel
 
PDF
Apresentção sobre machine learning, IA, inteligencia artificial
ElberOliveira6
 
PDF
Machine Learning with Python-2.pdf
mabrol23
 
PDF
Introdução à Aprendizagem de Máquina
Fernando Palma
 
PDF
Machine learning
João Paulo Marinho Martins
 
PDF
Semana 1 - Videoaula 1 - Aplicações em Aprendizado de Máquina - COM340.pdf
DianaMendesPimenta
 
PPTX
AlfaCon LABs - Meetup Machine Learning (03/07/2014)
Labs Alfacon
 
PDF
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...
Deep Tech Brasil
 
PPTX
Aprendizagem Supervisionada I
Luís Nunes
 
PPT
Introdução a Aprendizado de maquina (ML)
ApebNetherlands
 
PPTX
O único agrupamento possível: O que é clustering em Machine Learning
Ludimila Gonçalves
 
PDF
Guia completo para definição de estatística de modelos e algoritmos de machin...
Geanderson Lenz
 
PDF
Aprendizagem de máquina aplicada na neurociência
Walter Hugo Lopez Pinaya
 
PDF
Inteligencia Artificial e Aprendizado de Máquina
Gefferson Figueiredo Marcos
 
PDF
TDC2016SP - Trilha BigData
tdc-globalcode
 
PDF
BSDDAY 2019 - Data Science e Artificial Intelligence usando Freebsd
Mauro Risonho de Paula Assumpcao
 
PPTX
Definição e Conceitos sobre Machine Learning
pedro381147
 
PPTX
Introdução a Machine learning (Aprendizado de Máquina)
Mateus Moraes Pinto
 
PPTX
Choose your weapon - TDC Floripa 2019
Alex Lattaro
 
PDF
Modelos de previsão de Ocorrências
Guttenberg Ferreira Passos
 
Machine learning - O que é isso?
Vinicius Mesel
 
Apresentção sobre machine learning, IA, inteligencia artificial
ElberOliveira6
 
Machine Learning with Python-2.pdf
mabrol23
 
Introdução à Aprendizagem de Máquina
Fernando Palma
 
Machine learning
João Paulo Marinho Martins
 
Semana 1 - Videoaula 1 - Aplicações em Aprendizado de Máquina - COM340.pdf
DianaMendesPimenta
 
AlfaCon LABs - Meetup Machine Learning (03/07/2014)
Labs Alfacon
 
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...
Deep Tech Brasil
 
Aprendizagem Supervisionada I
Luís Nunes
 
Introdução a Aprendizado de maquina (ML)
ApebNetherlands
 
O único agrupamento possível: O que é clustering em Machine Learning
Ludimila Gonçalves
 
Guia completo para definição de estatística de modelos e algoritmos de machin...
Geanderson Lenz
 
Aprendizagem de máquina aplicada na neurociência
Walter Hugo Lopez Pinaya
 
Inteligencia Artificial e Aprendizado de Máquina
Gefferson Figueiredo Marcos
 
TDC2016SP - Trilha BigData
tdc-globalcode
 
BSDDAY 2019 - Data Science e Artificial Intelligence usando Freebsd
Mauro Risonho de Paula Assumpcao
 
Definição e Conceitos sobre Machine Learning
pedro381147
 
Introdução a Machine learning (Aprendizado de Máquina)
Mateus Moraes Pinto
 
Choose your weapon - TDC Floripa 2019
Alex Lattaro
 
Modelos de previsão de Ocorrências
Guttenberg Ferreira Passos
 
Anúncio

Mais de Christian Perone (9)

PDF
PyTorch 2 Internals
Christian Perone
 
PDF
Gradient-based optimization for Deep Learning: a short introduction
Christian Perone
 
PDF
Bayesian modelling for COVID-19 seroprevalence studies
Christian Perone
 
PDF
Uncertainty Estimation in Deep Learning
Christian Perone
 
PDF
PyTorch under the hood
Christian Perone
 
PDF
Word Embeddings - Introduction
Christian Perone
 
PDF
Apache Spark - Intro to Large-scale recommendations with Apache Spark and Python
Christian Perone
 
PPTX
Deep Learning - Convolutional Neural Networks - Architectural Zoo
Christian Perone
 
PDF
Deep Learning - Convolutional Neural Networks
Christian Perone
 
PyTorch 2 Internals
Christian Perone
 
Gradient-based optimization for Deep Learning: a short introduction
Christian Perone
 
Bayesian modelling for COVID-19 seroprevalence studies
Christian Perone
 
Uncertainty Estimation in Deep Learning
Christian Perone
 
PyTorch under the hood
Christian Perone
 
Word Embeddings - Introduction
Christian Perone
 
Apache Spark - Intro to Large-scale recommendations with Apache Spark and Python
Christian Perone
 
Deep Learning - Convolutional Neural Networks - Architectural Zoo
Christian Perone
 
Deep Learning - Convolutional Neural Networks
Christian Perone
 

Último (6)

PPTX
Windows 11 Apostila do Básico ao Avançado
deividcosimo1
 
DOCX
150 PMBOK 7 Scenario-Based PMP Exam Questions and Answers.docx
Marcelo Cruz
 
PDF
Estudos DAC - projeto de arquitetura futurista
ra189223
 
PDF
Aulas Extras - O que é e por que Aprender e Utilizar.pdf
fmartinsss
 
PPTX
5 Critérios para seleção do objeto de estudo.pptx
Eduardo Corrêa
 
PDF
Ceritificado Imersão SOC HackOne Sab/Dom.pdf
RodrigoMori7
 
Windows 11 Apostila do Básico ao Avançado
deividcosimo1
 
150 PMBOK 7 Scenario-Based PMP Exam Questions and Answers.docx
Marcelo Cruz
 
Estudos DAC - projeto de arquitetura futurista
ra189223
 
Aulas Extras - O que é e por que Aprender e Utilizar.pdf
fmartinsss
 
5 Critérios para seleção do objeto de estudo.pptx
Eduardo Corrêa
 
Ceritificado Imersão SOC HackOne Sab/Dom.pdf
RodrigoMori7
 

Machine Learning com Python e Scikit-learn

  • 1. Apresentação Introdução Classificação Regressão Dúvidas Machine Learning Com Python e scikit-learn Christian S. Perone [email protected] 5 de junho de 2014
  • 2. Apresentação Introdução Classificação Regressão Dúvidas Parte I Apresentação
  • 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. 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. Apresentação Introdução Classificação Regressão Dúvidas Parte II Introdução
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Apresentação Introdução Classificação Regressão Dúvidas Aprendizado Supervisionado No Aprendizado Supervisionado, temos dois tipos de problemas:
  • 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. 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. Apresentação Introdução Classificação Regressão Dúvidas Aprendizado Supervisionado Figura: Diagrama de aprendizado supervisionado (por Olivier Grisel)
  • 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. 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. 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. 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. 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. 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. Apresentação Introdução Classificação Regressão Dúvidas Parte III Classificação
  • 26. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Hiperplano
  • 27. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Hiperplano
  • 28. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Hiperplano
  • 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. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Reconhecimento de Caracteres
  • 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. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Reconhecimento de Caracteres
  • 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. 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. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Support Vector Machines Figura: Support Vector Machines (wikipedia)
  • 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. 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. 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. 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. 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. 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. Apresentação Introdução Classificação Regressão Dúvidas Classificação - Matriz de Confusão
  • 43. Apresentação Introdução Classificação Regressão Dúvidas Parte IV Regressão
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear - Overfitting
  • 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. 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. 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. 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. 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. 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. 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. Apresentação Introdução Classificação Regressão Dúvidas Regressão Linear - Múltiplas features
  • 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. 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. 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. 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. 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. 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. Apresentação Introdução Classificação Regressão Dúvidas Parte V Dúvidas
  • 69. Apresentação Introdução Classificação Regressão Dúvidas Dúvidas ? Junte-se ao PyTchê ! Acesse http://pytche.org