Thomas Nield - Essential Math For Data Science-17-55.en - Es

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 39

Traducido del inglés al español - www.onlinedoctranslator.

com

CAPÍTULO 1

Repaso de Matemáticas y Cálculo Básico

Comenzaremos el primer capítulo que cubre qué son los números y cómo funcionan las
variables y funciones en un sistema cartesiano. Luego cubriremos exponentes y logaritmos.
Después de eso, aprenderemos las dos operaciones básicas del cálculo: derivadas e integrales.

Antes de sumergirnos en las áreas aplicadas de las matemáticas esenciales, como la probabilidad, el
álgebra lineal, las estadísticas y el aprendizaje automático, probablemente deberíamos revisar
algunos conceptos básicos de matemáticas y cálculo. Antes de que dejes caer este libro y corras
gritando, ¡no te preocupes! Presentaré cómo calcular derivadas e integrales para una función de una
manera que probablemente no te enseñaron en la universidad. Tenemos a Python de nuestro lado, no
a lápiz y papel. Incluso si no está familiarizado con las derivadas y las integrales, no necesita
preocuparse.

Haré que estos temas sean lo más precisos y prácticos posible, centrándome solo en lo que nos ayudará en
capítulos posteriores y lo que cae bajo el paraguas de las "matemáticas esenciales".

¡Este no es un curso acelerado completo de matemáticas!

Esto no es de ninguna manera una revisión exhaustiva de las matemáticas de


la escuela secundaria y la universidad. Si quieres eso, un gran libro para revisar
esNo Bull‐ shit Guide to Math and Physicspor Ivan Savov (perdón por mi
francés). Los primeros capítulos contienen el mejor curso intensivo de
matemáticas de la escuela secundaria y la universidad que he visto. El libro
Matemáticas 1001por el Dr. Richard Elwes también tiene un gran contenido y
explicaciones breves.

1
Teoría de los números

¿Qué son los números? Prometo no ser demasiado filosófico en este libro, pero ¿no son los
números una construcción que hemos definido? ¿Por qué tenemos los dígitos del 0 al 9 y no
tenemos más dígitos que esos? ¿Por qué tenemos fracciones y decimales y no solo números
enteros? Esta área de las matemáticas en la que reflexionamos sobre los números y por qué los
diseñamos de cierta manera se conoce como teoría de números.

Teoría de los númerosse remonta a la antigüedad, cuando los matemáticos estudiaban


diferentes sistemas numéricos, y explica por qué los hemos aceptado como lo hacemos
hoy. Aquí hay diferentes sistemas numéricos que puede reconocer:

Números naturales
Estos son los números 1, 2, 3, 4, 5… y así sucesivamente. Aquí solo se incluyen números positivos,
y son el sistema más antiguo conocido. Los números naturales son tan antiguos que los hombres
de las cavernas marcaban los huesos y las paredes de las cuevas para llevar registros.

Números enteros
Sumado a los números naturales, posteriormente se aceptó el concepto de “0”; los
llamamos "números enteros". Los babilonios también desarrollaron la útil idea de la
notación de reserva de lugar para "columnas" vacías en números mayores que 9, como
"10", "1000" o "1090". Esos ceros indican que ningún valor ocupa esa columna.

enteros
Los números enteros incluyen números naturales positivos y negativos, así como el 0. Podemos
darlos por sentado, pero los antiguos matemáticos desconfiaban profundamente de la idea de
los números negativos. Pero cuando restas 5 de 3, obtienes -2. Esto es útil especialmente cuando
se trata de finanzas donde medimos ganancias y pérdidas. En el año 628 d. C., un matemático
indio llamado Brahmagupta demostró por qué los números negativos eran necesarios para que
la aritmética progresara con la fórmula cuadrática y, por lo tanto, se aceptaron los números
enteros.

Numeros racionales
Cualquier número que puedas expresar como una fracción, como 2/3, es un número racional.
Esto incluye todos los decimales y enteros finitos, ya que también se pueden expresar como
fracciones, como 687/100 = 6,87 y 2/1 = 2, respectivamente. Se les llama racionalporque ellos son
proporciones. Los números racionales rápidamente se consideraron necesarios porque el
tiempo, los recursos y otras cantidades no siempre se podían medir en unidades discretas. La
leche no siempre viene en galones. Es posible que tengamos que medirlo como partes de un
galón. Si corro durante 12 minutos, no se me puede obligar a medir millas enteras cuando en
realidad corrí 9/10 de milla.

Numeros irracionales
Los números irracionales no se pueden expresar como una fracción. Esto incluye el famoso π, las
raíces cuadradas de ciertos números como el 2 y el número de Euler.mi,lo que haremos

2 | Capítulo 1: Repaso de cálculo y matemáticas básicas


aprender más tarde. Estos números tienen un número infinito de dígitos decimales, como
3.141592653589793238462…

Hay una historia interesante detrás de los números irracionales. El matemático griego
Pitágoras creía que todos los números son racionales. Creía esto tan fervientemente que
hizo una religión que rezaba al número 10. “¡Bendícenos, número divino, tú que
engendraste dioses y hombres!” él y sus seguidores rezaban (por qué el “10” era tan
especial, no lo sé). Existe la leyenda de que uno de sus seguidores, Hippasus, demostró que
no todos los números son racionales simplemente demostrando la raíz cuadrada de 2. Esto
alteró gravemente el sistema de creencias de Pitágoras, y respondió ahogando a
Hippassus en el mar.

Independientemente, ahora sabemos que no todos los números son racionales.

Numeros reales
Los números reales incluyen tanto números racionales como irracionales. En la práctica, cuando realiza
cualquier trabajo de ciencia de datos, puede tratar cualquier decimal con el que trabaje como números
reales.

Números complejos e imaginarios


Te encuentras con este tipo de número cuando sacas la raíz cuadrada de un número negativo. Si
bien los números imaginarios y complejos tienen relevancia en ciertos tipos de problemas, en su
mayoría nos mantendremos alejados de ellos.

En ciencia de datos, encontrará que la mayoría (si no todo) de su trabajo utilizará números
enteros, números naturales, enteros y números reales. Los números imaginarios se pueden
encontrar en casos de uso más avanzados, como la descomposición de matrices, que
abordaremos enCapítulo 4.

Números complejos e imaginarios

Si quieres aprender sobre números imaginarios, hay una gran lista de


reproducciónLos números imaginarios son realesenYoutube.

Orden de operaciones
Con suerte, usted está familiarizado conOrden de operaciones, que es el orden en que
resuelves cada parte de una expresión matemática. Como un breve repaso, recuerde que
evalúa los componentes entre paréntesis, seguidos de los exponentes, luego la multiplicación,
la división, la suma y la resta. Puede recordar el orden de las operaciones mediante el
dispositivo mnemotécnico PEMDAS (Por favor, disculpe a mi querida tía Sally), que corresponde
al orden de paréntesis, exponentes, multiplicación, división, suma y resta.

Orden de Operaciones | 3
Tomemos por ejemplo esta expresión:

3 + 22
2× −4
5

Primero evaluamos los paréntesis (3 + 2), que es igual a 5:

52
2× −4
5

A continuación resolvemos el exponente, que podemos ver está elevando al cuadrado ese 5 que acabamos de sumar.
Eso es 25:

25
2× −4
5

A continuación tenemos la multiplicación y la división. El orden de estos dos es intercambiable ya que


la división también es multiplicación (usando fracciones). Sigamos adelante y multipliquemos el

2 con el25,5dando50: 5

50
−4
5

A continuación realizaremos la división, dividiendo 50 entre 5, lo que nos dará 10:

10 -4

Y por último, realizamos cualquier suma y resta. Por supuesto, 10 − 4 nos


dará 6:

10 − 4 = 6

Efectivamente, si tuviéramos que expresar esto en Python imprimiríamos un valor de6.0como se


muestra enEjemplo 1-1.

Ejemplo 1-1. Resolver una expresión en Python

mi_valor=2*(3+2)**2/5-4

imprimir(mi_valor)#imprime 6.0

4 | Capítulo 1: Repaso de cálculo y matemáticas básicas


