机器学习常识:初学者应该知道的10 大机器学习算法

举报
川川菜鸟 发表于 2022/08/21 22:56:49 2022/08/21
【摘要】 文章目录 一、简述二、大原则三、十大常用算法概述3.1 线性回归3.2 逻辑回归3.3 线性判别分析3.4 决策树3.5 朴素贝叶斯3.6 K-最近邻3.7 学习向量量化3.8 支持向量机3.9 ...

一、简述

机器学习中,有一个叫做“没有免费午餐”的定理。简而言之,它指出没有一种机器学习算法最适合所有问题,它与监督学习(即预测建模)尤其相关。

例如,你不能说神经网络总是比决策树好,反之亦然。有许多因素在起作用,例如数据集的大小和结构。因此,应该针对问题尝试许多不同的算法,同时使用保留的数据“测试集”来评估性能并选择获胜者。

当然,你尝试的算法必须适合你的问题,这就是选择正确的机器学习任务的地方。打个比方,如果你需要打扫房子,你可能会使用吸尘器、扫帚或拖把,但你不会拿出铲子开始挖掘。
在这里插入图片描述

二、大原则

所有用于预测建模的监督机器学习算法都有一个共同的原则:机器学习算法被描述为学习一个目标函数 (f),它最好地将输入变量 (X) 映射到输出变量 (Y):Y = f(X)

这是一个通用的学习任务,我们希望在给定输入变量 (X) 的新示例的情况下对未来 (Y) 进行预测。我们不知道函数 (f) 是什么样子或它的形式。如果我们这样做了,我们将直接使用它,我们不需要使用机器学习算法从数据中学习它。

最常见的机器学习类型是学习映射 Y = f(X) 以针对新 X 预测 Y。这称为预测建模或预测分析,我们的目标是做出最准确的预测。

对于渴望了解机器学习基础知识的机器学习新手,这里是数据科学家使用的前 10 种机器学习算法的快速浏览。

三、十大常用算法概述

  • 线性回归
  • 逻辑回归
  • 线性判别分析
  • 分类和回归树
  • 朴素贝叶斯
  • K-最近邻 (KNN)
  • 学习向量量化 (LVQ)
  • 支持向量机 (SVM)
  • 随机森林
  • 提升
  • AdaBoost

3.1 线性回归

线性回归可能是统计和机器学习中最著名和最容易理解的算法之一。预测建模主要关注的是最小化模型的误差或做出最准确的预测,但以牺牲可解释性为代价。

线性回归的表示是一个方程,它通过找到称为系数 (B) 的输入变量的特定权重来描述最适合输入变量 (x) 和输出变量 (y) 之间关系的直线。

在这里插入图片描述

例如:y = B0 + B1 * x,我们将在给定输入 x 的情况下预测 y,线性回归学习算法的目标是找到系数 B0 和 B1 的值。

可以使用不同的技术从数据中学习线性回归模型,例如普通最小二乘的线性代数解决方案和梯度下降优化。

线性回归已经存在了 200 多年,并得到了广泛的研究。使用此技术时,一些好的经验法则是删除非常相似(相关)的变量,并尽可能从数据中删除噪声。这是一种快速而简单的技术,也是一个很好的第一个尝试算法。

3.2 逻辑回归

逻辑回归是机器学习从统计学领域借用的另一种技术。它是二进制分类问题(具有两个类值的问题)的首选方法。

逻辑回归类似于线性回归,其目标是找到加权每个输入变量的系数值。与线性回归不同,输出的预测是使用称为逻辑函数的非线性函数转换的。

逻辑函数看起来像一个大 S,会将任何值转换为 0 到 1 的范围。这很有用,因为我们可以将规则应用于逻辑函数的输出以将值捕捉到 0 和 1(例如,如果小于 0.5 则输出 1) 并预测一个类值。

在这里插入图片描述
图为逻辑回归曲线图,显示通过考试的概率与学习时间的关系。

由于模型的学习方式,逻辑回归所做的预测也可以用作给定数据实例属于 0 类或 1 类的概率。这对于需要给出更多理由的问题很有用一个预测。

