白话机器学习2:快速理解不同分类模型

一、支持向量机(SVM)

想象你在桌子上有一堆苹果和橘子,你的任务是用一根棍子(在二维空间里,这根棍子就是一条直线)把它们分开。苹果在棍子的一边,橘子在棍子的另一边。这就是分类问题的基本形式,而SVM就是用来解决这样的问题的。

但是,可能有很多不同的方式可以放置这根棍子以分开苹果和橘子。支持向量机的目标是找到一种方式,不仅仅是分开它们,而是以这样的方式分开它们:它能给每边的空间最大化,这样即使你的苹果或橘子稍微移动一点点(或者新的苹果和橘子加入到桌子上),它们仍然在正确的一边。在SVM的语言中,我们想要的是找到那根棍子,使得它和最近的苹果或橘子之间的距离(即"间隔")尽可能大。

但是生活并不总是那么简单,有时候你不能用一根直线来完美地分开所有的苹果和橘子,因为它们可能混在一起。这时SVM有一个技巧,它就像给这些水果穿上了"魔法眼镜",通过这些眼镜看,原本混在一起的水果就像在空中飘着,从而你可以用一个"平面"来分开它们,而不再是一条线。在数学术语中,这个"魔法眼镜"就是所谓的"核技巧",它可以让数据在更高的维度上被表示,以便更容易地被分割。

二、K-近邻算法(KNN)

假设你在一个宴会上,看到一群人分成几个小圈子聚在一起。这些小圈子可能是根据共同的兴趣或者相似的话题自然形成的。现在,一个新的嘉宾到达了宴会,他不确定应该加入哪个小圈子。

这时候,KNN算法就像是一个"社牛",他会建议新来的嘉宾应该加入哪个小圈子。他的做法是这样的:首先,他会看看新嘉宾周围最近的几个人("最近的"就是指在空间上距离最近),然后根据这些人所在的小圈子来决定新嘉宾最有可能融入的小圈子。换句话说,如果新嘉宾周围有3个人在谈论科技,2个人在讨论旅游,那么他很可能会被建议加入谈论科技的那个小圈子。

这个"几个"人的具体数量,就是KNN里的"K"值。如果你设定K=3,那么你只考虑最近的3个人;如果K=5,你就考虑最近的5个人。K的选择可能会影响最后的决策,因为它改变了你考虑的邻居数量。

在机器学习中,这个比喻就是KNN在进行分类时的工作原理。你有一堆已经分类好的数据(就像宴会上已经形成的小圈子),当一个新的数据点出现时(新嘉宾),KNN算法会查看它附近最相似的K个数据点,然后根据"多数原则"将新数据点归类到最常见的类别中。

所以KNN算法非常直观:它就是看看你的"邻居"(最近的点)是谁,然后你就被归类为和你的邻居们最相似的分类。这种方法是基于这样一个假设:相似的事物往往是接近的。

三、随机森林算法(RF)

想象一下你在一个森林里,你需要决定今天晚上吃什么。你没有单凭自己的想法决定,而是询问了森林里的100个随机遇到的朋友。每个朋友根据自己的经验给了你一个建议。最后,你选择了被推荐次数最多的食物。

随机森林的工作原理与此类似。它是一个由很多决策树组成的模型,"森林"就是代表了很多的决策树。"随机"二字的含义是每个决策树在建立的时候都使用了随机的过程,确保它们各不相同。比如,它们可能只是考虑了随机选择的一部分数据点,或者是在分裂节点时只考虑了一部分随机选择的特征。

当你有一个问题需要通过这个模型来得到答案时,比如预测天气或者是判断一个电子邮件是否为垃圾邮件,每个决策树都会给出自己的答案。最后,随机森林通过某种方式(比如多数投票)整合所有决策树的答案,给出最终的预测结果。

这样做的好处是,因为每个决策树都有些许不同,整个模型不太可能会对数据中的随机噪声过度敏感,这就是为什么随机森林通常具有很好的泛化能力,也就是说,在新的、未见过的数据上也能做出不错的预测。

四、梯度提升树(GBDT)

想象你正在玩一个猜数字游戏,游戏的目的是猜出一个0到100之间的数字。每猜一次,旁边有个朋友会告诉你是猜低了还是猜高了。你的策略是根据朋友的提示逐渐调整你的猜测,直到猜对为止。

现在,将这个游戏与梯度提升树联系起来:

  1. 第一次猜测:这就像是GBDT中的第一个决策树。它给出了一个初步的猜测,这个猜测可能不太准确,但它是我们的起点。

  2. 获取反馈:游戏中你的朋友告诉你猜高了还是猜低了,这相当于在GBDT中计算误差,也就是真实值与你当前模型预测值之间的差距。

  3. 根据反馈调整:根据朋友的提示,你会上调或下调你的下一个猜测。在GBDT中,算法会构建一个新的决策树来专门预测之前树模型的残差(即差距)。

  4. 累加猜测:你不会忘记你之前的猜测,而是在此基础上进行调整。同样,在GBDT中,你不是抛弃之前的决策树,而是将新的树添加到模型中,使模型变得更加精确。

  5. 重复过程:你会一直重复调整你的猜测,直到非常接近正确答案。在GBDT中,这个过程会重复进行,每次都在减小误差,直到模型的性能不再显著提升或者达到了预先设定的树的数量。

