<jupyter_start><jupyter_text>Machine Learning envolve uma mudança de paradigma: Enviamos dados + respostas para o modelo e ele nos retorna a regra que leva os dados às respostas.Neste primeiro exemplo, vamos explorar a funcionalidade para buscar a regra (função) que leva os valores X em Y / f(x) = y*   Aluno: <NAME>*   Data: Fev/2021<jupyter_code>import math
x = [-1, 0, 1, 2, 3, 4]
y = [-3, -1, 1, 3, 5, 7]

#vamos supor que o modelo é linear e estimar uma curva que encaixe o Y em função do valor de X
# y = a * x + b

a = 3
b = -2

#vamos armazenar os dados estimados para comparação posterior
Y_estimado = []

for item in x:
  Y_calculado = a*item+b
  Y_estimado.append(Y_calculado)

print('Y real:', y)

print('Y estimado:', Y_estimado)

# vamos definir a função de erro como sendo a diferença entre o Y que desejamos e o que calculamos
# vamos somar o erro de cada par de Y (calculado e esperado) para medir a precisão do modelo
# como podemos ter valores positivos e negativos, vamos elevar todas diferenças ao quadrado para evitar este inconveniente

erro_quadratico_total = 0
for i in range(0,len(y)):
  erro_quadratico = (y[i] - Y_estimado[i])**2
  erro_quadratico_total = erro_quadratico_total + erro_quadratico

print('Erro quadratico total ', str(math.sqrt(erro_quadratico_total)))<jupyter_output>Y real: [-3, -1, 1, 3, 5, 7]
Y estimado: [-5, -2, 1, 4, 7, 10]
Erro quadratico total  4.358898943540674
{'fraction_non_alphanumeric': 0.09257950530035336, 'fraction_numerical': 0.0353356890459364, 'mean_word_length': 4.363636363636363, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '233064', 'license': 'MIT', 'n_tokens_mistral': 599, 'n_tokens_neox': 559, 'n_words': 204, 'path': 'python_alura/01-linear_regression_loss_function.ipynb', 'repo_name': 'ferris77/my_notebooks', 'size': '1423'}