机器学习算法:为您的问题选择哪种算法

机器学习算法:为您的问题选择哪种算法

当我开始我的数据科学之旅时,我经常面临为我的特定问题选择最合适的算法的问题。如果你像我一样,当你打开一些关于机器学习算法的文章时,你会看到许多详细的描述。矛盾的是,这并没有使选择使用哪一个更容易。

在这篇文章中,我将尝试解释一些基本的概念,并给出一些关于在不同任务中使用不同种类的机器学习算法的直觉。在本文的最后,您将找到所描述算法的主要特性的结构化概述。

首先,你应该区分四种机器学习任务:

监督式学习

无监督学习

Semi-supervised学习

强化学习

监督式学习

监督学习是从标记的训练数据中推断出一个函数的任务。通过拟合标记训练集,我们希望找到最优的模型参数来预测其他对象(测试集)上的未知标签。如果标签是实数,我们称之为任务回归。如果标签来自有限数量的值,其中这些值是无序的,那么它就是分类。

无监督学习

在无监督学习中,我们对物体的信息更少。特别地,列车组没有标记。我们现在的目标是什么?可以观察到对象组之间的一些相似性,并将它们包含在适当的集群中。有些对象与所有集群都有很大的不同,因此,我们假设这些对象是异常的。

Semi-Supervised学习

半监督学习任务包括我们前面描述的两个问题:它们使用标记的和未标记的数据。对于那些无法负担数据标签费用的人来说,这是一个大好机会。这种方法可以显著提高精度,因为我们可以在有少量标记数据的列车集中使用无标记数据。

强化学习

强化学习不同于我们之前的任何任务,因为我们这里没有标记或未标记的数据集。RL是机器学习的一个领域,它关注的是软件代理应该如何在某些环境中采取行动,以最大化累积回报的概念。

想象你是一个机器人在一个陌生的地方。你可以进行一些活动,并从环境中获得奖励。在每一个动作之后,你的行为会变得更加复杂和聪明,所以你在训练自己在每一步都以最有效的方式表现。在生物学中,这被称为对自然环境的适应。

常用的机器学习算法

现在我们已经对机器学习任务的类型有了一些直观的认识,让我们来探索最流行的算法及其在现实生活中的应用。

线性回归与线性分类器

这些可能是机器学习中最简单的算法。你有对象x1,…xn(矩阵A)和标签(向量b)的特征,你的目标是根据某个损失函数找到这些特征的最优权值w1,…wn和偏置;例如,用于回归问题的MSE或MAE。在MSE的情况下,由最小二乘法得到一个数学方程:

在实际应用中,用梯度下降法来优化更容易,这样计算效率更高。尽管这个算法很简单,但是当你有成千上万的特性时,它会工作得很好。更复杂的算法会遇到许多特征过度拟合和数据集不够大的问题,而线性回归提供了不错的质量。

为了防止过拟合,我们经常使用正则化技术。其思想是将权重模块和权重平方和分别添加到我们的损失函数中。在本文的最后,请阅读关于这些算法的教程。

逻辑回归

不要将这些分类算法与在标题中使用“回归”的回归方法混淆。逻辑回归执行二进制分类,因此标签输出是二进制的。定义P(y=1|x)为给定输入特征向量x的条件下,输出y=1的条件概率,系数w为模型要学习的权重。

由于这个算法计算属于每个类的概率,您应该考虑概率与0或1之间的差异,并将其平均到所有对象上,就像我们在线性回归中所做的那样。这样的损失函数是交叉熵的平均值:

别慌!我会让你轻松的。允许y是正确的答案:0或1,y_pred -预测的答案。如果y = 0,那么sum = 0下的第一个加数,第二个加数越小,根据对数的性质,y_pred越接近0。类似地,在y = 1的情况下。

逻辑回归的优点是什么?它采用特征的线性组合并应用一个非线性函数(sigmoid),所以它是一个非常非常小的神经网络实例!

决策树

另一个流行且易于理解的算法是决策树。他们的图形帮助你看到你在想什么,他们的引擎需要一个系统的,文档化的思维过程。

这个算法的思想非常简单。在每个节点中,我们在所有特性和所有可能的分割点中选择最好的分割。选择每个分割的方式都是为了最大化某些功能。在分类树中,我们使用交叉熵和基尼指数。在回归树中,我们最小化落在那个区域的点的目标值的预测变量和我们赋给它的目标值之间的平方误差之和。

我们为每个节点递归地执行这个过程,并在满足停止条件时结束。它们可以从节点中的最小叶数到树的高度变化。单棵树很少被使用,但是与其他许多树一起使用,它们构建了非常有效的算法,如随机森林或梯度树增强。

k - means

有时,您不知道任何标签,您的目标是根据对象的特性分配标签。这称为集群化任务。

假设要将所有数据对象划分为k个集群。您需要从数据中随机选择k个点,并将它们命名为集群中心。其他对象的集群由最近的集群中心定义。然后,转换簇的中心,重复这个过程,直到收敛。

这是最清晰的聚类技术,但仍然存在一些缺点。首先,您应该知道一些我们不知道的集群。其次,结果依赖于开始时随机选取的点,该算法不能保证得到函数的全局最小值。

有一系列的聚类方法,它们有不同的优点和缺点,可以在推荐阅读中学习。

主成分分析

你有没有在考试前的晚上,甚至早上,为一场困难的考试做过准备?你不可能记住所有你需要的信息,但是你想在有限的时间内最大化你能记住的信息;例如,先学习在很多考试中出现的定理,等等。

主成分分析也是基于同样的思想。该算法提供了降维功能。有时,您拥有广泛的特性,可能彼此之间高度相关,并且模型很容易在大量数据上过度匹配。然后,您可以应用PCA。

令人惊讶的是,这些向量是数据集特征相关矩阵的特征向量。

现在的算法很清楚:

计算特征列的相关矩阵,并求出特征向量。

我们取这些多维向量并计算所有特征在它们上面的投影。

新的特征是来自投影的坐标,它们的数量取决于特征向量的数量,你可以根据特征向量来计算投影。

神经网络

当我们讨论逻辑回归时,我已经提到了神经网络。在非常具体的任务中,有许多不同的体系结构是有价值的。更常见的是,它是一系列层或组件,这些层或组件之间存在线性连接,并且遵循非线性关系。

如果你处理图像,卷积深度神经网络会显示出很好的结果。非线性由卷积层和池化层表示,能够捕捉图像的特征。

对于文本和序列的处理,最好选择递归神经网络。RNNs包含LSTM或GRU模块,可以处理预先知道维度的数据。RNNs最著名的应用之一是机器翻译。

结论

我希望您现在能够理解最常用的机器学习算法的一般概念,并直观地了解如何为您的特定问题选择一种算法。为了让您更容易理解,我准备了它们的主要特性的结构化概述:

线性回归和线性分类器:尽管它们看起来很简单,但它们在大量的特征上非常有用,因为更好的算法会遇到过拟合问题。

逻辑回归:最简单的非线性分类器,参数和非线性函数(sigmoid)的线性组合,用于二元分类。

决策树:通常类似于人的决策过程,易于解释,但它们最常用于组合,如随机森林或梯度增强。

K-means:一种更原始但很容易理解的算法,可以作为各种问题的基准。

主成分分析:一个伟大的选择,以减少维数,你的特征空间的信息损失最小。

神经网络:机器学习算法的新时代,可以应用于很多任务,但它们的训练需要巨大的计算复杂性。


分享到:


相關文章: