1. Regressão Linear com uma Variável

Nessa parte do trabalho, você irá implementar a regressão linear para predizer o lucro para uma cadeia de food truck. Essa cadeia já possui diversos aliais em diferentes cidades. Você possui dados dos lucro e população para cada uma dessas cidades.

1.1 Visualização dos Dados

Implemente um script em Python que produza um gráfico de dispersão (scatter plot) dos dados fornecidos. Após finalizado, seu script deve produzir um resultado similar ao apresentado na Figura abaixo:


In [58]:
# 1.1) Visualização de Dados através do Gráfico de Dispersão

from IPython.display import Math
import pandas as pd
import numpy as np
from matplotlib.pyplot import *

%matplotlib inline

In [59]:
df = pd.read_csv('am-T1-dados/ex1data1.txt', names=['Populacao', 'Lucro'])
df.head(20)


Out[59]:
Populacao Lucro
0 6.1101 17.59200
1 5.5277 9.13020
2 8.5186 13.66200
3 7.0032 11.85400
4 5.8598 6.82330
5 8.3829 11.88600
6 7.4764 4.34830
7 8.5781 12.00000
8 6.4862 6.59870
9 5.0546 3.81660
10 5.7107 3.25220
11 14.1640 15.50500
12 5.7340 3.15510
13 8.4084 7.22580
14 5.6407 0.71618
15 5.3794 3.51290
16 6.3654 5.30480
17 5.1301 0.56077
18 6.4296 3.65180
19 7.0708 5.38930

In [60]:
scatter(df.Populacao, df.Lucro, s=30, c='red', marker='x');


1.2 Gradiente Descendente

Nessa parte, sua tarefa é determinar os parâmetros do modelo de regressão linear por meio do algorítmo Gradiente Descendente. Use a versão "Batch Gradient" descendente desse algoritmo. Inicie os parâmetros todos com o valor 0 (zero). Além disso, use o valor 0.01 para a taxa de aprendizado.

Crie uma função em Python denominada computarCusto.

  • Essa função deve ser definida no arquivo computarCusto.py;

  • Após implementar essa função, você pode verificar a corretude executando com todos os parâmetros iguais a zero. Nessa situação, sua função deve gera um valor igual a 32.07;

  • Após implementar o cálculo da função de custo J, você deve implementar o GD propriamente dito. Sua implementação do algoritmo gradiente descendente deve ser feita em um arquivo de nome gduni.py;

Essa implementação deve chamar a função computarCusto de forma apropriada. Presumindo que você implementou o GD e o cálculo da função de custo corretamente, os valores sucessivos do gradiente nunca devem crescer. Além disso, o valor de J deve convergir no fim da execução do algoritmo.

  • Após implementar o GD, você devem implementar um script em Python para visualizar a reta correspondente aos parâmetros determinados pela execução de sua implementação.

O resultado desse script deve ser similar ao apresentado na Figura abaixo:

A última tarefa nessa parte do trabalho, você deve usar o modelo de regressão linear produzido pelo seu código para predizer o lucro em regiões com populações de 35.000 e 70.000 habitantes. Forneça no seu relatório o código (em Python) para isso, assim como os valores correspondentes do lucro para cada uma daquelas duas cidades.


In [ ]: