在本指南中,我们将通过现代机器学习算法进行实用,简洁的介绍。虽然存在其他这样的列表,但它们并没有真正解释每种算法的实际权衡,我们希望在这里做。我们将根据我们的经验讨论每种算法的优缺点。
对机器学习算法进行分类是棘手的,有几种合理的方法; 它们可以分为生成/判别,参数/非参数,监督/无监督等。
例如, Scikit-Learn的文档页面按其学习机制对算法进行分组 。 这产生了如下类别:
但是,根据我们的经验,这并不总是最实用的分组算法。那是因为对于应用机器学习,你通常不会想, “我今天想要训练一个支持向量机!”
相反,您通常会考虑最终目标,例如预测结果或对观察进行分类。
因此,我们想引入另一种分类算法的方法,即通过 机器学习任务。
在机器学习中,有一种称为“无免费午餐”的定理。简而言之,它表明没有一种算法能够最好地解决每个问题,而且它对于监督学习(即预测建模)尤为重要。
例如,您不能说神经网络总是比决策树更好,反之亦然。有许多因素在起作用,例如数据集的大小和结构。
因此,您应该 针对您的问题尝试许多不同的算法,同时使用数据的保留“测试集”来评估性能并选择获胜者。
当然,您尝试的算法必须适合您的问题,这是选择正确的机器学习任务的地方。作为类比,如果您需要清理房屋,您可以使用真空吸尘器,扫帚或拖把,但你不会破坏铲子并开始挖掘。
这是本系列的第1部分。在这一部分中,我们将介绍“三大”机器学习任务,这是迄今为止最常见的任务。他们是:
在第2部分中,我们将介绍降维,包括:
继续之前的两点说明:
回归是用于建模和预测连续数值变量的监督学习任务。示例包括预测房地产价格,股票价格变动或学生考试成绩。
回归任务的特征 在于具有数字目标变量的标记数据集。换句话说,您可以使用一些“基础事实”值来监控您的算法。
线性回归
线性回归是回归任务最常用的算法之一。它以最简单的形式尝试将直超平面拟合到数据集(即只有2个变量时为直线)。正如您可能猜到的,当数据集中的变量之间存在线性关系时,它可以正常工作 。
在实践中,简单的线性回归通常被其正则化的对应物(LASSO,Ridge和Elastic-Net)所取代。正则化是一种惩罚大系数以避免过度拟合的技术,并且应该调整惩罚的强度。
回归树(又名决策树)通过反复将数据集拆分为单独的分支来分层学习,从而最大化每个分割的信息增益。这种分支结构允许回归树自然地学习非线性关系。
集合方法,例如随机森林(RF)和梯度提升树(GBM),结合了来自许多单独树木的预测。我们不会在这里介绍它们的基础机制,但在实践中,RF通常表现非常好,而GBM更难调整,但往往具有更高的性能上限。
深度学习是指可以学习极其复杂模式的多层神经网络。他们在输入和输出之间使用“隐藏层”,以模拟 其他算法无法轻易学习的数据的中间表示。
它们有几个重要的机制,例如卷积和辍学,使它们能够有效地从高维数据中学习。然而,与其他算法相比,深度学习仍然需要更多的数据来训练,因为模型具有更多的参数来估计。
最近邻算法是“基于实例的”,这意味着保存每个训练观察。然后,他们通过搜索最相似的训练观察并汇集其值来对新观察进行预测。
这些算法是存储器密集型的,对于高维数据执行不良,并且需要有意义的距离函数来计算相似性。在实践中,训练正则化回归或树集合几乎总是更好地利用你的时间。
分类是用于建模和预测分类变量的监督学习任务。示例包括预测员工流失,电子邮件垃圾邮件,财务欺诈或学生信函等级。
正如您将看到的,许多回归算法都有分类对应物。算法适用于预测类(或类概率)而不是实数。
Logistic回归
Logistic回归是线性回归的分类对应物。预测通过逻辑函数映射到0到1之间,这意味着预测可以解释为类概率。
模型本身仍然是“线性的”,因此当您的类可线性分离时它们可以很好地工作 (即它们可以由单个决策表面分隔)。逻辑回归也可以通过用可调惩罚强度惩罚系数来规则化。
分类树是回归树的分类对应物。它们通常被称为“决策树”或通过总称“分类和回归树(CART)”。
为了延续这一趋势,深度学习也很容易适应分类问题。实际上,分类通常是深度学习的较常见用途,例如图像分类。
支持向量机(SVM)使用称为内核的机制,它基本上计算两个观察之间的距离。然后,SVM算法找到决策边界,该边界最大化单独类的最接近成员之间的距离。
例如,具有线性内核的SVM类似于逻辑回归。因此,在实践中,SVM的好处通常来自使用非线性内核来模拟非线性决策边界。
朴素贝叶斯(NB)是一种基于条件概率和计数的非常简单的算法。从本质上讲,您的模型实际上是一个通过您的训练数据更新的概率表。要预测新观察,您只需根据其特征值“查找”“概率表”中的类概率。
它被称为“天真”,因为它的条件独立的核心假设(即所有输入特征彼此独立)在现实世界中很少成立。
聚类是一种无监督的学习 任务,用于根据数据集中的固有结构查找自然的观察分组(即聚类)。示例包括客户细分,在电子商务中对类似项目进行分组以及社交网络分析。
由于聚类是无监督的(即没有“正确答案”),因此数据可视化通常用于评估结果。如果存在“正确答案”(即您在训练集中预先标记了群集),则分类算法通常更合适。
K均值
K-Means是一种通用算法,它基于点之间的几何距离(即坐标平面上的距离)来制作聚类。聚类围绕质心分组,使它们呈球状并具有相似的大小。
这是我们推荐的初学者算法,因为它简单,但足够灵活,可以为大多数问题获得合理的结果。
亲和力传播是一种相对较新的聚类技术,可根据点之间的图形距离进行聚类。簇往往较小并且尺寸不均匀。
分层聚类,即凝聚聚类,是基于相同思想的一套算法:(1)从它自己的聚类中的每个点开始。(2)对于每个集群,根据某些标准将其与另一个集群合并。(3)重复直到只剩下一个簇,并留下簇的 层次结构。
DBSCAN是一种基于密度的算法,可以为密集的点区域创建聚类 。最近还有一个名为HDBSCAN的新开发项目,它允许不同密度的簇。
我们刚刚通过现代算法旋转了“三大”机器学习任务:回归,分类和聚类。
在第2部分中,我们将研究降维的算法,包括特征选择和特征提取。
但是,我们希望根据我们的经验给您一些建议:
原文:https://elitedatascience.com/machine-learning-algorithms