五分钟了解机器学习十大算法

2023-11-05


作者 | Fahim ul Haq    译者 | 刘志勇

策划 | 赵钰莹

编辑 | 程序员大白公众号

仅作学术交流,如有侵权,请联系删文

本文为有志于成为数据科学家或对此感兴趣的读者们介绍最流行的机器学习算法。

机器学习是该行业的一个创新且重要的领域。我们为机器学习程序选择的算法类型,取决于我们想要实现的目标。

现在,机器学习有很多算法。因此,如此多的算法,可能对于初学者来说,是相当不堪重负的。今天,我们将简要介绍 10 种最流行的机器学习算法,这样你就可以适应这个激动人心的机器学习世界了!

让我们言归正传!

   一、线性回归

线性回归(Linear Regression)可能是最流行的机器学习算法。线性回归就是要找一条直线,并且让这条直线尽可能地拟合散点图中的数据点。它试图通过将直线方程与该数据拟合来表示自变量(x 值)和数值结果(y 值)。然后就可以用这条线来预测未来的值!

这种算法最常用的技术是最小二乘法(Least of squares)。这个方法计算出最佳拟合线,以使得与直线上每个数据点的垂直距离最小。总距离是所有数据点的垂直距离(绿线)的平方和。其思想是通过最小化这个平方误差或距离来拟合模型。

例如,简单线性回归,它有一个自变量(x 轴)和一个因变量(y 轴)

   二、逻辑回归

逻辑回归(Logistic regression)与线性回归类似,但它是用于输出为二进制的情况(即,当结果只能有两个可能的值)。对最终输出的预测是一个非线性的 S 型函数,称为 logistic function, g()。

这个逻辑函数将中间结果值映射到结果变量 Y,其值范围从 0 到 1。然后,这些值可以解释为 Y 出现的概率。S 型逻辑函数的性质使得逻辑回归更适合用于分类任务。

逻辑回归曲线图,显示了通过考试的概率与学习时间的关系。

   三、决策树

决策树(Decision Trees)可用于回归和分类任务。

在这一算法中,训练模型通过学习树表示(Tree representation)的决策规则来学习预测目标变量的值。树是由具有相应属性的节点组成的。

在每个节点上,我们根据可用的特征询问有关数据的问题。左右分支代表可能的答案。最终节点(即叶节点)对应于一个预测值。

每个特征的重要性是通过自顶向下方法确定的。节点越高,其属性就越重要。

决定是否在餐厅等候的决策树示例。

   四、朴素贝叶斯

朴素贝叶斯(Naive Bayes)是基于贝叶斯定理。它测量每个类的概率,每个类的条件概率给出 x 的值。这个算法用于分类问题,得到一个二进制“是 / 非”的结果。看看下面的方程式。

朴素贝叶斯分类器是一种流行的统计技术,可用于过滤垃圾邮件!

   五、支持向量机(SVM)

支持向量机(Support Vector Machine,SVM)是一种用于分类问题的监督算法。支持向量机试图在数据点之间绘制两条线,它们之间的边距最大。为此,我们将数据项绘制为 n 维空间中的点,其中,n 是输入特征的数量。在此基础上,支持向量机找到一个最优边界,称为超平面(Hyperplane),它通过类标签将可能的输出进行最佳分离。

超平面与最近的类点之间的距离称为边距。最优超平面具有最大的边界,可以对点进行分类,从而使最近的数据点与这两个类之间的距离最大化。

例如,H1 没有将这两个类分开。但 H2 有,不过只有很小的边距。而 H3 以最大的边距将它们分开了。

   六、K- 最近邻算法(KNN)

K- 最近邻算法(K-Nearest Neighbors,KNN)非常简单。KNN 通过在整个训练集中搜索 K 个最相似的实例,即 K 个邻居,并为所有这些 K 个实例分配一个公共输出变量,来对对象进行分类。

K 的选择很关键:较小的值可能会得到大量的噪声和不准确的结果,而较大的值是不可行的。它最常用于分类,但也适用于回归问题。

用于评估实例之间相似性的距离可以是欧几里得距离(Euclidean distance)、曼哈顿距离(Manhattan distance)或明氏距离(Minkowski distance)。欧几里得距离是两点之间的普通直线距离。它实际上是点坐标之差平方和的平方根。

KNN 分类示例

   七、K- 均值

K- 均值(K-means)是通过对数据集进行分类来聚类的。例如,这个算法可用于根据购买历史将用户分组。它在数据集中找到 K 个聚类。K- 均值用于无监督学习,因此,我们只需使用训练数据 X,以及我们想要识别的聚类数量 K。

该算法根据每个数据点的特征,将每个数据点迭代地分配给 K 个组中的一个组。它为每个 K- 聚类(称为质心)选择 K 个点。基于相似度,将新的数据点添加到具有最近质心的聚类中。这个过程一直持续到质心停止变化为止。

   八、随机森林

随机森林(Random Forest)是一种非常流行的集成机器学习算法。这个算法的基本思想是,许多人的意见要比个人的意见更准确。在随机森林中,我们使用决策树集成(参见决策树)。

为了对新对象进行分类,我们从每个决策树中进行投票,并结合结果,然后根据多数投票做出最终决定。

(a)在训练过程中,每个决策树都是基于训练集的引导样本来构建的。

(b)在分类过程中,输入实例的决定是根据多数投票做出的。

   九、降维

由于我们今天能够捕获的数据量之大,机器学习问题变得更加复杂。这就意味着训练极其缓慢,而且很难找到一个好的解决方案。这一问题,通常被称为“维数灾难”(Curse of dimensionality)。

降维(Dimensionality reduction)试图在不丢失最重要信息的情况下,通过将特定的特征组合成更高层次的特征来解决这个问题。主成分分析(Principal Component Analysis,PCA)是最流行的降维技术。

主成分分析通过将数据集压缩到低维线或超平面 / 子空间来降低数据集的维数。这尽可能地保留了原始数据的显著特征。

可以通过将所有数据点近似到一条直线来实现降维的示例。

   十、人工神经网络(ANN)

人工神经网络(Artificial Neural Networks,ANN)可以处理大型复杂的机器学习任务。神经网络本质上是一组带有权值的边和节点组成的相互连接的层,称为神经元。在输入层和输出层之间,我们可以插入多个隐藏层。人工神经网络使用了两个隐藏层。除此之外,还需要处理深度学习。

人工神经网络的工作原理与大脑的结构类似。一组神经元被赋予一个随机权重,以确定神经元如何处理输入数据。通过对输入数据训练神经网络来学习输入和输出之间的关系。在训练阶段,系统可以访问正确的答案。

如果网络不能准确识别输入,系统就会调整权重。经过充分的训练后,它将始终如一地识别出正确的模式。

每个圆形节点表示一个人工神经元,箭头表示从一个人工神经元的输出到另一个人工神经元的输入的连接。

接下来是什么?现在,你已经了解了最流行的机器学习算法的基础介绍。你已经准备好学习更为复杂的概念,甚至可以通过深入的动手实践来实现它们。如果你想了解如何实现这些算法,可以参考 Educative 出品的 Grokking Data Science 课程,该课程将这些激动人心的理论应用于清晰、真实的应用程序。

祝你学习愉快!

作者介绍:

Fahim ul Haq,曾在 Facebook、Microsoft 工作。Educative.io 联合创始人。Educative 旨在帮助学生使用交互式课程来学习编程知识。

原文链接:

https://towardsdatascience.com/the-top-10-ml-algorithms-for-data-science-in-5-minutes-4ffbed9c8672

—完—

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

