一、numpy方面
1. 广播机制
使用ufunc对两个数组进行运算时,如果数组的形状不相同,就会进行下广播处理。简而言之,就是向两个数组每一维度上的最大值靠齐。(节省资源,计算方便)
np.arange(start,stop,step)(等差数组)np.ones(N)(全一数组)Np.sort(array,axis=0)(排序)np.zeros(N)(全0数组)np.array([])(生成数组)np.linspace()(a,b,10)(从a到b九等分)np.empty((2,3), np.int)(创建2*3的整形型空矩阵,只分配内存)np.ogrid(:5,:5)(生成用于广播的数组,列行)
2. 常用函数
随机数:from numpy import random as nr nr.rand(m,n)(0-1随机)、randint(l,h,(m,n))(规定范围内随机整数)、uniform(均匀分布)、normal(生态分布的随机)、shufftle(随机打乱顺序)、poisson(泊松分布);sum(x,axis=0/1)(求和列/行)、average(加权平均)、var(方差(x-mean)2/n)、mean(期望)、std(标准差)、product(连乘积);min(最小值)、max、ptp(极差)、argmin(最小值下标)、mininum(二元最小值)、maxnum(二元最大值)、sort(数组排序)、argsort(数组排序下标)、percentile(分位数)(第p个百分位数是这样一个值,它使得至少有p%的数据项小于或等于这个值,且至少有(100-p)%的数据项大于或等于这个值,np.percentile(a,52))、median(中位数)。
二、Novikoff定理
1. 感知机
感知机:感知机是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1或-1两种。感知机旨在求出将训练数据集进行线性划分的分类超平面,引入了基于误分类的损失函数,再对损失函数进行极小化,从而求出感知机模型。
2. 感知机模型
3. 超平面
4. 范数
[L0范数:向量中非0元素的个数;L1范数:向量中各个元素绝对值之和
L0范数和L1范数可以实现稀疏,L1因比L0更好的优化求解特性而被广泛使用;L2范数是向量个元素的平方和然后求平均根;可以实现对模拟空间的限制,从而避免过拟合,提升模型的泛化能力。]
5. 朴素贝叶斯分类器
6. Novikoff定理描述与证明
三、搜索算法
1. 分类
A.盲目搜索:深度优先(回溯),广度优先(FIFO)
B.启发式搜索:分支限界法,博弈树搜索,最佳优先算法,A*搜索
2. 启发式搜索
为减小搜索范围,而需要利用某些已知的、有关具体问题领域的特性信息(启发信息)特点: A.大多数是深度优先搜索算法的改进版;B.在有多条路径可走,会给出该走哪条路径的建议;C.利用问题中的已知条件,尽快找到问题的解;D.可采用估值的方法进行搜索指导;E.状态空间小,搜索时间短并且效率高、容易控制,使问题易于得到解。
3. 八数码问题(深度优先算法)
在宽度优先搜索过程中,需要遍历目标节点所在层之前每层的所有节点,即需要遍历所有的分支。而深度优先搜索过程中,则不需要遍历这么多的节点。所以,在八数码的求解过程中,深度优先搜索的效率明显比宽度优先搜索的效率要高。
4. 背包问题(启发式搜索方法)
A.定义解空间 x={(0,0,0),..(1,1,1)} B.决定解空间结构(画空间树) C.用深度优先方式搜索解空间,用剪枝函数避免无效搜索(S是死节点,因为背包的容量超出,此时剪枝)D.得最优解为(0,1,1)最优值为50 剪枝技术:基本思想:在当前扩展结点的右子树(或左子树)的价值上界,如果满足一定约束条件,则可以裁剪掉右子树(或左子树)。常用剪枝函数:A.用约束函数在扩展结点处剪去不满足约束的子树 B.用限界函数剪去得不到最优解的子树
5. 迷宫问题(最佳优先搜索算法)
对OPEN表中所有节点的f(n)进行比较,按从小到大的顺序重排OPEN表。其算法效率类似于DFS,但使用了与问题特性相关的估价函数来确定下一步待扩展的节点,因此是一种启发式搜索 OPEN 表: 保存了所有已生成但是未访问过的节CLOSED 表: 记录已访问过的节点。步骤:A.把S放入OPEN表,计算估值函数 B.判断OPEN表是否为空 C.把OPEN表中第一个节点N放入CLOSED表 D.判断N是否为目标节点 E.扩展N计算所有子节点的估值函数 F.把子节点放入OPEN表,对所有节点按估值函数值由小到大重排 A.OPEN是否为空 (画出生成树)