干货 | 轻松看懂机器学习十大常用算法

article/2025/9/13 9:55:53


通过本篇文章可以对ML的常用算法有个常识性的认识,没有代码,没有复杂的理论推导,就是图解一下,知道这些算法是什么,它们是怎么应用的,例子主要是分类问题。

每个算法都看了好几个视频,挑出讲的最清晰明了有趣的,便于科普。
以后有时间再对单个算法做深入地解析。

今天的算法如下:

  • 决策树

  • 随机森林算法

  • 逻辑回归

  • SVM

  • 朴素贝叶斯

  • K最近邻算法

  • K均值算法

  • Adaboost 算法

  • 神经网络

  • 马尔可夫

1. 决策树

根据一些 feature 进行分类,每个节点提一个问题,通过判断,将数据分为两类,再继续提问。这些问题是根据已有数据学习出来的,再投入新数据的时候,就可以根据这棵树上的问题,将数据划分到合适的叶子上。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

2. 随机森林

在源数据中随机选取数据,组成几个子集

640?wx_fmt=png

S 矩阵是源数据,有 1-N 条数据,A B C 是feature,最后一列C是类别

640?wx_fmt=png

由 S 随机生成 M 个子矩阵

640?wx_fmt=png

这 M 个子集得到 M 个决策树
将新数据投入到这 M 个树中,得到 M 个分类结果,计数看预测成哪一类的数目最多,就将此类别作为最后的预测结果

640?wx_fmt=png

3. 逻辑回归

当预测目标是概率这样的,值域需要满足大于等于0,小于等于1的,这个时候单纯的线性模型是做不到的,因为在定义域不在某个范围之内时,值域也超出了规定区间。

640?wx_fmt=png

所以此时需要这样的形状的模型会比较好

640?wx_fmt=png

那么怎么得到这样的模型呢?

这个模型需要满足两个条件 大于等于0,小于等于1
大于等于0 的模型可以选择 绝对值,平方值,这里用 指数函数,一定大于0
小于等于1 用除法,分子是自己,分母是自身加上1,那一定是小于1的了

640?wx_fmt=png

再做一下变形,就得到了 logistic regression 模型

640?wx_fmt=png

通过源数据计算可以得到相应的系数了

640?wx_fmt=png

最后得到 logistic 的图形

640?wx_fmt=png

4. SVM

support vector machine

要将两类分开,想要得到一个超平面,最优的超平面是到两类的 margin 达到最大,margin就是超平面与离它最近一点的距离,如下图,Z2>Z1,所以绿色的超平面比较好

640?wx_fmt=png

将这个超平面表示成一个线性方程,在线上方的一类,都大于等于1,另一类小于等于-1

640?wx_fmt=png

点到面的距离根据图中的公式计算

640?wx_fmt=png

所以得到 total margin 的表达式如下,目标是最大化这个 margin,就需要最小化分母,于是变成了一个优化问题

640?wx_fmt=png

举个栗子,三个点,找到最优的超平面,定义了 weight vector=(2,3)-(1,1)

640?wx_fmt=png

得到 weight vector 为(a,2a),将两个点代入方程,代入(2,3)另其值=1,代入(1,1)另其值=-1,求解出 a 和 截矩 w0 的值,进而得到超平面的表达式。

640?wx_fmt=png

a 求出来后,代入(a,2a)得到的就是 support vector

a 和 w0 代入超平面的方程就是 support vector machine

5. 朴素贝叶斯

举个在 NLP 的应用

给一段文字,返回情感分类,这段文字的态度是positive,还是negative

640?wx_fmt=png

为了解决这个问题,可以只看其中的一些单词

640?wx_fmt=png

这段文字,将仅由一些单词和它们的计数代表

640?wx_fmt=png

原始问题是:给你一句话,它属于哪一类
通过 bayes rules 变成一个比较简单容易求得的问题

640?wx_fmt=png

问题变成,这一类中这句话出现的概率是多少,当然,别忘了公式里的另外两个概率

栗子:单词 love 在 positive 的情况下出现的概率是 0.1,在 negative 的情况下出现的概率是 0.001

640?wx_fmt=png

6. K最近邻

k nearest neighbours

给一个新的数据时,离它最近的 k 个点中,哪个类别多,这个数据就属于哪一类

栗子:要区分 猫 和 狗,通过 claws 和 sound 两个feature来判断的话,圆形和三角形是已知分类的了,那么这个 star 代表的是哪一类呢

640?wx_fmt=png

k=3时,这三条线链接的点就是最近的三个点,那么圆形多一些,所以这个star就是属于猫

640?wx_fmt=png

7. K均值

想要将一组数据,分为三类,粉色数值大,黄色数值小
最开心先初始化,这里面选了最简单的 3,2,1 作为各类的初始值
剩下的数据里,每个都与三个初始值计算距离,然后归类到离它最近的初始值所在类别

640?wx_fmt=png

分好类后,计算每一类的平均值,作为新一轮的中心点

640?wx_fmt=png

几轮之后,分组不再变化了,就可以停止了

640?wx_fmt=png

640?wx_fmt=png

8. Adaboost

adaboost 是 bosting 的方法之一

bosting就是把若干个分类效果并不好的分类器综合起来考虑,会得到一个效果比较好的分类器。

下图,左右两个决策树,单个看是效果不怎么好的,但是把同样的数据投入进去,把两个结果加起来考虑,就会增加可信度

640?wx_fmt=png

adaboost 的栗子,手写识别中,在画板上可以抓取到很多 features,例如 始点的方向,始点和终点的距离等等

640?wx_fmt=png

training 的时候,会得到每个 feature 的 weight,例如 2 和 3 的开头部分很像,这个 feature 对分类起到的作用很小,它的权重也就会较小

640?wx_fmt=png

而这个 alpha 角 就具有很强的识别性,这个 feature 的权重就会较大,最后的预测结果是综合考虑这些 feature 的结果

640?wx_fmt=png

9. 神经网络

Neural Networks 适合一个input可能落入至少两个类别里

NN 由若干层神经元,和它们之间的联系组成
第一层是 input 层,最后一层是 output 层

在 hidden 层 和 output 层都有自己的 classifier

640?wx_fmt=png

input 输入到网络中,被激活,计算的分数被传递到下一层,激活后面的神经层,最后output 层的节点上的分数代表属于各类的分数,下图例子得到分类结果为 class 1

同样的 input 被传输到不同的节点上,之所以会得到不同的结果是因为各自节点有不同的weights 和 bias

这也就是 forward propagation

640?wx_fmt=png

10. 马尔可夫

Markov Chains 由 state 和 transitions 组成

栗子,根据这一句话 ‘the quick brown fox jumps over the lazy dog’,要得到 markov chain

步骤,先给每一个单词设定成一个状态,然后计算状态间转换的概率

640?wx_fmt=png

这是一句话计算出来的概率,当你用大量文本去做统计的时候,会得到更大的状态转移矩阵,例如 the 后面可以连接的单词,及相应的概率

640?wx_fmt=png

生活中,键盘输入法的备选结果也是一样的原理,模型会更高级。

640?wx_fmt=png


∞∞∞



640?wx_fmt=jpeg&wx_lazy=1

IT派 - {技术青年圈} 持续关注互联网、区块链、人工智能领域 640?wx_fmt=jpeg&wx_lazy=1



公众号回复“机器学习”

邀你加入{ IT派AI机器学习群 } 



http://chatgpt.dhexx.cn/article/eAvS0p7M.shtml

相关文章

常用十种算法

目录 1、二分查找算法(非递归)二分查找算法(非递归)介绍二分查找算法(非递归)代码实现 2、分治算法分治算法介绍分治算法的基本步骤分治算法最佳实践汉诺塔 3、动态规划动态规划算法介绍应用场景——背包问题 4、KMP算法*next数组生成KMP 算法介绍应用场…

Java常用算法

Java常用算法 一、二分查找算法(非递归) 1、介绍 ​ 二分查找法只适用于从有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找。 ​ 二分查找法的运行时间为对数时间O(㏒₂n) ,即查找到需要的目标位置最多只需要㏒…

五大常用算法学习笔记

一。分治算法:快速排序、归并排序、大整数乘法、二分查找、递归(汉诺塔) 基本概念:把一个复杂的问题分成若干个相同或相似的子问题,再把子问题分成更小的子问题… , 知道最后子问题可以简单的直接求解&…

常见算法

首页 论坛 新闻 文章 下载 源码 网友作品 合作开发 招聘 刻盘服务 编程爱好者光盘 请登陆或者注册新用户 用户名 密 码 记住密码 注册新用户 忘记密码了 您所在位置:编程爱好者论坛 — C/C语言讨论区 — 我见到过的一些常用算法 C/C语言讨论区:…

最常用算法汇总(一)

一、贪心算法 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整…

