十大机器学习算法优缺点

C4.5算法

C4.5算法的核心思想是ID3算法,是ID3算法的改进:

  • 信息增益率来选择属性,克服了用信息增益来选择属性时变相选择取值多的属性的不足;
  • 在树的构造过程当中进行剪枝;
  • 能处理非离散化数据;
  • 能处理不完整数据。

优势:

  • 产生的分类规则易于理解,准确率高。

缺点:

  • 在构造过程当中,须要对数据集进行屡次的顺序扫描和排序,于是致使算法的低效;
  • C4.5算法只适合于可以驻留内存的数据集,当训练集大得没法在内存容纳时,程序没法运行。

K-means算法

简单的聚类,吧n个对象根据他们的属性分为k个类,k<n。

算法的核心是要优化失真函数J,使其收敛到局部最小值而不是全局最小值:

\[J=\sum_{n=1}^{N} \sum_{k=1}^{K} r_{nk} || x_n - u_k ||^2,\]
\(r_{nk}\)表示n数据第k个类,\(u_k\)是第k个类中心值。
而后求出最优的\(u_k\)
\[u_k=\frac{\sum r_{nk} x_n}{\sum_{n} r_{nk} }\]算法

优势:

  • 算法速度快。

缺点:

  • 分组的数目k是一个输入参数,不适合的k可能返回较差的结果。

朴素贝叶斯算法

朴素贝叶斯法是基于贝叶斯定理特征条件独立假设的分类方法。

算法的基础是几率问题,分类原理是经过某对象的先验几率,利用贝叶斯公式计算出其后验几率,即该对象属于某一类的几率,选择具备最大后验几率的类做为该对象所属的类。

朴素贝叶斯假设是约束性很强的假设,假设特征条件独立,但朴素贝叶斯算法简单,快速, 具备较小的出错率。

在朴素贝叶斯的应用中,主要研究了电子邮件过滤以及文本分类研究。

K最近邻算法

缺点:

  • K值须要预先设定,而不能自适应
  • 当样本不平衡时,如一个类的样本容量很大,二其余类样本容量很小,有可能致使当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。

该算法适用于对样本容量比较大的类域进行自动分类。

EM最大指望算法

EM算法是基于模型的聚类算法,是在几率模型中寻找参数最大思然估计的算法,其中几率模型依赖于没法观测的隐藏变量。

E步估计隐含变量,M步估计其余参数,交替将极值推向最大。

EM算法比K-means算法计算复杂,收敛较慢,不适合大规模数据集和高维数据,但比K-means算法计算结构稳定、准确。

EM算法常常用在机器学习和计算机视觉的数据集聚(data clustering)领域。

PageRank算法

Google的页面排序算法。

基于从许多优质的网页连接过来的 网页,一定仍是优质网页的回归关系,来断定全部网页的重要性。

一我的有越多牛逼的朋友,他牛逼的几率就越大。数据库

优势:

  • 彻底独立于查询,只依赖于网页连接结构,能够离线计算。

缺点:

  • PageRank算法忽略了网页搜索的时效性;
  • 旧网页排序很高,存在时间长,积累了大量的in-links,拥有最新资讯的网页排名却很低,由于它们几乎没有in-links。

AdaBoost

Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不一样的分类器(弱分类器),而后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。

算法本事该百诺数据分布来实现的,它根据每次训练集中每个样本的分类是否正确,以及上一次的整体分类准确率,来肯定没个样本的权值。

将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练获得的分类器最后融合起来,做为最后的决策分类器。

算法流程:

  • 先经过对N个训练样本的学习获得第一个弱分类器;
  • 将分错的样本和其余的新数据一块儿构成一个新的N个训练样本,经过学习获得第二个弱分类器;
  • 讲前面都分错的样本加上新的样本构成另外一个新的N个训练样本集,经过学习获得第三个弱分类器;
  • 如此反复,最终获得通过提高的强分类器。

目前 AdaBoost 算法普遍的应用于人脸检测、目标识别等领域。

Apriori算法

Apriori算法是一种挖掘关联规则的算法,用于挖掘其内涵的、未知的却又实际存在的数据关系,其核心是基于两阶段频集思想的递推算法。

Apriori算法的两个阶段:

  • 寻找频繁项集;
  • 有频繁项集找关联规则。

算法缺点:

  • 在每一步产生侯选项目集时循环产生的组合过多,没有排除 不该该参与组合的元素;
  • 每次计算项集的支持度时,都对数据库中的所有记录进行了一遍扫描比较,须要很大的I/O 负载。

SVM支持向量机

支持向量机是一种基于分类边界的方法。

基本原理:

若是训练数据分布在二维平面上的点,它们按照其分类 汇集在不一样的区域。机器学习

基于分类边界的分类算法的目标是,经过训练,找到这些分类之间的边界。

对于多维数据(N维),能够将他们视为N维空间中的点,而分类边界就是N维空间中的面,称为超面。

线性分类器使用超平面类型的边界,非线性分类器使用超曲面。

支持向量机的原理是将低维空间的点映射到高维空间,使它们成为线性可分,再使用线性划分的原理来判断分类边界。在高维空间中是一种线性划分,而在原有的数据空间中,是一种非线性划分。

CART树

决策树的分类方法,基于最小距离的基尼指数估计函数,用来决定由该子数据集生成的决策树的拓展形。

若是目标变量是标称的,称为分类树;若是目标变量是连续的,称为回归树。

优势:

  • 很是灵活,能够容许有部分错分红本,还可指定先验几率分布,可以使用自动的成本复杂性剪枝来获得概括性更强的树。
  • 面对存在缺失值、变量数多等问题时,CART数显得很是稳健。
相关文章
相关标签/搜索