Esto puede ser elemental, pero sigue siendo crítico. En el código, incluso si obtiene el resultado
correcto sin ellos, es una buena práctica usar paréntesis generosamente en expresiones complejas
para establecer el control del orden de evaluación.

Aquí agrupo la parte fraccionaria de mi expresión entre paréntesis, ayudando a


diferenciarla del resto de la expresión enEjemplo 1-2.

Ejemplo 1-2. Haciendo uso de paréntesis para mayor claridad en Python

mi_valor=2*((3+2)**2/5)-4

imprimir(mi_valor)#imprime 6.0

Si bien ambos ejemplos son técnicamente correctos, el último es más claro para nosotros, los humanos que
nos confundimos fácilmente. Si usted u otra persona realiza cambios en su código, los paréntesis brindan una
referencia fácil del orden de operación a medida que realiza los cambios. Esto proporciona una línea de
defensa contra los cambios de código para evitar errores también.

Variables
Si ha realizado algunos scripts con Python u otro lenguaje de programación, tiene una idea de lo que
es una variable. En matemáticas, unvariablees un marcador de posición con nombre para un número
no especificado o desconocido.

Puede que tengas una variableXrepresentando cualquier número real, y puedes multiplicar esa
variable sin declarar cuál es. EnEjemplo 1-3tomamos una entrada variableXde un usuario y
multiplícalo por 3.

Ejemplo 1-3. Una variable en Python que luego se multiplica

X=En t(aporte("Por favor ingrese un número\norte"))

producto=3*X

imprimir(producto)

Hay algunos nombres de variables estándar para ciertos tipos de variables. Si estos nombres de variables y
conceptos no le son familiares, ¡no se preocupe! Pero algunos lectores pueden reconocer que usamos theta θ
para denotar ángulos y beta β para un parámetro en una regresión lineal. Los símbolos griegos crean
nombres de variables incómodos en Python, por lo que probablemente nombraríamos estas variablesthetay
betaen Python como se muestra enEjemplo 1-4.

Variables | 5
Ejemplo 1-4. Nombres de variables griegas en Python

beta=1.75
theta=30.0

Tenga en cuenta también que los nombres de las variables se pueden subíndice para que se puedan usar
varias instancias de un nombre de variable. Para propósitos prácticos, simplemente trátelos como variables
separadas. Si encuentra variablesX1,X2, yX3, simplemente trátelos como tres variables separadas como se
muestra enEjemplo 1-5.

Ejemplo 1-5. Expresando variables con subíndice en Python

x1=3#o x_1 = 3 x2=10#o


x_2 = 10 x3=44#o x_3 =
44

Funciones
Funcionesson expresiones que definen relaciones entre dos o más variables. Más
específicamente, una función tomavariables de entrada(también llamadovariables de dominioo
variables independientes), los inserta en una expresión y luego da como resultado unvariable
de salida(también llamadovariable dependiente).

Tome esta función lineal simple:

y =2x +1

Para cualquier valor de x dado, resolvemos la expresión con esoXencontrary. CuándoX=1, entonces y=
3. cuandoX=2,y=5. CuandoX=3,y=7 y así sucesivamente, como se muestra enTabla 1-1.

Tabla 1-1. Diferentes valores para y = 2x + 1

X 2x + 1 y
0 2(0) + 1 1
1 2(1) + 1 3
2 2(2) + 1 5
3 2(3) + 1 7

Las funciones son útiles porque modelan una relación predecible entre variables, como cuántos
incendiosypodemos esperar enXla temperatura. Usaremos funciones lineales para realizar
regresiones lineales enCapítulo 5.

6 | Capítulo 1: Repaso de cálculo y matemáticas básicas


Otra convención que puede ver para la variable dependienteyes etiquetarla explícitamente como una
función deX, tal comofx.Así que en lugar de expresar una función comoy =2x +1, también podemos
expresarlo como:

fx =2x +1

Ejemplo 1-6muestra cómo podemos declarar una función matemática e iterarla en


Python.

Ejemplo 1-6. Declarar una función lineal en Python

definitivamenteF(X):

retorno2*X+1

valores_x=[0,1,2,3]

porXenvalores_x:
y=F(X)
imprimir(y)

Cuando se trata de números reales, una característica sutil pero importante de las funciones es que a
menudo tienen un número infinito de valores de x y valores de y resultantes. Pregúntese esto:
¿cuántos valores de x podemos poner a través de la funcióny =2x +1? En lugar de solo 0, 1, 2, 3... ¿por
qué no 0, 0,5, 1, 1,5, 2, 2,5, 3 como se muestra enTabla 1-2?

Tabla 1-2. Diferentes valores para y = 2x + 1

X 2x + 1 y
0.0 2(0) + 1 1
0.5 2(.5) + 1 2
1.0 2(1) + 1 3
1,5 2(1,5) + 1 4
2.0 2(2) + 1 5
2,5 2(2,5) + 1 6
3.0 2(3) + 1 7

¿O por qué no hacer cuartos de paso paraX? ¿O 1/10 de un paso? Podemos hacer estos pasos
infinitamente pequeños, mostrando efectivamentey =2x +1 es unfunción continua, donde para cada
valor posible deXhay un valor paray. Esto nos lleva muy bien a visualizar nuestra función como una
línea como se muestra enFigura 1-1.

Funciones | 7
Figura 1-1. Gráfico para la función y = 2x + 1

Cuando graficamos en un plano bidimensional con dos rectas numéricas (una para cada
variable) se conoce comoplano cartesiano,plano xy, oPlano coordinado. Trazamos un valor x
dado y luego buscamos el valor y correspondiente, y trazamos las intersecciones como una
línea. Note que debido a la naturaleza de los números reales (o decimales, si lo prefiere), hay un
número infinito deXvalores. Es por eso que cuando graficamos la funciónF(X) obtenemos una
línea continua sin interrupciones. Hay un número infinito de puntos en esa línea, o cualquier
parte de esa línea.

Si desea trazar esto usando Python, hay varias bibliotecas de gráficos desde Plotly hasta
matplotlib. A lo largo de este libro usaremos SymPy para realizar muchas tareas, y la
primera que usaremos es trazar una función. SymPy usa matplotlib, así que asegúrese de
tener ese paquete instalado. De lo contrario, imprimirá un gráfico feo basado en texto en
su consola. Después de eso, solo declara elXvariable a SymPy usandosímbolos(),declare su
función, y luego trácela como se muestra enEjemplo 1-7yFigura 1-2.

Ejemplo 1-7. Trazar una función lineal en Python usando SymPy

desimpatíaimportar*

X=simbolos('X') F=
2*X+1
trama(F)

8 | Capítulo 1: Repaso de cálculo y matemáticas básicas


Figura 1-2. Usando SymPy para graficar una función lineal

Ejemplo 1-8yFigura 1-3son otro ejemplo que muestra la funciónfx = x2+ 1.

Ejemplo 1-8. Graficar una función exponencial

desimpatíaimportar*

X=simbolos('X') F=
X**2+1
trama(F)

Nota enFigura 1-3no obtenemos una línea recta sino una curva suave y simétrica conocida
como parábola. Es continuo pero no lineal, ya que no produce valores en línea recta.
Funciones con curvas como esta son matemáticamente más difíciles de trabajar, pero
aprenderemos algunos trucos para que no sea tan malo.

Funciones curvilíneas

Cuando una función es continua pero con curvas, en lugar de lineal y


recta, la llamamosfunción curvilínea.

Funciones | 9
Figura 1-3. Usando SymPy para graficar una función exponencial

Tenga en cuenta que las funciones utilizan múltiples variables de entrada, no solo una. Por ejemplo, podemos
tener una función con variables independientesXyy. Tenga en cuenta queyno es dependiente como en los
ejemplos anteriores.

fx, y =2x +3y

Como tenemos dos variables independientes (Xyy) y una variable dependiente (la salida deF(X,y
)), necesitamos trazar este gráfico en tres dimensiones para producir un plano de valores en
lugar de una línea, como se muestra enEjemplo 1-9yFigura 1-4.

Ejemplo 1-9. Declarar una función con dos variables independientes en Python

desimpatíaimportar*
desympy.plottingimportarplot3d

X,y=simbolos('x y') F=2*


