随着我对机器学习的了解的增加,机器学习算法的数量也在增加! 本文将介绍数据科学界常用的机器学习算法。

请记住,我将比其他更多地详细阐述某些算法,因为如果我对每种算法进行了详尽的解释,那么本文将与本书一样长!我还将尝试尽量减少本文中的数学运算量,因为我知道这对于那些数学上不精通的人来说可能是令人生畏的。相反,我将尝试对每个功能进行简要概述,并指出一些关键功能。

考虑到这一点,我将首先介绍一些更基本的算法,然后再介绍一些较新的算法,例如CatBoost,Gradient Boost和XGBoost。

线性回归

线性回归是用于对因变量和一个或多个自变量之间的关系进行建模的最基本算法之一。简而言之,它涉及找到代表两个或多个变量的"最佳拟合线"。

最佳拟合线是通过最小化点与最佳拟合线之间的平方距离来找到的-这称为最小化残差平方和。残差等于预测值减去实际值。

> Image Created by Author

如果还没有意义,请考虑上面的图片。 将最适合的绿线与红线进行比较,请注意,绿线的垂直线(残差)比红线大得多。 这是有道理的,因为绿线离这些点太远了,根本就不能很好地表示数据!

如果您想了解有关线性回归背后的数学知识的更多信息,那么我将从Brilliant的解释开始。

逻辑回归

Logistic回归与线性回归相似,但用于建模离散结果数(通常为两个)的概率。 乍一看,逻辑回归听起来比线性回归复杂得多,但实际上只需要多做一步。

首先,您使用与最适合线性回归的直线方程式相似的方程式计算得分。

额外的步骤是将您先前在下面的S型函数中计算出的分数提供给您,以便您获得回报的可能性。然后可以将此概率转换为二进制输出,即1或0。

为了找到初始方程的权重以计算分数,使用了诸如梯度下降或最大似然法之类的方法。 由于它不在本文的讨论范围之内,所以我将不做进一步的详细介绍,但是现在您知道了它的工作原理!

K最近邻居

> Image created by author

K近邻是一个简单的想法。首先,从已分类的数据(即红色和蓝色数据点)开始。然后,当您添加新数据点时,可以通过查看k个最近的分类点对其进行分类。得票最多的哪个类别决定将新点分类为什么。

在这种情况下,如果将k设置为1,则可以看到与灰色样本最接近的第一个点是红色数据点。 因此,该点将被分类为红色。

要记住的一点是,如果k的值设置得太低,可能会导致异常值。另一方面,如果k的值设置得太高,那么它可能会忽略只有几个样本的类。

朴素贝叶斯

朴素贝叶斯是一种分类算法。 这意味着当输出变量为离散变量时,将使用朴素贝叶斯。

朴素贝叶斯(Naive Bayes)似乎是一个令人生畏的算法,因为它需要具备条件概率和贝叶斯定理的初步数学知识,但这是一个非常简单且"朴素"的概念,我将尽力举例说明:

> Image Created by Author

假设我们输入了有关天气特征(外观,温度,湿度,大风)以及是否打过高尔夫球的数据(即最后一栏)。

朴素贝叶斯本质上所做的是比较每个输入变量与输出变量中类别之间的比例。可以在下表中显示。

> Image Created by Author

为了帮助您阅读本示例,在温度部分中,打高尔夫球的9天中有2天很热(即是)。

用数学术语,您可以将其表示为打高尔夫球时很热的概率。数学符号为P(hot | yes)。这就是条件概率,对于理解我将要说的其余内容至关重要。

掌握了这些信息后,您就可以根据天气特征的任意组合预测是否要打高尔夫球。

想象一下,我们具有以下特征的新一天:

  • 展望:晴天
  • 温度:温和
  • 湿度:正常
  • 大风:假

首先,我们将计算在给定X,P(y | X)的情况下打高尔夫球的概率,然后计算在给定X,P(no | X)的情况下您打高尔夫球的概率。

使用上面的图表,我们可以获得以下信息:

现在我们可以简单地将此信息输入以下公式:

同样,您将为P(no | X)完成相同的步骤顺序。

由于P(yes | X)> P(no | X),因此您可以预测此人会打高尔夫球,因为前景晴朗,温度适中,湿度正常且没有大风。

这是朴素贝叶斯的精髓!

支持向量机

> Image created by Author

支持向量机是一种监督分类技术,实际上可能会变得非常复杂,但在最基本的级别上却非常直观。 为了本文的方便,我们将其保持在较高水平。

假设有两类数据。 支持向量机将在两类数据之间找到一个超平面或边界,以使两类数据之间的余量最大化(请参见上文)。 有许多平面可以将两个类别分开,但是只有一个平面可以使两个类别之间的边距或距离最大化。

如果您想了解支持向量机背后的数学知识,请查看此系列文章。

决策树

