随着我对机器学习知识的增加,机器学习算法的数量也在增加!本文将介绍数据科学界常用的机器学习算法。请记住,我将详细阐述一些算法,而不是其他算法,因为如果我彻底解释每个算法,这篇文章就会和本书一样长!我还将尽量减少本文中的数学运算,因为我知道这可能会让那些不精通数学的人望而生畏。相反,我将尝试对每一个进行简要概述并指出一些关键点。考虑到这一点,我将首先介绍一些更基础的算法,然后再介绍一些较新的算法,例如CatBoost、GradientBoost和XGBoost。线性回归线性回归是对因变量与一个或多个自变量之间的关系建模的最基本算法之一。简而言之,它涉及找到代表两个或多个变量的“最佳拟合线”。通过最小化点与最佳拟合线之间的平方距离来找到最佳拟合线-这称为最小化残差平方和。残差等于预测值减去实际值。>由作者创建的图像如果还没有意义,请考虑上面的图像。比较最适合的绿线和红线,注意绿线的垂直(残差)比红线大得多。这是有道理的,因为绿线离点太远,根本不能很好地代表数据!如果您想了解更多关于线性回归背后的数学知识,我将从Brilliant的解释开始。Logistic回归Logistic回归类似于线性回归,但用于对离散数量的结果(通常为两个)的概率建模。乍一看,逻辑回归听起来比线性回归复杂得多,但实际上只是多了一步。首先,您使用类似于线性回归最佳拟合线的方程式来计算分数。额外的步骤是给你之前在下面的sigmoid函数中计算的分数,这样你就可以得到返回的概率。然后可以将该概率转换为二进制输出,即1或0。要找到初始方程的权重来计算分数,可以使用梯度下降或最大似然法等方法。由于它超出了本文的范围,我不会进一步详细介绍,但现在您知道它是如何工作的了!KNearestNeighbors>图片由作者创建KNearestNeighbors是一个简单的想法。首先,从已经分类的数据(即红色和蓝色数据点)开始。然后,当你添加一个新的数据点时,你可以通过查看最近的k个分类点来对其进行分类。哪个类别获得最多的选票决定了新点的分类。在这种情况下,如果将k设置为1,则可以看到最靠近灰色样本的第一个点是红色数据点。因此,该点将被分类为红色。要记住的一件事是,如果k的值设置得太低,可能会导致异常值。另一方面,如果k的值设置得太高,那么它可能会忽略只有少数样本的类。朴素贝叶斯朴素贝叶斯是一种分类算法。这意味着当输出变量是离散的时,使用朴素贝叶斯。朴素贝叶斯看起来像是一种令人生畏的算法,因为它需要一些关于条件概率和贝叶斯定理的基本数学知识,但这是一个非常简单和“朴素”的概念,我将尝试举例说明:>作者创建的图像假设我们输入有关天气特征(外观、温度、湿度、大风)以及是否打过高尔夫球(即最后一栏)的数据。朴素贝叶斯本质上做的是比较每个输入变量和输出变量中的类别之间的比例。如下表所示。>ImageCreatedbyAuthor为了帮助您阅读此示例,在温度部分,打高尔夫球的9天中有2天很热(即)。在数学术语中,您可以将其表示为打高尔夫球时身体发热的概率。数学符号是P(hot|yes)。这是条件概率,对于理解我接下来要说的内容至关重要。有了这些信息,您就可以根据天气特征的任意组合来预测是否打高尔夫球。假设我们有一个新的一天,具有以下特征:展望:晴天温度:适中湿度:正常有风:假首先,我们将计算给定X打高尔夫球的概率,P(y|X),然后计算你打球的概率高尔夫给定X,P(no|X)。使用上图,我们可以获得以下信息:现在我们可以简单地将此信息输入到以下公式中:同样,您将为P(no|X)完成相同的步骤序列。因为P(yes|X)>P(no|X),你可以预测这个人会打高尔夫球,因为天气晴朗,温度适中,湿度正常,没有大风。这就是朴素贝叶斯的精髓!支持向量机>ImagecreatedbyAuthor支持向量机是一种监督分类技术,实际上可能会变得相当复杂,但在最基本的层面上非常直观。为了本文的缘故,我们将其保持在较高水平。假设有两种类型的数据。SVM将找到两类数据之间的超平面或边界,使两类数据之间的边距最大化(见上文)。有许多平面将两个类别分开,但只有一个平面最大化两个类别之间的边距或距离。如果您想了解支持向量机背后的数学原理,请查看本系列文章。DecisionTrees>ImagecreatedbyauthorRandomForest在了解随机森林之前,你需要了解以下两个术语:集成学习是一种将多种学习算法结合使用的方法。这样做的方式可以实现比单独的单个算法更高的预测性能。Bootstrap采样是一种使用随机采样进行替换的重采样方法。这听起来很复杂,但请相信我,当我说它很简单时-请在此处了解更多信息。当您使用bootstrap数据集的聚合来做出决策时,请进行套袋——我写了一篇关于这个主题的文章,所以如果这不是很合理,请随时在这里查找。现在您知道了这些术语,让我们深入研究它。随机森林是一种基于决策树的集成学习技术。随机森林涉及使用原始数据的引导数据集创建多个决策树,并在决策树的每个步骤中随机选择一个变量子集。然后,该模型为每个决策树(装袋)选择所有预测模式。这有什么意义呢?通过依赖“多数获胜”模型,它降低了单个树出错的风险。>ImageCreatedbyauthor例如,如果我们创建一棵决策树,第三棵决策树,它将预测为0。但是,如果我们依赖所有4棵决策树的模式,则预测值为1。这就是随机森林!AdaBoostAdaBoost或AdaptiveBoost也是一种集成算法,它利用打包和增强方法来开发增强预测器。AdaBoost类似于随机森林,因为预测来自许多决策树。然而,AdaBoost的独特之处在于三个主要区别:>树桩示例首先,AdaBoost创建了一片树桩森林,而不是树木。树桩是一棵仅由一个节点和两片叶子组成的树(如上图所示)。其次,创建的树桩在最终决策(最终预测)中没有被加权和平均。犯更多错误的树桩在最终决定中没有发言权。最后,制作树桩的顺序很重要,因为每个树桩的目的都是为了减少之前树桩所犯的错误。本质上,AdaBoost采用了一种更迭代的方法,从之前的树桩所犯的错误中寻求迭代改进。如果您想了解有关AdaBoost背后的基础数学的更多信息,请查看我的文章“AdaBoost数学在5分钟内解释”。GradientboostingGradientboosting也是一种集成算法,使用boosting方法开发boosted预测器也就不足为奇了。在许多方面,GradientBoost与AdaBoost相似,但有两个主要区别:与AdaBoost不同,AdaBoost可以构建树桩,GradientBoost可以构建树,通常有8-32个叶子。Gradientboosting将boosting问题视为优化问题,使用损失函数并尝试最小化误差。这就是为什么它被称为“梯度提升”,灵感来自梯度下降。最后,这些树被用来预测样本的残差(预测值减去实际值)。虽然最后一点可能令人困惑,但您需要知道的是,GradientBoost首先构建一棵树来尝试拟合数据,然后构建后续树以减少残差(错误)。它通过关注现有学习器表现不佳的领域来实现这一点,类似于AdaBoost。XGBoostXGBoost是当今最流行和使用最广泛的算法之一,因为它非常强大。它类似于GradientBoost,但有一些额外的特性使其更加强大,包括...它更快的附加随机化参数-减少树之间的相关性并最终提高树的整体强度独特惩罚我强烈建议观看StatQuest的视频以更详细地了解算法的工作原理。LightGBM如果您认为XGBoost是最好的算法,请三思。LightGBM是另一种增强算法,已被证明比XGBoost更快、更准确。LightGBM的不同之处在于它使用一种称为基于梯度的单边采样(GOSS)的独特技术来过滤数据实例以找到拆分值。这与XGBoost不同,后者使用预排序和基于直方图的算法来找到最佳分割。在此处阅读有关LightGBM与XGBoost的更多信息!CatBoostCatBoost是另一种基于梯度下降的算法,有一些细微的差别使其独一无二:CatBoost实现了对称树,这有助于减少预测时间,并且默认情况下down-tree深度也很浅(六)CatBoost利用随机排列类似于XGBoost具有随机参数的方式然而,与XGBoost不同,CatBoost使用有序提升和响应编码等概念更优雅地处理分类功能总的来说,使CatBoost如此强大的是它的低延迟要求,这意味着它比XGBoost快大约八倍。如果您想更详细地了解CatBoost,请查看这篇文章。谢谢阅读!如果你成功了,恭喜你!您现在应该对所有不同的机器学习算法有了更好的理解。如果您在理解最后几种算法时遇到困难,请不要气馁——它们不仅更复杂,而且相对较新!因此,请继续关注更深入地应用这些算法的更多资源。
