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.
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]:
In [60]:
scatter(df.Populacao, df.Lucro, s=30, c='red', marker='x');
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.
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.
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 [ ]: