机器学习必知必会10大算法!

2023-05-16

 Datawhale干货 

作者:Fahim ul Haq,编译:InfoQ

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

01 线性回归

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

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

52783719bb73b59f3bd6d1c833cfe944.png

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

02 逻辑回归

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

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

0c08ea84f624c3862ca731465dfb76ad.png

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

03 决策树

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

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

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

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

4a6ae3c048be234d0d7064dc731280ce.png

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

04 朴素贝叶斯

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

66355955621667b588c1ee52e2b28aa1.png

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

05 支持向量机(SVM)

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

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

378555769100140177041d3509c7f621.png

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

06 K- 最近邻算法(KNN)

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

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

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

ab1022dcc47da24dd7f382b375a1f7b4.png

▲KNN 分类示例

07 K- 均值

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

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

33c70a1e8d5d8543b10146ba214b8279.png

08 随机森林

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

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

85d7f263e63d99a41866d4b04146b035.png

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

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

09 降维

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

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

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

a7780e2132aabc4e1f33cf062a861a23.png

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

10 人工神经网络(ANN)

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

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

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

361be52034b79d83f54e988f68dd778e.png

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

接下来是什么?现在,你已经了解了最流行的机器学习算法的基础介绍。你已经准备好学习更为复杂的概念,甚至可以通过深入的动手实践来实现它们。如果你想了解如何实现这些算法,可以参考 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

ea0796c2e7d40009eea6070a0546f54b.png

整理不易,三连

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

机器学习必知必会10大算法! 的相关文章

  • 无人机飞控平台ArduPilot源码入门教程 - 首页

    原文链接 简介 ArduPilot代码库有点大 核心的ardupilot git树大概有70万行代码 对新人来说这有点吓人 这个文档打算给出一点建议 关于如何快速上手相关代码 我们假设你熟悉C 43 43 的关键概念 另外好多例子都是假设你
  • C++ 常见面试和笔试坑点总结(持续更新)

    题目一 xff1a 下面的程序是执行if还是else span class hljs keyword int span a 61 span class hljs number 2 span span class hljs keyword i
  • 速腾聚创32线雷达雷达,RVIZ显示激光点云

    1 下载驱动文件 ahren 64 ahren ld ws src git clone https github com RoboSense LiDAR ros rslidar 2 在工作空间ld ws目录下编译 ahren 64 ahre
  • Attitude Control (Copter Code Overview)

    Attitude Control Copter Code Overview Between AC3 1 5 and AC 3 2 the attitude control logic was restructured as part of
  • ROS使用OpenCV读取图像并发布图像消息在rviz中显示

    思路 xff1a xff08 1 xff09 使用opencv读取本地图像 xff08 2 xff09 调用cv bridge CvImage xff08 xff09 toImageMsg 将本地图像发送给rviz显示 1 使用opencv
  • 关于ASP.NET 不允许所请求的注册表访问权。

    这个问题困扰了我一天 xff0c 到现在头还是疼的 xff0c 参考了网上N个解决办法 xff0c 最后问了孟宪会老师 xff0c 老师说 匿名账户没有访问注册表的权限 xff0c 通过老师提醒 xff0c 我试着启用GUEST账户 xff
  • ASP.NET网站安装部署,加入注册码验证等等

    最近通过自己实践 xff0c 完成了ASP NET网站安装部署 xff0c 实现了SQL打包 xff0c 实现了配置文件的打包等等 xff0c 并实现了注册码的验证等等 xff0c 如有需要请跟帖 xff0c 留下联系方式
  • 手把手教你Asp.net三层架构

    首先简单介绍下三层乃至多层架构 xff08 高手跳过 xff09 xff1a BLL 就是business Logic laywer xff08 业务逻辑层 xff09 他只负责向数据提供者也就是DAL调用数据 然后传递给客户程序也就是UI
  • ASP.NET 自定义控件 自定义属性的使用

    最近在给公司一个老的ASP平台进行改版 xff0c 由于这个平台运行时间太长 xff0c 期间有很多程序员进行过修改 xff0c 导致数据库显得很乱 在实际改版时架构采用了多层架构 xff0c 引入工厂模式 xff0c 面向接口 对于资讯类
  • 我的2011之—混迹于中等城市的.net程序员

    眼瞅着走过了2011年 xff0c 过了这一年我就奔三了 2011年完成了几件大事 xff1a 生了儿子 xff0c 买了房子 按说这生活的本质在逐步体现 xff0c 小日子也算凑合吧 可是怎么确无法高兴起来 到底是为什么呢 xff1f 说
  • 树莓派3B+踩坑记录:一、安装Ubuntu Mate

    树莓派3B 43 踩坑记录 xff1a 一 安装Ubuntu Mate 2020 07 27 05 44 15 来源 互联网 分类 xff1a 相关文章 树莓派3B 43 踩坑记录 xff1a 一 安装Ubuntu Mate 树莓派 xff
  • 1. 从0开始学ARM-安装Keil MDK uVision集成开发环境

    关于ARM的一些基本概念 xff0c 大家可以参考我之前的文章 xff1a 到底什么是Cortex ARMv8 arm架构 ARM指令集 soc xff1f 一文帮你梳理基础概念 科普 二 安装Keil MDK uVision集成开发环境
  • Linux信号量(3)-内核信号量

    概念 Linux内核的信号量在概念和原理上和用户态的System V的IPC机制信号量是相同的 xff0c 不过他绝不可能在内核之外使用 xff0c 因此他和System V的IPC机制信号量毫不相干 如果有一个任务想要获得已经被占用的信号
  • 二维码识别的原理

    二维码的特征定位和信息识别 背景介绍 视觉的方法可以用来估计位置和姿态 最容易想到的是在目标上布置多个容易识别的特征 xff0c 这样使用opencv相机标定和 相机畸变矫正 轮廓提取 solvepnp来获取目标相对于相机的位姿 在实际使用
  • Linux iptables命令详解

    iptables 是 Linux 防火墙系统的重要组成部分 xff0c iptables 的主要功能是实现对网络数据包进出设备及转发的控制 当数据包需要进入设备 从设备中流出或者由该设备转发 路由时 xff0c 都可以使用 iptables
  • 一座5g基站造价多少?

    想知道5G基站的大致价格 xff0c 我们可以通过中国移动2020年5G设备采购方案简单计算得出 xff1a 本次采购5G基站数量为23 2万个 xff0c 采购总额为亿元 xff0c 折合每个5G基站的成本在16万元左右 相当于4G基站价
  • 华为交换机查看端口相关信息常用命令,排查故障法宝,转发收藏

    一 查看接口状态 1 显示接口的运行状态和相关信息 display interface Ethernet brief 查看以太网端口的简要信息 xff0c 物理端口是否连通 xff0c 端口是否是全双工 xff0c 带宽是多少 xff0c
  • 从0学Linux驱动第一期视频已经录制完毕,资料全部奉送

    历时4个多月 xff0c 第一期Linux驱动视频录制完毕 xff0c 一共32期 xff0c 现在全部同步到了B站 如果你觉得视频对你有用 xff0c 建议大家多多点赞 xff0c 投投免费硬币 xff0c 算是对我辛苦的劳动的认可 视频
  • 千年虫”是什么东西?一个在计算机诞生之初,遗留下的巨大BUG

    说起来 xff0c 现在社会科技中 xff0c 除了真正学过计算机专业的人 xff0c 大部分人对于 千年虫 这个称号都有些陌生 xff0c 甚至有些人连听都没听过 xff0c 不知道的网友听到 虫 这个字可能还会脑补出一大堆不明生物的样子
  • 小灵通为什么会退市?

    价廉物美的 小灵通 退市最主要的原因 xff0c 其一是因为 小灵通 本身月租太便宜 xff0c 让别的移动运营商无钱可挣 xff1b 其二则是中国电信自己的CDMA网络也发展起来了 xff0c 小灵通 让自己无钱可挣 所以 小灵通 必须退

随机推荐

  • Camera | 4.瑞芯微平台MIPI摄像头应用程序编写

    前面3篇我们讲解了camera的基础概念 xff0c MIPI协议 xff0c CSI2 xff0c 常用命令等 xff0c 本文带领大家入门 xff0c 如何用c语言编写应用程序来操作摄像头 Linux下摄像头驱动都是基于v4l2架构 x
  • Camera | 9.如何让camera支持闪光灯?-基于rk3568

    一 闪光灯基本原理 工作模式 Camera flash led分flash和torch两种模式 flash xff1a 拍照时上光灯瞬间亮一下 xff0c 电流比较大 xff0c 目前是1000mA xff0c 最大电流不能超过led最大承
  • 我的新书上架了!

    talk is cheap xff0c show you my book xff01 新书 从0开始学ARM 终于在各大平台上架了 xff01 xff01 一 关于本书 1 本书主要内容 ARM体系架构是目前市面上的主流处理器体系架构 xf
  • 签名预售活动圆满结束!各位敬等快递,第一个付款的兄弟来领取大礼!

    我的新书经过千难万险终于上架 xff0c 为了感谢众多老铁的支持 xff0c 所以上周日搞了签名预售的活动 xff0c 挂了300本 xff0c 一上线很快就被大家买光了 xff0c 留言需要单独写一些话的老铁 xff0c 我也都尽量满足了
  • Android P(Android 9)出现Detected problems with API compatibility问题解决

    安卓系统升级到Android P后打开应用出现Detected problems with API compatibility问题 xff0c 如下图 通过查询发现是 Android P 后谷歌限制了开发者调用非官方公开API 方法或接口
  • eclipse + GDB + JLink 搭建MCU调试环境

    安装Java环境 1 进入Java官网 http www oracle com technetwork java javase downloads index html 2 下载安装包 如果是先要安装Java开发环境 xff0c 就安装JD
  • Jeston TX2 使用cmake 运行测试realsense D435i相关代码(C++)

    Jeston TX2 使用cmake 运行测试realsense D435i相关代码 xff08 C 43 43 xff09 前言 xff1a 我这些天作毕设的TX2上面的Jetpack包是4 3的 然后我又自己用JetPack4 6 1包
  • C++ 服务器通过Tcp传输图片 到 QT客户端显示

    C 43 43 服务器通过Tcp传输图片 到 QT客户端显示 简单的方法通过流数据传输图片 xff0c 并且在QT上面显示出来这里贴出核心代码 xff0c 供大家参考 xff1a 先附上资源源码 xff1a Qt客户端和C 43 43 服务
  • Docker 安装部署

    目录 Docker 安装部署 一 Docker 安装 二 设置镜像加速 三 网络优化 开启路由转发的作用 四 总结 docker server端配置文件建议配置 Docker 安装部署 一 Docker 安装 开源社区 xff1a dcok
  • 学习笔记:SLAM_因子图优化

    SLAM 因子图优化 Factor graoh 模型 概率模型到因子图模型 定义一个简单的机器人问题 xff08 SLAM xff09 假设有一个机器人在往前运动 xff0c 运动过程中能观测到两个路标点 xff0c 定义了三个时间 xff
  • [NVIDIA]-2 从零入手 Jetson Xavier NX 内核编译、源码编译流程

    NVIDIA 从零入手 Jetson Xavier NX 内核编译 源码编译流程 注明 xff1a 感谢网友提醒 xff0c 我当时买的时候nx套件还没开售 xff0c 因为核心板兼容b01 xff0c 先买了核心板和b01的板子合在一起用
  • [NVIDIA]-1 入手Jetson Xavier NX 刷机+开机配置+系统烧录+Bring up

    NVIDIA 入手 Jetson Xavier NX 刷机 43 开机配置 43 系统烧录 43 Bring up 注明 xff1a 感谢网友提醒 xff0c 我当时买的时候nx套件还没开售 xff0c 因为核心板兼容b01 xff0c 先
  • RTOS解读一

    什么是RTOS 维基百科定义 实时操作系统 Real Time Operating System RTOS xff0c 通常读作 34 R toss 34 xff0c 指的是专为实时应用而设计的多任务操作系统 其应用场合包括嵌入式系统 可编
  • switch-case使用方法

    switch case 语句判断一个变量与一系列值中某个值是否相等 xff0c 每个值称为一个分支 switch case 语句语法格式如下 xff1a switch语句应用举例1 xff1a public class VariableTe
  • Linux单片机串口通信总结

    这是一个目录 Linux与单片机串口通信运行ROS串口发送节点后异常中断栈溢出问题catkin make报错 xff1a 函数未定义的引用ERROR L107 ADDRESS SPACE OVERFLOW串口实验总结程序组织串口调试 Lin
  • Apache Options指令详解

    前言 xff1a Options指令是Apache配置文件中一个比较常见也比较重要的指令 xff0c Options指令可以在Apache服务器核心配置 server config 虚拟主机配置 virtual host 特定目录配置 di
  • 欠驱动机械臂运动学仿真

    这是个目录 三轴机械臂建模及运动学仿真各仿真项目的个人理解三轴机械臂 xff08 欠驱动 xff09 分析难点更改RTB中逆解求解源码求解析解数值求解工作空间筛选 实用的解析解法总结 三轴机械臂建模及运动学仿真 在开始具体的机械结构及驱动结
  • postman安装使用教程(标贝科技)

    postman安装使用教程 文章目录 postman安装使用教程前言一 postman安装二 postman使用 前言 postman是Chrome浏览器的插件 xff0c 是一款功能强大的网页调试工具 xff08 接口调试神器 xff09
  • 流媒体推流原理

    我们知道一个完整的直播过程 xff0c 包括采集 处理 编码 封包 推流 传输 转码 分发 解码 播放等 xff0c 这一过程所采用的技术 xff0c 我们也称之为 流媒体技术 其中推流是指使用推流工具等内容抓取软件把直播内容传输到服务器的
  • 机器学习必知必会10大算法!

    Datawhale干货 作者 xff1a Fahim ul Haq xff0c 编译 xff1a InfoQ 现在 xff0c 机器学习有很多算法 如此多的算法 xff0c 可能对于初学者来说 xff0c 是相当不堪重负的 今天 xff0c