《大数据时代的算法》读书笔记(一)

机器学习、人工智能及其典型实例 电子工业出版社 刘凡平编著

适合回顾机器学习相关算法,或者是感兴趣的课外阅读

不过本书错别字较多,而且有部分地方错误,阅读起来有点费劲

在本书的基础上,结合本书的结构,梳理相关知识,整理了一下


1、常见算法

分治法:分而治之,层层向上,最后得到问题的解,归并法,二分查找,快速排序等都用的这个思想,要求子问题间相互独立,小规模成立,解可以合并

动态规划:适用情况要求有最优子结构,子问题重复,跟递归一样要有终止条件,确定状态转移过程

回溯法:发现当前不满足条件时,采用回溯的方法,是一个不断枚举的过程,采用深度优先的方式

分支限界法:和回溯法类似,不过采用的是广度优先或者最小代价优先(类似于贪心法?)生成所有的下一步分支,然后计算某个条件的界限,使问题向着最优解进行。

贪心法:是指当前求解过程在当前条件下最好的选择‘局部最优解’,适用于通过局部最优解可以获得全局最优解的问题,比如10个盒子里的最小值可以通过每个盒子的最小值求得

时间复杂度描述了算法的运行时间,空间复杂度指算法在运行过程中临时占有的存储空间的大小,是算法需要的额外资源的体现,两者往往相互影响

2、数学基础

数学是学习计算法和机器学习的基础,概率论、线性代数等都有很多的应用

1分布方式

二项分布:n次独立0-1事件的离散概率分布情况,当n为1时也就是伯努利分布

超几何分布:类似于二项分布,不同的是样本量,超几何分布样本量有限,而二项分布的样本量不可估量,或者趋于无穷

泊松分布:单位时间内随机事件发生的次数的概率分布,比如搜索引擎的请求次数

指数分布:连续概率分布,独立随机事件的时间间隔,比如城市下雨的时间间隔

正态分布:某个指标受到大量随机变量的影响,而单个指标又影响比较小,这样指标就可以认为是服从正态分布

2距离计算

机器学习算法中经常会用到距离的概念,比如SVM、KNN等,不同距离的计算方式可能会对最后的结果有所影响

欧式距离:常用的两点或多点之间的真实距离,开平方和,缺点是将数据的特征进行独立的计算,并且差别是相同的,导致现实问题无法通过欧氏距离计算

马氏距离:表示数值协方差距离,体现的是数据样本的距离,考虑到每个特性之间的关系,可以用于计算两个未知样本信息集合的相似度分析

曼哈顿距离:绝对值之和,也就是两点在Xy坐标系的绝对轴距之和

切比雪夫距离:各坐标数值差的最大值

闵式距离:开P次方和,当p为2时也就是欧氏距离,p为无穷就是切比雪夫距离

海明距离:两个等长字符串不同字符的个数,也可以表示01字符串中非零元素个数

3、字符压缩编码

压缩的目的是将某些出现频率较高的字符用短编码表示,对于很少出现的用长编码表示,提升字符在某些领域的负荷,比如网络传输过程中减少流量开销

哈夫曼编码:无损数据压缩和权编码,是一种变长编码方式,压缩率更高,效果更好,又称作最优二叉树,是一种带权路径长度最短的二叉树,每次选取频率最低的两个进行合并,生成新的替换,然后迭代进行,直到没有新的词语了

香农-范诺编码:通过前缀码的方式进行编码处理,将出现频率高低按从左到右排列,找到一个值划分左右两侧使得频率之和接近,然后规定左边为0右边为1,迭代进行,不过只适用于数据频率分布不均匀,压缩才能有用,而且不是最优前缀码

注:最优前缀码也就是若不存在一个序列是另一个序列的前缀,例如有前缀序列00可能对应序列000或者001,那么这种编码方式就不是最优前缀码


猜你喜欢

转载自blog.csdn.net/FigthingForADream/article/details/80909832