机器学习必备的数学知识

一、函数

1、函数的基本定义

世界是变化的,万物是有联系的。函数就是用来表征各个具有内在联系的量的变化规律。例如年龄和身高的变化规律,饭量与身高、体重、年龄的变化规律。

(1)函数定义

此处我们给出函数的定义:

函数定义.png

其中,集合A中的元素称为自变量,集合B中的元素称为因变量
函数则表示了非空集合之间的映射,如下图所示:
映射.png

(2)一一映射

集合A中的每一个元素都能在B中找到唯一的元素与之对应,且集合B中的元素也能在A中找到唯一的原像,那么集合A和B就形成了一一映射的关系。
例如:

平方关系.png

就不满足一一映射的关系,因为1个y能够找到2个x(正解和负解)。

线性.png

就满足一一映射的关系,1个x对应1个y,反过来1个y也对应1个x。
满足一一映射的函数存在反函数

(3)函数的表示方法

有三种方法,分别是“列表法”、“图形法”、“解析式”法。

1)列表法

函数列表法.png

优点是非常简单方便实用,尤其是对于特别复杂但用的频率很高的情况,比如统计学中的各种分布,t分布,F分布。如果函数解析式非常复杂,难以计算,通常采用查表获得函数值。

2)图形法

图形法.png

3)解析式法

这是最常用的一种方法,表达能力最强,最精确。解析式包含了函数的一切信息,例如:

解析式举例.png

(4)函数定义域和值域

1)定义域

定义域就是自变量的取值范围。

定义域举例.png

2)值域

值域就是函数值的与之范围。

值域举例.png

注意:定义域确定后,根据映射关系,值域随之确定。

(5)函数单调性

1)单调递增

自变量在一定范围时,函数值岁自变量增大而增大,称函数在此区间内单调递增。

2)单调递减

自变量在一定范围时,函数值岁自变量增大而减小,称函数在此区间内单调递减。
即:

函数的单调性.png

单调性举例.png

注意:对于复杂函数,在学习导数之前,判断单调性是很困难的。

(6)函数奇偶性

1)奇函数

定义域内的任何变量,都满足f(-x)=-f(x)。
奇函数的图像关于原点对称,定义域必须对称。

奇函数举例.png

2)偶函数

定义域内的任何变量,都满足f(-x)=f(x)。
奇函数的图像关于y轴对称,定义域必须对称。

偶函数举例.png

注意:大量函数既不是奇函数也不是偶函数。

(7)、函数周期性

周期函数:如果T≠0,对于任意x都有f(x)=f(x+T),则称T为该函数的函数周期。
最常见的周期函数式三角函数,如图:


周期函数举例.png

2、常用函数

(1)一次函数

·定义域:R(全体实数),值域:R
·y=ax+b,a>0时单调递增,a<0时单调递减
·a表示直线的斜率,是直线与x周夹角的正切值

例:
一次函数举例.png

(2)二次函数

二次函数.png

例:
二次函数举例.png

(3)正弦函数

正弦函数.png

正弦函数2.png

(4)余弦函数

余弦函数.png

余弦函数2.png

二、微积分

1、极限与导数

(1)极限

1)极限的定义

极限的定义:某一个函数中的某一个变量,此变量在变大(或变小)的永远变化的过程中,逐渐向某一个确定的数值A不断逼近的过程中,此变量的变化,被人们规定为“永远靠近而不停止”、其有一个“不断地极为靠近A点的趋势”称作极限。

数学表达式:当变量x无限趋近于某一个数值时,对应的函数结果:

2)极限的计算


image.png


image.png

(2)导数

1)导数的定义

导数的定义:当函数y = f(x)的自变量x在一点x0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋近于0时的极限如果存在,a即为在x0处的导数,记作或。

image.png

对于线性函数来说,函数在x0的导数等于x0对应的斜率。
对于非线性函数来说,函数在x0的导数等于x0对应的切线的斜率。

2)导数的计算

常用导数公式:


图片.png

image.png

3)导数的意义

如果y = f(x)在x=x0的导数f'(x0) = 0,则x0为该函数的一个极值点。

2、模型求解与梯度下降法

(1)什么是梯度下降法

梯度下降法是寻找极小值的一种方法。通过向函数上当前点对应梯度(导数)的反方向的规定步长距离点进行迭代搜索,直到在极小点收敛。
求的极小值

其中 和 类似,也是求导,只不过是求偏导数,∂是偏导数的意思。α就是变量p方向上的规定步长,负号代表反方向。这一次求出来的pi+1会作为下一次的pi迭代到上述公式中继续求pi+1

(2)梯度下降法求极小值

求极小值过程.png
梯度下降法示例.gif

(3)实际问题求解

微信截图_20221026132958.png

本质上就是求解线性模型中最合适的a和b。
不同的a和b.png

如何找到最合适的a和b呢?
假设x为自变量,y为真实客观的对应结果(就是我们想求的),y'为我们的模型输出的结果,我们要让y’尽可能接近y,即y'无限趋近于y,用数学的表达就是y'-y的极小值:

其中,minimise是指求最小值,m是样本数,即已知的x和y的关系的数量。

损失函数:
为了方便计算,我们将上述数学表达式求导后的常量2和m约分掉,所以将其变换为损失函数J,即:

于是,算式演变为:

算式演变.png

因为样本的xi和yi都是已知的,所以就变成了求未知数a和b。
计算机计算方式.png

求解直观图.gif

3、积分

(1)积分的定义

1)不定积分

函数f的不定积分,是一个可导函数F且其导数等于原来的函数f,即F' = f。
例如函数 ,它的不定积分有:

函数的不定积分可以理解为其对应的反导数,有无穷多个。

2)定积分

①定积分的定义

对于一个给定了的正实数值函数f(x),在一个实数区间上的定积分可以理解为在坐标平面上由曲线、直线及坐标轴围成的曲边梯形的面积值。


定积分.png

定积分解析式.png

②定积分计算实例

image.png

计算函数y = 2x在区间[-5, 0] 及(0, 5]的定积分。
∵f(x)' = 2x
∴f(x) = x2 + C
y = 2x在区间[-5, 0] 及(0, 5]的定积分就等于:
f(0) - f(-5)及f(5) - f(0)
f(0) - f(-5) = 02 - (-5)2 = -25
f(5) - f(0) = 52 - 02 = 25

③定积分的应用

image.png

image.png

image.png

④常用积分公式

image.png

4、python函数实现微分和积分

参考链接:
Python sympy 求解微积分: https://blog.csdn.net/dfly_zx/article/details/106605143

Python sympy 包介绍:
https://www.sympy.org/en/index.html

(1)实战任务

image.png

1)任务1

①求f1
image.png
②求f2
image.png
③求f3
image.png

2)任务2

①求F1
image.png
②求F2
image.png
②求F3
image.png

3)任务3:求y1,y2,y3在x=0时的极限

image.png

三、矩阵

1、什么是矩阵

(1)矩阵的定义

矩阵式由m乘以n个数aij(i=1,2,......,m;j=1,2,......,n)排成的m行n列的数表。
例如:

我们就表示为

在日常生活中我们也会遇到矩阵,比如excel表,或者人员方阵:


图片.png

(2)同型矩阵

行数、列数分别相同的一组矩阵。
例如:


这6个矩阵中,B和C,E和F分别是同行矩阵。

(3)负矩阵

矩阵元素互为相反数关系的矩阵。
若矩阵

矩阵

则A和B互为负矩阵。
记为。
注:负矩阵一定是同型矩阵。

2、矩阵的运算

(1)矩阵的加减法

注意:只有同型矩阵之间才能做加减法。
矩阵的元素分别相加。
若矩阵

矩阵

A+B=\begin{bmatrix} a_{11} +b_{11} & a_{12}+b_{12} & ...... & a_{1n}+b_{1n} \\ a_{21}+b_{21} & a_{22}+b_{22} & ...... & a_{2n}+b_{2n} \\ ... & ... & ... & ... \\ a_{m1}+b_{m1} & a_{m2}+b_{m2} & ...... & a_{mn}+b_{mn} \end{bmatrix}

例如:

则 。

矩阵的加法满足交换律和结合律,即:


矩阵的减法和加法相同,即:

(2)矩阵的乘法

1)数乘

即数与矩阵的元素分别相乘。
例如:

矩阵的数乘满足交换律、结合律和分配律,即:
,
,

2)矩阵与矩阵相乘

行列元素依次相乘并求和,且第一个矩阵的列数要等于第二个矩阵的行数,即:
C = \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \\ a_{41} & a_{42} & a_{43} \end{bmatrix} \begin{bmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \\ b_{31} & b_{32}\end{bmatrix} = \begin{bmatrix} a_{11}b_{11} + a_{12}b_{21} + a_{13}b_{31} & a_{11}b_{12} + a_{12}b_{22} +a_{13}b_{32} \\ a_{21}b_{11} + a_{22}b_{21} + a_{23}b_{31} & a_{21}b_{12} + a_{22}b_{22} + a_{23}b_{32} \\ a_{31}b_{11} + a_{32}b_{21} + a_{33}b_{31} & a_{31}b_{12} + a_{32}b_{22} +a_{33}b_{32} \\ a_{41}b_{11} + a_{42}b_{21} + a_{43}b_{31} & a_{41}b_{12} + a_{42}b_{22} + a_{43}b_{32} \end{bmatrix}
矩阵和矩阵相乘,不满足交换律,但满足结合律和分配律,即:
,
,

3、向量

(1)向量的定义

只有一行的矩阵,即:

称为行矩阵,也称为行向量。

只有一列的矩阵,即:

称为列矩阵,也称为列向量。

其中,B为A的转置,即。

(2)向量的基本运算

  • 遵循矩阵几百年运算原则
  • 矩阵与向量相乘,结果仍为向量

(3)向量的应用

1)问题抛出