与线性回归一样,当你删除与输出变量无关的属性以及彼此非常相似(相关)的属性时,逻辑回归的效果会更好。这是一个快速学习的模型,并且对二元分类问题有效。

3.3 线性判别分析

逻辑回归是一种传统上仅限于两类分类问题的分类算法。如果你有两个以上的类别,则线性判别分析算法是首选的线性分类技术。

LDA 的表示非常简单。它由你的数据的统计属性组成,为每个类计算。对于单个输入变量,这包括:

  1. 每个类别的平均值。
  2. 跨所有类计算的方差。

在这里插入图片描述
通过计算每个类别的判别值并针对具有最大值的类别进行预测来进行预测。该技术假设数据具有高斯分布(钟形曲线),因此最好事先从数据中删除异常值。它是分类预测建模问题的一种简单而强大的方法。

3.4 决策树

决策树是预测建模机器学习的一种重要算法。决策树模型的表示是二叉树。这是来自算法和数据结构的二叉树,没什么花哨的。每个节点代表一个输入变量 (x) 和该变量上的一个分割点(假设变量是数字)。
在这里插入图片描述
树的叶节点包含一个输出变量 (y),用于进行预测。通过遍历树的分裂直到到达叶节点并在该叶节点处输出类值来进行预测。

树的学习速度很快,预测速度也很快。它们通常对于广泛的问题也很准确,并且不需要对你的数据进行任何特殊准备。

3.5 朴素贝叶斯

朴素贝叶斯是一种简单但功能强大的预测建模算法。

该模型由两种类型的概率组成,可以直接从你的训练数据中计算出来:1)每个类别的概率;2)给定每个 x 值的每个类的条件概率。计算后,概率模型可用于使用贝叶斯定理对新数据进行预测。当你的数据是实值时,通常假设高斯分布(钟形曲线),以便你可以轻松估计这些概率。

在这里插入图片描述
朴素贝叶斯被称为朴素,因为它假设每个输入变量都是独立的。这是一个强有力的假设,对于真实数据来说是不现实的,然而,该技术在处理大量复杂问题时非常有效。

3.6 K-最近邻

KNN算法非常简单,非常有效。KNN 的模型表示是整个训练数据集。简单吧?

通过在整个训练集中搜索 K 个最相似的实例(邻居)并汇总这些 K 个实例的输出变量,对新数据点进行预测。对于回归问题,这可能是平均输出变量,对于分类问题,这可能是模式(或最常见的)类值。

诀窍在于如何确定数据实例之间的相似性。如果你的属性都具有相同的比例(例如,都以英寸为单位),最简单的技术是使用欧几里得距离,你可以根据每个输入变量之间的差异直接计算出一个数字。
在这里插入图片描述
KNN 可能需要大量内存或空间来存储所有数据,但仅在需要预测时才及时执行计算(或学习)。你还可以随着时间的推移更新和管理你的训练实例,以保持预测的准确性。

距离或接近的概念可能会在非常高的维度(大量输入变量)中分解,这会对算法在你的问题上的性能产生负面影响。这被称为维度灾难。它建议你仅使用与预测输出变量最相关的那些输入变量。

3.7 学习向量量化

K-Nearest Neighbors 的一个缺点是你需要保留整个训练数据集。学习向量量化算法(或简称 LVQ)是一种人工神经网络算法,它允许你选择要挂起的训练实例数量并准确了解这些实例的外观。

在这里插入图片描述
LVQ 的表示是码本向量的集合。这些是在开始时随机选择的,并适合在学习算法的多次迭代中最好地总结训练数据集。学习后,码本向量可以像 K-Nearest Neighbors 一样用于进行预测。通过计算每个码本向量与新数据实例之间的距离,找到最相似的邻居(最佳匹配码本向量)。然后返回最佳匹配单元的类值或(回归情况下的实际值)作为预测。如果你重新调整数据以具有相同的范围,例如在 0 和 1 之间,则可以获得最佳结果。

如果你发现 KNN 在你的数据集上提供了良好的结果,请尝试使用 LVQ 来减少存储整个训练数据集的内存需求。