X+3*y plot3d(F)

10 | Capítulo 1: Repaso de cálculo y matemáticas básicas


Figura 1-4. Usando SymPy para graficar una función tridimensional

No importa cuántas variables independientes tenga, su función generalmente generará solo


una variable dependiente. Cuando resuelvas múltiples variables dependientes, probablemente
estarás usando funciones separadas para cada una.

sumatorias
Prometí no usar ecuaciones llenas de símbolos griegos en este libro. Sin
embargo, hay uno que es tan común y útil que sería negligente no cubrirlo. A
suma se expresa como sigma Σ y suma elementos.
Por ejemplo, si quiero iterar los números del 1 al 5, multiplicar cada uno por 2 y
sumarlos, así es como lo expresaría usando una suma.Ejemplo 1-10muestra cómo
ejecutar esto en Python.

5
∑2yo = 2 1 + 2 2 + 2 3 + 2 4 + 2 5 = 30
yo =1

Ejemplo 1-10. Realizando una suma en Python

suma=suma(2*iporienalcance(1,6)) imprimir(
suma)

Tenga en cuenta queies una variable de marcador de posición que representa cada valor de índice consecutivo que
estamos iterando en el ciclo, que multiplicamos por 2 y luego sumamos todos juntos. Cuando usted

sumatorias | 11
están iterando datos, es posible que vea variables comoXiindicando un elemento en una colección en el índice
i.

La función rango()

Recuerda que elalcance()La función en Python es exclusiva al final, lo


que significa que si invocasrango (1,4)iterará los números 1, 2 y 3.
Excluye el 4 como límite superior.

También es común vernorterepresentan la cantidad de elementos en una colección, como la


cantidad de registros en un conjunto de datos. Aquí hay un ejemplo en el que iteramos una
colección de números de tamañonorte, multiplica cada uno por 10, y súmalos:

∑10Xi
norte

yo =1

EnEjemplo 1-11usamos Python para ejecutar esta expresión en una colección de cuatro números. Tenga en cuenta
que en Python (y en la mayoría de los lenguajes de programación en general) generalmente hacemos referencia a
elementos que comienzan en el índice 0, mientras que en matemáticas comenzamos en el índice 1. Por lo tanto,
cambiamos en consecuencia en nuestra iteración comenzando en 0 en nuestroalcance().

Ejemplo 1-11. Suma de elementos en Python

X=[1,4,6,2] norte=
Len(X)

suma=suma(10*X[i]porienalcance(0,norte))
imprimir(suma)

Esa es la esencia de la suma. En pocas palabras, una suma Σ dice, "suma un montón de
cosas juntas", y usa un índiceiy un valor máximonortepara expresar cada iteración que
alimenta la suma. Los veremos a lo largo de este libro.

Sumas en SymPy
Siéntase libre de volver a esta barra lateral más tarde cuando aprenda más sobre SymPy. SymPy,
que usamos para graficar funciones, es en realidad una biblioteca matemática simbólica;
hablaremos de lo que esto significa más adelante en este capítulo. Pero tenga en cuenta para
referencia futura que una operación de suma en SymPy se realiza utilizando elSuma()operador. En
el siguiente código, iteramosidel 1 alnorte, multiplica cada unoi, y sumarlos. Pero luego usamos el
sustitutos ()función para especificarnortecomo 5, que luego iterará y sumará todoi elementos del 1
alnorte:

12 | Capítulo 1: Repaso de cálculo y matemáticas básicas


desimpatíaimportar*

i,norte=simbolos('en')

# iterar cada elemento i de 1 a n,


# luego multiplica y suma suma
=Suma(2*i,(i,1,norte))

# especificar n como 5,
# iterando los números del 1 al 5 hasta
5=suma.sustitutos(norte,5) imprimir(
hasta 5.hazlo())#30

Tenga en cuenta que las sumas en SymPy son perezosas, lo que significa que no se calculan
automáticamente ni se simplifican. Así que usa elhazlo()función para ejecutar la expresión.

Exponentes
Exponentesmultiplicar un número por sí mismo un número determinado de veces. Cuando elevas 2 a
la tercera potencia (expresado como 23usando 3 como superíndice), que es multiplicar tres 2 juntos:

23= 2 * 2 * 2 = 8

Élbasees la variable o valor que estamos exponenciando, y elexponentees el


número de veces que multiplicamos el valor base. Para la expresión 23, 2 es la base y 3 es
el exponente.

Los exponentes tienen algunas propiedades interesantes. Digamos que multiplicamosX2yX3juntos.


Observe lo que sucede a continuación cuando amplío los exponentes con una simple multiplicación y
luego los consolido en un solo exponente:

X2X3=x * x * x * x * x = x2 + 3=X5

Cuando multiplicamos exponentes con la misma base, simplemente sumamos los exponentes, lo que
se conoce como laregla del producto. Permítanme enfatizar que la base de todos los exponentes
multiplicados debe ser la misma para que se aplique la regla del producto.

Exploremos la división a continuación. ¿Qué pasa cuando nos dividimos?X2porX5?

X2
X5

Exponentes | 13
x*x
x*x*x*x*x

1
x*x*x

1
=X−3
X3

Como puedes ver, cuando dividimosX2porX5podemos cancelar dosX's en el numerador y el


denominador, dejándonos con1. Cuando existe un factor tanto en el numerador como en el
X3
denominador, podemos cancelar ese factor.

Qué pasa con laX−3, ¿te preguntas? Este es un buen punto para introducir exponentes
negativos, que es otra forma de expresar una operación exponencial en el denominador.
de una fracción. Demostrar,1es lo mismo queX−3:
X3

1
=X−3
X3

Al vincular la regla del producto, podemos ver que también se aplica a los exponentes negativos. Para
obtener intuición detrás de esto, abordemos este problema de una manera diferente. podemos expresar

esta división de dos exponentes haciendo el exponente "5" deX5negativo y luego


multiplicándolo conX2. Cuando agrega un número negativo, está realizando efectivamente una resta. Por lo
tanto, la regla del producto de exponentes que suma los exponentes multiplicados aún se mantiene como se
muestra a continuación:

X2
=X21 =X2X−5=X2 + −5=X−3
X5 X5

Por último, pero no menos importante, ¿puedes averiguar por qué cualquier base con un exponente de 0 es 1?

X0= 1

La mejor manera de obtener esta intuición es razonar que cualquier número dividido por sí mismo es 1.

Si usted tieneX3 es algebraicamente obvio que se reduce a 1. Pero esa expresión también
X3
evalúa aX0:

1 =X3 =X3X−3=X3 + −3=X0


X3

14 | Capítulo 1: Repaso de cálculo y matemáticas básicas


Por la propiedad transitiva, que establece que sia=byb=C, despuésa=C, lo
sabemosX0= 1.

Simplificar expresiones con SymPy


Si no se siente cómodo con la simplificación de expresiones algebraicas, puede usar la biblioteca SymPy
para que haga el trabajo por usted. He aquí cómo simplificar nuestro ejemplo anterior:

desimpatíaimportar*

X=simbolos('X') expr=X
**2/X**5 imprimir(expr
)#x**(-3)

Ahora, ¿qué pasa con los exponentes fraccionarios? Son una forma alternativa de representar raíces,
como la raíz cuadrada. Como un breve repaso, un 4 pregunta "¿Qué número multiplicado por
mismo me dará 4? que por supuesto es 2. Note aquí que 41/2es lo mismo que 4:

41/2= 4 = 2

Las raíces cúbicas son similares a las raíces cuadradas, pero buscan un número multiplicado por sí mismo

tres veces para dar un resultado. Una raíz cúbica de 8 se expresa como38 y pregunta
"¿Qué número multiplicado por sí mismo tres veces me da 8?" Este número sería 2 porque
2 * 2 * 2 = 8. En exponentes, una raíz cúbica se expresa como un exponente fraccionario, y38 se puede
reexpresar como 81/3:

81/3=38 = 2

Para volver a cerrar el círculo, ¿qué sucede cuando multiplicas la raíz cúbica de 8 tres
veces? Esto deshará la raíz cúbica y producirá 8. Alternativamente, si expresamos
la raíz cúbica como exponentes fraccionarios 81/3, queda claro que sumamos los exponentes
para obtener un exponente de 1. Eso también deshace la raíz cúbica:

1 1 1 1 1 1
+ +
38 *38 *38 = 83× 83× 83= 83 3 3= 81=8

Y una última propiedad: un exponente de un exponente multiplicará los exponentes


juntos. Esto se conoce como elregla de poder. entonces 83 2 simplificaría a 86:

83 2
= 83 × 2= 86

Exponentes | 15
Si no está seguro de por qué esto es así, intente expandirlo y verá que la regla de la suma lo
aclara:

83 2
= 8383= 83 + 3= 86

Por último, ¿qué significa cuando tenemos un exponente fraccionario con un numerador diferente
2
que 1, como 83? Bueno, eso es sacar la raíz cúbica de 8 y luego elevarla al cuadrado. Echar un vistazo:

2 12
83= 83= 22= 4

Y sí, los números irracionales pueden servir como exponentes como 8π, que es 687.2913. Esto
puede parecer poco intuitivo, ¡y es comprensible! En aras del tiempo, no profundizaremos en
esto, ya que requiere algunos cálculos. Pero esencialmente, podemos calcular exponentes
irracionales aproximando con un número racional. Esto es efectivamente lo que hacen las
computadoras, ya que de todos modos solo pueden calcular hasta tantos lugares decimales.

Por ejemplo, π tiene un número infinito de decimales. Pero si tomamos los primeros 11 dígitos,
3,1415926535, podemos aproximar π como un número racional 31415926535 / 10000000000.
Efectivamente, esto nos da aproximadamente 687,2913, que debería coincidir
aproximadamente con cualquier calculadora:

31415926535
8π≈ 810000000000≈ 687.2913

logaritmos
Alogaritmoes una función matemática que encuentra una potencia para un número y una base específicos.
Puede que no suene interesante al principio, pero en realidad tiene muchas aplicaciones. Desde la medición
de terremotos hasta la gestión del volumen de su estéreo, el logaritmo se encuentra en todas partes.
También encuentra mucho su camino en el aprendizaje automático y la ciencia de datos. De hecho, los
logaritmos serán una parte clave de las regresiones logísticas enCapítulo 6.

Comience su pensamiento preguntando “2 elevado aque poderme da 8? Una forma de expresar


esto matemáticamente es usar unXpara el exponente:

2X=8

Intuitivamente sabemos la respuesta,x =3, pero necesitamos una forma más elegante de expresar esta
operación matemática común. Esto es lo queIniciar sesiónla función es para.

16 | Capítulo 1: Repaso de cálculo y matemáticas básicas


Iniciar sesión28 =X

Como puede ver en la expresión logarítmica anterior, tenemos una base 2 y estamos encontrando una
potencia que nos dé 8. De manera más general, podemos reexpresar un exponente variable como un
logaritmo:

aX= segundo

Iniciar sesiónasegundo = x

Hablando algebraicamente, esta es una forma de aislar elX, que es importante resolver para X.
Ejemplo 1-12muestra cómo calculamos este logaritmo en Python.

Ejemplo 1-12. Usando la función de registro en Python

deMatemáticasimportarIniciar sesión

#2 elevado a que potencia me da 8? X=


Iniciar sesión(8,2)

imprimir(X)#imprime 3.0

Cuando no proporciona un argumento base a unIniciar sesión()funcione en una plataforma como Python,
normalmente tendrá una base predeterminada. En algunos campos, como las mediciones de terremotos, la
base predeterminada para el registro es 10. Pero en la ciencia de datos, la base predeterminada para el
registro es el número de Euler.mi.Python usa este último, y hablaremos demidentro de poco.

Al igual que los exponentes, los logaritmos tienen varias propiedades cuando se trata de multiplicaciones,
divisiones, exponenciaciones, etc. En aras del tiempo y el enfoque, solo presentaré esto enTabla 1-3. La idea
clave en la que centrarse es que un logaritmo encuentra un exponente para una base dada para dar como
resultado un número determinado.

Si necesita sumergirse en las propiedades logarítmicas,Tabla 1-3muestra comportamientos de


exponentes y logaritmos uno al lado del otro que puede usar como referencia.

Tabla 1-3. Propiedades para exponentes y logaritmos

Operador Propiedad del exponente Propiedad del logaritmo

Multiplicación xm×xn=xm+norte registrar un×b=registrar un+registro b

División xm
=xm−norte registrar un=registrar un−registro b
b
xn
exponenciación xm norte =xmn registrar un=norte×registrar

exponente cero X0 = 1 un registro1 = 0

Inverso X−1 = 1 registro x−1 =Iniciar sesión1 = -registro x


X X

logaritmos | 17
Número de Euler y logaritmos naturales
Hay un número especial que aparece bastante en matemáticas llamado número de Euler.mi. Es
un número especial muy parecido a Pi π y es aproximadamente 2,71828.mise usa mucho
porque matemáticamente simplifica muchos problemas. vamos a cubrirmien el contexto de
exponentes y logaritmos.

Número de Euler

En la escuela secundaria, mi profesor de cálculo demostró el número de Euler en varios problemas


exponenciales. Finalmente le pregunté: “Sr. Ahora, que esmi¿de todos modos? ¿De dónde viene?"
Recuerdo que nunca estuve completamente satisfecho con las explicaciones que involucraban a las
poblaciones de conejos y otros fenómenos naturales. Espero dar una explicación más satisfactoria
aquí.

¿Por qué se usa tanto el número de Euler?

Una propiedad del número de Euler es que su función exponencial es una derivada de sí mismo,
lo cual es conveniente para funciones exponenciales y logarítmicas. Aprenderemos acerca de las
derivadas más adelante en este capítulo. En muchas aplicaciones donde la base realmente no
importa, elegimos la que resulta en la derivada más simple, y ese es el número de Euler. Por eso
también es la base predeterminada en muchas funciones de ciencia de datos.

Así es como me gusta descubrir el número de Euler. Digamos que le prestas $100 a alguien con
un 20% de interés anual. Por lo general, el interés se capitalizará mensualmente, por lo que el
interés de cada mes sería . 20/12 = . 01666. ¿A cuánto ascenderá el saldo del préstamo después
de dos años? Para simplificar, supongamos que el préstamo no requiere pagos (y no se realizan
pagos) hasta el final de esos dos años.

Reuniendo los conceptos de exponentes que aprendimos hasta ahora (o tal vez sacando un
libro de texto de finanzas), podemos encontrar una fórmula para calcular el interés. consiste en
un equilibrioApara una inversión inicialPAG, tasa de interésr, espacio de tiempot(número de
años) y períodosnorte(número de meses de cada año). Aquí está la fórmula:

r Nuevo Testamento

UNA = PAG× 1 +
norte

Entonces, si fuéramos a capitalizar el interés cada mes, el préstamo crecería a $148.69 como se
calcula aquí:

r Nuevo Testamento

UNA = PAG× 1 +
norte

18 | Capítulo 1: Repaso de cálculo y matemáticas básicas


. 2012 × 2
100 × 1 + = 148.6914618
12
Si quiere hacer esto en Python, pruébelo con el código enEjemplo 1-13.

Ejemplo 1-13. Cálculo de interés compuesto en Python

deMatemáticasimportarExp

pag=100
r= .20
t=2.0
norte=12

a=pag*(1+(r/norte))**(norte*t)

imprimir(a)#estampas 148.69146179463576

Pero, ¿y si capitalizáramos el interés diariamente? ¿Qué pasa entonces? Cambionorteal 365:

r Nuevo Testamento

UNA = PAG× 1 +
norte

. 20365 × 2
100 × 1 + = 149.1661279
365

¡Eh! Si capitalizamos nuestro interés diariamente en lugar de mensualmente, ganaríamos 47.4666 centavos
más al final de dos años. Si nos volvimos codiciosos, ¿por qué no componer cada hora como se muestra a
continuación? ¿Eso nos dará aún más? Hay 8.760 horas en un año, así que establezcanortea ese valor:

r Nuevo Testamento

UNA = PAG× 1 +
norte

. 208760 × 2
100 × 1 + = 149.1817886
8760

