十大机器学习算法

article/2025/9/24 4:22:59

初学者应该知道的十大机器学习算法

来源:https://builtin.com/data-science/tour-top-10-algorithms-machine-learning-newbies

机器学习算法被描述为学习一个目标函数 (f),它最好地将输入变量 (X) 映射到输出变量 (Y):Y = f(X)

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

机器学习算法

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

线性回归

线性回归是统计和机器算法中最容易理解的算法之一。

线性回归的表示是一个方程,它通过找到称为系数 (B) 的输入变量的特定权重来描述最适合输入变量 (x) 和输出变量 (y) 之间关系的直线。
在这里插入图片描述
例如:y = B0 + B1 * x
我们将在给定输入 x 的情况下预测 y,线性回归学习算法的目标是找到系数 B0 和 B1 的值。

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

逻辑回归

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

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

逻辑函数看起来像一个大 S,会将任何值转换为 0 到 1 的范围。这很有用,因为我们可以将规则应用于逻辑函数的输出以将值捕捉到 0 和 1(例如,如果小于 0.5 则输出 1) 并预测一个类值。
逻辑回归:逻辑回归曲线图,显示通过考试的概率与学习时间的关系
由于模型的学习方式,逻辑回归所做的预测也可以用作给定数据实例属于 0 类或 1 类的概率。这对于需要给出更多理由的问题是很有用一个预测。

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

线性判别分析

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

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

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

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

分类和回归树

决策树是预测建模机器学习的一种重要算法。

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

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

朴素贝叶斯

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

该模型由两种类型的概率组成,可以直接从您的训练数据中计算出来:
1)每个类别的概率;
2)给定每个 x 值的每个类的条件概率。
计算后,概率模型可用于使用贝叶斯定理对新数据进行预测。当数据是实值时,通常假设高斯分布(钟形曲线),以便可以轻松估计这些概率。
在这里插入图片描述
朴素贝叶斯被称为朴素,因为它假设每个输入变量都是独立的。这是一个强有力的假设,对于真实数据来说是不现实的,然而,该技术在处理大量复杂问题时非常有效。

K-最近邻 (KNN)

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

通过在整个训练集中搜索 K 个最相似的实例(邻居)并汇总这些 K 个实例的输出变量,对新数据点进行预测。

对于回归问题,这可能是平均输出变量,对于分类问题,这可能是模式(或最常见的)类值。

诀窍在于如何确定数据实例之间的相似性。在这里插入图片描述
KNN 可能需要大量内存或空间来存储所有数据,但仅在需要预测时才及时执行计算(或学习)。这个期间你可以随着时间的推移更新和管理训练实例,以保持预测的准确性。

学习向量量化 (LVQ)

K-Nearest Neighbors 的一个缺点是需要保留整个训练数据集。

学习向量量化算法(或简称 LVQ)是一种人工神经网络算法,它允许选择要挂起的训练实例数量并准确了解这些实例的外观。

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

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

支持向量机 (SVM)

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

超平面是分割输入变量空间的线。

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

只有这些点与定义超平面和构建分类器有关。这些点称为支持向量。它们支持或定义超平面。在实践中,使用优化算法来找到最大化边际的系数值。

Bagging 和随机森林

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

Bootstrap是一种强大的统计方法,用于从数据样本中估计数量。

在 bagging 中,使用相同的方法,但用于估计整个统计模型,最常见的是决策树。

获取训练数据的多个样本,然后为每个数据样本构建模型。当你需要对新数据进行预测时,每个模型都会进行预测,并对预测进行平均以更好地估计真实输出值。

在这里插入图片描述
随机森林是对这种方法的一种调整,其中创建了决策树,因此不是选择最佳分割点,而是通过引入随机性来进行次优分割。

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

Boosting 和 AdaBoost

Boosting 是一种集成技术,它试图从多个弱分类器中创建一个强分类器。

这是通过从训练数据构建模型,然后创建第二个模型来尝试纠正第一个模型中的错误来完成的。添加模型直到训练集被完美预测或添加最大数量的模型。

AdaBoost 是为二进制分类开发的第一个真正成功的提升算法。这是理解 boosting 的最佳起点。

AdaBoost 与短决策树一起使用。
在创建第一棵树后,树在每个训练实例上的性能用于衡量下一棵创建的树应该对每个训练实例的关注程度。难以预测的训练数据被赋予更高的权重,而易于预测的实例被赋予更少的权重。

模型一个接一个地按顺序创建,每个模型都会更新训练实例上的权重,这些权重会影响序列中下一棵树执行的学习。

在构建完所有树之后,将对新数据进行预测,并且每棵树的性能取决于它在训练数据上的准确程度。

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


http://chatgpt.dhexx.cn/article/1KnXp3FO.shtml

相关文章

贝叶斯学习