3.8 支持向量机

支持向量机可能是最受欢迎和谈论最多的机器学习算法之一。

超平面是分割输入变量空间的线。在 SVM 中,选择一个超平面来最好地将输入变量空间中的点按它们的类(类 0 或类 1)分开。在二维中,你可以将其可视化为一条线,假设我们所有的输入点都可以被这条线完全隔开。SVM 学习算法通过超平面找到导致类的最佳分离的系数。
在这里插入图片描述
超平面和最近数据点之间的距离称为边距。可以分离这两个类的最佳或最优超平面是具有最大边距的线。只有这些点与定义超平面和构建分类器有关。这些点称为支持向量。它们支持或定义超平面。在实践中,使用优化算法来找到最大化边际的系数值。

SVM 可能是最强大的开箱即用分类器之一,值得在你的数据集上尝试。

3.9 Bagging 和随机森林

随机森林是最流行和最强大的机器学习算法之一。它是一种集成机器学习算法,称为 Bootstrap Aggregation 或 bagging。

bootstrap 是一种强大的统计方法,用于从数据样本中估计数量。比如一个意思。你采集大量数据样本,计算平均值,然后平均所有平均值,以便更好地估计真实平均值。

在 bagging 中,使用相同的方法,但用于估计整个统计模型,最常见的是决策树。获取训练数据的多个样本,然后为每个数据样本构建模型。当您需要对新数据进行预测时,每个模型都会进行预测,并对预测进行平均以更好地估计真实输出值。
在这里插入图片描述
随机森林是对这种方法的一种调整,其中创建了决策树,因此不是选择最佳分割点,而是通过引入随机性来进行次优分割。

因此,为每个数据样本创建的模型与其他模型相比更加不同,但仍然以其独特和不同的方式准确。结合他们的预测可以更好地估计真实的潜在输出值。

如果您使用具有高方差的算法(如决策树)获得了良好的结果,您通常可以通过对该算法进行装袋来获得更好的结果。

3.10 Boosting 和 AdaBoost

在这里插入图片描述
Boosting 是一种集成技术,它试图从多个弱分类器中创建一个强分类器。这是通过从训练数据构建模型,然后创建第二个模型来尝试纠正第一个模型中的错误来完成的。添加模型直到训练集被完美预测或添加最大数量的模型。

AdaBoost 是为二进制分类开发的第一个真正成功的提升算法。这是理解 boosting 的最佳起点。现代提升方法建立在 AdaBoost 之上,最显着的是随机梯度提升机器。

AdaBoost 与短决策树一起使用。在创建第一棵树后,树在每个训练实例上的性能用于衡量下一棵创建的树应该对每个训练实例的关注程度。难以预测的训练数据被赋予更高的权重,而易于预测的实例被赋予更少的权重。模型一个接一个地按顺序创建,每个模型都会更新训练实例上的权重,这些权重会影响序列中下一棵树执行的学习。在构建完所有树之后,将对新数据进行预测,并且每棵树的性能取决于它在训练数据上的准确程度。

由于算法非常重视纠正错误,因此拥有干净的数据并删除异常值非常重要。

四、最后

当面对各种各样的机器学习算法时,初学者会问的一个典型问题是“我应该使用哪种算法?” 问题的答案取决于许多因素,包括: (1) 数据的大小、质量和性质;(2) 可用计算时间;(三)任务的紧迫性;(4) 你想对数据做什么。

在尝试不同的算法之前,即使是经验丰富的数据科学家也无法判断哪种算法的性能最好。尽管还有许多其他机器学习算法,但这些是最受欢迎的。如果你是机器学习的新手,这些将是一个很好的学习起点。本专栏已经对以上的所以算法全部实现,请CSDN搜索:川川菜鸟,主页即可看到机器学习入门到大神专栏。

文章来源: chuanchuan.blog.csdn.net,作者:川川菜鸟,版权归原作者所有,如需转载,请联系作者。

原文链接:chuanchuan.blog.csdn.net/article/details/126415917

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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