¡Ah, exprimimos aproximadamente 2 centavos más en intereses! Pero, ¿estamos experimentando un


rendimiento decreciente? ¡Intentemos capitalizar cada minuto! Tenga en cuenta que hay 525,600 minutos en
un año, así que establezcamos ese valor ennorte:

r Nuevo Testamento

UNA = PAG× 1 +
norte

. 20 525600 × 2
100 × 1 + = 149.1824584
525600

Número de Euler y logaritmos naturales | 19


Bien, solo estamos ganando fracciones cada vez más pequeñas de un centavo cuanto más
frecuentemente calculamos. Entonces, si sigo haciendo estos períodos infinitamente más pequeños
hasta el punto de capitalizarlos continuamente, ¿adónde lleva esto?

Déjame presentarte el número de Eulermi,que es aproximadamente 2.71828. Aquí está la fórmula


para capitalizar "continuamente", lo que significa que estamos capitalizando sin parar:

UNA = PAG×mirt

Volviendo a nuestro ejemplo, calculemos el saldo de nuestro préstamo después de dos años si
capitalizamos continuamente:

UNA = PAG×mirt

un =100 ×mi.20 × 2= 149.1824698

Esto no es demasiado sorprendente considerando que la capitalización de cada minuto nos dio un
saldo de 149.1824584. Eso nos acercó mucho a nuestro valor de 149.1824698 al capitalizar
continuamente.

Típicamente usasmicomo base de exponente en Python, Excel y otras plataformas usando el


Exp()función. Encontrarás esomise usa tan comúnmente que es la base predeterminada para las
funciones de exponente y logaritmo.

Ejemplo 1-14calcula el interés continuo en Python usando elExp()función.

Ejemplo 1-14. Cálculo de interés continuo en Python

deMatemáticasimportarExp

pag=100#principal, monto inicial r= .20#


tasa de interés, por año t=2.0#tiempo,
número de años

a=pag*Exp(r*t)

imprimir(a)#huellas 149.18246976412703

Entonces, ¿de dónde derivamos esta constante?¿mi?Compara la fórmula de interés compuesto y


la fórmula de interés continuo. Estructuralmente se ven similares pero tienen algunas
diferencias:

r Nuevo Testamento

UNA = PAG× 1 +
norte

UNA = PAG×mirt

20 | Capítulo 1: Repaso de cálculo y matemáticas básicas


1 +1
norte

Más técnicamente hablando,mies el valor resultante de la expresión comonorte


norte

forever se hace más y más grande, acercándose así al infinito. Intente experimentar
con valores cada vez más grandes paranorte. Al hacerlo cada vez más grande notarás
algo:

1norte
1+
norte

1 100
1+ = 2.70481382942
100
1 1000
1+ = 2.71692393224
1000
1 10000
1+ = 2.71814592682
10000

1 10000000
1+ = 2.71828169413
10000000

como lo hacesnortemás grande, hay un rendimiento decreciente y converge aproximadamente en el


valor 2.71828, que es nuestro valormi.Encontrarás estomiutilizado no solo en el estudio de
poblaciones y su crecimiento. Desempeña un papel clave en muchas áreas de las matemáticas.

Más adelante en el libro, usaremos el número de Euler para construir distribuciones normales
en Capítulo 3y regresiones logísticas enCapítulo 6.

Logaritmos naturales

cuando usamosmicomo nuestra base para un logaritmo, lo llamamoslogaritmo natural. Dependiendo de la


plataforma, podemos usarln()en lugar deIniciar sesión()para especificar un logaritmo natural. Entonces, en
lugar de expresar un logaritmo natural expresado comoIniciar sesiónmi10 para encontrar la potencia
levantada enmipara obtener 10, lo abreviaríamos comoen10:

Iniciar sesiónmi10 =en10

Sin embargo, en Python, un logaritmo natural se especifica mediante elIniciar sesión()función. Como se
discutió anteriormente, la base predeterminada para elIniciar sesión()la función esmi.Simplemente deje el
segundo argumento para la base vacío y se usará de manera predeterminadamicomo la base que se muestra
en Ejemplo 1-15.

Ejemplo 1-15. Cálculo del logaritmo natural de 10 en Python

deMatemáticasimportarIniciar sesión

# e elevado a que potencia nos da 10? X=Iniciar


sesión(10)

Número de Euler y logaritmos naturales | 21


imprimir(X)#imprime 2.302585092994046

Usaremosmien varios lugares a lo largo de este libro. Siéntase libre de experimentar con
exponentes y logaritmos utilizando Excel, Python, Desmos.com o cualquier otra
plataforma de cálculo de su elección. Haz gráficos y siéntete cómodo con el aspecto de
estas funciones.

Límites
Como hemos visto con el número de Euler, surgen algunas ideas interesantes cuando siempre
aumentamos o disminuimos una variable de entrada y la variable de salida se acerca a un valor
pero nunca lo alcanza. Exploremos formalmente esta idea.

Tome esta función, que se traza enFigura 1-5:

1
=
efectos especiales
X

Figura 1-5. Una función que siempre tiende a 0 pero nunca llega a 0

Estamos mirando sólo en positivoXvalores. Note que comoXsiempre aumenta,f(x)se


acerca a 0. Fascinantemente,f(x)en realidad nunca llega a 0. Siempre sigue
acercándose.

22 | Capítulo 1: Repaso de cálculo y matemáticas básicas


Por lo tanto, el destino de esta función es, comoXsiempre se extiende hasta el infinito, seguirá
acercándose a 0 pero nunca llegará a 0. La forma en que expresamos un valor que siempre se
aproxima, pero nunca se alcanza, es a través de un límite:

1
límite =0
X ∞X

La forma en que leemos esto es "cuando x tiende a infinito, la función 1/x tiende a 0 (pero nunca llega
a 0)". Verá mucho este tipo de comportamiento de "acercarse pero nunca tocarse", especialmente
cuando nos sumergimos en derivadas e integrales.

Usando SymPy, podemos calcular a qué valor nos acercamosfx =1comoXtiende a infinito ∞ (
X
Ejemplo 1-16). Tenga en cuenta que ∞ se expresa inteligentemente en SymPy conoh

Ejemplo 1-16. Usando SymPy para calcular límites

desimpatíaimportar*

X=simbolos('X') F=
1/X
resultado=límite(F,X,oh)

imprimir(resultado)#0

Como has visto, descubrimos el número de Eulermide esta manera también. Es el resultado de
extender para siemprenortehasta el infinito para esta función:

1norte
límite 1 + =mi =2.71828169413...
norte∞ norte

Curiosamente, cuando calculamos el número de Euler con límites en SymPy (que se muestra en el
siguiente código), SymPy lo reconoce inmediatamente como el número de Euler. podemos llamar
evaluar()entonces podemos mostrarlo como un número:

desimpatíaimportar*

norte=simbolos('norte') F=(1+(1
/norte))**n resultado=límite(F,
norte,oh)

imprimir(resultado)#mi
imprimir(resultado.evaluar())#2.71828182845905

Límites | 23
El poder de SymPy
SymPyes un poderoso y fantástico sistema de álgebra computarizada (CAS) para Python
que usa cálculo simbólico exacto en lugar de cálculo aproximado usando decimales. Es útil
para aquellas situaciones en las que usaría "lápiz y papel" para resolver problemas de
matemáticas y cálculo, con el beneficio de usar la sintaxis familiar de Python. En lugar de
representar la raíz cuadrada de 2 aproximando 1.4142135623730951, la conservará
exactamente comosqrt2 .

Entonces, ¿por qué no usar SymPy para todo lo relacionado con las matemáticas? Si bien lo usaremos a lo largo
de este libro, es importante seguir sintiéndose cómodo haciendo matemáticas de Python con decimales simples,
ya que scikit-learn y otras bibliotecas de ciencia de datos adoptan este enfoque. Es mucho más rápido para las
computadoras usar decimales en lugar de símbolos. SymPy también tiene problemas cuando las expresiones
matemáticas comienzan a hacerse demasiado grandes. Pero mantenga SymPy en su bolsillo trasero como su
ventaja, y no se lo cuente a sus hijos de secundaria y universitarios. Literalmente pueden usarlo para hacer su
tarea de matemáticas.

