机器学习心得_CodingPark编程公园
发布日期:2021-06-29 15:47:24 浏览次数:2 分类:技术文章

本文共 4332 字,大约阅读时间需要 14 分钟。

机器学习模型

机器学习算法是揭示数据中潜在关系的过程

机器学习模型(machine learning model)是机器学习算法产出的结果,可以将其看作是在给定输入情况下、输出一定结果的函数(function)F。

机器学习模型不是预先定义好的固定函数,而是从历史数据中推导出来的。因此,当输入不同的数据时,机器学习算法的输出会发生变化,即机器学习模型发生改变。

机器学习的任务,就是从广阔的映射空间中学习函数。

有监督 VS 无监督

[起头时思考的问题]

给出一个机器学习问题,首先可以确定它是 有监督(supervised) 问题还是 无监督(unsupervised) 问题。

对于任何机器学习问题,我们都从一组样本(samples)组成的数据集开始。每个样本可以表示为一个属性(attributes)元组。

有监督学习

在一个有监督的学习任务中,数据样本将包含一个目标属性

y,也就是所谓的真值(ground truth)。我们的任务是通过学习得到一个函数 F,它接受非目标属性 X,并输出一个接近目标属性的值,y 就像指导学习任务的教师,因为它提供了一个关于学习结果的基准。所以,这项任务被称为有监督学习。

在 Iris 数据集中,类别属性(鸢尾花的类别)可以作为目标属性。具有目标属性的数据通常称为 “标记” 数据(labeled data)。基于上述定义,可以看出用标记数据预测鸢尾花的种类的任务是一个有监督的学习任务。

无监督学习

与有监督的学习任务相反,我们在无监督的学习任务中没有设置真值。人们期望从数据中学习潜在的模式或规则,而不以预先定义的真值作为基准。

人们可能会问,如果没有来自真值的监督,我们还能学到什么吗?答案是肯定的。以下是一些无监督学习任务的示例:

聚类(Clustering):给定一个数据集,可以根据数据集中样本之间的相似性,将样本聚集成组。例如,样本可以是一个客户档案,具有诸如客户购买的商品数量、客户在购物网站上花费的时间等属性。根据这些属性的相似性,可以将客户档案分组。对于聚集的群体,可以针对每个群体设计特定的商业活动,这可能有助于吸引和留住客户。

关联(Association):给定一个数据集,关联任务是发现样本属性之间隐藏的关联模式。例如,样本可以是客户的购物车,其中样本的每个属性都是商品。通过查看购物车,人们可能会发现,买啤酒的顾客通常也会买尿布,也就是说,购物车里的啤酒和尿布之间有很强的联系。有了这种学习而来的洞察力,超市可以将那些紧密相关的商品重新排列到相邻近的角落,以促进这一种或那一种商品的销售。

半监督学习

在数据集很大,但标记样本很少的情况下,可以找到同时具备有监督和无监督学习的应用。我们可以将这样的任务称为半监督学习(semi-supervised learning)。

在许多情况下,收集大量标记的数据是非常耗时和昂贵的,这通常需要人工进行操作。斯坦福大学的一个研究团队花了两年半的时间来策划著名的 “ImageNet”,它包含了数以百万计的图像带有成千上万个手动标记的类别。因此,更普遍的情况是,我们有大量的数据,但只有很少一部分被准确地 “标记”,例如视频可能没有类别甚至标题。

通过将有监督和无监督的学习结合在一个只有少量标记的数据集中,人们可以更好地利用数据集,并获得比单独应用它们更好的结果。

例如,人们想要预测图像的分类,但只对图像的 10% 进行了标记。通过有监督的学习,我们用有标记的数据训练一个模型,然后用该模型来预测未标记的数据,但是我们很难相信这个模型是足够普遍的,毕竟我们只用少量的数据就完成了学习。一种更好的策略是首先将图像聚类成组(无监督学习),然后对每个组分别应用有监督的学习算法。第一阶段的无监督学习可以帮助我们缩小学习的范围,第二阶段的有监督学习可以获得更好的精度。

分类 VS 回归

[起尾时思考的问题]

在前一节中,我们将机器学习模型定义为一个函数 F,它接受一定的输入并生成一个输出。通常我们会根据输出值的类型将机器学习模型进一步划分为分类(classification)和回归(regression)。

如果机器学习模型的输出是离散值(discrete values),例如布尔值,那么我们将其称为分类模型。如果输出是连续值(continuous values),那么我们将其称为回归模型。

分类模型

例如,说明照片中是否包含猫的模型可以被视为分类模型,因为我们可以用布尔值表示输出。

在这里插入图片描述

矩阵中的每个元素都是照片中每个像素的灰度值,即一个介于 [0,255] 之间的整数,表示颜色的强度。
机器学习的目标是找出一个尽可能通用的函数,这个函数要尽可能对不可见数据给出正确的答案。

回归模型

对于回归模型,我们给出这样一个例子,考虑一个用于估算房产价格的模型,其特征包括诸如面积、房产类型(例如住宅、公寓),当然还有地理位置。在这种情况下,我们可以将预期输出看作是一个实数 p∈R,因此它是一个回归模型。

注意,在本例中,我们所拥有的原始数据并非全部是数字,其中某些数据是用于分类的,例如房地产类型。在现实世界中,情况往往就是这样的。

在下面的图表中,我们展示了一个以地产面积为唯一变量,以地产价格为输出的回归模型样例。

在这里插入图片描述
说起特征,还要提到的一点是,一些机器学习模型(例如决策树)可以直接处理非数字特征,而更多时候人们必须以某种方式将这些非数字特征转换(transform)为数字特征。