目录 贝叶斯学习 ​贝叶斯学习的特点: 朴素贝叶斯方法: 贝叶斯学习 贝叶斯学习就是基于贝叶斯理论(Bayesian Theory)的机器学习方法。 贝叶斯法则 也称为贝叶斯理论(Bayesian Theorem,或Bayesian Rule&a…

深度强化学习

前言 深度强化学习(DRL)已成为人工智能研究的热点之一。它已被广泛应用于端到端控制、机器人控制、推荐系统、自然语言对话系统等各个领域。本文对深度RL算法及其应用进行了分类,并将现有的DRL算法分为基于模型的方法、无模型的方法和先进RL方法进行介绍。 一、无模…

有效学习的6个方法学习方法

今天看了得到 有效学习的6个方法(上) 的一些感想。 1.价值感 这个就是做这件事情的动力,没有动力的话,是不愿意去做这件事的,效果当然也不会很好。做一件事把这做这件事的意义定的越大,越有动力&#xff0…

如何成为有效学习的高手(许岑)——思维导图

总结自许岑精品课《如何成为有效学习的高手》,图片看不清的可以看下面。 最后有彩蛋! 最后有彩蛋! 最后有彩蛋! 定义 高效学习的定义:找到最适合自己的学习手法,在相对短的时间内集中注意力,以…

如何有效的学习

大一时的我,完全就是个彻头彻尾的学渣,挂科、成绩被同学吊打,每天在宿舍浑噩度日。后来靠这个方法,我能做到最长连续学习10个小时,持续了三个月,也不会觉得很累。 如果你跟之前的我一样,学5分钟…

聊一聊我们应该如何有效学习

我之前写过 关于前端学习路线的一些建议(内含自测题)和 聊一聊加班严重时要如何自我提升 两篇文章。文章内容涉及的是学习路线和时间利用,今天我们就聊聊如何做到有效学习。 这里分享一些关于有效学习的经验,希望能对你有些许帮助…

计算机组成原理-单位转换

字节、字、位、比特之间的关系: 1位1比特;1字2字节;1字节8位;1字16位。 在16位的系统中:1字 2字节(byte) 16(bit) 在32位的系统中:1字 4字节(byte)32&…

【计算机组成原理】computer data reputation数值数据表示

Overview: 1.数据表示的目的(略) 2.数值数据的表示 3.非数值数据的表示 4.数值信息的校验(重点) 1.数据表示的目的: 组织数据,方便计算机硬件使用(汇编语言也具有数据类型&…

计算机组成原理:3.7虚拟存储器

3.7虚拟存储器 思维导图 虚拟存储器的基本概念 虚拟存储器将主存或辅存的地址空间统一编址,形成一个庞大的地址空间,用户可以在里面进行自由编址,而不需要在乎实际的主存容量和程序存放的位置 虚拟地址比实际地址大 过程 CPU使用虚地址时…

计算机原理概述

目录 计算机的发展史(稍作了解即可) 从硬件方面来了解计算机 程序的存储 广义数据在内存的存储问题 CPU的基本工作原理 让我们来从以下两个方面来了解计算机: 1.从硬件角度学习计算机的基本原理————CPU的基本工作原理 2.从操作系统…

《计算机组原理》存储器(一)

4.1概述4.1.1存储器的分类4.1.2 存储器的层次结构 4.2主存储器4.2.2半导体存储芯片简介4.2.3 随机存取存储器4.2.4只读存储器4.2.5存储器与CPU的连接4.2.6 存储器的校验4.2.7提高访存速度的措施 4.1概述 4.1.1存储器的分类 4.1.2 存储器的层次结构 一般来说,高速越…

计算机原理(硬件角度—CPU)

​ 一、概述 1、关于计算机原理: (1)从硬件角度学习计算机的基本工作原理——CPU的基本工作原理。 (2)从操作系统软件角度,学习我们的程序是如何工作起来的——进程管理。 2、程序指令数据 程序算法&…

计算机组成原理——数据的表示与运用

数值与编码 进位记数制及其相互转换十进制、二进制、八进制、十六进制真值、机器数(原码、反码、补码)字符与字符串的编码(小端和大端方式存储 )数据校验奇偶校验、CRC冗余校验、海明校验 定点数的表示和运算 无符号数的表示&…

【计算机组成原理】04-计算机的计算单位

一、容量单位 字节:1Byte8bits ◆ 理论上只认识0/1两种状态 ◆ 在物理层面,高低电平记录信息 ◆ 0/1能够表示的内容太少了,需要更大的容量表示方法 1G内存,可以存储多少字节的数据?可以存储多少比特数据?…

计算机组成原理_虚拟存储器

计算机组成原理总目录 虚拟存储器 虚拟存储器主要解决的是用于解决存储数据的容量问题 例如在电脑的辅存磁盘中存放了几百GB甚至几TB的数据,包括几十个上百个程序 但我们在实际运行时,并不需要使用到所有的数据,而只需要用到其中一个或者两个…

计算机原理-数据

数据 二进制 十进制(人类use) 十六进制 (2,4,16 是权) 1011.0112^30*2^22^12^00*2^-11*2^-21*2^-3802100.250.125 27.375 七进制转十进制(权不一样) 604.01 6*7^20*7^14*7^00*7…

(一)计算机组成原理之计算机系统导论(冯诺依曼计算机以及cpu,机器字长,MAR,存储单元,MDR,存储字长等)

❤️ 知识点 1.冯诺依曼计算机的构成:运算器,控制器,存储器,输入设备和输出设备 2.计算机的硬件组成:.原始的冯诺依曼在结构上是以运算器为中心,而发展到现在,以转向以存储器为中心。&#xff…

计算机组成原理:如何衡量计算机的性能

在计算机组成原理乃至体系结构中,“性能”都是最重要的一个主题。学习和研究计算机组成原理,就是在理解计算机是怎么运作的,以及为什么要这么运作。“为什么”所要究竟的事情,很多时候就是提升“性能” 什么是性能?时…

计算机组成原理 --- 计算机性能指标

一.存储器的性能指标 1.MAR是地址寄存器,MDR是数据寄存器 2.MAR的位数能够体现最多存多少个地址,而每个地址就代表一个存储单元,所以MAR的位数能表示存储器中有多少个存储单元 3.MDR是数据寄存器,它的容纳极限 每个存储单元的…

通用计算机器

还是下面这句话: 将固定的资源在所有使用者中分配,而不是为每一个使用者分配固定额度的资源。 还是那个简单的倒换,通用计算机就设计出来了。 人们就意识到内存和CPU之间的总线成了瓶颈,于是人们拼命缩短这条总线的长度&#xff…