Python迁移学习:机器学习算法

“终有一天,人工智能会像我们看待非洲平原上低级生物的化石一样看待我们 。在人工智能眼中,人类只是直立行走的猿猴,用着粗糙的语言和简陋的工具,从诞生起就注定会灭绝 。”——电影《机械姬》机器学习是人工智能中一个流行的子领域,其涉及的领域非常广泛 。流行的原因之一是在其策略下有一个由复杂的算法、技术和方法论组成的综合工具箱 。该工具箱已经经过了多年的开发和改进,同时新的工具箱也在持续不断地被研究出来 。为了更好地使用机器学习工具箱,我们需要先了解以下几种机器学习的分类方式 。
基于是否有人工进行监督的分类如下 。

  • 监督学习 。这一类别高度依赖人工监督 。监督学习类别下的算法从训练数据和对应的输出中学习两个变量之间的映射,并将该映射运用于从未见过的数据 。分类任务和回归任务是监督学习算法的两种主要任务类型 。
  • 无监督学习 。这类算法试图从没有任何(在人工监督之下)关联输出或标记的输入数据中学习内在的潜在结构、模式和关系 。聚类、降维、关联规则挖掘等任务是无监督学习算法的几种主要任务类型 。
  • 半监督学习 。这类算法是监督学习算法和无监督学习算法的混合 。这一类别下的算法使用少量的标记训练数据和更多的非标记训练数据,因此需要创造性地使用监督学习方法和无监督学习方法来解决特定问题 。
  • 强化学习 。这类算法与监督学习和无监督学习算法略有不同 。强化学习算法的中心实体是一个代理,它在训练期间会同环境进行交互让奖励最大化 。代理会迭代地进行学习,并基于和环境的交互中获得的奖励或惩罚来调整其策略 。
基于数据可用性的分类如下 。
  • 批量学习 。也被称为离线学习,当所需的训练数据可用时可以使用这类算法,同时这种算法也可以在部署到生产环境或现实世界之前对模型进行训练和微调 。
  • 在线学习 。顾名思义,在这类算法中只要数据可用,学习就不会停止 。另外,在这类算法中,数据会被小批量地输入系统,而下一次训练将会使用新批次中的数据 。
前面讨论的分类方法让我们对关于如何组织、理解和利用机器学习算法有了一个抽象的理解 。机器学习算法最常见的分类方法为监督学习算法和无监督学习算法 。下面让我们更详细地讨论这两个类别,因为这将有助于我们开启后面将要介绍的更高级的主题 。
1.2.1 监督学习监督学习算法是一类使用数据样本(也称为训练样本)和对应输出(或标签)来推断两者之间映射函数的算法 。推断映射函数或学习函数是这个训练过程的输出 。学习函数能正确地映射新的和从未见过的数据点(即输入元素),以测试自身的性能 。
监督学习算法中的几个关键概念的介绍如下 。
  • 训练数据集 。训练过程中使用的训练样本和对应的输出称为训练数据 。在形式上,一个训练数据集是由一个输入元素(通常是一个向量)和对应的输出元素或信号组成的二元元组 。
  • 测试数据集 。用来测试学习函数性能的从未见过的数据集 。该数据集也是一个包含输入数据点和对应输出信号的二元元组 。在训练阶段不使用该集合中的数据点(该数据集也会进一步划分为验证集,我们将在后续章节中详细讨论) 。
  • 学习函数 。这是训练阶段的输出,也称为推断函数或模型 。该函数基于训练数据集中的训练实例(输入数据点及其对应的输出)被推断出 。一个理想的模型或学习函数学到的映射也能推广到从未见过的数据 。
可用的监督学习算法有很多 。根据使用需求,它们主要被划分为分类模型和回归模型 。
1.分类模型用最简单的话来说,分类算法能帮助我们回答客观问题或是非预测 。例如这些算法在一些场景中很有用,如“今天会下雨吗?”或者“这个肿瘤可能癌变吗?”等 。
从形式上来说,分类算法的关键目标是基于输入数据点预测本质分类的输出标签 。输出标签在本质上都是类别,也就是说,它们都属于一个离散类或类别范畴 。
逻辑回归、支持向量机(Support Vector machine,SVM)、神经网络、随机森林、K-近邻算法(K-Nearest Neighbour,KNN)、决策树等算法都是流行的分类算法 。
假设我们有一个真实世界的用例来评估不同的汽车模型 。为了简单起见,我们假设模型被期望基于多个输入训练样本预测每个汽车模型的输出是可接受的还是不可接受的 。输入训练样本的属性包括购买价格、门数、容量(以人数为单位)和安全级别 。


推荐阅读