Para el que tenga dudas, en este caso
np.sum(x*(x-m_x))
es igual a
np.sum((x-m_x)**2)
😃
Bienvenida al curso
Todo lo que aprenderás sobre la regresión lineal
Introducción a ML y los algoritmos
Regresión lineal y machine learning
Explicación matemática de la regresión lineal
Entendiendo el algoritmo de regresión lineal
Método de mÃnimos cuadrados: ecuación
Método de mÃnimos cuadrados: despejando la ecuación
Generando predicciones en papel
Proyecto del curso
Llevando nuestro algoritmo a Python
Creando nuestra función de graficación
Código main y probando nuestro código
Conclusiones
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
Aportes 32
Preguntas 9
Para el que tenga dudas, en este caso
np.sum(x*(x-m_x))
es igual a
np.sum((x-m_x)**2)
😃
Como buena práctica, una variable no empieza con mayúscula (Sumatoria).
Las formulas
No conocÃa la herramienta de Google Colaboratory. Interesante.
🟢IMPORTANT!
¿Se te hizo poco natural que en la sumatoria de XX multiplicara a X para elevar al cuadrado?
.
A mà también, asà que puedes hacerlo de esta manera:
.
Mientras el código maneje un lenguaje más natural, será más fácil de interpretar
La formula, la pueden encontrar como el método de mÃnimos cuadrados ordinarios, en google imagenes.
Para este caso en particular es mucho mas sencillo calcular los estimadores de forma matricial en donde ^B = (X^T X)^(-1)X^TY, con B^T =(b_0, b_1) , X es la matriz diseño y Y es el vector de observaciones de la variable objetivo
La función simplificada:
a en lugar de b1 y b en lugar de b0
def linear_regression(X, Y, x):
"""
X, Y ---> numpy.ndarray
x ---> int, float
Return the prediction given a value of a linear regression with the form: a*x + b.
"""
m_X = np.mean(X)
m_Y = np.mean(Y)
a = np.sum((X - m_X) * (Y - m_Y)) / np.sum((X - m_X)**2)
b = m_Y - a * m_X
return a * x + b
por que sumatoria_xx es una multiplicación de X, en clases pasadas aparecia como un cuadrado?
¿Cuáles son los pros y contras de Jupyter y Google Colab?
Este profesor explica un poco mal, se pone nervioso y tartamudea y tiene detalles que me hacen perder la concentración, lo digo a modo de critica constructiva, tal vez deba tomar el curso de platzi de hablar en publico y esa rama para ganar confianza a la hora de explicar y expresarse.
Esperaba que este curso fuera con python jupyter (notebook), ya que los cursos anteriores que dicen python es con jupyter, del contrario deberia llamarse solo curso de regresion lineal.
Excelente clase vamos por mas
Aporte:
def estimate_b0_b1(x ,y):
n = np.size(x)
#obtenemos los promedio de X y de Y
m_x, m_y = np.mean(x), np.mean(y)
#Calcular sumatoria de XY y sumatoria de XX
sumatoria_xy = np.sum((x-m_x)*(y-m_y))
sumatoria_xx = np.sum(pow((x-m_x), 2))
_#Para que sea más congruente con la ecuación a lapiz se elevo el denominador de la misma al cuadrado._
#coeficientes de regresion
b_1 = sumatoria_xy / sumatoria_xx
b_0 = m_y - b_1*m_x
return (b_0, b_1)
Se alguno le interesa saber de donde se obtene la formula de los minimos cuadrados les dejo este enlace
https://www.youtube.com/watch?v=twvetj6-Ydc
Si quieren escribir fórmulas matemáticas en Google Colab, simplemente ponen un bloque de texto y usan Latex, que es como un lenguaje para escribir fórmulas matemáticas en texto plano (como Markdown)
Esta serÃa la formula para b_1, si la copian y pegan aparecerá la fórmula:
$$\frac{\sum{(x-\bar{x})(y-\bar{y})}}{\sum{(x-\bar{x})^2}}$$
**Esta es la formula de Regresión Lineal **
Usamos las librerÃas:
Numpy: Para poder utilizar las sumas de Riemann y promedios
Matplotlib: Para Poder graficar la lÃnea de regresión
import numpy as np
import matplotlib.pyplot as plt
def estimate_b0_b1(x, y):
n = np.size(x)
#obtenemos los promedio de x y de y
m_x, m_y = np.mean(x), np.mean(y)
#calcular la sumatoria de xy y de xx
sumatoria_xy = np.sum((x-m_x)*(y-m_y))
sumatoria_xx = np.sum(x(x-m_x))
#coeficientes de regresion
b_1 = sumatoria_xy / sumatoria_xx
b_0 = m_y - b_1*m_x
return(b_0, b_1)
Formulas de Regresión Lineal
No se si soy solo yo o que, pero entiendo mejor las matemáticas en código que al natural 😂😂😂
Genial google colab. Se puede insertar un cuadro de texto en lugar de uno de código y se pueden escribir las ecuaciones en formato latex.
## Recta de regresión
$y = b_{0} + b_{1}x$
## MÃnimos cuadrados
$b_{1}$ = $\frac{(x - \bar x) (y - \bar y)}{\sum (x - \bar x)^2}$
obteniendo este hermoso resultado
Haciendo en 2 lineas lo que habia hecho en 6, es realmente util conocer las funciones de las librerias que se manejan :3
¿De cual formula habla? Porque la anterior formula que vimos fue la de y= b1 + b2X, sino mal recuerdo
Faltò agregarle el cuadrado al denominador
Genial
excelente,
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.