机器学习 (第4章 非线性分类)

一、学习目标

1.了解非线性分类的作用与思想

2.掌握决策树建立方法

3.掌握最近邻方法

4.学习集成学习

5.学习非线性的SVM

二、概述

1.显然地,我们之前学习的线性分类法不可能将所有问题进行分类,而实际上,有许多问题是有明显的非线性的决策面进行分类,如下图:

2.于是乎,提出非线性分类方法,按思想原理,可分为两种:

线性拓展的方法实际上并不对原判别函数的参数进行变动,而是将输入x进行一定的变换,比如二次方化,幂函数化。而我们主要学习非线性思想的几种方法,且这几种方法并不是都是统一的思想原理。

三、决策树

1.决策树的思想,就是通过树节点的判断,将数据分类到不同的叶子节点后,就算完成了分类:

其几何解释就如下图所示:(每个矩形相当于一个叶子节点,边相当于树节点区分两个子树)

显而易见的,决策树的优点和问题都是存在的:(图中砍刀指的就是:上面图中我们将向量空间进行的划分)

所以,在确立一棵决策树时,我们要考虑4个问题:问题数(能有效地划分的分界数量),划分问题的选择(分界的优先顺序),决策树生成,剪枝处理(实际上,如果我们第一、二点做得好的话,不用考虑剪枝)。

2.问题数的确定:

(1)对于离散情况:

例如以西瓜的纹理为例:

我们可以有两种确立分类的节点:

之所以说下面方法更好,除了其决策更谨慎外,其还有一个优点:保证了这是一棵二叉树。

(2)对于连续值的情况,我们就不能设置是否等于某个值来区分,而是使用“是否大于xxx"来区分:

对于蓝色框部分,可能会有疑惑,有N个样本,我们有N-1个分界就能把他们划分开,为啥要N个。这是为了划分出一个不属于样本集合中的类别,从而使模型有一定的鲁棒性。

2.划分问题的选择

主要的任务是:确定分界的顺序。主要的思想是:按某个问题进行划分后,这个分界能最大程度地区分两类数据。而我们如何评判其是否分得很好呢?我们有三种评判标准:

其中pi为概率,而在决策树中,是指我们划分数据后,各类别的占比,例如:

对于这三类评判标准,其中熵和信息增益是越大越好,基尼指数是越小越好,相关原理可以自行观察公式证实。其中信息增益是有一些问题的:

于是为了避免其选择分类太多的情况,对其进行改进(其中V就是分类总数):

分类节点(非叶子节点)确定好顺序后,还要确定叶子节点的分类:

四、最近邻方法

最近邻方法是一种无参数的方法,有点像聚类的想法,但是用在分类任务中,其主要思想就是一个点离哪一类更近,最划为哪一类。

1.最近邻法

最后形成的决策边界是:

2.k近邻法

上面两种方法都存在着问题:

于是乎,提出了一些快速算法。

3.快速算法一:快速搜索近邻法

原理和过程如下:

主要工作有两个:(1)如何对样本进行分层,(2)对于一个新的点,如何划分到哪个集合中。

(1)分层主要有网格法、哈希或者构树法:

(2)如何找最近子集,有两种规则:

规则1,计算点到样本集边界的距离(图中,红色部分为其计算出的距离,由于大于B,故保留B对应的类为待归集到的类)

规则2,计算点到最近一些点的距离,这些点已经划进某类中了。

4.快速算法二:剪辑近邻法

由于删除掉分界面附近的点,其分界面周围会出现一些空白区域:

5.快速算法三:压缩近邻法

与剪辑近邻法相反,保留那些错误的样本后再作决策界(当然,做完后也会导致原本正分点变成错分点,也不管了)

由于错分的样本是少量的,所以,它的计算量会变得很小:

6.拒绝决策近邻法

其思想就是,那些不好分类的点,我就不分了。哈。

五、集成学习

算法学习的主要目标就是各个分类器的权重的大小。权重的大小表明其对输出的影响力。

几种常见的学习准则:

这几种就不需要学习权重,而是汇总各方的结论进行总结。但这对分类器有要求:分类器之间要有多样性,且每个分类器性能都不错。

两个例子:Bagging和随机森林。

1.Bagging

2.随机森林

二者对比:

为了能够通过权重去衡量各个分类器对结果的影响度,我们使用Adaboost算法来实现。

3.Adaboost

Adaboost(adaptive boosting)算法是boosting原理的应用。boosting的思想就是设计一系列弱分类器,让其在不同的样本子集上学习,得到增强分类器。Adaboost就是解决我们上面说的,如何计算不同分类器的权重问题。当然,分类器自身的参数也一同计算得到。

目标函数如下:

分类器F的构成有两个:已经确定好θ的m个分类器模型和当前要优化的分类器:

优化的目标是当前要优化的分类器的参数西塔和重新计算新的权重α。损失函数如下:

先算θ:

再根据模型的优劣性能来确定α:

最后还有一个样本权重w。其作用是加重那些依旧错误的样本的权重,让后面的分类更器注重这些样本:

自此,Adaboost就能集成多个分类器作分类了:

六、非线性SVM

在上一张我们学习过线性SVM,那么非线性SVM与其唯一差别在于:线性SVM中,样本是x,我们的输入就是x,在非线性SVM中,我们通过变换函数Φ(·)将x转化后,再做线性区分。比较常见的思想就是“升维”,其在高维空间中的线性划分在低维空间中会变成非线性划分。

由于Φ(x)我们是不可知的,那么Φ(x)的内积我们更无法得知。所以我们使用核函数来取代其内积(核函数只能代替Φ(x)的内积,单独的Φ(x)我们没有别的模型可以去代替):

常见的核函数有:

之后便可根据线性划分的知识来计算超平面的w和b,有两种方案:

(1)硬间隔:

(2)软间隔:

七、本章小结

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值