《数据科学的数学必修课》人工智能

《数据科学的数学必修课》第1讲 数学基础

2022-12-31  本文已影响0人  SeanCheney
数据科学数学必修课(2022.07.05出版)

本书用七章分别讲解了数学基础、概率论、描述性统计、线性代数、线性回归、逻辑回归、神经网络。

目录

第1讲 数学基础
第2讲 概率论

笛卡尔:To be a data sciencist, it's crucial to learn some math!

这章用到的是SymPy这个库。SymPy这个库真是挺实用的,画图一目了然。SymPy还有个特点,它计算出来的是准确值。真应该把它推广到高中数学教学中!

数论

自然数这些名词用英语该怎么讲?

Natural numbers 自然数
Whole numbers 非负整数
Integers 整数
Rational numbers 有理数
Irrational numbers 无理数
Real numbers 实数
Complex and imaginary numbers 复数和虚数

变量和函数

需要一定的Python基础,可以参考《利用Python进行数据分析》的第2章

使用SymPy这个库(可以参考SymPy文档),可以非常方便的画函数的曲线图。先来画一个一元二次方程。

from sympy import *

x = symbols('x') #声明变量x
f = x**2 + 1
plot(f)

对于公式f(x,y)={2x} + {3y}SymPy还可以画三维图

from sympy import *
from sympy.plotting import plot3d

x, y = symbols('x y')
f = 2*x + 3*y
plot3d(f)

SymPy甚至可以计算极限:

from sympy import *

x = symbols('x')
f = 1 / x
result = limit(f, x, oo)

print(result) # 0

微分

使用SymPy计算微分方程:

from sympy import *

x = symbols('x')
f = x**2

# 计算函数f的微分
dx_f = diff(f)
print(dx_f) # 结果是2*x

# 计算x = 2时,微分是多少
print(dx_f.subs(x,2)) # 结果是4

偏微分:

from sympy import *
from sympy.plotting import plot3d


x,y = symbols('x y')

f = 2*x**3 + 3*y**3

# 分别计算对x和y的偏微分
dx_f = diff(f, x)
dy_f = diff(f, y)

print(dx_f) # prints 6*x**2
print(dy_f) # prints 9*y**2

# plot the function
plot3d(f)

链式法则

\frac {dz}{dx} = \frac {dz}{dy} \times \frac {dy}{dx}

from sympy import *

x, y = symbols('x y')

# y对x的微分
_y = x**2 + 1
dy_dx = diff(_y)

# z对y的微分
z = y**3 - 2
dz_dy = diff(z)

# 先用链式法则,再不用链式法则,进行求导计算
dz_dx_chain = (dy_dx * dz_dy).subs(y, _y)
dz_dx_no_chain = diff(z.subs(y, _y))

# 两者的结果相同
print(dz_dx_chain) # 结果是6*x*(x**2 + 1)**2
print(dz_dx_no_chain) # 结果是6*x*(x**2 + 1)**2

积分

使用SymPy计算积分,计算对于函数f(x)= x^ {2} +1从0到1的积分面积:

from sympy import *

x = symbols('x')

f = x**2 + 1

# 计算对于函数f和变量x,在0到1的范围内的积分
area = integrate(f, (x, 0, 1))

print(area) # 结果是4/3
上一篇下一篇

猜你喜欢

热点阅读