Exercício 0-1

Básico do básico
Apenas para acostumar-se com conjunto de dados (quem é $\mathbf{x}$, quem é $y$), como plotá-los.

1. Importar algumas bibliotecas


In [ ]:
import numpy as np
import matplotlib.pyplot as plt

2. Carregar, examinar e fazer plot dos dados

Veja o conteúdo do arquivo "data1.txt"


In [ ]:
# O arquivo de dados é um txt no qual cada linha
# contém dois números, separados por vírgula.
# A primeira coluna representa x e a segunda coluna y

fname = 'data1.txt'
data = np.loadtxt(fname, delimiter = ',')

N = data.shape[0]  # número de linhas; portanto número de exemplos
X = data[:, 0]
y = data[:, 1]

# Examinar um pouco a dimensão dos arrays
print 'Dimensão do array data:', data.shape
print 'Dimensão do array X:', X.shape

# plotar o dados
plt.plot(X, y, 'rx')
plt.xlim(-1, 10)
plt.ylim(-1, 6)
plt.title(fname)
plt.xlabel('x')
plt.ylabel('y')
plt.show()

3. Ajustar (sobrepor ?) uma reta qualquer

Experimente diferentes valores para $\mathbf{w}=(w_0,w_1)$. Qual seria uma reta que se "ajusta" bem aos exemplos ?
Veremos mais adiante que a regressão linear encontra a reta que "melhor se ajusta" aos dados.


In [ ]:
# chutar valores para o vetor de pesos
w = np.array((1,0.5))

# plotar os dados (X,y)
plt.plot(X, y, 'rx')

# plotar a reta
XX = np.vstack(zip(np.ones(N), X))
plt.plot(X, XX.dot(w), '-')

# Outras configs do plot
plt.xlim(-1, 10)
plt.ylim(-1, 6)
plt.title( fname + ' e a reta %.1f+%.1fx'%(w[0],w[1]) )
plt.xlabel('x')
plt.ylabel('y')
plt.show()