十大常用算法

前言 最近在研究一些经常用到的东西想把它们做一个汇总,想了想用到最多的应该是排序算法,所以对排序算法做了个总结,并自己用C实现了一下。 一、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序…

常用十大算法

这里的讲解图主要使用的是尚硅谷韩顺平老师的图,请周知。 目录 二分查找(非递归) 分治算法 动态规划算法 KMP算法 贪心算法 普利姆(Prim)算法 克鲁斯卡尔(Kruskal)算法 迪杰斯特拉&a…

常见十大算法

优劣术语 - 稳定性 原本a在b前,ab,排序之后位置任然不变。不稳定性则相反 - 内排序 所有排序都在内存中完成。外排序数据放磁盘,排序通过磁盘内存的数据传输 - 事件复杂度 算法执行耗费的时间 - 空间复杂度 算法执行耗费的内存 In/out-place: 不占/占额…

常见的10种算法

常见的10种算法 数据结构研究的内容:就是如何按一定的逻辑结构,把数据组织起来,并选择适当的存储表示方法把逻辑结构组织好的数据存储到计算机的存储器里。 算法研究的目的是为了更有效的处理数据,提高数据运算效率。数据的运算是…

常用的10 种算法

译者:claudio jandan.net/2014/05/31/10-algorithms.html Reddit 有篇帖子介绍了算法对我们现在生活的重要性,以及哪些算法对现代文明所做贡献最大。如果对算法有所了解,读这篇文章时你可能会问 “作者知道算法为何物吗?”&#x…

常用的十种算法

十种算法 1、二分查找算法(非递归) 1、介绍: 1)二分查找只适用于从有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找 2)二分查找算法的运行时间为对数时间O&…

基础夯实:基础数据结构与算法(二)

基础夯实:基础数据结构与算法(二) 常见的10种算法1、递归算法例题1:计算n!例题2:斐波那契数列例题3:递归将整形数字转换为字符串例题4:汉诺塔例题5:猴子吃桃例题6&#x…

蓝桥杯知识点汇总:基础知识和常用算法

文章目录 JAVA基础语法:算法竞赛常用的JAVA API:算法和数据结构简单算法简单数据结构图论数学贪心动态规划 补充省赛题解待更: 此系列包含蓝桥杯(软件类)所考察的绝大部分知识点。一共分为 基础语法, 常用…

HBA的WWN号以及存储区域网络

古驰古驰巴拉巴拉,今天讲一下存储区域网络和wwn号以及查看wwn号的方法 存储区域网络(Storage Area Network,简称SAN)采用网状通道(Fibre Channel ,简称FC,区别与Fiber Channel光纤通道&#xf…

nsw hnsw

参考了很多该博客 https://blog.csdn.net/u011233351/article/details/85116719,感谢博主。 参考论文《Approximate nearest neighbor algorithm based on navigable small world graphs》 《Efficient and robust approximate nearest neighbor search using Hie…

思科光交MDS9710绑定WWN并激活新的wwn

第一步、查看所有的wwn号 #命令 #show flogi database 内容示例: 第二步、查看是否有发现新的wwn号 图中为新发现的wwn号 第三步、将该wwn号加入到对应的zone下 #先筋肉config模式 #再进入对应的zone zone name Zone_P11_****——** vsan 1 #新增新存在的wwn号…

www.wwwwwwwwww

复习题 一、问答题 1.Anaconda的优点有哪些? (1)开源。 (2)安装过程简单。 (3)⾼性能使⽤Python和R语⾔。 (4)免费的社区⽀持。 (5) Conda包…

NWD(2022)

A Normalized Gaussian Wasserstein Distance for Tiny Object Detection Abstract 检测微小物体是一个非常具有挑战性的问题,因为微小物体仅包含几个像素大小。我们证明,由于缺乏外观信息,最先进的检测器无法在微小物体上产生令人满意的结…

SAN环境中WWN,WWNN,WWPN的区别

存储区域网络(Storage Area Network,简称SAN)采用网状通道(Fibre Channel ,简称FC,区别与Fiber Channel光纤通道)技术,通过FC交换机连接存储阵列和服务器主机,建立专用于…

WWN,WWNN,WWPN介绍

WWN是HBA卡用的编号吧,每一个光纤通道设备都有一个唯一的标识,称为WWN(world wide name),由IEEE负责分配。在有多台主机使用磁盘阵列时,通过WWN号来确定哪台主机正在使用指定的LUN(或者说是逻辑…