Algunas librerías de visualización de Python:
Introducción
Objetivos del Curso
Programación Dinámica
Introducción a la Programación Dinámica
Optimización de Fibonacci
Caminos Aleatorios
¿Qué son los caminos aleatorios?
Entendiendo la aleatoriedad con Python
Camino de Borrachos
Desarrollando la simulación
Visualización de Caminos Aleatorios
Programas Estocásticos
Introducción a la Programación Estocástica
Cálculo de Probabilidades
Simulación de Probabilidades
Inferencia Estadística
Media
Varianza y Desviación Estándar
Distribución Normal
Simulaciones de Montecarlo
¿Qué son las Simulaciones de Montecarlo?
Simulación de Barajas
Cálculo de PI
Implementación del Cálculo de PI
Muestreo e Intervalos de Confianza
Muestreo
Teorema del Límite Central
Datos Experimentales
¿Cómo trabajar con datos experimentales?
Regresión Lineal
Conclusiones
Conclusiones
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Convierte tus certificados en títulos universitarios en USA
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
David Aroesti
Aportes 84
Preguntas 7
Algunas librerías de visualización de Python:
Para evitar la fatiga:
https://colab.research.google.com/
asi como se puede aproximar con una funcion lineal se puede aproximar con funciones de mayor grado (cuadraticas, cubicas…), con la particularidad que a mayor grado tenemos mejor aproximacion.
en la linea coeffs = np.polyfit(x, y, 1)
, el 1 se refiere al grado del polinomio, si colocas un 2 tendras los coeficientes para un polinomio del tipo ax**2 + bx + c
Desarrolle un guante que en base a la presión ejercida (detectada por un sensor), se calculaba la cantidad de newtons, como matemáticamente se sabe que hay una relación directa entre presión y fuerza, para poder convertirlo directo lo que hice fue ejercer una presión constante con diferentes pesos, y calcule la fuerza ejercida. Luego hice una regresión que resulta ser una logarítmica. Y esa formula es la que implemente en el software para que el mismo calcule la fuerza dada.
Amo con mi vida Colab!!! es la mejor herramienta :3
Cualquier venta o resultado a tráves del tiempo podría visualizarse como una función lineal para ver si hay crecimiento conforme el tiempo con base en un hisórico.
Hola! Comparto un código que emula la regresión lineal ; dando la recta que mejor se acople a la nube de datos 😄
def operacional_function():
lista_xi=[]
lista_yi=[]
cantidad_de_xi = int(input("Hola, ingresa la cantidad de datos de la variable independiente: "))
for i in range(cantidad_de_xi):
xi=float(input("Ingrese el {}) valor de x: ".format(i+1)))
lista_xi.append(xi)
yi = float(input("Ingrese la {}) etiqueta:".format(i+1)))
lista_yi.append(yi)
sumax=contador(lista_xi)
sumay=contador(lista_yi)
mediax=promediador(sumax,len(lista_xi))
mediay=promediador(sumay,len(lista_yi))
productoxy=multiplicador(lista_xi,lista_yi)
suma_cuadrados=cuadrado_de_sumas_x(lista_xi)
n=len(lista_xi)
pendiente = ((sumax*sumay)-(n*productoxy)) / (((sumax)**2)-(n*suma_cuadrados))
print(pendiente)
bias = mediay-(pendiente*mediax)
print(bias)
print("La ecuación de la recta más optimizadora es {}x + {} = y".format(pendiente,bias))
valori = int(input("Ingrese un valor para predecir con nuestro modelo: "))
respuesta = (pendiente*valori) + bias
print("La prediccion es de {}.".format(respuesta))
def contador(lista_random):
acumulador=0
for numero in lista_random:
acumulador = numero + acumulador
return acumulador
def promediador(suma,n_datos):
media=suma/n_datos
return media
def multiplicador(lista1,lista2):
acumulador=0
for i in range(len(lista1)):
acumulador = acumulador + lista1[i]*lista2[i]
return acumulador
def cuadrado_de_sumas_x(lista):
acumulador = 0
for numero in lista:
acumulador = acumulador + numero**2
return acumulador
if __name__ == "__main__":
print("Hola, calcularemos una recta que se adecua a la nube de puntos de un problema de regresion lineal")
operacional_function()
genial quisiera que en la universidad me hubiesen enseñado estadística con python y colab
El consumo de gasolina en un auto con respecto a los kilometros recorridos, o su velocidad
David,
Defnitivamente explicas muy bien.
Excelente !!!
No existe la palabra polinominial, es polinomial.
Ya había usado esta librería en MatLab pero realmente en Python fue mucho más facil
Toca hacer una serie de cursos de Econometría en Platzi.
Pudiéramos realizar una regresión lineal, con respecto al consumo de energía teórico de una industria y el consumo experimental.
<h1>Explicación mas a fondo de regresión lineal:</h1> <h1>Explicación para el calculo de los coeficientes de manera analítica:</h1>Stack de data scientis:
Un vídeo de un canal increíble con mucho material que vale mucho la pena ver!
En el sentido estricto en esta clase no se vio una regresión lineal, fue un ajuste por mínimos cuadrados en el cual se aproximo a una recta que se relaciona a nuestros datos, y no una función.
https://github.com/karlbehrensg/programacion-dinamica-y-estocastica
Regresión Lineal
La regresión lineal nos permite aproximar una función a un conjunto de datos obtenidos de manera experimental. No necesariamente permite aproximar funciones lineales, sino que sus variantes permiten aproximar cualquier función polinómica.
Para ver un ejemplo de regresiones lineales en Python en el siguiente enlace puedes acceder a ver un ejemplo: Collab - Regresión Lineal.
Ejemplo de regresión lineal
En gases: A mayor presión ejercida menor volumen ocupado
Para cuándo el Curso de Jupyter y python?
Con todo respeto, considero que este curso debería estar en un nivel más avanzado. Se explican las cosas de forma poco clara para aquellos que no tienen conocimientos sólidos del tema.
Muchos detalles además, son pasados de largo, y no se explican para qué funcionan.
Tenia un par de conceptos sueltos sobre regresion lineal
Pero este articulo de IBM me ayudo a entender mejor todo y reforzar conocimiento
↓
Importante que en próximos cursos se pueda ahondar mucho más sobre este tema de regresión porque lo amerita muchísimo. Un tema fundamental también para aplicar la regresión lineal es el saber el coeficiente de correlación entre las variables que queremos analizar. Dejo un video para que se profundice más en el tema: https://www.youtube.com/watch?v=aKsjilxc5ww&ab_channel=Estadigrafo*
import numpy as np
import matplotlib.pyplot as plt
x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([5, 7, 9, 10, 15, 10, 14, 17, 11])
coefficients = np.polyfit(x, y, 1) # 1 refers to the degree of the polynomial
m, b = coefficients[0], coefficients[1]
fit_y = (m*x) + b
fig, ax = plt.subplots(figsize=(5, 5))
ax.plot(x, fit_y, color='b')
ax.scatter(x, y, color='r', s=10)
ax.set(xlabel='X', ylabel='Y', title='Simple Linear Regression Example')
ax.grid()
plt.show()
Dejo una pequeña variación del codigo para que vean como es el comportamiento de la regresión inclusive con numeros aleatorios!
import numpy as np
import matplotlib.pyplot as plt
import random
x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
y = np.array([random.randint(-5, 20) for i in range(len(x))])
coeffs = np.polyfit(x, y, 1)
print(coeffs)
m = coeffs[0]
b = coeffs[1]
est_y = (m * x) + b
plt.plot(x, est_y)
plt.scatter(x, y)
plt.show()```
En termodinámica, la ecuación de estado de los gases ideales establece que para el gas ideal la multiplicación de la presión con el volumen tiene una relación lineal con la temperatura, así PV = nRT. Para demostrar esto, se puede hacer un experimento a volumen y moles (n) constante, donde se mide la presión a diferentes temperaturas, con estos datos se hace una regresión lineal y se calcula R, si el valor de R es muy cercano a la constante universal de los gases, el gas evaluado se comporta como ideal, si es muy alejado no se comporta como ideal y hay que usar otro tipo de ecuaciones no lineales para modelarlo.
Gracias por el tip de colab
El número de horas totales de los usuarios en Platzi según los usuarios totales.
El aumento de la temperatura de una olla con agua respecto al fuego que se le aplique.
Consejo los cursos siguientes no van a usar Google Colab, sino van a usar Jupyter Notebook y Anaconda
me encanto yo odio hacer todas las cuentas es horrible y aka es super facil le decís la pendiente y un punto.
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# Generar datos de ejemplo
np.random.seed(0)
x = np.random.randn(100)
y = 2 * x + np.random.randn(100)
# Crear un DataFrame con los datos
data = pd.DataFrame({'X': x, 'Y': y})
# Crear un gráfico de dispersión con línea de regresión
sns.lmplot(x='X', y='Y', data=data)
# Guardar la imagen en un archivo
plt.savefig('regresion_lineal.png')
# Mostrar el gráfico
plt.show()
Hola a todos ✋, a continuación les dejo un link a un video de DotCSV donde explica a mayor detalle y profundidad la regresión líneal, espero les sea de ayuda como lo fue para mi 😄
me han interesado todos los temas, especialmente:
campos muestrales
generación de conjuntos aleatorios
verificacion de probabilidades en esos conjuntos
no voy a trabajar con números, pero si con otros objetos
gracias David.
Creo que proyectar la evolución de cartera de clientes en una institución financiera con datos históricos pueden tener una función lineal. variable dependiente año y variable dependiente saldo de cartera de cada gestión.
Actualmente en mi curso de Metaheurísticas, estoy aprendiendo Regresión Lineal en Matlab. Con un dataset sobre la presión arterial, edad, y peso de pacientes. Calculamos los pesos del modelo que disminuyan el RSS para predecir la presión arterial.
Con esta herramienta podemos obtener la pendiente de la relación entre el índice refracción del aire a cierta presión.
Con las técnicas de regresión lineal, podemos encontrar las diferencias entre la realidad y las matemáticas.
Tenemos plot, dentro de matplotlib.pyplot, para hacer una gráfica de ciertos valores, luego scatter para hacer una gráfica por puntos, y luego la función show, para que salga por consola la gráfica.
Cada uno de los rectángulo o espacios con Código, se les llama code segment, debido a que son "particiones" de código.
Recordemos que una función lineal, es mx + b
Para tomar nuestros coeficientes, podremos utilizar, polyfit, que recibe la x, la y para que dividido por otra coma, pongamos el coeficiente de nuestro polinomio.
El ambiente en el que podemos experimentar con ciertos códigos, lo llamamos, Jupyter Notebook.
La técnica de regresión lineal, puede apróximar, cualquier función polinomial.
La regresión lineal, nos permite aproximar un conjunto de daots obtenidos, de manera experimental a una función que investigamos, esta última no tiene por qué ser lineal
Regresiones lineales
Aproximación de un conjunto de datos obtenido a una función (no necesariamente lineal). Es decir obtenemos una formula que se aproxima lo mejor posible a nuestros datos.
Notas:
polyfit(array1, array2, n) → método de la librería numpy que nos permite generar una regresión polinomial (de grado n) y devuelve los parámetros de la función (en el caso de la regresión lineal a (o m) y b)
Aqui informando que apenas terminó la ejecucion de mi Fibonacci de 100 de la clase 3 de Opimizacion de Fobonacci de manera recursiva
INCREIBLE
1.- Funciones lineales y sus elementos
Una función lineal es una función cuyo dominio son todos los números reales, cuyo codominio también todos los números reales, y cuya expresión analítica es un polinomio de primer grado.
La función lineal se define por la ecuación f(x) = mx + b ó y = mx + b llamada ecuación canónica, en donde m es la pendiente de la recta y b es el intercepto con el eje Y.
Por ejemplo, son funciones lineales f(x) = 3x + 2 g(x) = - x + 7 h(x) = 4 (en esta m = 0 por lo que 0x no se pone en la ecuación).
Excelente profe gracias
Parece que es más cómodo hacer una regresión con Python que con Excel.
Qué buen curso :3
Esto se aplica a los modelos de machine learning de regresion lineal
Un tipo de datos que pueden realizarse también con regresión lineal seria el sueldo de una persona en base a los años de educación.
funciones lineales como la resistencia de un resistor vs temperatura(dependiendo resistor), velocidad vs tiempo(aceleración es una constante), interés simple…
Tambien pueden usar jupyter e instalar numpy, lo cual me parece mas efectivo
pip install numpy
Interesante si pueden añadir el tema de contraste de hipótesis (Ho, Hi) que es una aplicación importante de las distribuciones normales
las emisiones de carbono de un automóvil a lo largo del tiempo
mmm polinomial o polinolimial?
gran parte de las curvas de calibracion de los equipos electronicos se basan en este prinicipio matematico, sumado a uno quimico (analizadores) o fisico (Equipos metrologicos)
Una función de regresión lineal se puede aplicar al comportamiento de los mercados por ejemplo SP500 conforme pasa el tiempo donde se ve que a pesar de las crisis los mercados tienden a recuperarse y continuar con una tendencia alcista
Las ventas, niveles de pobreza.
Se me ocurre la encriptación de datos para las transacciones seguras de bancos, tarjetas de crédito, etc. donde pueden aplicarse las funciones lineales
Frecuencia de cáncer pulmonar con consumo de cigarros diarios tienen una función lineal
Un dato importante, la obtención de los parámetros m y b provienen de minimizar el error cuadrático entre los datos y el modelo lineal, es decir es una técnica de minimización.
Good class*!
Definición Regresión Lineal.
Es mejor usar Colab o jupyter notebook ?
Cual es mas recomendable ?
La regresión lineal puede hacerse de forma más rápida usando las funciones internas de Numpy.
Numpy es una herramienta muy poderosa, es posible hacer aproximaciones con polinomios de mayor grado para que puedan encajar en los datos.
https://colab.research.google.com/drive/1O2MnV4SOmNr3KcaCyCHB8Lbb0jf65gCF?usp=sharing
mucha libreria
Entendido
La regresión lineal es súper útil para aproximar comportamientos, pero lo mejor es aproximar comportamientos con las herramientas del análisis de Fourier (series de Fourier, transformada discreta de Fourier para datos discretos).
import numpay as np
x = np.array([0,1,2,3,4,5,6,7,8])
y = np.array([1,2,3,5,4,6,8,7,9])
coeffs = np.polyfit(x,y,1)
print(coeffs)
m = coeffs[0]
b = coeffs[1]
import matplotlib.pyplot as plt
plt.plot(x, est_y)
plt.scatter(x,y)
plt.show()
¿Se puede también modelar funciones exponenciales o periódicas?
O en su defecto, ¿Se puede introducir una ecuación personalizada en donde tenga datos para modelarlo?
est_y = (m * y) + b
así, no más, sin importar los tipos de datos 😆
that’s why I love python
Excelente!
En verdad es terrible simplificar de esta manera el tema de regresión. Aroesti es buen profesor de python, pero para estadística existen especialistas en Latam que podrían aportar mucho de verdad, Platzi debería planteárselo en serio.
En este apartado, podemos responder lo siguiente:
se puede aumentar el grado del polinomio y ajustar mejor los datos
Regresión lineal.
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme()
x = np.array([x for x in range(9)])
y = np.array([1, 2, 3, 5, 4, 6, 8, 7, 9])
coeffs = np.polyfit(x, y, 1)
m = coeffs[0]
b = coeffs[1]
print(f'Pendiente m = {m:.2f} y ordenada al origen b = {b:.2f}')
plt.plot(x, y, marker = 'o', label = 'Datos')
plt.plot(x*m + b, label = 'Ajuste lineal')
plt.legend()
plt.title('Ejemplo de regresión lineal')
plt.show()
se podría hacer un experimento tomando en cuenta el tiempo que pasas en el movil y tus calificaciones obtenidas, podríamos tomar el tiempo acumulado la semana anterior a tu examen. O el promedio de las calificaciones con el tiempo total, durante el ciclo, semestre, bimestre.
Sería útil si se ahondara más en los comandos que aporta la librería numpy
Colab está muy bueno!
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?