<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Exercício 0-1
Básico do básico<br>
Apenas para acostumar-se com conjunto de dados (quem é $\mathbf{x}$, quem é $y$), como plotá-los.
1. Importar algumas bibliotecas
Step1:  2. Carregar, examinar e fazer plot dos dados
Veja o conteúdo do arquivo "data1.txt"
Step2:  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 ?<br>
Veremos mais adiante que a regressão linear encontra a reta que "melhor se ajusta" aos dados.
<ASSISTANT_TASK:>
Python Code:
import numpy as np
import matplotlib.pyplot as plt
Explanation: Exercício 0-1
Básico do básico<br>
Apenas para acostumar-se com conjunto de dados (quem é $\mathbf{x}$, quem é $y$), como plotá-los.
1. Importar algumas bibliotecas
End of explanation
# 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()
Explanation: 2. Carregar, examinar e fazer plot dos dados
Veja o conteúdo do arquivo "data1.txt"
End of explanation
# 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()
Explanation: 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 ?<br>
Veremos mais adiante que a regressão linear encontra a reta que "melhor se ajusta" aos dados.
End of explanation
<END_TASK>