机器学习之数学概念

学习大纲

  • 线性回归
  • 决策树、集成算法
  • 聚类算法
  • KNN
  • SVM
  • EM
  • 隐马尔可夫
  • LDA
  • 特征工程

1、常见函数

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
import math

x=np.arange(0.05,3,0.05)
x

在这里插入图片描述

mpl.rcParams["font.family"] = "SimHei"  # 不设置这个就只会把中文显示成方块
mpl.rcParams["axes.unicode_minus"]=False # 让负号显示
# 常函数
y1=[5 for i in x]
plt.plot(x,y1,linewidth=2,label='常函数:y=5')
# 一次函数
y2=[2*i + 1 for i in x]
plt.plot(x,y2,linewidth=2,label='一次函数:y=2x+1')
# 二次函数
y3=[1.5*(i**2)-3*i+1 for i in x]
plt.plot(x,y3,linewidth=2,label='一次函数:y=1.5$x^2$-3x+1')
# 幂函数
y4=[math.pow(i,2) for i in x]
plt.plot(x,y4,linewidth=2,label='幂函数:y=$x^2$')
# 指数函数
y5=[math.pow(2,i) for i in x]
plt.plot(x,y5,linewidth=2,label='指数函数:y=$2^x$')
# 对数函数
y6=[math.log2(i) for i in x]
plt.plot(x,y6,linewidth=2,label='对数函数:y=$log2(x)$')
plt.legend(loc='lower right')
plt.grid(True)
plt.show()

在这里插入图片描述

2、梯度

梯度是一个向量,表示某一函数在该点处的方向导数沿着该方向取的最大值,即函数在该点处沿着该方向变化最快,变化率最大(即该梯度向量的模);当函数为一维函数的时候,梯度其实就是导数。
在这里插入图片描述

3、泰勒公式

Taylor(泰勒)公式是用一个函数在某点的信息描述其附近取值的公式。如果函数足够平滑,在已知函数在某一点的各阶导数值的情况下,Taylor公式可以利用这些导数值来做系数构建一个多项式近似函数在这一点的邻域中的值。
在这里插入图片描述

4、条件概率

在这里插入图片描述
将条件概率公式由两个事件推广到任意有穷多个事件时,可以得到如下公式,假设A1,A2,…,An为n个任意事件(n≥2),而且P(A1A2…An)>0,则:
在这里插入图片描述

5、全概率公式

在这里插入图片描述

6、贝叶斯

在这里插入图片描述

7、期望

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8、方差

方差(variance)是衡量随机变量或一组数据时离散程度的度量,是用来度量随机变量和其数学期望之间的偏离程度。即方差是衡量数据原数据和期望/均值相差的度量值。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9、标准差

在这里插入图片描述

10、协方差

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11、大数定律

在这里插入图片描述

import random
# 随机种子
random.seed(28)

def generate_random_int(n):  
    '''产生1-9的n个随机数'''
    return [random.randint(1,9) for i in range(n)]
if __name__ == '__main__':
    number = 8000
    x=[i for i in range(number+1) if i != 0]  #[1,2,3,....,80000]
    total_random_int = generate_random_int(number)
    # 分别求0-n个1-9的随机数的均值【0-1均值,0-2均值,。。。。,0-8000均值】
    y = [np.mean(total_random_int[0:i+1]) for i in range(number)]
    
    plt.plot(x,y,'b-')
    plt.xlim(0,number)
    plt.grid(True)
    plt.show()

在这里插入图片描述

12、中心极限定理

在这里插入图片描述
随机的抛六面的骰子,计算三次的点数的和, 三次点数的和其实就是一个事件A,现在问事件A发生的概率以及事件A所属的分布是什么?

思路:

  • 每次抛骰子都是独立同分布的;
  • 三次相加就是Y,服从高斯分布;

在这里插入图片描述

def generate_random_int():  
    '''产生1-6的1个随机数'''
    return [random.randint(1,6)]
def generate_sum(n):
    '''计算抛n次的和'''
    return np.sum([generate_random_int() for i in range(n)])

if __name__ == '__main__':
    # 进行A事件的个数
    number1 =1000000
    # 每次A事件抛三次骰子
    number2=3
    
    # 计算number1次抛三个骰子的A事件的和
    # 1*1000000:[5, 11, 10, 16, 8, 11, 7, 10, 6, 10,....]
    keys=[generate_sum(number2) for i in range(number1)]
    
    # 统计每个和出现的次数{5: 1, 11: 2, 10: 3, 16: 1, 8: 1, 7: 1, 6: 1}
    result={}
    for key in keys:
        count = 1
        if key in result:
            count+=result[key]
        result[key] = count
    
    # 获取x和y
    x=sorted(np.unique(list(result.keys())))  #np.unique([5, 11, 10, 16, 8, 7, 6])
    y=[]
    for key in x:
        y.append(result[key]/number1)
    
    plt.plot(x,y,'b-')
    plt.xlim(x[0]-1,x[-1]+1)
    plt.grid(True)
    plt.show()

在这里插入图片描述

13、最大似然估计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14、QR分解(A必须是满秩)

在这里插入图片描述

15、SVD分解

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值