Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

CHALLENGE

Continuando con la seccion 3. del curso, aqui dejo mi solucion del CHALLENGE

import numpy as np
import matplotlib.pyplot as plt

url = 'https://gist.githubusercontent.com/ahcamachod/9be09de793dc3bf1e6c3d98eb4e5b1ef/raw/21b85572693200040e11284ef6dcfc3457ec8e11/citrus.csv'
datos_citrus = np.loadtxt(url, delimiter=',', usecols=np.arange(1, 6, 1), skiprows=1)

diametro_naranjas = datos_citrus[:5000,0]
diametro_toronjas = datos_citrus[5000:,0]
peso_naranjas = datos_citrus[:5000,1]
peso_toronjas = datos_citrus[5000:,1]

print(np.sum(np.isnan(datos_citrus[:,0])))
print(np.sum(np.isnan(datos_citrus[:,1])))


def a (x , y, n):
    a = ((n*sum(x*y))-(sum(x)*sum(y)))/(n*sum(x**2)-abs(sum(x))**2)
    return a

def b (x, y, n):
    b = ((sum(y)*sum(x**2))-(sum(x)*sum(x*y)))/(n*sum(x**2)-abs(sum(x))**2)
    return b

plt.plot(diametro_toronjas, peso_toronjas)
plt.plot(diametro_naranjas, peso_naranjas)
plt.title('Toronjas vs Naranjas')
plt.xlabel('diametro')
plt.ylabel('peso')
plt.legend(['toronjas','naranjas'])
plt.grid(True)

a_t = a(diametro_toronjas, peso_toronjas, np.size(diametro_toronjas))
b_t = b(diametro_toronjas, peso_toronjas, np.size(diametro_toronjas))

a_n = a(diametro_naranjas, peso_naranjas, np.size(diametro_naranjas))
b_n = b(diametro_naranjas, peso_naranjas, np.size(diametro_naranjas))

print(f'La pendiente de la regresecion linal de las toronjas es {a_t} \n')
print(f'El offset de la regresecion linal de las toronjas es {b_t} \n')

print(f'La pendiente de la regresecion linal de las naranjas es {a_n} \n')
print(f'El offset de la regresecion linal de las naranjas es {b_n} \n')

y_t = a_t * diametro_toronjas + b_t
y_n = a_n * diametro_naranjas + b_n

plt.plot(diametro_toronjas, y_t)
plt.plot(diametro_naranjas, y_n)
plt.legend(['toronjas','naranjas','RL toronjas', 'RL naranjas'])
plt.show()
1 respuesta

Hola Estudiante, espero que estés bien

¡Qué bueno que compartiste tu solución! Parece que has hecho un gran trabajo siguiendo el reto. Tu código está bien estructurado y parece que has implementado correctamente las fórmulas de mínimos cuadrados para calcular los coeficientes de la regresión lineal tanto para las naranjas como para las toronjas.

Solo un pequeño detalle que podría mejorar la claridad de tu código: en las funciones a y b, estás usando nombres de variables que podrían ser más descriptivos. Por ejemplo, podrías cambiar a y b por pendiente y intercepto respectivamente, para que sea más claro lo que estas funciones están calculando.

Además, asegúrate de que los gráficos sean lo más claros posible. Considera añadir etiquetas más descriptivas en el gráfico, como "Diámetro (cm)" y "Peso (g)" en los ejes, para que cualquier persona que vea el gráfico pueda entenderlo fácilmente.

En general, parece que has comprendido bien el ejercicio y has aplicado correctamente los conceptos de la lección. Espero que este feedback te sea útil.

¡Espero haber ayudado y buenos estudios!