Derivados
Volvamos a hablar de funciones y mirémoslas desde una perspectiva de cálculo,
comenzando con las derivadas. Aderivadoindica la pendiente de una función, y es útil para
medir la tasa de cambio en cualquier punto de una función.

¿Por qué nos preocupamos por los derivados? A menudo se utilizan en el aprendizaje automático y
otros algoritmos matemáticos, especialmente con descenso de gradiente. Cuando la pendiente es 0,
eso significa que estamos en el mínimo o máximo de una variable de salida. Este concepto será útil
más adelante cuando hagamos una regresión lineal (Capítulo 5), Regresión logística (Capítulo 6) y
redes neuronales (Capítulo 7).

Comencemos con un ejemplo simple. Echemos un vistazo a la función.fx = x2en Figura 1-6.
¿Qué tan “empinada” es la curva enx = 2?

Observe que podemos medir la "inclinación" en cualquier punto de la curva, y podemos visualizar esto
con una línea tangente. Pensar en unlinea tangentecomo una línea recta que “apenas toca” la curva en
un punto dado. También proporciona la pendiente en un punto dado. Puede estimar crudamente una
línea tangente en un valor de x dado creando una línea que interseque ese valor de x y unmuy cerca
valor de x vecino en la función.

LlevarX=2 y un valor cercanoX=2.1, que cuando se pasa a la funciónfx = x2


rendiráF(2) = 4 yF(2.1) = 4.41 como se muestra enFigura 1-7. La recta resultante que pasa
por estos dos puntos tiene una pendiente de 4,1.

24 | Capítulo 1: Repaso de cálculo y matemáticas básicas


Figura 1-6. Observando la pendiente en una parte dada de la función

Figura 1-7. Una forma tosca de calcular la pendiente.

Derivados | 25
Puedes calcular rápidamente la pendientemetroentre dos puntos usando la fórmula simple de aumento y
desbordamiento:

y2−y1
metro =
X2−X1
4,41 − 4,0
metro =
2,1 - 2,0
metro =4.1

si hice elXpaso entre los dos puntos aún más pequeño, comoX=2 yX=2.00001, lo que resultaría
enF(2) = 4 yF(2.00001) = 4.00004, eso obtendríaDe Verdadcerca de la pendiente real de 4.
Entonces, cuanto menor sea el paso al valor vecino, más nos acercaremos al valor de la
pendiente en un punto dado de la curva. Como tantos conceptos importantes en matemáticas,
encontramos algo significativo cuando nos acercamos a valores infinitamente grandes o
infinitamente pequeños.

Ejemplo 1-17muestra una calculadora derivada implementada en Python.

Ejemplo 1-17. Una calculadora de derivadas en Python

definitivamentederivado_x(F,X,Numero de pie):
metro=(F(X+Numero de pie)-F(X))/((X+Numero de pie)-X) retorno
metro

definitivamentemi_funcion(X):

retornoX**2

pendiente_en_2=derivado_x(mi_funcion,2,.00001)

imprimir(pendiente_en_2)#impresiones 4.000010000000827

Ahora, la buena noticia es que hay una forma más limpia de calcular la pendiente en cualquier parte
de una función. Ya hemos estado usando SymPy para trazar gráficos, pero le mostraré cómo también
puede realizar tareas como derivadas utilizando la magia de la computación simbólica.

Cuando te encuentras con una función exponencial comofx = x2la función derivada hará
que el exponente sea un multiplicador y luego disminuirá el exponente en 1, dejando
nosotros con la derivadadX2= 2X.Éldindica underivada con respecto a x, cual
dx dx
dice que estamos construyendo una derivada apuntando al valor de x para obtener su pendiente. Entonces, si
queremos encontrar la pendiente enX=2, y tenemos la función derivada, simplemente reemplazamos ese valor de x
para obtener la pendiente:

fx = x2

26 | Capítulo 1: Repaso de cálculo y matemáticas básicas


d d
= X2= 2X
dx
efectos especiales
dx
d
F2 = 2 2 = 4
dx

Si tiene la intención de aprender estas reglas para calcular derivadas a mano, hay muchos libros de
cálculo para eso. Pero hay algunas buenas herramientas para calcular derivadas simbólicamente para
ti. La biblioteca de Python SymPy es gratuita y de código abierto, y se adapta muy bien al uso de la
sintaxis de Python.Ejemplo 1-18muestra cómo calcular la derivada de
fx = x2en SymPy.

Ejemplo 1-18. Cálculo de una derivada en SymPy

desimpatíaimportar*

# Declarar 'x' a SymPy X=


simbolos('X')

# Ahora solo usa la sintaxis de Python para declarar la función


F=X**2

# Calcular la derivada de la función dx_f=


diferencia(F) imprimir(dx_f)#imprime 2*x

¡Guau! Entonces, al declarar variables usando elsímbolos()función en SymPy, luego puedo proceder a
usar la sintaxis normal de Python para declarar mi función. Después de eso puedo usar
diferencia()para calcular la función derivada. EnEjemplo 1-19luego podemos llevar nuestra
función derivada de vuelta a Python simple y simplemente declararla como otra función.

Ejemplo 1-19. Una calculadora de derivadas en Python

definitivamenteF(X):

retornoX**2

definitivamentedx_f(X):

retorno2*X

pendiente_en_2=dx_f(2.0)

imprimir(pendiente_en_2)#imprime 4.0

Si desea seguir usando SymPy, puede llamar alsustitutos ()función para cambiar elX
variable con el valor2como se muestra enEjemplo 1-20.

Derivados | 27
Ejemplo 1-20. Uso de la función de sustitución en SymPy

# Calcular la pendiente en x = 2 imprimir(


dx_f.sustitutos(X,2))#huellas 4

Derivadas parciales
Otro concepto que encontraremos en este libro esDerivadas parciales, que usaremos en
los capítulos5,6, y7. Estas son derivadas de funciones que tienen múltiples variables de
entrada.

Piénsalo de esta manera. En lugar de encontrar la pendiente en una función unidimensional, tenemos
pendientes con respecto a múltiples variables en varias direcciones. Para cada derivada variable dada,
asumimos que las otras variables se mantienen constantes. Echa un vistazo a la
gráfico 3D defx, y =2X3+ 3y3enFigura 1-8, y verá que tenemos pendientes en dos
direcciones para dos variables.

Tomemos la funciónfx, y =2X3+ 3y3. ÉlXyycada variable obtiene sus propias derivadas
dyd.Estos representan los valores de la pendiente con respecto a cada variable.
dx dy
sobre una superficie multidimensional. Técnicamente las llamamos "pendientes"
gradientescuando se trata de múltiples dimensiones. Estas son las derivadas deXyy,
seguido del código SymPy para calcular esas derivadas:

fx, y =2X3+ 3y3


d
2X3+ 3y3= 6X2
dx
d
2X3+ 3y3= 9y2
dy

Ejemplo 1-21yFigura 1-8Muestre cómo calculamos las derivadas parciales paraXy y,


respectivamente, con SymPy.

Ejemplo 1-21. Cálculo de derivadas parciales con SymPy

desimpatíaimportar*
desympy.plottingimportarplot3d

# Declarar x e y a SymPy X,y=


simbolos('x y')

# Ahora solo usa la sintaxis de Python para declarar la función


F=2*X**3+3*y**3

# Calcular las derivadas parciales de x e y dx_f=


diferencia(F,X)

28 | Capítulo 1: Repaso de cálculo y matemáticas básicas


dy_f=diferencia(F,y)

imprimir(dx_f)#imprime 6*x**2
imprimir(dy_f)#imprime 9*y**2

# trazar la función
plot3d(F)

Figura 1-8. Trazar una función exponencial tridimensional

Así que para (X,y) valores (1,2), la pendiente con respecto aXes 6 1 = 6 y la pendiente con
respecto ayes 9 22= 36.

Uso de límites para calcular derivadas


¿Quiere ver dónde entran en juego los límites al calcular derivadas? Si te sientes bien con lo que
hemos aprendido hasta ahora, ¡continúa! Si todavía está digiriendo, tal vez considere volver a esta
barra lateral más tarde.

