机器学习(2)——监督学习

什么是监督学习?

为了更好地理解不同类型的机器学习方法,我们首先定义一些基本概念。如前所述,机器学习是建立在数据建模基础上的,因此,数据是进行机器学习的基础。我们可以把所有数据的集合称为数据集(dataset),如图7.2所示。
在这里插入图片描述
其中每条记录称为一个“样本”(sample),如图中每个不同颜色和大小的三角形和圆形均是一个样本。样本在某方面的表现或性质称为属性(attribute)或特征(feature),每个样本的特征通常对应特征空间中的一个坐标向量,称为一个特征向量(feature vector)。如图7.2数据集中,每个样本具有形状、颜色和大小三种不同的属性,其特征向量可以由这三种属性构成为xi=[shape,color,size]。机器学习任务的目标即是从数据中学习出相应的“模型”(model),也就是说模型可以从数据中来学习出如何判断不同样本的形状、颜色和大小。有了这些模型后,在面对新的情况时,模型会给我们提供相应的判断。以此为例,在面对一个新样本时,我们可以根据样本的形状、颜色和大小等不同属性对样本进行相应分类。为了学习到这一模型,相关研究者提出了不同的策略,本节首先介绍其中最为常用的一种——监督学习。

监督学习是机器学习中最重要的一类方法,占据了目前机器学习算法的绝大部分。监督学习就是在已知输入和输出的情况下训练出一个模型,将输入映射到输出。简单来说,我们在开始训练前就已经知道了输入和输出,我们的任务是建立起一个将输入准确映射到输出的模型,当给模型输入新的值时就能预测出对应的输出了。

以图7.2为例,我们可以将其建模为一个二分类的问题:
yi=0对应该集合中实心的黑色样本,yi=1代表该集合中空心的白色样本。
所谓的监督学习,就是我们已知了样本的属性xi=[shape,color,size],并同时告诉机器学习模型该样本的类比(即其对应的值)。机器学习的过程就是利用算法建立输入变量xi和输出变量yi的函数关系的过程,在这一过程中机器不断通过训练输入来指导算法不断改进。如果输出的结果不正确,那么这个错误结果与期望正确结果之间的误差将作为纠正信号传回到模型,以纠正模型的改进。

作为目前最广泛使用的机器学习算法,监督学习已经发展出了数以百计的不同方法。本节将选取易于理解及目前被广泛使用的K-近邻算法(KNN算法)决策树和**支持向量机(SVM)**为代表,介绍其基本原理。

一、K-近邻算法(KNN算法)

K-近邻算法(K-nearest neighbors,KNN)是最简单的机器学习分类算法之一。适用于多分类问题。简单来说,其核心思想就是“排队”:给定训练集,对于待分类的样本点,计算待预测样本和训练集中所有数据点的距离,将距离从小到大取前K个,则哪个类别在前K个数据点中的数量最多,就认为待预测的样本属于该类别。用我国的一句古话可以形象地说明:“近朱者赤,近墨者黑。”
下面通过一个简单的例子说明。如图7.3所示,如果要决定中心的待预测样本点是属于三角形还是正方形,我们可以选取训练集中距离其最近的一部分样本点。例如,当我们选取K=3,我们可以看到其中2个点是三角形、1个点是正方形,则待预测样本将被赋予三角形的类别。KNN算法最大的优点是简单且容易实现,支持多分类,并且不需要进行训练,可以直接用训练数据来实现分类。
在这里插入图片描述
但是,KNN算法的缺点也是显而易见的,最主要的缺点是对参数的选择很敏感。仍以图7.3为例,当选取不同的参数K时,我们会得到完全不同的结果。例如,选取K=10时(如图中虚线所示),其中有6个正方形和4个三角形,则待预测样本点被赋予了正方形,即使它可能真的是三角形。KNN算法的另一个缺点是计算量大,每次分类都需要计算未知数据和所有训练样本的距离,尤其在遇到训练集非常大的情况,因此在实际应用中被采用的不是很多。

二、决策树(decision tree)

决策树(decision tree)是一类常见的监督学习方法,代表的是对象属性与对象值之间的一种映射关系。顾名思义,决策树是基于树结构来进行决策的,这恰是人类在面临决策问题时一种很自然的处理机制。一棵决策树一般包含一个根节点、若干个内部节点和若干个叶节点,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。
如表7.1所示的训练数据,每一行代表一个样本点,分别从颜色、形状、大小三方面的特征来描述水果属性。
在这里插入图片描述
通过构造如图7.4的决策树,利用不同的叶节点对应形状、大小、颜色等不同的属性并分别测试,我们可以得到最终的叶节点,从而将所有样本根据其属性分成不同的类别。
在这里插入图片描述
决策树学习的目的是为了产生一棵泛化能力强(即处理未见示例能力强)的决策树,其基本流程遵循简单且直观的“分而治之”(divide-and-conquer)策略。通常来讲,决策树的生成是一个递归过程。在决策树基本算法中,有三种情形会导致递归返回:①当前结点包含的样本全属于同一类别,无须划分;②当前属性集为空或是所有样本在所有属性上取值相同,无法划分;③当前结点包含的样本集合为空,不能划分。
同其他分类器相比,决策树易于理解和实现,具有能够直接体现数据的特点,因此,人们在学习过程中不需要了解很多的背景知识,通过解释都有能力去理解决策树所表达的意思。决策树往往不需要准备大量的数据,并且能够同时处理数据型和常规型属性,在相对短的时间内能够对大型数据源给出可行且效果良好的结果;同时,如果给定一个观察模型,那么根据所产生的决策树很容易推出相应的逻辑表达式。
决策树学习的关键是如何选择最优划分属性。一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高。相关的研究者提出了信息增益、增益率、基尼指数等不同准则用以实现决策树划分选择,但经典决策树在存在噪声的情况下其性能会出现明显下降。

三、支持向量机(SVM)

支持向量机(support vector machine,SVM)于1995年正式发表,由于其严格的理论基础以及在诸多分类任务中显示出的卓越性能,很快成为机器学习的主流技术,并直接掀起了“统计学习”(statistical learning)在2000年前后的高潮。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最小化,建立一个将新的实例分配给两个类别之一的模型,从而达到在统计样本量较少的情况下亦能获得良好统计规律的目的。
SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能大地间隔(margin)分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。
下面通过一个简单的例子来解释支持向量机。
如图7.5所示的一个二维平面(一个超平面,在二维空间中的例子就是一条直线),上有两种不同的点,分别用实心点和空心点表示。同时,为了方便叙述,我们通常用“+1”表示一类,“-1”表示另外一类。支持向量机的目标就是通过求解超平面将不同属性的点分开,在超平面一边的数据点所对应的y全是-1,而在另一边全是1。一般而言,一个点距离超平面的远近可以表示为分类预测的确信或准确程度。当一个数据点的分类间隔越大时,即离超平面越远时,分类的置信度越大。对于一个包含n个点的数据集,我们可以很自然地定义它的间隔为所有这n个点中间隔值最小的那个。于是,为了提高分类的置信度,我们希望所选择的超平面能够最大化这个间隔值。这就是SVM算法的基础,即最大间隔(max-margin)准则
在这里插入图片描述
在图7.5中,距离超平面最近的几个训练样本点被称为“支持向量”(support vector),两个异类支持向量到超平面的距离之和被称为“间隔”(margin)。支持向量机的目标就是找到具有“最大间隔”(maximum margin)的划分超平面。
需要指出的是,以上问题是支持向量机问题的基本模型,在很多现实问题中往往需要考虑更加复杂的情况。首先,基本型假设训练样本是线性可分的,即存在一个划分超平面能将训练样本正确分类,然而在现实任务中原始样本空间内也许并不存在一个能正确划分两类样本的超平面。如图7.6(a)所示,实际上无法找到一个线性分类面将图中的实心样本和空心样本分开。为了解决这类问题,相关研究者提出了诸多的解决办法,其中一个重要方法即核方法。这种方法通过选择一个核函数,将数据映射到高维空间,使在高维属性空间中有可能训练数据实现超平面的分割,避免了在原输入空间中进行非线性曲面分割计算,以解决在原始空间中线性不可分的问题。如图7.6(b)所示,通过将原来在二维平面上的点映射到三维空间上,即可以利用一个线性平面将图中的实心样本和空心样本分开。
在这里插入图片描述
由于核函数的良好性能,计算量只和支持向量的数量有关,而独立于空间的维度;而且在处理高维输入空间的分类时,这样的非线性扩展在计算量上并没有比原来有显著的增加。因此,核方法在目前机器学习任务中有非常广泛的应用,尤其是在解决线性不可分问题当中,更多内容可以查阅周志华教授撰写的《机器学习》。
在这里插入图片描述

  • 8
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我知道了,下面是我的回答: 聚类算法是一种无监督学习算法,它可以将数据集中的数据按照某种规则进行分组,使得同一组内的数据相似度较高,不同组之间的数据相似度较低。聚类算法可以帮助我们对数据进行分类、分析和理解,同时也可以为其他机器学习任务提供数据预处理和特征提取的支持。 聚类算法的基本流程包括:确定聚类算法的目标函数、选择相似度度量方法、选择聚类算法、确定聚类的数量、进行聚类操作以及评估聚类效果。常见的聚类算法包括K-Means算法、层次聚类算法、密度聚类算法等。 K-Means算法是一种基于距离的聚类算法,它的基本思想是将数据集中的数据划分为K个簇,使得同一簇内的数据相似度较高,不同簇之间的数据相似度较低。K-Means算法的优是计算复杂度较低,容易实现,但是需要预先指定簇的数量和初始聚类中心。 层次聚类算法是一种基于相似度的聚类算法,它的基本思想是不断合并数据集中相似度最高的数据,直到所有数据都被合并为一个簇或达到预先设定的簇的数量。层次聚类算法的优是不需要预先指定簇的数量和初始聚类中心,但是计算复杂度较高。 密度聚类算法是一种基于密度的聚类算法,它的基本思想是将数据集中的数据划分为若干个密度相连的簇,不同簇之间的密度差距较大。密度聚类算法的优是可以发现任意形状的簇,但是对于不同密度的簇分割效果不佳。 以上是聚类算法的基础知识,希望能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值