举例,房价预测问题:加入你想买一套110㎡的房子,房东售价150万,值得投资吗?


房价趋势

线性关系

Tips:根据线性关系表算出售价y,然后和房东的出价进行对比。

2)实际应用

①根据房屋面积、房间数、区域人口密度、房龄等因子,预测合理售价。
已有数据

解决思路:
建立价格与因子之间的关系:
\begin{cases} y_{1} = f(x_{11}, x_{12}, x_{13}, x_{14}, x_{15}) \\ y_{2} = f(x_{21}, x_{22}, x_{23}, x_{24}, x_{25}) \\y_{3} = f(x_{31}, x_{32}, x_{33}, x_{34}, x_{35}) \\y_{4} = f(x_{41}, x_{42}, x_{43}, x_{44}, x_{45}) \\y_{5} = f(x_{51}, x_{52}, x_{53}, x_{54}, x_{55}) \\ \end{cases}
so:

假设:每个因子与价格之间存在线性关系,即:

那么:
\begin{cases} y_{1} = f(x_{11}, x_{12}, x_{13}, x_{14}, x_{15}) \\ y_{2} = f(x_{21}, x_{22}, x_{23}, x_{24}, x_{25}) \\y_{3} = f(x_{31}, x_{32}, x_{33}, x_{34}, x_{35}) \\y_{4} = f(x_{41}, x_{42}, x_{43}, x_{44}, x_{45}) \\y_{5} = f(x_{51}, x_{52}, x_{53}, x_{54}, x_{55}) \\ \end{cases}
y= \begin{bmatrix} x_{11} & x_{12} & x_{13} & x_{14} & x_{15} \\ x_{21} & x_{22} & x_{23} & x_{24} & x_{25} \\ \vdots \\x_{51} & x_{52} & x_{53} & x_{54} & x_{55} \\ \end{bmatrix} \begin{bmatrix} θ_{1} \\ θ_{2} \\ θ_{3} \\ θ_{4} \\ θ_{5}\end{bmatrix} + b
抽象来说,。
管不θ和b的求解,就需要用到计算机程序来计算了。

②深度学习:根据用户基本信息,预测用户是否会购课消费

用户信息图

像这类问题,就是深度学习中的神经网络结构的模型问题。什么是神经网络结构系统?
神经网络概念图

↓↓↓ 抽象为
神经网络抽象逻辑

注意:这里的a12...an2并不是平方的意思,而是上角标。
以上图画用数学表达式展示就是:
其中,X就是 的向量,A就是 的向量,我们先得到A,然后再由A得到y。

4、实战:python实现矩阵运算

image.png

(1)基础

安装python、Anaconda、Jupyter-notebook,这些功能详情见我的《python和相关工具介绍》。
安装matplotlib库,这个库是python的一个基础绘图库,几行代码即可生成绘图,比如直方图、条形图、散点图等。

(2)矩阵赋值

首先我们引入numpy包:import numpy as np
然后给矩阵A赋值:A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
然后我们打印A:print(A)
则展示结果:

image.png

查看A的行数和列数:print(A.shape)
image.png

完成其他矩阵的赋值:
image.png

(3)矩阵计算

计算E:


image.png

计算F:


image.png

计算G = A·B:


image.png

计算H = -A:


image.png

计算I = A·D:


image.png

我们再计算一个J = A·C:


image.png

三、概率

1、概率与机器学习

(1)概率的定义

概率是在0到1之间的实数,是对随机事件发生的可能性的度量,反应某种情况出现的可能性(likelihood)的大小。

(2)机器学习中的概率

分类任务中,机器学习模型直接预测的结果是某种情况的概率。
例如:


猫狗二分类模型

金融预测中,操作建议基于对应股票的涨跌的概率。


image.png

2、条件概率与全概率

(1)条件概率的定义

定义:事件A已经发生的条件下事件B发生的概率,表示为P(B|A)。

(2)全概率公式

问题引出:


image.png

image.png

解: ∵


全概率定义:将复杂事件A的概率求解问题,转化为在不同情况下发生的简单事件的概率的求和。
公式为:


全概率计算公式

image.png
image.png

3、贝叶斯公式与朴素贝叶斯

(1)贝叶斯公式

贝叶斯公式

注意:但是。因为A和B发生的顺序会不同
贝叶斯公式延申

贝叶斯公式定义

其中,后验概率指的就是 。
延申公式中的分子 ,分母 就是 ,最终这个式子就转化为了 。
究其原因,就是或者是相等的,他俩同时发生的概率不考虑先后顺序,所以除以 就是先发生A之后再发生B的概率,除以就是先发生B后再发生A的概率。
核心

(2)朴素贝叶斯

朴素贝叶斯公式

4、实战 :朴素贝叶斯判断客户消费意愿

你可能感兴趣的:(机器学习必备的数学知识)