1
resposta

[Dúvida] Ultimo exercício

Entendi a proposta, no sentido de desenvolver as habilidades com a biblioteca. Mas para ser mais preciso e objetivo, não seria melhor uma abordagem baseada na matemática dos coeficientes da reta?

import numpy as np

dados = np.loadtxt('citrus.csv', delimiter=',',usecols=np.arange(1,6,1),skiprows=1)
dl = dados[:5000,0]
pl = dados[:5000,1]
dt = dados[5000:, 0]
pt = dados[5000:,1]

# Cálculo manual dos coeficientes
def coeficientes(x,Y):
    cov_xy = np.cov(x, Y, ddof=0)[0, 1]  # Covariância entre x e Y
    var_x = np.var(x, ddof=0)             # Variância de x
    a = cov_xy / var_x                    # Coeficiente angular
    b = np.mean(dl) - a * np.mean(pl)     # Coeficiente linear 
    print(f'Y = {a}*x + {b}')
    return a, b
print('Equação da relação do diametro (Y) e o peso (x) da Laranja!')
coeficientes(pl,dl)
print('Equação da relação do diametro (Y) e o peso (x) da Toranja!')
coeficientes(pt,dt)
1 resposta

Ei, William! Tudo bem?

Entendo que seria mais objetivo mesmo. Mas, considerando a didática, é interessante aprofundar no conteúdo e entender outras formas (às vezes mais complexas ou elaboradas) para a curva de aprendizado ser linear. No exercício temos o objetivo de explorar a geração de números aleatórios para calcular o coeficiente angular, o que é uma prática comum em simulações e análise de dados.

A sua estratégia direta usando variância e covariância realmente reforça a base matemática por trás do modelo. Isso pode ser especialmente útil para comparar com métodos prontos, como o np.polyfit ou regressão do sklearn.

Continue assim se dedicando aos estudos para evoluir cada vez mais.

E em caso de dúvidas, compartilhe no fórum.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!