SymPy nos permite hacer algunas exploraciones interesantes sobre matemáticas. Toma nuestra función

fx = x2; aproximamos una pendiente parax =2 dibujando una línea a través de un punto vecino
cercanox =2,0001 añadiendo un paso 0,0001. ¿Por qué no usar un límite para disminuir para
siempre ese paso?sy ver a qué pendiente se acerca?

x + s2−X2
límite
s 0 x+s−x

Derivados | 29
En nuestro ejemplo, estamos interesados en la pendiente dondex =2 así que sustituyamos eso:

2 +s2− 22
límite =4
s 0 2 +s -2

Siempre acercándose a un tamaño de pasosa 0 pero sin llegar nunca a él (recuerde que el punto vecino
no puede tocar el punto enx =2, de lo contrario no tenemos línea!), podemos usar un límite para ver que
convergemos en una pendiente de 4 como se muestra enEjemplo 1-22.

Ejemplo 1-22. Uso de límites para calcular una pendiente

desimpatíaimportar*

# "x" y tamaño de paso "s"


X,s=simbolos('xs')

# declarar función
F=X**2

# pendiente entre dos puntos con espacio "s"


# sustituir en la fórmula de aumento sobre la ejecución
pendiente_f=(F.sustitutos(X,X+s)-F)/((X+s)-X)

# sustituir 2 por x pendiente_2=


pendiente_f.sustitutos(X,2)

# calcula la pendiente en x = 2
# acercarse infinitamente al tamaño de paso _s_ a 0
resultado=límite(pendiente_2,s,0)

imprimir(resultado)#4

Ahora, ¿qué pasa si no asignamos un valor específico aXy dejarlo solo? ¿Qué sucede si disminuimos
nuestro tamaño de paso?sinfinitamente hacia 0? echemos un vistazoEjemplo 1-23.

Ejemplo 1-23. Uso de límites para calcular una derivada

desimpatíaimportar*

# "x" y tamaño de paso "s"


X,s=simbolos('xs')

# declarar función
F=X**2

# pendiente entre dos puntos con espacio "s"


# sustituir en la fórmula de aumento sobre la ejecución
pendiente_f=(F.sustitutos(X,X+s)-F)/((X+s)-X)

# calcular la función derivada

30 | Capítulo 1: Repaso de cálculo y matemáticas básicas


# acercarse infinitamente al tamaño del paso +s+ a
0 resultado=límite(pendiente_f,s,0)

imprimir(resultado)#2x

Eso nos dio nuestra función derivada.2x.SymPy fue lo suficientemente inteligente como para descubrir
nunca permita que nuestro tamaño de paso llegue a 0, sino que siempre se acerque a 0. Esto convergefx = x2
para llegar a su contraparte derivada 2X.

La regla de la cadena

EnCapítulo 7cuando construimos una red neuronal, vamos a necesitar un truco matemático especial
llamado regla de la cadena. Cuando compongamos las capas de la red neuronal, tendremos que
desenredar las derivadas de cada capa. Pero por ahora aprendamos la regla de la cadena con un
ejemplo algebraico simple. Digamos que le dan dos funciones:

y = x2+ 1
z = y3− 2

Observe que estas dos funciones están vinculadas, porque elyes la variable de salida en la primera
función pero es la variable de entrada en la segunda. Esto significa que podemos sustituir la primera
funciónyen la segunda funciónzMe gusta esto:

3
z = x2+ 1 − 2

Entonces, ¿cuál es la derivada dezcon respecto aX? Ya tenemos la expresión de sustitución


zen términos deX. Usemos SymPy para calcular eso enEjemplo 1-24.

Ejemplo 1-24. Encontrar la derivada de z con respecto a x

desimpatíaimportar*

z=(X**2+1)**3-2 dz_dx=
diferencia(z,X) imprimir
(dz_dx)

# 6*x*(x**2 + 1)**2

2
Entonces nuestra derivada parazcon respecto aXes 6XX2+ 1 :

dz 3
X2+ 1 − 2
dx

Derivados | 31
2
= 6XX2+ 1

Pero mira esto. Comencemos de nuevo y tomemos un enfoque diferente. Si tomamos las
derivadas de losyyzfunciones por separado, y luego las multiplica juntas, esto también produce
la derivada dezcon respecto aX! Vamos a intentarlo:

dy
X2+ 1 = 2X
dx

dz
y3− 2 = 3y2
dy

dz
= 2X3y2= 6xy2
dx

2
Muy bien, 6xy2puede que no parezca 6XX2+ 1 , pero eso es solo porque no tenemos
sustituyó elyfunción todavía. Haz eso para que tododzla derivada se expresa en
dx
términos deXsin quey.

dz 2
= 6xy2= 6XX2+ 1
dx

2
Ahora vemos que tenemos la misma función derivada 6XX2+ 1!

Este es elcadena de reglas, que dice que para una función daday(con variable de entradaX)
compuesta en otra funciónz(con variable de entraday), podemos encontrar la derivada dez
con respecto aXmultiplicando las dos derivadas respectivas entre sí:

dz dz dy
= ×
dx dy dx

Ejemplo 1-25muestra el código SymPy que hace esta comparación, mostrando que la
derivada de la regla de la cadena es igual a la derivada de la función sustituida.

32 | Capítulo 1: Repaso de cálculo y matemáticas básicas


Ejemplo 1-25. Calcular la derivada dz/dx con y sin la regla de la cadena, pero aún obteniendo la
misma respuesta

desimpatíaimportar*

X,y=simbolos('x y')

# derivada de la primera función


# necesita subrayar y para evitar el choque de
variables _y=X**2+1
dy_dx=diferencia(_y)

# derivada para la segunda función


z=y**3-2
dz_dy=diferencia(z)

# Calcular derivada con y sin


# regla de la cadena, sustituye la función y
cadena_dz_dx=(dy_dx*dz_dy).sustitutos(y,_y)
dz_dx_no_chain=diferencia(z.sustitutos(y,_y))

# Demostrar la regla de la cadena mostrando que ambos son


iguales imprimir(cadena_dz_dx)#6*x*(x**2 + 1)**2 imprimir
(dz_dx_no_chain)#6*x*(x**2 + 1)**2

La regla de la cadena es una parte clave del entrenamiento de una red neuronal con los pesos y
sesgos adecuados. En lugar de desenredar la derivada de cada nodo en forma de cebolla anidada,
podemos multiplicar las derivadas en cada nodo, lo que es matemáticamente mucho más fácil.

Integrales
El opuesto de una derivada es unaintegral, que encuentra el área bajo la curva para un rango
dado. en capítulos2y3, estaremos encontrando las áreas bajo distribuciones de probabilidad.
Aunque no usaremos integrales directamente, y en su lugar usaremos funciones de densidad
acumulativa que ya están integradas, es bueno saber cómo las integrales encuentran áreas bajo
curvas.Apéndice Acontiene ejemplos del uso de este enfoque en distribuciones de probabilidad.

Quiero adoptar un enfoque intuitivo para aprender integrales llamado Reimann Sums, uno que
se adapte de manera flexible a cualquier función continua. Primero, señalemos que encontrar el
área de un rango debajo de una línea recta es fácil. Digamos que tengo una funciónfx =2X y
quiero encontrar el área debajo de la línea entre 0 y 1, como se sombrea enFigura 1-9.

Integrales | 33
Figura 1-9. Cálculo de un área bajo una función lineal

Observe que estoy encontrando el área delimitada entre la línea y el eje x, y en elXrango
de 0.0 a 1.0. Si recuerda fórmulas geométricas básicas, el áreaApor un triangulo
esun =12bℎdondebes la longitud de la base yhes la altura podemos visualmente
detectar esosegundo =1 yℎ =2. Entonces, conectando la fórmula, obtenemos para nuestra área 1.0 como se
calcula aquí:

1
un = bℎ
2
1
un = * 1 * 2
2
un =1

Eso no estuvo mal, ¿verdad? Pero veamos una función en la que es difícil encontrar el área
debajo:fx = x2+ 1. ¿Cuál es el área entre 0 y 1 sombreada enFigura 1-10?

