搜档网
当前位置:搜档网 › 利用随机森林的城区机载LiDAR数据特征选择与分类

利用随机森林的城区机载LiDAR数据特征选择与分类

利用随机森林的城区机载LiDAR数据特征选择与分类
利用随机森林的城区机载LiDAR数据特征选择与分类

常见的特征选择或特征降维方法

URL:https://www.sodocs.net/doc/db1235636.html,/14072.html 特征选择(排序)对于数据科学家、机器学习从业者来说非常重要。好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点、底层结构,这对进一步改善模型、算法都有着重要作用。 特征选择主要有两个功能: 1.减少特征数量、降维,使模型泛化能力更强,减少过拟合 2.增强对特征和特征值之间的理解 拿到数据集,一个特征选择方法,往往很难同时完成这两个目的。通常情况下,选择一种自己最熟悉或者最方便的特征选择方法(往往目的是降维,而忽略了对特征和数据理解的目的)。 在许多机器学习的书里,很难找到关于特征选择的容,因为特征选择要解决的问题往往被视为机器学习的一种副作用,一般不会单独拿出来讨论。本文将介绍几种常用的特征选择方法,它们各自的优缺点和问题。 1 去掉取值变化小的特征Removing features with low variance 这应该是最简单的特征选择方法了:假设某种特征的特征值只有0和1,并且在所有输入样本中,95%的实例的该特征取值都是1,那就可以认为这个特征作用不大。如果100%都是1,那这个特征就没意义了。当特征值都是离散型变量的时候这种方法才能用,如果是连续型变量,就需要将连续变量离散化之后才能用,而且实际当中,一般不太会有95%以上都取某个值的特征存在,所以这种方法虽然简单但是不太好用。可以把它作为特征选择的预处理,先去掉那些取值变化小的特征,然后再从接下来提到的特征选择方法中选择合适的进行进一步的特征选择。

2 单变量特征选择Univariate feature selection 单变量特征选择能够对每一个特征进行测试,衡量该特征和响应变量之间的关系,根据得分扔掉不好的特征。对于回归和分类问题可以采用卡方检验等方式对特征进行测试。 这种方法比较简单,易于运行,易于理解,通常对于理解数据有较好的效果(但对特征优化、提高泛化能力来说不一定有效);这种方法有许多改进的版本、变种。 2.1 Pearson相关系数Pearson Correlation 皮尔森相关系数是一种最简单的,能帮助理解特征和响应变量之间关系的方法,该方法衡量的是变量之间的线性相关性,结果的取值区间为[-1,1],-1表示完全的负相关(这个变量下降,那个就会上升),+1表示完全的正相关,0表示没有线性相关。 Pearson Correlation速度快、易于计算,经常在拿到数据(经过清洗和特征提取之后的)之后第一时间就执行。 Pearson相关系数的一个明显缺陷是,作为特征排序机制,他只对线性关系敏感。如果关系是非线性的,即便两个变量具有一一对应的关系, Pearson相关性也可能会接近0。 2.2 互信息和最大信息系数Mutual information and maximal information coefficient (MIC)

随机森林

学习算法 根据下列算法而建造每棵树: 1. 用N 来表示训练例子的个数,M表示变量的数目。 2. 我们会被告知一个数m ,被用来决定当在一个节点上做决定时,会使用到多少个变量。m应小于M 3. 从N个训练案例中以可重复取样的方式,取样N次,形成一组训练集(即bootstrap取样)。并使用这棵树来对剩余预测其类别,并评估其误差。 4. 对于每一个节点,随机选择m个基于此点上的变量。根据这m 个变量,计算其最佳的分割方式。 5. 每棵树都会完整成长而不会剪枝(Pruning)(这有可能在建完一棵正常树状分类器后会被采用)。 优点 随机森林的优点有: 1. 对于很多种资料,它可以产生高准确度的分类器。 2. 它可以处理大量的输入变量。 3. 它可以在决定类别时,评估变量的重要性。 4. 在建造森林时,它可以在内部对于一般化后的误差产生不偏差的估计。 5. 它包含一个好方法可以估计遗失的资料,并且,如果有很大一部分的资料遗失,仍可以维持准确度。 6. 它提供一个实验方法,可以去侦测variable interactions 。 7. 对于不平衡的分类资料集来说,它可以平衡误差。 8. 它计算各例中的亲近度,对于数据挖掘、侦测偏离者(outlier)和将资料视觉化非常有用。 9. 使用上述。它可被延伸应用在未标记的资料上,这类资料通常是使用非监督式聚类。也可侦测偏离者和观看资料。 10. 学习过程是很快速的。 缺点 1. 随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟 2. 对于有不同级别的属性的数据,级别划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的。

随机森林

随机森林 基础内容: 这里只是准备简单谈谈基础的内容,主要参考一下别人的文章,对于随机森林与GBDT,有两个地方比较重要,首先是information gain,其次是决策树。这里特别推荐Andrew Moore大牛的Decision Trees Tutorial,与Information Gain Tutorial。Moore的Data Mining Tutorial系列非常赞,看懂了上面说的两个内容之后的文章才能继续读下去。 决策树实际上是将空间用超平面进行划分的一种方法,每次分割的时候,都将当前的空间一分为二,比如说下面的决策树: 就是将空间划分成下面的样子: 这样使得每一个叶子节点都是在空间中的一个不相交的区域,在进行决策的时候,会根据输入样本每一维feature的值,一步一步往下,最后使得样本落入N个区域中的一个(假设有N个叶子节点) 随机森林(Random Forest):

随机森林是一个最近比较火的算法,它有很多的优点: ?在数据集上表现良好 ?在当前的很多数据集上,相对其他算法有着很大的优势 ?它能够处理很高维度(feature很多)的数据,并且不用做特征选择 ?在训练完后,它能够给出哪些feature比较重要 ?在创建随机森林的时候,对generlization error使用的是无偏估计 ?训练速度快 ?在训练过程中,能够检测到feature间的互相影响 ?容易做成并行化方法 ?实现比较简单 随机森林顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类。 在建立每一棵决策树的过程中,有两点需要注意- 采样与完全分裂。首先是两个随机采样的过程,random forest对输入的数据要进行行、列的采样。对于行采样,采用有放回的方式,也就是在采样得到的样本集合中,可能有重复的样本。假设输入样本为N个,那么采样的样本也为N个。这样使得在训练的时候,每一棵树的输入样本都不是全部的样本,使得相对不容易出现over-fitting。然后进行列采样,从M 个feature中,选择m个(m << M)。之后就是对采样之后的数据使用完全分裂的方式建立出决策树,这样决策树的某一个叶子节点要么是无法继续分裂的,要么里面的所有样本的都是指向的同一个分类。一般很多的决策树算法都一个重要的步骤- 剪枝,但是这里不这样干,由于之前的两个随机采样的过程保证了随机性,所以就算不剪枝,也不会出现over-fitting。 按这种算法得到的随机森林中的每一棵都是很弱的,但是大家组合起来就很厉害了。我觉得可以这样比喻随机森林算法:每一棵决策树就是一个精通于某一个窄领域的专家(因为我们从M个feature中选择m让每一棵决策树进行学习),这样在随机森林中就有了很多个精通不同领域的专家,对一个新的问题(新的输入数据),可以用不同的角度去看待它,最终由各个专家,投票得到结果。 随机森林的过程请参考Mahout的random forest。这个页面上写的比较清楚了,其中可能不明白的就是Information Gain,可以看看之前推荐过的Moore的页面。

随机森林

随机森林 定义:随机森林是一个分类器,它有一系列的单株树决策器{h (X,,θk );k=1,......} 来组成,其中{θk }是独立同分布的随机变量。再输入X 时,每一棵树只投一票给它认为最合适的类。在机器学习中,随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定,构成随机森林的基础分类器称为决策树。 Leo Breiman 和Adele Cutler 发展出推论出随机森林的算法。 这个术语是1995年由贝尔实验室的Tin Kam Ho 所提出的随机决策森林(random decision forests )而来的。这个方法则是结合 Breimans 的 "Bootstrap aggregating" 想法和 Ho 的"random subspace method"" 以建造决策树的集合。 随机森林是一个组合分类器,构成随机森林的基础分类器是决策树。 决策树算法 决策树可以视为一个树状预测模型,它是由结点和有向边组成的层次结构。树中包含3个节点:根节点。内部节点,终节点(叶子节点)。决策树只有一个根节点,是全体训练集的结合。树中的每个内部节点都是一个分裂问题,它将到达该节点的样本按某个特定的属性进行分割,可以将数据集合分割成2块或若干块。每个终结点(叶子节点)是带有分裂标签的数据集合,从决策树的根节点到叶子节点的每一条路径都形成一个类;决策树的算法很多,例如ID3算法,CART 算法等。这些算法均采用自上而下的贪婪的算法,每个内部节点选择分类效果最好的属性进行分裂节点,可以分为两个或若干个子节点,继续此过程到这可决策树能够将全部训练数据准确的分类,或所有属性都被用到为止。具体步骤如下: 1)假设T 为训练样本集。 2)选择一个最能区分T 中样本的一个属性。 3)创建一个数的节点,它的值是所选择的属性,创建此节点的子节点,每个子链代表所选属性的唯一值,适用子链的值进一步将样本细分为子类。 对于3)创建的三个子类 (1)如果子类的样本满足预定义的标准,或者树的这条路的剩余可选属性集为空,为沿此路径的新的样本指定类别。 (2)如果子类不满足于定义的标准,或者至少有一个属性能细分树的路径,设T 为当前子类样本的集合,返回步骤2),以下简单的给出二分树的结构图示: 根节点 中间节点 叶节点 规则1 叶节点 规则2 中间节点

