你可能听说过瑞士军刀。如果没有,请看下图。它包含许多刀片和工具。每个人都专门从事一项特定的任务。在某些情况下,不同的刀片可以完成相同的任务,但性能不同。>图片由PublicDomainPictures来自Pixabay我认为机器学习算法是瑞士军刀。有许多不同的算法。某些任务需要使用特定的算法,而某些任务可以使用许多不同的算法来完成。性能可能因任务和数据的特性而异。在本文中,我将分享16个我认为可以帮助您更好地理解算法的技巧。我的目的不是详细解释该算法的工作原理。我宁愿提供一些关于它们的提示或细节。一些提示将更通用,而不是特定于算法。例如,对数损失是与所有分类算法相关的成本函数。我假设您对算法有基本的了解。即使您不这样做,也可以选择稍后使用一些详细信息。开始吧。1.支持向量机(SVM)的C参数SVM的C参数为每个误分类的数据点增加了一个代价。如果c较小,则对误分类点的惩罚较低,因此以较大的误分类数为代价选择具有较大边距的决策边界。如果c很大,SVM会尝试最小化由于高惩罚而导致的错误分类示例的数量,从而导致决策边界的边际更小。对于所有错误分类的例子,惩罚是不一样的。它与到决策边界的距离成正比。2.RBF核SVM的Gamma参数RBF核SVM的Gamma参数控制单个训练点的影响距离。较低的gamma值表示较大的相似性半径,这会导致更多的点被组合在一起。对于更高的gamma值,这些点必须彼此非常接近才能被视为同一组(或类别)。因此,gamma值非常大的模型容易过拟合。3.什么使逻辑回归成为线性模型逻辑回归的基础是逻辑函数,也称为sigmoid函数,它取任何实数值并将其映射到0到1之间的值。>(图片来自作者)它是一个非线性函数,但逻辑回归是一个线性模型。下面是我们如何从sigmoid函数得到线性方程:>(作者图片)取两边的自然对数:>(作者图片)在等式(1)中,我们可以使用线性方程z代替x:>(imagebyauthor)那么,等式(1)变为:>(imagebyauthor)假设y是正类的概率。如果是0.5,上式右边就变成0。我们现在有一个线性方程需要求解。4.PCA中的主要成分PCA(PrincipalComponentAnalysis)是一种线性降维算法。PCA的目标是保留尽可能多的信息,同时降低数据集的维度(特征数量)。信息量用方差来衡量。具有高方差的特征告诉我们更多关于数据的信息。主成分是原始数据集特征的线性组合。5.随机森林随机森林是使用一种称为套袋的方法构建的,其中每个决策树都用作并行估计器。随机森林的成功在很大程度上取决于使用不相关的决策树。如果我们使用相同或非常相似的树,整体结果将与单个决策树的结果无法区分。随机森林通过引导和特征随机性实现不相关的决策树。>(作者图片)6。GradientBoostedDecisionTree(GBDT)GBDT使用提升方法来组合单个决策树。Boosting是指级联一系列学习算法,从许多顺序连接的弱学习器中获得一个强学习器。每棵树都适合前一棵树的残差。与bagging不同,boosting不涉及bootstrap采样。每次添加新树时,它都会适合初始数据集的修改版本。>(imagebyauthor)7.增加RandomForest和GBDT中树的数量增加RandomForest中树的数量不会导致过拟合。在某个点之后,模型的准确性不会因添加更多树而增加,但不会因添加太多树而受到负面影响。出于计算原因,您仍然不想添加不必要的树,但不存在与随机森林中的树数量相关的过度拟合风险。然而,梯度提升决策树中树的数量在过度拟合方面是至关重要的。添加过多的树会导致过度拟合,因此停止添加树很重要。8.层次聚类与K均值聚类层次聚类不需要预先指定聚类数。必须为k-means算法指定聚类数。它总是产生相同的聚类,而k-means聚类可能会根据质心(聚类中心)的启动方式产生不同的聚类。与k-means相比,层次聚类是一种较慢的算法。特别是对于大型数据集,需要很长时间才能运行。9.DBSCAN算法的两个关键参数DBS??CAN是一种聚类算法,适用于任意形状的聚类。这也是检测异常值的有效算法。DBSCAN的两个关键参数:eps:指定邻域的距离。如果两点之间的距离小于或等于eps,则两点被视为相邻点。minPts:定义一个簇的最小数据点数。10.DBSCAN算法中三种不同类型的点根据eps和minPts参数,将点分类为核心点、边界点或离群点:核心点:如果其周围至少有minPts个半径为eps的点(包括点本身),那么这个点就是核心点。BorderPoints:如果一个点从核心点可达且其周围区域的点数小于minPts,则该点为边界点。离群点:如果一个点不是核心点并且不能从任何核心点到达,则该点是离群点。>图源本例中minPts为4。红色点为核心点,因为其周围至少有4个半径为eps的点。该区域在图中用圆圈表示。黄色点是边界点,因为它们可以从核心点到达并且在它们的邻域内少于4个点。可达意味着围绕核心点。点B和C在其邻域内(即半径为eps的周围区域)有两个点(包括点本身)。最后,N是异常值,因为它不是核心点,无法从核心点中获取。11.朴素贝叶斯为什么叫朴素?朴素贝叶斯算法假设元素相互独立,元素之间不存在相关性。然而,现实生活中并非如此。这种特征不相关的天真假设是该算法被称为“天真的”的原因。所有特征都是独立的假设使得朴素贝叶斯算法与复杂算法相比非常快。在某些情况下,速度比精度更重要。适用于高维数据,如文本分类、垃圾邮件检测等。12.什么是logloss?对数损失(即交叉熵损失)是机器学习和深度学习模型广泛使用的成本函数。交叉熵量化了两个概率分布的比较。在监督学习任务中,我们有一个要预测的目标变量。使用交叉熵将目标变量的实际分布与我们的预测进行比较。结果是交叉熵损失,也称为对数损失。13.logloss是怎么计算的?对于每个预测,计算真实类别的预测概率的负自然对数。所有这些值的总和给了我们一个对数损失。这是一个更好地解释计算的示例。我们有一个包含4个类别的分类问题。我们的模型对特定观察的预测如下:>(作者图片)此特定观察(即数据点或行)的对数损失为-log(0.8)=0.223。14.为什么我们使用对数损失而不是分类精度?在计算对数损失时,我们取预测概率的自然对数的负数。我们对我们的预测越确定,logloss就越低(假设预测是正确的)。例如,-log(0.9)等于0.10536,-log(0.8)等于0.22314。因此,90%的确定结果比80%的确定结果更低的对数损失。分类、精度和召回等传统指标通过比较预测类别与实际类别来评估性能。下表显示了两个不同模型对一组相对较小的5个观测值的预测。>(imagebyauthor)这两种模型都正确地将5个观测值分类为5。因此,这些模型在分类精度方面具有相同的性能。然而,概率表明模型1的预测更加确定。所以它的整体表现可能更好。对数损失(即交叉熵损失)提供了更强大和准确的分类模型评估。15.ROC曲线和AUCROC曲线通过结合所有阈值的混淆矩阵来总结性能。AUC将ROC曲线转换为二元分类器性能的数值表示。AUC是ROC曲线下的面积,值介于0和1之间。AUC表示模型在分离正类和负类方面的成功程度。16.Precisionandrecallprecision和recall指标进一步提高了分类准确率,让我们对模型评估有了更具体的理解。首选哪一个取决于任务和我们想要实现的目标。准确性衡量当预测为正时我们的模型有多好。准确性侧重于积极的预测。它显示了有多少积极的预测是正确的。召回率衡量我们的模型正确预测正类的程度。回忆的重点是实际积极的课堂。它表示模型能够正确预测多少正类。结论我们已经介绍了机器学习算法的一些基本信息和一些细节。有些要点涉及多种算法,例如关于对数损失的那个。这些也很重要,因为评估模型与实施模型一样重要。所有机器学习算法在某些任务中都是有用且高效的。根据您正在执行的任务,您可以精通其中的一些任务。但是,了解每种算法的工作原理很有价值。