34 | Capítulo 1: Repaso de cálculo y matemáticas básicas


Figura 1-10. Calcular el área bajo funciones no lineales es menos sencillo

Nuevamente estamos interesados en el área debajo de la curva y arriba del eje x, solo dentro delX
rango entre 0 y 1. La curvatura aquí no nos da una fórmula geométrica clara para encontrar el área,
pero aquí hay un pequeño truco inteligente que puedes hacer.

¿Qué pasa si empacamos cinco rectángulos de igual longitud debajo de la curva como se
muestra en Figura 1-11, donde la altura de cada uno se extiende desde el eje x hasta donde el
punto medio toca la curva?

el area de un rectangulo esun =largo × ancho, por lo que podríamos sumar fácilmente las áreas
de los rectángulos. ¿Nos daría eso una buena aproximación del área bajo la curva? ¿Qué pasa si
empacamos 100 rectángulos? 1,000? 100,000? A medida que aumentamos el número de
rectángulos mientras disminuimos su ancho, ¿no nos acercaríamos al área bajo la curva? Sí, lo
haríamos, y es otro caso más en el que aumentamos/disminuimos algo hacia el infinito para
acercarnos a un valor real.

Integrales | 35
Figura 1-11. Rectángulos de embalaje debajo de una curva para aproximar el área

Probémoslo en Python. Primero necesitamos una función que aproxime una integral que
llamaremosintegral_aproximada().Los argumentosaybespecificará el mínimo y el máximo
de laXrango, respectivamente.norteserá el número de rectángulos a empacar, yF
será la función que estamos integrando. Implementamos la función enEjemplo 1-26,
y luego usarlo para integrar nuestra funciónfx = x2+ 1 con cinco rectángulos, entre
0,0 y 1,0.

Ejemplo 1-26. Una aproximación integral en Python

definitivamenteintegral_aproximada(a,b,norte,F):
delta_x=(b-a)/n
suma_total=0

porienalcance(1,norte+1):
punto medio=0.5*(2*a+delta_x*(2*i-1)) Suma total+=F(
punto medio)

retornoSuma total*delta_x

definitivamentemi_funcion(X):

retornoX**2+1

área=integral_aproximada(a=0,b=1,norte=5,F=mi_funcion)

36 | Capítulo 1: Repaso de cálculo y matemáticas básicas


imprimir(área)#imprime 1.33

Entonces obtenemos un área de 1.33. ¿Qué pasa si usamos 1,000 rectángulos? Probemos en
Ejemplo 1-27.

Ejemplo 1-27. Otra aproximación integral en Python

área=integral_aproximada(a=0,b=1,norte=1000,F=mi_funcion)

imprimir(área)#imprime 1.333333250000001

Bien, estamos obteniendo algo más de precisión aquí y obteniendo algunos lugares decimales más. ¿Qué
pasa con un millón de rectángulos como se muestra enEjemplo 1-28?

Ejemplo 1-28. Otra aproximación integral en Python

área=integral_aproximada(a=0,b=1,norte=1_000_000,F=mi_funcion)

imprimir(área)#imprime 1.3333333333332733

OK, creo que estamos obteniendo un rendimiento decreciente aquí y convergiendo en el valor 1.333
donde la parte ".333" se repite para siempre. Si fuera un número racional, es probable que 4/3 = 1,333.
A medida que aumentamos el número de rectángulos, la aproximación comienza a alcanzar su límite
con decimales cada vez más pequeños.

Ahora que tenemos algo de intuición sobre lo que estamos tratando de lograr y por qué,
hagamos un enfoque más exacto con SymPy, que admite números racionales, en Ejemplo
1-29.

Ejemplo 1-29. Uso de SymPy para realizar la integración

desimpatíaimportar*

# Declarar 'x' a SymPy X=


simbolos('X')

# Ahora solo usa la sintaxis de Python para declarar la función


F=X**2+1

# Calcular la integral de la función con respecto a x


# para el área entre x = 0 y 1 área=
integrar(F, (X,0,1))

imprimir(área)#impresiones 4/3

Integrales | 37
¡Fresco! Entonces, el área en realidad es 4/3, que es en lo que convergió nuestro método anterior.
Desafortunadamente, Python simple (y muchos lenguajes de programación) solo admiten decimales,
pero los sistemas de álgebra computacional como SymPy nos brindan números racionales exactos.
Usaremos integrales para encontrar áreas bajo curvas en los capítulos2y3, aunque haremos que scikit-
learn haga el trabajo por nosotros.

Cálculo de integrales con límites


Para los súper curiosos, así es como calculamos integrales definidas usando límites en SymPy.
¡Por favor! Omita o regrese a esta barra lateral más tarde si tiene suficiente para digerir. Pero si te
sientes bien y quieres profundizar en cómo se derivan las integrales usando límites, ¡continúa!

La idea principal sigue mucho de lo que hicimos antes: empaqueta rectángulos bajo una curva y
hazlos infinitamente más pequeños hasta que nos acerquemos al área exacta. Pero, por
supuesto, los rectángulos no pueden tener un ancho de 0... solo tienen que seguir acercándose a
0 sin llegar nunca a 0. Es otro caso de usar límites.

Khan Academy tiene un gran artículoexplicando cómo usar los límites para Reimann Sums, pero así es
como lo hacemos en SymPy como se muestra enEjemplo 1-30.

Ejemplo 1-30. Usar límites para calcular integrales

desimpatíaimportar*

# Declarar variables a SymPy X,i


,norte=simbolos('xi n')

# Declarar función y rango F=X


**2+1
más bajo,Superior=0,1

# Calcula el ancho y la altura de cada rectángulo en el índice "i"


delta_x=((Superior-más bajo)/norte) x_i=(más bajo+delta_x*i)
fx_i=F.sustitutos(X,x_i)

# Iterar todos los "n" rectángulos y sumar sus áreas


n_rectángulos=Suma(delta_x*fx_i, (i,1,norte)).hazlo()

# Calcula el área acercándote al número


# de rectángulos "n" hasta el infinito
área=límite(n_rectángulos,norte,oh)

imprimir(área)#impresiones 4/3

38 | Capítulo 1: Repaso de cálculo y matemáticas básicas


Aquí determinamos la longitud de cada rectángulo.delta_xy el inicio de cada rectángulox_idondei
es el índice de cada rectángulo.fx_ies la altura de cada rectángulo en el índicei. declaramosnorte
número de rectángulos y suma sus áreasdelta_x * fx_i,pero todavía no tenemos un valor de área
porque no hemos comprometido un número paranorte. En cambio, nos acercamosnortehacia el
infinito para ver en qué área convergemos, ¡y deberías obtener 4/3!

Conclusión
En este capítulo cubrimos algunos fundamentos que usaremos para el resto de este libro. Desde la
teoría de números hasta los logaritmos y las integrales de cálculo, destacamos algunos conceptos
matemáticos importantes relevantes para la ciencia de datos, el aprendizaje automático y el análisis.
Es posible que tenga preguntas acerca de por qué estos conceptos son útiles. ¡Eso vendrá después!

Antes de pasar a discutir la probabilidad, tómate un poco de tiempo para repasar estos conceptos una
vez más y luego haz los siguientes ejercicios. Siempre puede volver a visitar este capítulo a medida
que avanza en este libro y actualizar según sea necesario cuando comience a aplicar estas ideas
matemáticas.

Ejercicios

1. ¿El valor 62.6738 es racional o irracional? ¿Por qué o por qué no?

2. Evalúa la expresión: 10710−5


1
3. Evalúa la expresión: 812
3
4. Evalúa la expresión: 252
5. Suponiendo que no se hagan pagos, ¿cuánto valdría un préstamo de $1,000 al 5% de interés
compuesto mensualmente después de 3 años?

6. Suponiendo que no se hagan pagos, ¿cuánto valdría un préstamo de $1,000 al 5% de interés


compuesto continuamente después de 3 años?

7. Para la funciónfx =3X2+ 1 ¿cuál es la pendiente enX=3?

8. Para la funciónfx =3X2+ 1 ¿cuál es el área bajo la curva deXentre 0 y 2?

Las respuestas están enapéndice B.

Conclusión | 39

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy