前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习算法:选择您问题的答案

机器学习算法:选择您问题的答案

作者头像
花落花飞去
发布2018-02-02 11:52:35
1K0
发布2018-02-02 11:52:35
举报
文章被收录于专栏:人工智能人工智能

当我开始涉足数据科学时,我经常面临为如何我的问题选择最合适的算法的问题。如果你像我一样,当你看到一些关于机器学习算法的文章时,你会看到许多详细的描述。但是,即使看了这么多的算法文章,你依然不懂得要如何选择合适的算法。

Statsbot的这篇文章中,我将尝试解释一些基本概念,并教你如何针对不同问题选择相应的算法。在文章的最后,您会发现所提及的算法主要特征的系统化概述。

首先,我们应该把机器学习任务分为四大类:

  1. 监督学习
  2. 无监督学习
  3. 半监督学习
  4. 强化学习

监督学习(Supervised Learning)

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

无监督学习(Unsupervised Learning)

在无监督的学习中,我们有关于对象的信息较少。特别是训练集合数据中没有标签。我们现在的目标是什么?可以观察一组对象之间的一些相似性,并将它们包括在适当的集群中。当然有些对象对于整个集合的对象群来说相差甚远,这类的对象我们就把它们称作异常对象

半监督学习

半监督学习任务其实包含了我们前面提到的两个学习(监督和无监督学习):这类任务同时使用标记和未标记的数据。对于那些无法标注训练数据集合的人来说,这是一个很好的方法。该方法使我们能够显着提高准确性,因为我们可以使用少量标记数据在大量使用未标记的数据的训练集合中使用。

强化学习(Reinforcement Learning)

强化学习不像我们上面提到的那些任务,因为我们在这里既没有使用标记,也没有用未标记的数据集。RL(强化学习)是机器学习领域中涉及软件应用应该如何在不同环境中采取行动来最大化累积奖励的方法。

想象一下,你是一个被放置在陌生环境的机器人。您可以执行活动并且获得奖励。每一个行动后,你的行为就会变得越来越复杂和聪明,所以你正在训练在每一步行为最有效的方式。在生物学中,这被称为适应自然

常用的机器学习算法

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

线性回归(Linear Regression)和线性分类器(Linear Classifier)

这些可能是机器学习中最简单的算法。你有对象(矩阵A)和标签(向量B)的特征x1,... xn。你的目标是根据一些损失函数找到最优的权重w1,...,wn和这些特征的偏差。例如,MSEmean squared error,均方差)或MAE(mean absolute error,平均绝对误差)用于回归问题。针对均方差,有一个叫做最小二乘法的数学公式:

在实践中,使用梯度下降来优化是很容易的,而且计算效率更好。尽管这个算法很简单,但是当你有成千上万个特性的时候,它会帮你提高效率。例如文本分析中的单词或n元组。更复杂的算法有过度拟合非大型数据集合的多特征分析,而线性回归提供了不错效率。

分类
分类

为了防止过度拟合,我们经常使用像套索和脊的常规技术。这个技术的想法是把权重的模块和权重的平方和的总和分别加到我们的损失函数中。有兴趣的读客可以在文章结尾处阅读有关这些算法的精彩教程。

Logistic回归(Logistic Regression)

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

由于该算法计算每个类别的归属概率,因此应该考虑概率与0或1的差异程度,并计算所有对象的平均值,就像我们对线性回归所做的那样。这种损失函数是交叉熵的平均值:

不要害怕看不懂这个公式!我会向你讲解这个公式的,我们设y的值是0或1,ypred 表示预测答案。如果y等于0,则根据对数的性质,总和下的第一个加数等于0,第二个加数越小,我们预测的ypred就越接近0。同理,我们可以推导出y等于1的情况。

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

决策树

另一个流行和易于理解的算法是决策树。决策树的可视化界面可以帮助你真切地看到你在想什么,他们的引擎需要一个详尽的,明确的思考过程。

这个算法的想法很简单。在每个节点中,我们选择所有特征和所有可能的分割点之间的最佳分割。选择的每个分割点都是为了最大化某些功能的。在分类树中,我们使用交叉熵和基尼指数。在回归树中,我们最小化了该区域中点的目标值的预测变量与分配给它的点之间的平方差的总和。

我们针对每个节点递归地完成这个过程,并在满足停止条件时完成。它们可以从节点中的数量最少的叶节点到顶点。单树很少被使用,但是与其他许多树一起构成了非常有效的算法,如随机森林或梯度树推进

K均值(K-Means)

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

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

这是最简单的群集技术,但它仍然有一些缺点。首先,你应该知道一些我们不知道的集群。其次,结果取决于在开始时随机选择的点,算法不保证我们将实现功能的全局最小值。

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

主成分分析(PCA)

你有没有准备好在晚上甚至是早上准备好考试呢?你无法记住所有你需要的信息,但是你想要在可用的时间内最大限度地记住你记得的信息; 例如,首先学习许多考试中多次出现的定理等等内容。

主成分分析是基于相同的想法。该算法提供了降维。有时你有很多的特征,可能彼此高度相关,模型可以很容易地适应大量的数据。然后,你可以尝试使用PCA。

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

算法现在很清楚:

  • 我们计算特征列的相关矩阵并找出这个矩阵的特征向量。
  • 我们取这些多维向量,并计算它们上的所有特征的投影。

新功能是投影中的坐标,其数量取决于计算投影的特征向量的数量。

神经网络(Neural Networks)

当我们谈论逻辑回归时,我已经提到了神经网络。有很多不同的体系结构在一些特定的任务中很有意义。更多的时候,它是一系列的层或组件,它们之间具有线性连接并遵循非线性。

如果你正在处理图像,卷积深度神经网络显示出很好的结果。非线性表现为卷积层和汇聚层,能够捕捉图像的特征。

为了处理文本和序列,最好选择递归神经网络。RNN(Recurrent Neural Networks,即循环神经网络)包含LSTM(Long Short Term Memory,长短期记忆)或GRU(Gated Recurrent Unit,门控单元)模块,并且可以使用我们已经知道的数据。机器翻译是RNN最着名的应用之一。

结论

我希望您现在能够理解最常用的机器学习算法的,并就如何针对您的具体问题凭直觉选择一个方法。为了让你方便的理解,我将各个算法的性质进行了总结:

  • 线性回归和线性分类器: 尽管表面简单,但是当其他比较好的算法会过度拟合数据时可以选择这类方法。
  • Logistic回归:最简单的非线性分类器,具有参数和非线性函数的线性组合(S形)用于二元分类。
  • 决策树:通常与人们的决策过程类似,易于解释,但是它们最常用于诸如随机森林或梯度提升的组合中。
  • K-means:一个很原始但很容易理解的算法,可以作为各种问题的基线完美。
  • PCA:以最小的信息损失降低特征空间维度的绝佳选择。
  • 神经网络:这个算法标志着机器学习算法的新时代,可以应用于许多任务,但他们的训练需要巨大的计算复杂性。

推荐来源

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 监督学习(Supervised Learning)
  • 无监督学习(Unsupervised Learning)
  • 半监督学习
  • 常用的机器学习算法
    • 线性回归(Linear Regression)和线性分类器(Linear Classifier)
      • Logistic回归(Logistic Regression)
        • 决策树
          • K均值(K-Means)
            • 主成分分析(PCA)
              • 神经网络(Neural Networks)
              • 结论
                • 推荐来源
                相关产品与服务
                机器翻译
                机器翻译(Tencent Machine Translation,TMT)结合了神经机器翻译和统计机器翻译的优点,从大规模双语语料库自动学习翻译知识,实现从源语言文本到目标语言文本的自动翻译,目前可支持十余种语言的互译。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档