问题转化

对于一个现实世界的问题,有时人们可以很容易地将其表述出来,并快速地将其归结为一个分类问题或回归问题。然而,有时这两个模型之间的边界并不清晰,人们可以将分类问题转化为回归问题,反之亦然。

在上述房产价格估算的例子中,似乎很难预测房产的确切价格。然而,如果我们将问题重新表述为预测房产的价格范围,而不是单一的价格标签,那么我们可以期望获得一个更健壮的模型。因此,我们应该将问题转化为分类问题,而不是回归问题。

对于我们的猫照片识别模型,我们也可以将其从分类问题转换为回归问题。我们可以定义一个模型来给出一个介于

[0,100%] 之间概率值来判断照片中是否有猫,而不是给出一个二进制值作为输出。这样,就可以比较两个模型之间的细微差别,并进一步调整模型。例如,对于有猫的照片,模型 A 给出概率为
1%,而模型 B 对相同照片给出了 49% 的概率。虽然这两种模型都没有给出正确的答案,但我们可以看出,模型 B 更接近于事实。在这种情况下,人们经常应用一种称为逻辑回归(Logistic Regression)的机器学习模型,这种模型将连续概率值作为输出,但用于解决分类问题。


机器学习工作流

首先,我们不能一昧只谈论机器学习,而将数据搁置在一旁。数据之于机器学习模型就如燃料之于火箭发动机一样重要

以数据为中心的工作流

毫不夸张地说,数据决定了机器学习模型的构建方式。在下图中,我们展示了机器学习项目中涉及的典型工作流。

在这里插入图片描述

从数据出发,我们首先需要确定我们要解决的机器学习问题的类型,即有监督的学习问题还是无监督的机器学习问题。我们规定,如果数据中的一个属性是所需的属性,即目标属性,那么该数据被标记。例如,在判断照片上是否有猫的任务中,数据的目标属性可以是布尔值 [Yes|No]。如果这个目标属性存在,那么我们就说数据被标记了,这是一个简单的学习问题。

对于有监督的机器学习算法,我们根据模型的预期输出进一步确定生成模型的类型:分类或回归,即分类模型的离散值和回归模型的连续值。

一旦我们确定了想要从数据中构建的模型类型,我们就开始执行特征工程(feature engineering),这是一组将数据转换为所需格式的活动。

下面给出了几个例子:

  • 对于几乎所有的情况,我们将数据分成两组:训练和测试。在训练模型的过程中使用训练数据集,然后使用测试数据集来测试或验证我们构建的模型是否足够通用,是否可以应用于不可见的数据。
  • 原始数据集通常是不完整的,带有缺失值。因此,可能需要用各种策略来填充这些缺失值,例如用平均值进行填充。
  • 数据集通常包含分类属性,如国家、性别等,通常情况下,由于算法的限制,需要将这些分类字符串值编码为数值。例如,线性回归算法只能处理输入的实值向量。

特征工程的过程无法一蹴而就。通常,在工作流的稍后阶段,您需要反复地回到特征工程上来。

一旦数据准备好,我们就选择一个机器学习算法,并开始向算法输入准备好的训练数据(training data)。这就是我们所说的训练过程(training process)

一旦我们在训练过程结束后获得了机器学习模型,就需要用保留的测试数据(testing data)对模型进行测试。这就是我们所说的测试过程(testing process)

初次训练的模型往往无法令人感到满意。此后,我们将再一次回到训练过程,并调整由我们选择的模型公开的一些参数。这就是我们所说的超参数调优(hyper-parameter tuning)。之所以突出 “超(hyper)”,是因为我们调优的参数是我们与模型交互的最外层接口,而这最终会对模型的底层参数造成影响。例如,对于决策树模型,其超参数之一是树的最大高度。一旦在训练之前进行手动设置,它将限制决策树在结束时可以生长的分支和叶的数量,而这些正是决策树模型所包含的基本参数。

可以看到,机器学习工作流所涉及的几个阶段形成了一个以数据为中心的循环过程。

数据!

用盲人摸象的寓言来说明这一观点也许是较为恰当的。故事是这样的,一群从来没有遇到过大象的盲人,他们试图通过触摸大象来了解和概念化大象是什么样子。每个人都可以触摸大象身体的一部分,如腿、象牙或尾巴等。虽然他们每个人都有接触到一部分真实情形,但没有一个人能获知大象的全貌。因此,他们中没有一个人可以真正了解大象的真实形象。

在这里插入图片描述

现实世界中,在有利的情况下,我们得到的数据可能反映了现实的一部分,而在不利的情况下就可能是一些干扰判断的噪音,在最糟糕的情况下,甚至会与现实相矛盾。不管机器学习算法如何,人们都无法从包含太多噪音或与现实不符的数据中学到任何东西。

欠拟合 VS 过拟合

对于有监督学习算法,例如分类和回归,通常有两种情况下生成的模型不能很好地拟合数据:欠拟合(underfitting)和过拟合(overfitting)。

有监督学习算法的一个重要度量是泛化,它衡量从训练数据导出的模型对不可见数据的期望属性的预测能力。当我们说一个模型是欠拟合或过拟合时,它意味着该模型没有很好地推广到不可见数据。

在这里插入图片描述

在这里插入图片描述

转载地址:https://codingpark.blog.csdn.net/article/details/108545705 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:自然语言工程师心得概述_CodingPark编程公园
下一篇:Python类|实例|方法|继承_专题_CodingPark编程公园

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月07日 00时46分55秒