> Image created by author

随机森林

在理解随机森林之前,您需要了解以下两个术语:

  • 集成学习是一种结合使用多种学习算法的方法。这样做的目的是,与单独使用单个算法相比,它可以实现更高的预测性能。
  • 自举采样是一种重采样方法,该方法使用随机采样进行替换。 听起来很复杂,但是当我说它非常简单时,请相信我-在此处了解更多信息。
  • 当您使用自举数据集的汇总来做决定时,请进行装袋–我在该主题上撰写了一篇文章,因此,如果这样做不完全有意义,请随时在此处查看。

现在您已经了解了这些术语,让我们深入研究它。

随机森林是一种基于决策树的整体学习技术。 随机森林涉及使用原始数据的自举数据集创建多个决策树,并在决策树的每个步骤中随机选择变量的子集。 然后,模型选择每个决策树的所有预测的模式(装袋)。 这有什么意义? 通过依靠"多数胜利"模型,它降低了单个树出错的风险。

> Image Created by author

例如,如果我们创建一个决策树,第三个决策树,它将预测0。但是,如果我们依靠所有4个决策树的模式,则预测值为1。这就是随机森林的力量!

AdaBoost

AdaBoost或Adaptive Boost也是一种集成算法,它利用打包和增强方法来开发增强的预测器。

AdaBoost与Random Forests的相似之处在于,预测来自许多决策树。但是,AdaBoost的独特之处在于三个主要区别:

> Example of a stump

  • 首先,AdaBoost创建了一个由树桩而非树木组成的森林。树桩是仅由一个节点和两片叶子组成的树(如上图所示)。
  • 其次,在最终决策(最终预测)中未对创建的树桩加权平均。产生更多错误的树桩在最终决定中将没有发言权。
  • 最后,树桩的制作顺序很重要,因为每个树桩的目的都是减少先前树桩造成的错误。

从本质上讲,AdaBoost采取了一种更具迭代性的方法,即从以前的树桩所犯的错误中寻求迭代地改进。

如果您想了解有关AdaBoost背后的基础数学的更多信息,请查看我的文章" 5分钟内AdaBoost的数学解释"。

梯度提升

渐变增强也是一种集成算法,使用增强方法来开发增强型预测因子也就不足为奇了。在许多方面,Gradient Boost与AdaBoost相似,但有两个主要区别:

  • 与AdaBoost可以构建树桩不同,Gradient Boost可以构建通常具有8–32片叶子的树木。
  • 梯度增强将增强问题视为优化问题,它使用损失函数并尝试将误差最小化。 这就是为什么它受梯度下降的启发而称为"梯度增强"的原因。
  • 最后,这些树用于预测样本的残差(预测值减去实际值)。

尽管最后一点可能令人困惑,但您需要知道的是,Gradient Boost首先要构建一棵树以尝试拟合数据,而随后构建的树则旨在减少残差(错误)。它通过专注于现有学习者表现较差的领域来做到这一点,类似于AdaBoost。

XGBoost

XGBoost是当今最流行和使用最广泛的算法之一,因为它是如此强大。它类似于Gradient Boost,但具有一些使其更强大的额外功能,包括……

  • 叶节点按比例缩小(修剪)—用于改善模型的泛化
  • 牛顿加速-提供比梯度下降更直接的最小值,使其更快
  • 额外的随机化参数-减少树之间的相关性,最终提高整体强度
  • 树木的独特惩罚

我强烈建议您观看StatQuest的视频,以更详细地了解算法的工作原理。

LightGBM

如果您认为XGBoost是目前最好的算法,请再考虑一下。 LightGBM是另一种增强算法,已显示出比XGBoost更快甚至更高的准确性。

LightGBM的与众不同之处在于,它使用一种称为基于梯度的单面采样(GOSS)的独特技术来过滤出数据实例以查找分割值。这与XGBoost不同,后者使用预排序和基于直方图的算法来找到最佳分割。

在这里关于Light GBM vs XGBoost的信息!

CatBoost

CatBoost是基于梯度下降的另一种算法,具有一些细微的差异,使其独特:

  • CatBoost实现对称树,这有助于减少预测时间,并且默认情况下树深度也较浅(六个)
  • CatBoost利用类似于XGBoost具有随机参数的方式的随机排列
  • 但是,与XGBoost不同,CatBoost使用有序增强和响应编码等概念更优雅地处理分类功能

总体而言,使CatBoost如此强大的原因是其低延迟要求,这意味着它比XGBoost快大约八倍。

如果您想更详细地了解CatBoost,请查阅本文。

谢谢阅读!

如果您成功了,那就恭喜!现在,您应该对所有不同的机器学习算法有了更好的了解。

如果您很难理解最后几种算法,不要灰心–它们不仅更复杂,而且相对较新!因此,请继续关注更多资源,这些资源将更深入地应用于这些算法。