五分钟了解机器学习十大算法 的相关文章

  • 计算机网络 IP多播

    IP 多播的基本概念 IP 多播 multicast 以前曾译为组播 已成为互联网的一个热门课题 目的 更好地支持一对多通信 一对多通信 一个源点发送到许多个终点 例如 实时信息的交付 如新闻 股市行情等 软件更新 交互式会议及其他多媒体通
  • vue 列表中默认显示几条数据,点击展示全部

    思路 1 获取接口数据的时候 给每一条数据都新增一个showmore false 变量 2 显隐展示 新增一个常量默认展示几条 判断showmore false 展示几条 为true展示全部 3 点击每一项的时候 展示隐藏问题 使用this
  • 第一篇 Spring Cloud Alibaba入门

    1 为什么会出现Spring Cloud Alibaba 1 1Spring Cloud Netflix项目进入维护模式 官网说明地址 https spring io blog 2018 12 12 spring cloud greenwi
  • 目标检测任务简述

    目标检测竟然也可以说是一个比较上游的任务了 以此为基础的下游任务可以是环境感知 自动驾驶 人体关键点检测等 与图像分类的区别 目标检测物体数量不固定 位置不固定 大小不固定 分类一般都是一张图片中是一个物体 位置在正中间 大小占整张图片的大
  • 腾讯云服务器opencloudos8.6 安装 redis

    下载 先检查安装redis的gcc环境有没有 说明gcc已经自己就装有了 下面是安装gcc 的指令 除了这个之外 也可以使用 gcc安装 yum y install gcc automake autoconf libtool make 自动
  • c++11 std::lock函数模板总结

    一 std lock概念 可以一次锁住两个或者两个以上的互斥量 最少锁两个 优点 它不存在这种因为多个线程中因为锁的顺序问题导致死锁的风险问题 std lock 不会存在死锁的原因 比如std lock g i mutex g j mute
  • STL ---- list 使用

    目录 初始化 追加和删除 迭代器 常用的常量 插入数据 删除数据 其他函数 初始化 使用assign函数初始化 l num assign 3 5 l data assign 1 2 3 4 或者定义的时候就初始化 list
  • sqlilab学习打卡

    less 46 order by 如题 显然这一类题目的注入点在order by处 分别测试了sort 1 2 3 4 发现有回显有报错信息 不过这一关回显的内容不是可以被利用的地方 因此只能使用报错注入 盲注 因为之前从来没有接触过这类
  • Unity3D中的Coroutine详解

    本文太乱 推荐frankjfwang的 全面解析Coroutine技术 Unity中的coroutine是通过yield expression 来实现的 官方脚本中到处会看到这样的代码 疑问 yield是什么 Coroutine是什么 un
  • ESXI 中的虚拟机导出到本地

    ovftool exe工具 在windows如已经安装vmware workstation 在安装目录下有个OVFTool目录直接可使用 例如 C Program Files x86 VMware VMware Workstation OV
  • circos - Session 2 - Lesson 2 - Histograms

    create data track draw a histogram which is a plot type track Two kinds of data tracks plots and links create an image w
  • c/c++游戏逆向驱动开发,游戏辅助保护盾

    功能介绍 1 降低游戏权限 提升游戏权限 禁止游戏后台截图 2 保护进程 隐藏进程 进程内存不被读取 如图 部分功能展示 程序降权 NTSTATUS ChangeHandleAccessState ULONG ulProcessId ULO
  • C++,对于数据结构相同但数据处理方式不同的两种类,可以用虚函数列表地址进行区分和相互转化。

    举个简单的例子 一个数据可能是整型的 也可能是浮点数 在运行过程中 类型有可能发生变化 如果统一用浮点数表示 那么整型的取值范围就会变小 如果要兼顾整型的取值范围 一般来说 就得使用更多的空间来表示浮点数或者数的类型 今天突发奇想 直接用虚
  • 思维导图在Ubuntu下的安装与使用

    FreeMind是一款跨平台的 基于GPL协议的自由软件 用Java编写 是一个用来绘制思维导图的软件 其产生的文件格式后缀为 mm 可用来做笔记 脑图记录 脑力激汤等 Ubuntu下只需要在终端输入 sudo apt get instal
  • 设置docker容器镜像加速器(阿里云)

    为了加速Docker容器的拉取 我们可以设置Docker容器镜像加速器 以阿里云镜像加速器为例 您可以按照以下步骤进行设置 1 登录阿里云容器镜像服务 登录阿里云容器镜像服务 注册账号并登录 进入容器镜像服务管理控制台 2 获取镜像加速器地
  • 吃透Chisel语言.09.Chisel项目构建、运行和测试(一)——用sbt构建Chisel项目并运行

    Chisel项目构建 运行和测试 一 用sbt构建Chisel项目并运行 上一大部分介绍了Chisel的基础语法 但除了教程开始的Demo以外 我们还没有开始写Chisel代码 这对于学习编程语言来说是大忌 不过好在Chisel基础语法部分
  • 使用微 PE(U盘)安装 Windows 10 操作系统

    1 下载微PE安装包 官方下载链接 http www wepe com cn download html现在官方需要乐捐才能下载 有条件的同学可以适当的支持一下作者 2 制作PE启动盘 软件下载完成后 就可以开始制作WinPE了 需要注意的
  • 谁在成为产业经济发展的推车人?

    区域发展的新蓝图中 京东云能做什么 它的角色是什么 这个问题背后 隐藏的不仅是京东云自身的能力和价值 更是其作为中国互联网云厂商的代表之一 对 技术 产业 的新论证 作者 皮爷 出品 产业家 关于云厂商 外界更多的认知是在技术和产品层面 不
  • Vulkan Windows VS2022 开发环境配置

    1 确保编译器支持C 17 所以需要Visual Studio 2017及其以上版本 我这里用的是2022 确保环境安装了CMake CMake gui 可选装 2 下载Vulkan SDK 到 https vulkan lunarg co
  • Open3d读写pcd点云文件

    本文为博主原创文章 未经博主允许不得转载 本文为专栏 python三维点云从基础到深度学习 系列文章 地址为 https blog csdn net suiyingy article details 124017716 1 Open3d 安

