美文网首页《数据科学的数学必修课》人工智能
《数据科学的数学必修课》第1讲 数学基础

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

作者: SeanCheney | 来源:发表于2022-12-31 09:32 被阅读0次
    数据科学数学必修课(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
    

    相关文章

      网友评论

        本文标题:《数据科学的数学必修课》第1讲 数学基础

        本文链接:https://www.haomeiwen.com/subject/vehgortx.html