7种机器学习算法的7个关键点

时间:2022-04-22 01:31:09

借助各种库和框架,我们仅需一行代码即可实现机器学习算法。有些更进一步,使您可以立即实现和比较多种算法。

易用性具有一些缺点。我们可能会忽略这些算法背后的关键概念或想法,而这些概念或想法对于全面了解它们至关重要。

7种机器学习算法的7个关键点

在这篇文章中,我将提到有关7种机器学习算法的7个关键点。我想指出的是,这不会完全解释这些算法,因此,如果您对它们有基本的了解,那就更好了。

开始吧。

1. 支持向量机(SVM)

关键点:C参数

SVM创建一个决策边界,以区分两个或多个类。

软裕量支持向量机尝试解决具有以下目标的优化问题:

  • 增加决策边界与类(或支持向量)的距离
  • 最大化在训练集中正确分类的点数

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

另一方面,可能会为每个类别设置尽可能大的决策边界,但要付出一些错误分类的例外的代价。这种权衡由c参数控制。

C参数为每个错误分类的数据点增加了惩罚。如果c小,则对错误分类的点的惩罚较低,因此以较大数量的错误分类为代价选择了具有较大余量的决策边界。

如果c大,由于高罚分,SVM会尝试最大程度地减少误分类示例的数量,从而导致决策边界的边距较小。对于所有错误分类的示例,惩罚都不相同。它与到决策边界的距离成正比。

2. 决策树

关键点:信息获取

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

  • 更具预测性
  • 杂质少
  • 较低的熵

熵是不确定性或随机性的量度。变量具有的随机性越多,熵就越高。具有均匀分布的变量具有最高的熵。例如,掷骰子有6个概率相等的可能结果,因此它具有均匀的分布和较高的熵。

7种机器学习算法的7个关键点

> Entropy vs Randomness

选择导致更多纯节点的拆分。所有这些都表明"信息增益",基本上是分裂前后的熵之差。

7种机器学习算法的7个关键点

3. 随机森林

关键点:自举和功能随机性

随机森林是许多决策树的集合。随机森林的成功很大程度上取决于使用不相关的决策树。如果我们使用相同或非常相似的树,则总体结果将与单个决策树的结果相差无几。随机森林通过自举和特征随机性来实现具有不相关的决策树。

自举是从训练数据中随机选择样本进行替换。它们称为引导程序样本。

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

7种机器学习算法的7个关键点

> Feature randomness

4. 梯度提升决策树

关键点:学习率和n_estimators

GBDT是决策树与boosting方法的结合体,意味着决策树是顺序连接的。

学习率和n_estimator是用于梯度提升决策树的两个关键超参数。

学习率仅表示模型学习的速度。学习速度较慢的优点是模型变得更健壮和更通用。但是,学习缓慢需要付出一定的代价。训练模型需要更多时间,这将我们带到另一个重要的超参数。

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

5. 朴素贝叶斯分类器

关键点:朴素假设有什么好处?

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

朴素贝叶斯假设要素彼此独立,要素之间没有关联。但是,现实生活中并非如此。特征不相关的这种天真假设是将该算法称为"天真"的原因。

与复杂算法相比,所有功能都是独立的这一假设使其变得非常快。在某些情况下,速度比精度更高。

它适用于高维数据,例如文本分类,电子邮件垃圾邮件检测。

6. K最近邻居

关键点:何时使用和不使用

K近邻(kNN)是一种受监督的机器学习算法,可用于解决分类和回归任务。kNN的主要原理是,数据点的值由其周围的数据点确定。

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

另一个缺点是kNN对异常值敏感,因为异常值会影响最近的点(即使距离太远)。

在积极方面:

  • 简单易懂
  • 不做任何假设,因此可以在非线性任务中实施。
  • 在多个类别的分类上效果很好
  • 适用于分类和回归任务

7. K-Means聚类

关键点:何时使用和不使用

K-均值聚类旨在将数据划分为k个聚类,以使同一聚类中的数据点相似,而不同聚类中的数据点相距更远。

K-均值算法无法猜测数据中存在多少个簇。群集的数量必须预先确定,这可能是一项艰巨的任务。

该算法随着样本数量的增加而减慢速度,因为在每个步骤中,它都会访问所有数据点并计算距离。

K均值只能绘制线性边界。如果存在将数据中的组分开的非线性结构,则k均值将不是一个很好的选择。

在积极方面:

  • 容易解释
  • 比较快
  • 可扩展用于大型数据集
  • 能够以智能方式选择初始质心的位置,从而加快收敛速度
  • 保证融合

我们已经介绍了有关每种算法的一些关键概念。给出的要点和注释绝对不是算法的完整说明。但是,了解实现这些算法时必须有所作为当然很重要。

原文地址:https://www.toutiao.com/i6905869586411962884/