随机森林(精)

随机森林 θk);k=1,......}定义:随机森林是一个分类器,它有一系列的单株树决策器{h(X,, θk}是独立同分布的随机变量。再输入X时,每一棵树只投一票给来组成,其中{ 它认为最合适的类。在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定,构成随机森林的基础分类器称为决策树。Leo Breiman和Adele Cutler发展出推论出随机森林的算法。这个术语是1995年由贝尔实验室的Tin Kam Ho所提出的随机决策森林(random decision forests)而来的。这个方法则是结合Breimans 的"Bootstrap aggregating" 想法和Ho 的"random subspace method"" 以建造决策树的集合。随机森林是一个组合分类器,构成随机森林的基础分类器是决策树。 决策树算法 决策树可以视为一个树状预测模型,它是由结点和有向边组成的层次结构。树中包含3个节点:根节点。内部节点,终节点(叶子节点)。决策树只有一个根节点,是全体训练集的结合。树中的每个内部节点都是一个分裂问题,它将到达该节点的样本按某个特定的属性进行分割,可以将数据集合分割成2块或若干块。每个终结点(叶子节点)是带有分裂标签的数据集合,从决策树的根节点到叶子节点的每一条路径都形成一个类;决策树的算法很多,例如ID3算法,CART算法等。这些算法均采用自上而下的贪婪的算法,每个内部节点选择分类效果最好的属性进行分裂节点,可以分为两个或若干个子节点,继续此过程到这可决策树能够将全部训练数据准确的分类,或所有属性都被用到为止。具体步骤如下: 1)假设T为训练样本集。 2)选择一个最能区分T中样本的一个属性。 3)创建一个数的节点,它的值是所选择的属性,创建此节点的子节点,每个子链代表所选属性的唯一值,适用子链的值进一步将样本细分为子类。 对于3)创建的三个子类 (1)如果子类的样本满足预定义的标准,或者树的这条路的剩余可选属性集为空,为沿此路径的新的样本指定类别。 (2)如果子类不满足于定义的标准,或者至少有一个属性能细分树的路径,设T为当前子类样本的集合,返回步骤2),以下简单的给出二分树的结构图示:

决策树和随机森林

前言: 决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等。但是同时,单决策树又有一些不好的地方,比如说容易over-fitting,虽然有一些方法,如剪枝可以减少这种情况,但是还是不够的。 美国金融银行业的大数据算法:随机森林模型+综合模型 模型组合(比如说有Boosting,Bagging等)与决策树相关的算法比较多,这些算法最终的结果是生成N(可能会有几百棵以上)棵树,这样可以大大的减少单决策树带来的毛病,有点类似于三个臭皮匠等于一个诸葛亮的做法,虽然这几百棵决策树中的每一棵都很简单(相对于C4.5这种单决策树来说),但是他们组合起来确是很强大。 在最近几年的paper上,如iccv这种重量级的会议,iccv 09年的里面有不少的文章都是与Boosting与随机森林相关的。模型组合+决策树相关的算法有两种比较基本的形式–随机森林与GBDT((Gradient Boost Decision Tree),其他的比较新的模型组合+决策树的算法都是来自这两种算法的延伸。本文主要侧重于GBDT,对于随机森林只是大概提提,因为它相对比较简单。 在看本文之前,建议先看看机器学习与数学(3)与其中引用的论文,本文中的GBDT主要基于此,而随机森林相对比较独立。 基础内容: 这里只是准备简单谈谈基础的内容,主要参考一下别人的文章,对于随机森林与GBDT,有两个地方比较重要,首先是information gain,其次是决策树。这里特别推荐Andrew Moore大牛的Decision Trees Tutorial,与Information Gain Tutorial。Moore的Data Mining Tutorial系列非常赞,看懂了上面说的两个内容之后的文章才能继续读下去。 决策树实际上是将空间用超平面进行划分的一种方法,每次分割的时候,都将当前的空间一分为二,比如说下面的决策树:

相关主题