Funciones seccionadas
Clase 10 de 18 • Curso de Funciones Matemáticas para Data Science e Inteligencia Artificial
Contenido del curso
Clase 10 de 18 • Curso de Funciones Matemáticas para Data Science e Inteligencia Artificial
Contenido del curso
Willy Samuel Paz Colque
Alfonso Andres Zapata Guzman
Juan R. Vergara M.
JESUS ONESIMO ZAMORA GARCIA
Jeinfferson Bernal G
Gibran Alonso Pérez Favela
Alvaro Torres Sánchez
Esmeralda Palacios
Jeanfreddy Gutiérrez Torres
Juan Ochoa
Eduardo Monzón
Jeisson Espinosa
Bernardo Aguayo Ortega
DIEGO ALEXANDER ARISTIZABAL ARISTIZA
Italo Buitron
Daniel Andres Rojas Paredes
Willy Da Conceicao
Ricardo Gomez
Luna Isabela Torres Torres
Marco Antonio Chaccara Molina
Patrick Antony Bent Bowie
Maria del Mar Acosta Sanchez
Juan Sebastian Flórez Gómez
Anthony Jean Paul Blaz Lazo
Claudio Caniullan Calfin
Italo Buitron
Christian Roman
Carlos Enrique Arrieta Fierro
Javier Agudelo
mi forma favorita de implementar esto es:
import numpy as np def f(x): # np.int0 es un cast a números enteros return np.int0(x >= 0)
Simplicidad absoluta.
Esto solo lo da la experiencia, gracias.
Según yo así:
def f(x): return np.absolute(x) x = np.linspace(-10,10, num=1000) y=f(x) plt.plot(x, y)
Elegante!
wow
Así lo hice yo 🤔
funciona, después de todo es con base en su definición, aunque numpy ya la trae incluida, pero haces bien practicándolo de esa forma :)
Así mismo la hice yo :D
Dejo una lectura adicional de las funciones seccionadas acá
Genial, gracias.
Información resumida de esta clase #EstudiantesDePlatzi
Las funciones seccionadas son funciones que se comportan de manera diferente dependiendo de los trozos o secciones
Las funciones seccionadas se definen H (x)
enumerate es una función en Python que nos permite tener el índice y el elemento de un arreglo
Existen muchas funciones seccionadas
La función real valor absoluto se define sobre el conjunto de todos los números reales asignando a cada número real su respectivo valor absoluto
3 años despues me sigues salvando, gracias
este es el aporte del reto>
: lista = [] for value in x: if value > 0: value = value lista.append(value) elif value < 0: value = value*-1 lista.append(value) else: value = 0 lista.append(value) return lista N = 1000 x = np.linspace(-10,10,num=N) y = f(x) fig, ax = plt.subplots() ax.plot(x,y) ax.grid()
HOLA TAMBIEN TE ESTA COSTANDO ENTENDER EL Errror de ambiguedad en el codigo aca te lo explico.
lo que esta pasando es que inicialmente se esta intentando comparar un numero (escalar) con un arreglo de numeros (vector), si a ti te pidieran hacerlo como lo harias?
EXACTO
ese es el meoyo del asunto, entonces el arreglo es cambiar la forma en la que se hace la comparacion dato por dato para cada dato del arreglo x
y pues Y se construye llena de ceros desde antes de la comparacion porque para llenarla con los resultados tenemos que tenerla ya definida con un tamaño fijo, asi funcionan los arreglos en numpy, que le vamos a hacer .
Tambien se puede hacer con np.absolute
No entiendi por qué y=abs_value(8 + 2*x)
me podrías explicar
Con esto la función trabajará con arrays. Si x es menor a 0, el valor que regresa es 0, caso contrario, 1.
def H(x): return np.where(x < 0 ,0,1) N=1000 x = np.linspace(-10,10, num=N) y = H(x) plt.plot(x,y)
import matplotlib.pyplot as plt
import numpy as np
def f(x): return np.absolute(x)
N=1000
x = np.linspace(-10,10, num=N)
y = f(x)
plt.plot(x,y)
Hay una función muy interesante llamada "sigmoide". La función que representa una sigmoide es la siguiente:
f(x) = (1 + e^(-x))^(-1)
Donde e es el número de Euler.
Esta función tiene propiedades muy interesantes. Por ejemplo, se puede demostrar que su derivada es igual a:
f’(x) = f(x)*[1 - f(x)]
Pero lo que quiero resaltar es su comportamiento, el cual es muy similar al de la función escalón de Heaviside, ya que solo toma valores entre 0 y 1, es decir, su rango es (0, 1).
Esta función es muy usada cuando se trabaja con redes neuronales.
Si quieren implementar la función sigmoide en Python, aquí les dejo el código:
import numpy as np def f(x): return (1 + np.exp(-x))**(-1)
Así se ve la gráfica de la función:
Acerca de las funciones de valor absoluto https://www.varsitytutors.com/hotmath/hotmath_help/spanish/topics/absolute-value-functions
La gráfica de la función H(x) que se realizo en google colab en el minuto 7:30 no es la más precisa en términos matemáticos, el segmento de recta vertical no debe ir en la gráfica, es solo un detalle pero no menos importante.
Escalón de Heaviside, siguiendo la metodolia de las anteriores
def H(x): lista = [] for value in x: if value >= 0: value = 1 lista.append(value) else: value = 0 lista.append(value) return lista N = 1000 x = np.linspace(-10,10,num=N) y = H(x) fig, ax = plt.subplots() ax.plot(x,y) ax.grid()
Esta clase es un preambulo de lo que podemos ver en una función logistica para modelos de ML para regresiones logísticas. Importante repasar bien esta clase.
La función escalón se ocupa en redes neuronales
Así realice la solución al problema propuesto
def Abs_value(x): Y=np.zeros(len(x)) for idx,x in enumerate(x): if x >= 0: Y[idx]=x else: Y[idx]=-x return Y A=1000 x=np.linspace(-5, 5, num=A) y=Abs_value(x) fig,ax = plt.subplots() ax.plot(x,y) ax.grid(linestyle='--') plt.title("Funciones a trozos - Valor Abs")
![](