Poderia me dizer onde esta o problema no código?
Já tentei olhar várias vezes e não estou conseguindo encontrar o que fiz de diferente
Até a parte dos coeficientes dado a formula dos minimos quadrados está tudo ok mas quando chega na parte da menor norma através do aletorio com seed os numeros divergem
Estou chegando na menor norma de 124.90 ao inves da 104.405
import numpy as np
import matplotlib.pyplot as plt
from typing import Any
#c:\Users\leodo\OneDrive\Documentos\python_portfolio\ALURA_PYT_DSC\
def coeficiente_angular( x : Any , y : Any) -> tuple:
"""
Calcula o coeficiente angular de uma reta.
"""
n = np.size(x)
a = (n * np.sum(x * y) - np.sum(x) * np.sum(y)) / (n * np.sum(x**2) - np.sum(x)**2)
b = np.mean(y) - a * np.mean(x)
return a,b
url = 'https://raw.githubusercontent.com/allanspadini/numpy/dados/citrus.csv'
dado = np.loadtxt(url, delimiter=',',skiprows=1,dtype=object)
diametro = dado[:,:2]
peso = dado[:,[0,2]]
peso_laranja = peso[peso[:,0] =='orange']
peso_toranja = peso[peso[:,0] =='grapefruit']
diametro_laranja = diametro[diametro[:,0] =='orange']
diametro_toranja = diametro[diametro[:,0] =='grapefruit']
x_laranja = diametro_laranja[:,1].astype(float)
y_laranja = peso_laranja[:,1].astype(float)
x_toranja = diametro_toranja[:,1].astype(float)
y_toranja = peso_toranja[:,1].astype(float)
cof_laranja_a,cof_laranja_b = coeficiente_angular(x_laranja,y_laranja)
cof_toranja_a,cof_toranja_b = coeficiente_angular(x_toranja,y_toranja)
print(f'Coeficiente a: {cof_laranja_a} e Coeficiente b: {cof_laranja_b}')
print(f'Coeficiente a: {cof_toranja_a} e Coeficiente b: {cof_toranja_b}')
b = 17
norma = np.array([])
np.random.seed(84)
coef_angulares = np.random.uniform(low=0.0,high=30.0,size=100)
for i in range(100):
norma = np.append(norma,np.linalg.norm(y_laranja- (coef_angulares[i]*x_laranja+ b)))
print(coef_angulares)
print(np.min(norma))