2021年码农应该了解的所有机器学习算法相关推荐

  1. [2021年秋招笔试记录]OPPO_8.29_机器学习算法A卷

    题型 选择题(机器学习) 填空题(卷积核计算:输入层(8个神经元)到隐藏层(5个)权重向量的shape:隐藏层到输出层(1个)的权重向量shape:两个向量的皮尔逊相关系数:两个向量的L1距离和L2距 ...

  2. 2021全球程序员收入报告出炉!字节高级码农年薪274万元排第5【文末送5本书】...

      视学算法报道   编辑:桃子 David 文末包邮送5本价值百元的高质量机器学习技术书籍 [新智元导读]2021年的余额不多了,你的「余额」还有多少?近日,Levels.fyi发布了2021全球程 ...

  3. 2021全球程序员收入报告!字节高级码农年薪274万元排第5

    点击上方"码农突围",马上关注 这里是码农充电第一站,回复"666",获取一份专属大礼包 真爱,请设置"星标"或点个"在看 报道 ...

  4. 2021全球程序员收入报告出炉!字节高级码农年薪274万元排第5

    来源丨新智元 编辑丨极市平台 导读 2021年的余额不多了,你的「余额」还有多少?近日,Levels.fyi发布了2021全球程序员收入报告,Netflix高级工程师年薪位列全球第1,字节以274万元 ...

  5. 2021全球科技行业薪资报告出炉:字节高级码农年薪竟高达274万元,位居中国之首?

    前言: 2022已至,你的钱包还好吗? 近日,2021全球程序员收入报告最新出炉. 数据显示,Netflix(网飞)高级工程师年薪位列第一,字节跳动以43万美元排世界第五. 就国内来看,码农月薪从上到 ...

  6. 2021 全球程序员收入报告出炉!字节高级码农年薪 274 万元排第 5

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 2021年的余额不多了,你的「余额」还有多少?近日,Levels.fyi发布了2021全球程序员收入报告,Netf ...

  7. 大厂白嫖拖垮开源!开源届码农:用户脾气大需求多还不给钱

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨新智元 编辑丨极市平台 导读 现在,开源软件界或即将到达必须变 ...

  8. 23 年码农经历,33 次创业失败,38 岁身价百亿,快手创始人宿华的逆袭史!

    作者 | 水影月 来源 | 大飞码字(ID:BigFly1024) 2月5日,是快手敲钟上市的大日子,股份代号为1024.没错,就是程序员界最熟悉的"1024". 快手的目标估值是 ...

  9. 42岁老码农找工作记录

    大家好,节日愉快呀!平时和朋友.同事总是会聊到35岁+的程序员都在干啥,各种说法都有,从CTO到滴滴司机不等.今天就给大家分享一位42老码农今年跳槽找工作的经历,文字不常,会有帮助的~ 以下是原文 给 ...

最新文章

  1. Python MySQLdb模块连接操作mysql数据库实例_python
  2. 使用dubbo需要导入的jar包
  3. [Java2入门经典]第9章 访问文件和目录
  4. Leetcode每日一题:剑指offer22.lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof(链表中倒数第k个节点)
  5. 对自注意力(self-attention)的理解以及基于pytorch的简易示例
  6. python 100天 pdf 最新版_GitHub - Nolan2018/Python-100-Days: Python - 100天从新手到大师
  7. 斑马标签打印机蛋疼的打印错误处理方法
  8. 国内研发!适用于安卓应用程序的 Word文档功能开发组件来啦!
  9. 丸子的技术类文章!!它来了!!!
  10. 高等数学(三) 极限
  11. Termios 百科
  12. windows服务启动 1053错误
  13. 手机android的文件怎么恢复,安卓手机office文件怎么恢复?
  14. win10 添加、修改右键菜单的Edit with IDLE
  15. C4D如何渲染素描卡通?如何渲染线描图?
  16. 5GC核心网开源实现:
  17. 最大类间方差(大津法)详解
  18. 带你重新认识一个不太正经的HTML
  19. 2012腾讯校园招聘面试经历
  20. 共享车位|基于SpringBoot+vue+node共享车位平台的设计与实现

热门文章

  1. ubuntu安装mysql依赖关系_ubuntu 安装mysql问题
  2. Python3中出现“No module named ‘StringIO‘
  3. plt.hist绘制直方图参数density 为True和False分别代表是否归一化 参数orientation决定了是采用纵轴代表频率还是横轴代表频率的展现形式
  4. tf.clip_by_value() 用法
  5. html两个性别按钮并排,css实现男女切换按钮
  6. 二.Springboot 常用注解
  7. 北京智源行动计划发布,北京智源人工智能研究院揭牌成立
  8. 为什么数据库不应该使用外键?
  9. 如何通过DICOM的tag来判断3D图像的方向
  10. gitlab的安装和使用