Olá! Sou Rodrigo e dou as boas vindas ao curso de Regressão Linear: Técnicas Avançadas de Modelagem da Alura, que será como uma continuação do curso de Regressão Linear: Testando Relações e Prevendo Resultados.
Trabalharemos algumas técnicas diferentes para lidar com problemas cotidianos para pessoas que trabalham com data science, mantendo o padrão utilizado no curso anterior, ou seja, criaremos um notebook, que ficará todo documentado, com as células vazias, e as preencheremos ao longo dos estudos.
Estudaremos técnicas de transformação de variáveis, inclusive de algumas que não apresentam relação linear entre si. E, a partir dessas técnicas de transformação, conseguiremos resolver problemas e estimar modelos de Regressão Linear.
Além disso, nesse notebook, conheceremos testes mais formais de parâmetros de regressão. Anteriormente, abordamos análises gráficas e testes informais. Agora, lidaremos com os testes mais formais, sem entrar em muitos detalhes em testes de hipótese. Basicamente, entenderemos a forma de interpretar os testes, chegando à conclusões.
Será um curso bem prático, para que possamos utilizar o conteúdo no dia a dia, de fato. Espero que seja bastante útil no seu trabalho e ajude seus estudos.
Adiante, já colocaremos a mão na massa e conheceremos o data set. Vamos lá?
Começaremos conhecendo o ambiente que foi criado para desenvolvimento desse segundo curso de Regressão Linear. O arquivo que o contém está disponível para download em "Projeto inicial do treinamento", no menu à esquerda.
Feito o download do projeto, acessaremos "data-science > reg-linear-II". Nessa pasta, encontraremos os conjuntos de dados que serão utilizados.
Dentro de "Dados", temos o arquivo dataset.csv
e uma pasta ("img") com as imagens que serão exibidas no notebook. Já em "Projeto", encontramos a pasta ".ipynb_checkpoints" e o arquivo Regressão Linear.ipynb
, o notebook que utilizaremos. Por fim, o arquivo Start Jupyter.bat
, no qual escrevemos jupyter notebook
para iniciar o Jupyter, dentro dessa pasta que estamos trabalhando. Ou seja, essa pasta funcionará em qualquer local que for salva — isso se as variáveis de ambiente estiverem configuradas corretamente.
Clicaremos duas vezes em Start Jupyter.bat
para abrir a nossa pasta.
Assim que ela abrir, acessaremos "Projeto > Regressão Linear.ipynb". Uma nova aba se abrirá com o nosso notebook, Regressão Linear.ipynb
.
Da mesma forma que no curso anterior, o notebook já está preparado, para servir como um roteiro tanto para esse curso, quanto para executar seus projetos individuais. Se analisarmos, perceberemos que ele já está todo documentado. As células estão vazias, mas serão preenchidas ao longo de nossos estudos.
Inicialmente, conheceremos o Dataset que será utilizado no projeto. Logo no início do notebook, no item "1.2 Conhecendo o Dataset", encontramos "Importando a biblioteca pandas", seguido pelo seguinte link: https://pandas.pydata.org. Abaixo, na célula vazia, faremos a importação, digitando:
import pandas as pd
E teclaremos "Enter". Feita a importação, abaixo, encontraremos um Dataset sobre o mercado imobiliário, semelhante ao que foi utilizado no curso de Pandas, para executar o nosso projeto.
Para esse curso, foram feitas algumas adaptações para destacar alguns assuntos de Regressão Linear. No caso, encontraremos nos "Dados" de "Dataset" as seguintes variáveis:
Dica: Caso tenha curiosidade em saber como criar as duas últimas variáveis, recomendo esses dois cursos de GeoPandas da Alura:
Na célula vazia de "Leitura dos dados", vamos abrir a pasta "Dados" para fazer a leitura de dataset.csv
, digitando:
dados = pd.read_csv('../Dados/dataset.csv', sep=';')
Assim, nomeamos como dados
, chamamos o Pandas com pd
e solicitamos a leitura do arquivo (read_csv()
), passando o endereço do Dataset (Dataset/dataset.csv
) — utilizamos dois pontos e uma barra (../
), considerando que tivemos que sair de uma pasta e entrar em outra. Na sequência, inserimos um separador (sep
) diferenciado, ponto e vírgula (;
).
Preenchida a célula, acionaremos "Shift + Enter". Após rodar o comando, para pegar os cinco primeiros registros do Dataset, preencheremos a célula de "Visualizar os dados" da seguinte forma:
dados.head()
Como resultado, teremos uma tabela:
Valor | Area | Dist_Praia | Dist_Farmacia | |
---|---|---|---|---|
0 | 4600000 | 280 | 0.240925 | 0.793637 |
1 | 900000 | 208 | 0.904136 | 0.134494 |
2 | 2550000 | 170 | 0.059525 | 0.421118 |
3 | 550000 | 100 | 2.883181 | 0.525064 |
4 | 2200000 | 164 | 0.239758 | 0.192374 |
Nela, encontramos as variáveis com as respectivas unidades de medida apresentadas anteriormente. Continuaremos, preenchendo a célula de "Verificando o tamanho do dataset" com:
dados.shape
Ao executar, obteremos:
(5000, 4)
Ou seja, são 5000
observações e 4
variáveis.
Acabamos de conhecer o Dataset, o nosso projeto. Com base nele, estimaremos o modelo de Regressão Linear para tentar prever o valor dos imóveis, a partir das três características iniciais — Area
, Dist_Praia
e Dist_Farmacia
— propostas.
Assim, geraremos um sistema de avaliação imobiliário, utilizando técnicas de Machine Learning, no caso, a Regressão Linear. Essa é a ideia do nosso projeto.
Como dito anteriormente, seguiremos o mesmo procedimento do curso anterior, só que com algumas modificações.
Antes, a ideia era desenvolver sensibilidade para uma análise de dados mais visual, com base em comportamento de dados e em padrões lineares entre as variáveis. Agora, a ideia é conhecer mais algumas coisas, como as transformações de dados para poder rodar modelos lineares — considerando que alguns não possuem um padrão linear entre as variáveis dependentes e as variáveis explicativas. Portanto, estudaremos como realizar algumas transformações para fazer funcionar. Além disso, serão apresentados alguns testes mais formais do que os do curso anterior, baseados em testes de hipótese com algumas estatísticas de aceitação e rejeição dos testes.
Adiante, no item "1.3 Análises Preliminares", começaremos a analisar os dados para ter uma ideia do comportamento dos dados.
A seguir, iniciaremos uma análise preliminar dos dados, uma análise descritiva, que é muito importante em qualquer projeto de regressão linear. Precisamos entender como os dados se comportam, qual a variação e a correlação entre eles.
Primeiro, preencheremos a célula de "Estatísticas descritivas", no item "1.3 Análises Preliminares". Lembrando que, caso tenha fechado o notebook, após abrir o projeto novamente, clique em "Cell > Run All", no menu superior. Assim, as células preenchidas anteriormente serão executadas, colocando nosso DataFrame
dados
na memória.
Continuando, preencheremos a célula de "Estatísticas descritivas". Utilizaremos describe()
e round(2)
para limitar o número de casas decimais, melhorando a nossa análise.
dados.describe().round(2)
Ao executar, obteremos a seguinte tabela:
Valor | Area | Dist_Praia | Dist_Farmacia | |
---|---|---|---|---|
count | 5000.00 | 5000.00 | 5000.00 | 5000.00 |
mean | 1402926.39 | 121.94 | 3.02 | 0.50 |
std | 1883268.85 | 90.54 | 3.17 | 0.29 |
min | 75000.00 | 16.00 | 0.00 | 0.00 |
25% | 460000.00 | 70.00 | 0.44 | 0.24 |
50% | 820000.00 | 93.00 | 1.48 | 0.50 |
75% | 1590000.00 | 146.00 | 5.61 | 0.75 |
max | 25000000.00 | 2000.00 | 17.96 | 1.00 |
Nesse grupo de estatísticas, na primeira linha, temos uma contagem (count) que está de acordo com o número de observação (5000.00
) que obtivemos anteriormente. Abaixo, encontramos as linhas para:
Na coluna de Valor
, encontramos um valor máximo um pouco estranho, de 25000000.00
— vinte e cinco milhões — de reais. Pode ser que exista, já que estamos tratando de dados da cidade Rio de Janeiro, na qual existem imóveis muito caros. Mas, o foco do curso não é tratamento de outliers. Lidaremos com isso como se já estivesse tratado — se você fez o curso de Pandas, conhece ao menos uma técnica para tratamento. Enfim, não abordaremos tratamento de outliers neste curso. No entanto, fique à vontade para aplicar um tratamento para melhorar os resultados da regressão que obteremos no projeto. Inclusive, será bem legal se você aplicar algum.
Na coluna de Area
também encontramos um valor que causa estranhamento. Um apartamento de 2000.00
m². Pode ser que também exista, mas é um valor um tanto exagerado, que não parece real. Mas, vamos deixar isso de lado, por enquanto.
As colunas seguintes são as de Dist_Praia
e Dist_Farmacia
, ambas medidas e quilômetros. Nelas, encontramos valores mais aceitáveis na linha de max
. A linha de min
dessas colunas apresentam 0.00
, ou seja, estão bem situados — muito próximo à praia e à farmácia.
Feita a análise preliminar, partiremos para a Análise de Correlação, que é uma análise de associação linear, entre duas variáveis. Para isso, na célula de "Matriz e correlação", digitaremos:
dados.corr().round(4)
Assim, criaremos a matriz de correlação (corr()
), limitando o número de casas decimais a quatro (round(4)
). Ao executar, obteremos a seguinte matriz:
Valor | Area | Dist_Praia | Dist_Farmacia | |
---|---|---|---|---|
Valor | 1.0000 | 0.7110 | -0.3665 | -0.0244 |
Area | 0.7110 | 1.0000 | -0.2834 | -0.0310 |
Dist_Praia | -0.3665 | -0.2834 | 1.0000 | 0.0256 |
Dist_Farmacia | 0.0244 | 0.0310 | 0.0256 | 1.0000 |
O objetivo é identificar a correlação entre as variáveis e a direção dessa correlação. Lembrando que esse valor vai de -1
a 1
, onde -1
é uma associação negativa perfeita e 1
é uma associação positiva perfeita. Vale ressaltar que 1
positivo não significa que todos os dados estão subindo. A associação positiva significa que os dados vão na mesma direção, ou seja, quando um sobe, o outro sobe também ou quando um desce, o outro desce também. Já a associação negativa é o contrário da positiva: quando um sobe, o outro desce.
Inicialmente, a linha que analisaremos é a de Valor
, porque é a nossa variável dependente. Lembre-se que estamos criando um sistema de avaliação imobiliário e ela será nosso Y
, considerando que queremos estimar o valor dos imóveis. A correlação com:
Area
é de 0.7110
(70%
), bastante alta e positiva, o que faz sentido: quanto maior a Area
, maior o Valor
;Dist_Praia
é mais fraca, -0.3665
, de quase 40%
e negativa, o que também faz sentido, pois quanto mais distante da praia, menor o Valor
;Dist_Farmacia
é um tanto baixa, -0.0244
, além de negativa. Faz sentido, apesar de muito baixa. Investigaremos com mais atenção se essa variável faz sentido ou não quando chegarmos nos testes formais e codarmos a regressão.Algo importante que precisamos examinar é se as variáveis explicativas não estão muito correlacionadas entre si. Isso pode ser um problema, como vimos no curso anterior.
Na linha de Area
, há uma correlação negativa de quase 30%
(-0.2834
), não tão alta. Em Dist_Farmacia
permanece baixa, mas tudo bem. Analisando os valores de Dist_Praia
e Dist_Farmacia
, percebemos que as variáveis não estão muito correlacionadas entre si, o que é um ponto positivo.
Adiante, começaremos a a analisar o comportamento da variável dependente (Y
), entendendo porquê precisamos analisar os dados e verificar se eles precisam, de fato, da transformação.
O curso Regressão Linear: técnicas avançadas de modelagem possui 107 minutos de vídeos, em um total de 49 atividades. Gostou? Conheça nossos outros cursos de Estatística em Data Science, ou leia nossos artigos de Data Science.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.