7 种机器学习算法的 7 个要点

举报
HWCloudAI 发表于 2020/09/29 14:37:18 2020/09/29
【摘要】 1. 支持向量机要点:C 参数支持向量机(Support Vector Machine,SVM)创建一个 决策边界,用于区分两个或多个类。Soft-Margin SVM 试图解决一类优化问题,其目标如下:增加决策边界到类(或支持向量)的距离。最大化训练集中正确分类的点的数量。这两个目标之间显然存在一个权衡。决策边界可能必须非常接近一个特定的类,才能正确标注所有的数据点。然而,在这种情况下,由...
1. 支持向量机

要点:C 参数

支持向量机(Support Vector Machine,SVM)创建一个 决策边界,用于区分两个或多个类。

Soft-Margin SVM 试图解决一类优化问题,其目标如下:

  • 增加决策边界到类(或支持向量)的距离。

  • 最大化训练集中正确分类的点的数量。

这两个目标之间显然存在一个权衡。决策边界可能必须非常接近一个特定的类,才能正确标注所有的数据点。然而,在这种情况下,由于决策边界对噪声和自变量的微小变化过于敏感,新观测值的正确率可能会有所降低。

另一方面,决策边间可能会被尽可能地放置在每个类上,但代价是一些错误分类的异常。这种权衡由 C 参数 控制。

C 参数 对每一个错误分类的数据点增加了一个惩罚。如果 C 较小,则对错误分类点的惩罚较低,所以选择一个余量较大的决策边界,以牺牲较多的错误分类次数为代价。

如果 C 较大,支持向量机会尽量减少错误分类样本的数量,从而导致决策边界具有较小的边际。对于所有错误分类的例子,惩罚是不一样的。它与到决策边界的距离成正比。

2. 决策树

要点:信息增益

在选择要分割的特征时,决策时算法会试图实现:

  • 更多的预测性。

  • 更少的杂质。

  • 更低的熵。

熵是对不确定性或随机性的度量。一个变量的随机性越大,熵就越高。具有均匀分布的变量就具有最高的熵。例如,掷一个公平的骰子,有 6 种可能的结果,概率相等,所以它具有均匀分布和高熵。


image.png

选择导致更多纯节点的拆分。所有这些都表明“信息增益”(Information gain),基本上就是拆分前后的熵之差。

$ 信息增益 =(拆分之前的熵)-(拆分之后的加权熵)$

3. 随机森林

要点:自助法与特征随机性

随机森林是许多决策树的集合。随机森林的成功在很大程度上取决于使用不相关的决策树。如果我们使用相同或非常相似的树,那么整体结果与单个决策树的结果差别并不大。随机森林通过 自助法(bootstrapping)和 特征随机性(feature randomness)得到不相关的决策树。

特征随机性是通过随机深林中的每个决策树随机选择特征来实现的。随机森林中每棵树使用的特征数量可以通过max_features参数进行控制。 

image.png

4. 梯度提升决策树

要点:学习率和子模型数

梯度提升决策树(Gradient Boosted Decision Tree,GBDT)是一个决策树的集合,结合提升(boosting)方法,即将决策树按顺序连接起来。

学习率(Learning rate)和 子模型数(n_estimators)是用于梯度提升决策树的两个关键超参数。

学习率简单来说就是模型学习的速度。学习率慢的好处是模型会变得过更加稳健和泛化。然而,学习率慢是有代价的。它需要更多的时间来训练模型,这就给我们带来了另一个重要的超参数。

n_estimators 参数是模型中使用的树的数量。如果学习率低,我们需要更多的树来训练模型。然而,我们在选择数目的数量时需要非常小心。使用过多的树会产生过拟合的高风险。

5. 朴素贝叶斯分类器

要点:朴素的好处是什么?

朴素贝叶斯(Naive Bayes)是一种用于分类的监督式机器学习分类算法,因此其任务是在给定特征值的情况下找到观测值所述的类别。朴素贝叶斯分类器计算给定一组特征值(即 $p(y_i|x_1,x_2,…,x_n)$ 的类的概率。

朴素贝叶斯假设特征彼此独立,并且特征之间不存在相关性。然而,在现实生活中却并非如此。这种特征不相关的朴素假设,这就是这种算法被称为“朴素”的原因。

假设所有特征都是独立的,因此与复杂的算法相比,它的 速度非常快。在某些情况下,比起更高的正确率,速度更受青睐。

朴素贝叶斯适用于文本分类、电子邮件垃圾邮件检测等高维数据的处理。

6. K- 最近邻算法

要点:何时使用?何时不使用?

K- 最近邻算法(K-nearest neighbors,KNN)是一种监督式机器学习算法,可用于解决分类问题,也可用于解决回归问题。KNN 的主要原理是数据点的值由其周围的数据点确定。

随着数据点数量的增加,KNN 算法将会变得非常慢,这是因为模型需要存储所有的数据点来计算它们之间的距离。这个原因也使得算法的内存效率不高。

另一个缺点就是 KNN 对异常值很敏感,因为异常值对最近点有影响(即使它的距离很远)。

积极的一面是:

  • 简单易懂。

  • 不做任何假设,所以它可以在非线性任务中实现。

  • 在多个类别的分类上效果很好。

  • 适用于分类任何和回归任务。

    7. K- 均值聚类

要点:何时使用?何时不使用?

K- 均值聚类(K-Means Clustering)的目的是将数据分成 K 个聚类,使得同一个聚类中的数据点相似,而不同聚类中的数据点相距更远。

K- 均值聚类算法无法猜测数据中存在多少个聚类。聚类的数量必须预先确定,这可能是一项具有挑战性的任务。

随着样本数量的增加,K- 均值聚类算法将会变慢。因为在每一步中,它都要访问所有的数据点并计算距离。

K- 均值聚类只能绘制线性边界。如果数据中存在分组的非线性结构,那么这种情况下,K- 均值聚类就不是一个好选择。

积极的一面是:

  • 易于理解。

  • 相对较快。

  • 可针对大型数据集进行扩展。

  • 能够巧妙地选择初始质心的位置,从而加快收敛速度。

  • 保证收敛性。

我们已经介绍了关于每种算法的一些关键概念。给出的要点和注释绝对不是算法的全部解释。然而,我给出的这些内容肯定很重要,要在实施这些算法时,了解这些内容才能有所作为。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。