通过这个过程,GBDT构建了很多小的决策树,每一棵都在改进上一棵树的错误,集合起来就形成了一个非常强大的预测模型。就像通过多次猜测更加精确地接近了游戏的数字一样。

五、贝叶斯分类器

假设你有一个装满水果的篮子,里面有苹果、橘子和柠檬。你闭上眼睛从篮子中拿一个水果,想要猜它是什么。你知道篮子里苹果多、橘子少、柠檬更少。此外,你还知道这些水果触感不同:苹果通常比较硬,橘子表面有点儿凹凸不平,柠檬则是凹凸不平但更小一些。

贝叶斯分类就是用来做这种类型的"猜测",它基于先前的知识(先验概率)和当前的观察信息(证据)来预测结果(后验概率)。

  1. 先验概率:在拿水果之前,你就知道每种水果在篮子中的大致比例。这就是先验概率,即某个事件发生的初始概率。在这个例子中,就是苹果、橘子、柠檬各自的比例。

  2. 证据:当你触摸到你拿的水果时,你会感受到它的大小和表面。这个观察到的信息就是证据,它会帮助你进一步判定你手中的是哪种水果。

  3. 似然性:这是指在已知某个条件(如手感)的情况下,观察到当前证据(某种特定的大小和表面)的概率。例如,如果你感觉到水果表面凹凸不平,那么这可能是橘子或柠檬,因为这是这两种水果的共同特征。

  4. 后验概率:结合你的先验知识和你通过触感得到的证据,你可以更准确地猜测水果的种类。这个新的概率就是后验概率。比如,如果你触感到的水果既凹凸不平又小,那么由于你知道篮子里柠檬的数量更少,你可能会猜测这是橘子,因为它的先验概率较高。

贝叶斯分类器就是通过这种方式工作的,它结合了关于数据(比如水果类型)的先验知识和你从数据中观察到的证据,来计算每个类别的后验概率。最后,分类器会选择后验概率最高的类别作为预测结果。简单来说,贝叶斯分类器在做决策时会考虑所有可用的信息,并且尽可能地做出逻辑一致性的猜测。

六、极限梯度提升(XGBoost)

XGBoost分类器就像是一群小侦探团队,每个侦探都在解决同一个案件,但是每个人都专注于案件中的不同细节。第一个侦探可能发现了一些线索,尽管他们可能不完全正确或不足以解决整个案件。然后,下一个侦探会来看看第一个侦探的发现,并试图改进他们的寻找,补充遗漏的部分或纠正错误。每个接着来的侦探都在前一个侦探的基础上,试图更接近真相。

在这个过程中,每个侦探都学习了如何通过他人的发现来改进自己的工作。最终,当所有的侦探都贡献了他们的部分后,他们会聚在一起,将所有的线索综合起来,形成一个非常强有力的结论。这就是XGBoost的工作方式:通过许多模型(侦探)的努力,每个模型都在前一个模型的基础上进行改进和学习,最终得出一个非常精确的预测结果。这种方法通常是非常有效的,因为它允许系统从错误中学习并不断改进。

相关推荐
-Nemophilist-8 分钟前
机器学习与深度学习-1-线性回归从零开始实现
深度学习·机器学习·线性回归
艾派森1 小时前
大数据分析案例-基于随机森林算法的智能手机价格预测模型
人工智能·python·随机森林·机器学习·数据挖掘
2 小时前
开源竞争-数据驱动成长-11/05-大专生的思考
人工智能·笔记·学习·算法·机器学习
忘梓.2 小时前
划界与分类的艺术:支持向量机(SVM)的深度解析
机器学习·支持向量机·分类
Chef_Chen2 小时前
从0开始机器学习--Day17--神经网络反向传播作业
python·神经网络·机器学习
MarkHD3 小时前
第十一天 线性代数基础
线性代数·决策树·机器学习
打羽毛球吗️3 小时前
机器学习中的两种主要思路:数据驱动与模型驱动
人工智能·机器学习
小馒头学python4 小时前
机器学习是什么?AIGC又是什么?机器学习与AIGC未来科技的双引擎
人工智能·python·机器学习
正义的彬彬侠4 小时前
《XGBoost算法的原理推导》12-14决策树复杂度的正则化项 公式解析
人工智能·决策树·机器学习·集成学习·boosting·xgboost
羊小猪~~4 小时前
神经网络基础--什么是正向传播??什么是方向传播??
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习