随笔分类 - Algorithm
摘要:在应用机器学习算法时,我们通常采用梯度下降法来对采用的算法进行训练。其实,常用的梯度下降法还具体包含有三种不同的形式,它们也各自有着不同的优缺点。 下面我们以线性回归算法来对三种梯度下降法进行比较。 一般线性回归函数的假设函数为:$h_{\theta}=\sum_{j=0}^{n}\thet...
阅读全文
摘要:同进化算法(见博客《[Evolutionary Algorithm] 进化算法简介》,进化算法是受生物进化机制启发而产生的一系列算法)和人工神经网络算法(Neural Networks,简称NN,神经网络是从信息处理角度对人脑的神经元网络系统进行了模拟的相关算法)一样,群体智能优化算法也属于一种...
阅读全文
摘要:进化算法,也被成为是演化算法(evolutionary algorithms,简称EAs),它不是一个具体的算法,而是一个“算法簇”。进化算法的产生的灵感借鉴了大自然中生物的进化操作,它一般包括基因编码,种群初始化,交叉变异算子,经营保留机制等基本操作。与传统的基于微积分的方法和穷举方法等优化算...
阅读全文
摘要:局部敏感哈希(Locality Sensitive Hashing,LSH)算法是我在前一段时间找工作时接触到的一种衡量文本相似度的算法。局部敏感哈希是近似最近邻搜索算法中最流行的一种,它有坚实的理论依据并且在高维数据空间中表现优异。它的主要作用就是从海量的数据中挖掘出相似的数据,可以具体应用到...
阅读全文
摘要:拉格朗日乘数法(Lagrange Multiplier Method)之前听数学老师授课的时候就是一知半解,现在越发感觉拉格朗日乘数法应用的广泛性,所以特意抽时间学习了麻省理工学院的在线数学课程。新学到的知识一定要立刻记录下来,希望对各位博友有些许帮助。1. 拉格朗日乘数法的基本思想 作为一种...
阅读全文
摘要:谈完数据结构中的树(详情见参照之前博文《数据结构中各种树》),我们来谈一谈机器学习算法中的各种树形算法,包括ID3、C4.5、CART以及基于集成思想的树模型Random Forest和GBDT。本文对各类树形算法的基本思想进行了简单的介绍,重点谈一谈被称为是算法中的“战斗机”,机器学习中的“屠...
阅读全文
摘要:哈希表(Hash Table)是一种特殊的数据结构,它最大的特点就是可以快速实现查找、插入和删除。因为它独有的特点,Hash表经常被用来解决大数据问题,也因此被广大的程序员所青睐。本文介绍了哈希表的基本思想、哈希表的创建、解决冲突和查找的方法以及对哈希表性能的讨论,并附有C++实现源码,希望对初学者有所帮助。
阅读全文
摘要:和排序算法一样,查找算法也是一种最为基本的算法。高效地查找可以使我们对数据进行更加高效地操作,熟练掌握各种查找算法也是一项基本的算法技能。
阅读全文
摘要:排序算法是一种最为基础的算法,可以说无处不在,比如我们的搜索引擎中搜索排序。本文详细介绍了常见的八种排序算法,并附有C++源码实现。最后,针对各种排序算法的性能,进行了比较和分析。
阅读全文
摘要:机器学习无疑是当前数据分析领域的一个热点内容。很多人在平时的工作中都或多或少会用到机器学习的算法。本文为您总结一下常见的机器学习算法,以供您在工作和学习中参考。机器学习的算法很多。很多时候困惑人们都是,很多算法是一类算法,而有些算法又是从其他算法中延伸出来的。这里,我们从两个方面来给大家介绍,第一个方面是学习的方式,第二个方面是算法的分类。
阅读全文
摘要:生活中很多场合需要用到分类,比如新闻分类、病人分类等等。 本文介绍朴素贝叶斯分类器(Naive Bayes classifier),它是一种简单有效的常用分类算法。一、病人分类的例子 让我从一个例子开始讲起,你会看到贝叶斯分类器很好懂,一点都不难。 某个医院早上收了六个门诊病人,如下表。 ...
阅读全文
摘要:使用机器学习方法解决问题时,有较多模型可供选择。 一般的思路是先根据数据的特点,快速尝试某种模型,选定某种模型后, 再进行模型参数的选择(当然时间允许的话,可以对模型和参数进行双向选择) 因为不同的模型具有不同的特点, 所以有时也会将多个模型进行组合,以发挥"三个臭皮匠顶一个诸葛亮的作用", ...
阅读全文
摘要:推荐系统中最常用的算法叫做协同过滤(Collaborative Filtering),协同过滤属于社会计算的一种。协同过滤常常被用于分辨某位特定顾客可能感兴趣的东西,这些结论来自于对其他相似顾客对哪些产品感兴趣的分析。协同过滤以其出色的速度和健壮性,在全球互联网领域炙手可热。本文详细地剖析了协同过滤算法,并利用MATLAB进行了仿真,希望对初学者有帮助。
阅读全文
摘要:1 字符串匹配 字符串匹配是计算机的基本任务之一。 字符串匹配是什么?举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一...
阅读全文