随机推荐

  • 计算机ip 地址异常,电脑显示IP地址错误怎么办

    有用户和小编反映 电脑无法上网 经过诊断后显示是IP地址错误的原因 如果我们遇到了这样的错误应该怎么办 所以 在下面的内容中 小编要和大家介绍在电脑提示IP地址错误无法上网的具体解决方法 win8 1 14 首先确定是否禁用了本地连接 如果
  • 线索二叉树

    线索二叉树 线索二叉树的概念 1 线索 线索是一种对二叉树的操作 意思是对二叉树进行线索化 其目的是使线索化后的二叉树具有方便被遍历的特点 即不使用递归和栈也可以对线索化之后的树进行中序遍历 2 基于中序遍历的线索二叉树 中序遍历 即先遍历
  • json 数组读取排序问题

    今天遇到一个依赖健值数组读取排序的问题 接口开发同事返回的json格式是这样的 我在小程序调用接口读取数组遍历之后发现排序乱了 price info 08 01 price 9999 booked 0 02 price 99999 book
  • 硬件施工的特点

    硬件施工有别于软件施工 施工管理方法存在差异 相比软件施工 硬件施工的特点 1 硬件施工通常需要垫资 2 设备安全 施工安全要小心 包括失窃 丢失 意外损失等 3 生产供货 物流周期属于强限制 4 品牌型号需明确 变更需要走正式流程 手续不
  • C基础(五)作用域和内存管理

    目录 一 作用域 1 1 作用域和生命周期 二 内存区域划分 三 堆内存的分配和释放 3 1 malloc分配堆内存 3 2 free释放堆内存 3 3 思考 解决函数返回值是指针的问题 方案一 返回一个在堆内存分配的地址指针变量 方案二
  • Java中this关键字

    含义 this关键字指代当前对象 本质就是 创建好的对象的地址 当一个对象创建后 Java虚拟机就会给对象分配一个内存空间和一个引用自身的指针 这个指针的名字就是this 用法 1 访问类中的成员变量 用来区分成员变量和局部变量 publi
  • 关于JDBC中properties默认编码格式为ISO-8859-1导致使用资源绑定器的getString方法出现乱码的解决办法

    在JDBC的注册驱动与连接数据库方面 通常将driver url user password来放入配置文件中 并使用资源绑定器ResourceBundle来更快捷灵活地进行编程 而资源绑定器的实例方法getString key 如果传入的k
  • 区块链相关

    区块链 一个个区块组成的链表 一 密码学原理 哈希碰撞 x不等于y 但是H x H y 不同的输入 输出却一致 这就称为 哈希碰撞 collision resistance puzzle friendly 不能预测输入最终的输出结果 hid
  • Unity 鼠标控制物体的移动

    一 鼠标控制物体移动 using System Collections using System Collections Generic using UnityEngine public class ControlMove MonoBeha
  • 试用74LS161和必要的门电路实现11进制计数器(要求用同步置数法实现)

    题目要求实现11进制计数器 则电路共有11个有效状态 我们可以选择0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010这11个状态作为电路的有效状态 按照上述状态选择方式 应向下图示接
  • 【 PMU】信号生成、采样、分割、估计器应用和误差计算(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 PMU 信号生成 采样 分割 估计器应用和
  • 一个简单的虹膜定位程序

    一个简单的虹膜定位实现 虹膜定位程序 clear close all I imread ip1 jpg f rgb2gray I imhist f 求图像的直方图 F Size M F Size N size f 获取f的行和列 T 84
  • Java驱动方式JDBC连接SQL Server

    Java驱动方式JDBC连接SQL Server 第一步 下载微软官方的SQL Server JDBC 驱动程序 6 0 https www microsoft com zh CN download details aspx id 1177
  • 设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性

    设顺序表va中的数据元素递增有序 试写一算法 将x插入到顺序表的适当位置上 以保持该表的有序性 先建立一个待插入的结点 然后依次与与链表中的各结点的数据域比较大小 找到插入该结点的位置 最后插入该结点 算法如下 include
  • 遇到的debug整理20190107

    已解决 最后的链结失败 错误的值 RT0 o relocation R X86 64 PC32 against symbol phgTetFaceVertexi can not be used when making a shared ob
  • Java学习笔记-多线程

    4 5 多线程 线程与进程 进程 是指一个内存中运行的应用程序 每个进程都有一个独立的内存空间 线程 是进程中的一个执行路径 共享一个内存空间 线程之间可以自由切换 并发执行 一个进程最少有一个线程 线程实际上是进程基础之上的进一步划分 一
  • 【算法】回溯

    子集树 include
  • C++ 指向类成员函数的指针

    记录两种可以间接调用类成员函数的方法 一种是直接使用函数指针 另一种使用C 11的function模板配合bind函数实现对固定类对象的成员函数调用 定义类 新建类的对象 class Cfun public void fun int x c
  • 【Matlab】 读取文件各种方法

    本技术支持指南主要处理 ASCII binary and MAT files 要得到MATLAB中可用来读写各种文件格式的完全函数列表 可以键入以下命令 help iofunMATLAB中有两种文件I O程序 high level and
  • 五分钟了解机器学习十大算法

    作者 Fahim ul Haq 译者 刘志勇 策划 赵钰莹 编辑 程序员大白公众号 仅作学术交流 如有侵权 请联系删文 本文为有志于成为数据科学家或对此感兴趣的读者们介绍最流行的机器学习算法 机器学习是该行业的一个创新且重要的领域 我们为机